En telefon beskrivs vanligtvis utifrån vad den gör — samtal, foton, appar. Beskriv den istället utifrån vad den innehåller: en tillräckligt kalibrerad mikrofon med en samplingsfrekvens på 48 kHz, två eller tre kameror, en ljusstark LED-ficklampa, en vibrationsmotor, en accelerometer och en skärm som kan blinka med en exakt frekvens. Det är inte en telefon. Det är ett litet laboratorium med en pekskärm.
De flesta appar använder en av dessa delar i taget, för dess avsedda syfte. De intressanta mätningarna börjar när du använder dem utanför det avsedda användningsområdet och i kombination: ficklampan som ljuskälla för kameran, vibrationsmotorn som vibrationsalstrare för accelerometern, en andra telefon som den andra halvan av ett experiment. Det här inlägget är en karta över det territoriet, i tre nivåer av ökande ambition.
Nivå 1: en sensor, passivt lyssnande
De enklaste verktygen riktar en sensor mot omvärlden och analyserar vad som kommer tillbaka:
- Ljudspektrum — spela in ljud, beräkna ett spektrum, titta på var energin ligger. Detta är den mångsidiga arbetshästen: motorer, brum, rasslande, ringtoner hos anslagna objekt.
- Knacktest — knacka på en frukt eller ett material och analysera dess utklingning: den dominerande resonansen och hur snabbt den avklingar säger mer om vad som finns inuti än vad ljudstyrkan någonsin skulle kunna göra. (Mer i inlägget om knacktest.)
- Vibration — placera telefonen på en tvättmaskin, en kompressor, en 3D-skrivare, så registrerar accelerometern vibrationssignaturen.
- Kamerafärg och -ljus — punktfärgsmätning, detektering av flimmer/blinkfrekvens för skärmar och LED-belysning, illuminans, räkna upprepade objekt, avläsa analoga mätare, uppskatta dimensioner.
Den förenande principen: datainsamlingen måste vara så rå som plattformen tillåter. På Android innebär det att begära den obehandlade mikrofonsignalen — ingen automatisk förstärkningskontroll, ingen brusreducering som skriver om just den signal du är där för att mäta — och att låsa kamerans autoexponering och vitbalans närhelst mätningen beror på att ljusnivåerna förblir oförändrade.
Nivå 2: telefonen exciterar, och mäter sedan sin egen excitering
En telefon har också aktuatorer, och att para ihop en aktuator med en sensor förvandlar passivt lyssnande till ett aktivt instrument:
- Ficklampa + kamerareflektans — ta ett bildpar med ficklampan avstängd respektive påslagen; skillnaden isolerar hur ytan reflekterar ett känt ljus, vilket i stort sett eliminerar rummets omgivande belysning från resultatet.
- Ficklampa som ljuskälla: puls och translucens — tryck ett finger mot kameran med ficklampan påslagen, så blir kameran en fotodetektor som övervakar hur blodvolymen förändras med varje hjärtslag. Samma optik mäter hur translucent ett material är.
- Vibrationsmotor + accelerometer + mikrofon — telefonen skakar sig själv mot ett objekt samtidigt som den registrerar hur objektet svarar, både mekaniskt och akustiskt. En ihålig panel och en massiv svarar olika.
Aktiva verktyg har en egenskap som passiva saknar: stimulit är känt. När du kontrollerar exciteringen kan du bygga funktioner baserade på förhållanden och svar snarare än absoluta nivåer — vilket är det som gör resultaten jämförbara mellan olika telefonmodeller utan att varje enskild enhet behöver kalibreras.
Nivå 3: två telefoner, ett experiment
Vissa storheter är till sin natur tvåsidiga: hur mycket ljud en vägg tillåts blockera, hur mycket ljus ett fönster släpper igenom. En telefon kan inte vara på båda sidor samtidigt — men två kan, och de flesta hushåll har två.
Tricket som gör att detta fungerar utan labbutrustning är förhållandet hos samma mottagare. Den sändande telefonen spelar upp ett självidentifierande stimuli — ett stegat tonsvep, eller en skärm som blinkar med en fast frekvens. Den mätande telefonen registrerar två gånger: en gång med fri väg till sändaren (referensen), en gång genom väggen eller fönstret. Endast förhållandet mellan dessa två mätningar, tagna med samma mikrofon eller kamera, används som svar. Sändarens ljudstyrka, mottagarens känslighet, rummet — allt raderas ut. De två telefonerna behöver alltså ingen klocksynkronisering, ingen kabel och ingen inbördes kalibrering. (Fullständig genomgång i inlägget om ljudisolering.)
Designregel bakom alla tre nivåer: lita aldrig på en absolut nivå. Telefoners mikrofoner och kameror varierar mellan olika modeller; resonanser, avklingningshastigheter, ordningsdomänmönster och förhållanden hos samma mottagare gör det i regel inte. Funktioner som bygger på relativa storheter fungerar på tvärs av enheter; funktioner som bygger på absoluta värden kräver kalibrering för varje enskild enhet för alltid.
Från enstaka avläsningar till en katalog
En avläsning i sig är bara kuriosa. Avläsningar blir till kunskap när de kopplas till saker: den här melonen, det här hjulet, den här väggen, mätt idag och igen nästa vecka. Därför kan varje mätning arkiveras under ett objekt i en katalog — Kategori → Objekt → Användningsfall → Mätning — och alla mätningar kan tilldelas en facit-etikett i efterhand: du knackade på melonen, skar sedan upp den och registrerade sedan vad du hittade. Det slutna kretsloppet, upprepat över många användare och många objekt, är hur klassificerare för knacktester tränas på riktig frukt snarare än laboratorieprover.
Och för hela uppgifter snarare än enstaka avläsningar — som att stämma ett cykelhjul eller kontrollera ett rums isolering — kedjar vägledda aktiviteter samman flera verktyg i rätt ordning och talar om för dig vad du ska göra mellan mätningarna, och skriver deras resultat till samma katalog. I inlägget om ekerstämning går vi igenom den första.
Vart vi är på väg
Listan över verktyg växer ständigt — och arkitekturen är byggd så att tillägg av ett verktyg är additivt: en ny post i ett register, aldrig en omarbetning av det som redan sparats. Allt körs på enheten, offline, med resultat på under en sekund; inlägget om offline-först förklarar varför den begränsningen är bärande snarare än bara en bock i en funktionsruta.