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:

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:

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.