Телефон зазвичай описують через те, що він робить: дзвінки, фото, застосунки. Натомість опишіть його через те, що він містить: достатньо відкалібрований мікрофон із частотою дискретизації 48 kHz, дві або три камери, яскравий світлодіодний ліхтарик, вібромотор, акселерометр і екран, який може миготіти з точною частотою. Це не просто телефон. Це маленька лабораторія із сенсорним екраном.

Більшість застосунків використовують лише одну з цих деталей за раз і лише за її прямим призначенням. Найцікавіші вимірювання починаються тоді, коли ви використовуєте їх не за призначенням та в поєднанні: ліхтарик як джерело світла для камери, вібромотор як збудник для акселерометра, а другий телефон — як другу половину експерименту. Цей допис є картою цієї території, що розділена на три рівні зростання складності.

Рівень 1: один датчик, пасивне прослуховування

Найпрошіші інструменти спрямовують один датчик на навколишній світ і аналізують отримані дані:

Головне правило: отримання даних має бути настільки «сирим», наскільки це дозволяє платформа. На Android це означає запит необробленого сигналу з мікрофона — без автоматичного регулювання підсилення чи шумозаглушення, які спотворюють саме той сигнал, що ви намагаєтеся виміряти, — а також фіксацію автоекспозиції та балансу білого камери, коли вимірювання залежить від незмінності рівня освітлення.

Рівень 2: телефон генерує імпульс, а потім вимірює власне збудження

Телефон також має актуатори, і поєднання актуатора з датчиком перетворює пасивне прослуховування на активний інструмент:

Активні інструменти мають властивість, якої бракує пасивним: стимул є відомим. Коли ви контролюєте збудження, ви можете будувати функції на основі співвідношень та реакцій, а не абсолютних рівнів, завдяки чому результати можна порівнювати на різних моделях телефонів без необхідності калібрувати кожен пристрій.

Рівень 3: два телефони, один експеримент

Деякі величини за своєю природою вимагають двостороннього вимірювання: скільки звуку затримує стіна або скільки світла пропускає вікно. Один телефон не може бути з обох боків одночасно, але два — можуть, і в більшості домогосподарств знайдеться два пристрої.

Трюк, який дозволяє робити це без лабораторного обладнання, полягає у співвідношенні для одного й того ж приймача. Телефон-випромінювач відтворює самоідентифікований стимул — ступінчастий свіп-тон або миготіння екрана з фіксованою частотою. Телефон, що здійснює вимірювання, робить запис двічі: один раз за прямої видимості випромінювача (еталон), а другий — крізь стіну чи вікно. Як результат використовується лише співвідношення цих двох записів, отриманих на тому самому мікрофі чи камері. Гучність випромінювача, чутливість приймача, акустика кімнати — усе це взаємно компенсується. Тому двом телефонам не потрібна ні синхронізація годинників, ні кабелі, ні взаємне калібрування. (Покрокову інструкцію дивіться в дописі про звукоізоляцію.)

Правило проєктування для всіх трьох рівнів: ніколи не довіряйте абсолютним рівням. Мікрофони та камери телефонів різняться залежно від моделі; натомість резонанси, швидкість затухання, шаблони в порядковій області та співвідношення для одного приймача переважно залишаються незмінними. Функції, побудовані на відносних величинах, працюють на будь-ках пристроях; функції, що базуються на абсолютних значеннях, завжди потребуватимуть індивідуального калібрування для кожного пристрою.

Від поодиноких показників до каталогу

Показник сам по собі мало про що говорить. Показники перетворюються на знання, коли вони прив'язані до речей: цієї дині, цього колеса чи цієї стіни, виміряних сьогодні і знову наступного тижня. Тому кожне вимірювання можна зберегти під певним об'єктом у каталозі — Категорія → Об'єкт → Сценарій використання → Вимірювання — а будь-яке вимірювання згодом може отримати підтверджену мітку: ви постукали по дині, потім розрізали її та записали результат. Цей замкнений цикл, повторений багатьма користувачами та для багатьох об'єктів, — саме те, як класифікатори акустичних тестів навчаються на реальних фруктах, а не на лабораторних зразках.

А для повноцінних завдань, а не просто вимірювань (наприклад, налаштування велосипедного колеса чи перевірка ізоляції кімнати), покрокові активності об'єднують кілька інструментів у правильній послідовності й підказують, що робити між вимірюваннями, записуючи результати в той самий каталог. Перша така активність детально описана в дописі про налаштування спиць.

Куди це веде

Список інструментів постійно зростає, а архітектура розроблена так, що додавання нового інструмента є адитивним: це просто новий запис у реєстрі, без переробки того, що вже збережено. Усе працює безпосередньо на пристрої в офлайн-режимі, а результати видаються менш ніж за секунду; у дописі про роботу в офлайні пояснюється, чому це обмеження є фундаментальним опорним елементом, а не просто галочкою в списку функцій.