Skriv ut
Kapacitiva närhetssensorer används redan idag i fordon för att känna av passagerarens närvaro och därvid automatiskt sätta på kupébelysningen eller aktivera den nyckellösa dörrens upplåsningssystem. Men ut­över detta kan man använda flera parallella lämpligt placerade närhetssensorer  för att känna igen enkla handrörelser i luften. Informationen från sensorerna kombineras för att mappa användarens handrörelse nära sensorerna. Gesterna kan användas för att styra system, som mediaspelare, kartnavigator eller att välja i en meny.
embexLadda ner artikeln på 500 kbyte här (länk, pdf).
Fler tekniska rapporter finns på etn.se/expert
Närhetssensorerna placeras med mellanrum i ett lämpligt mönster. När handen rör sig över sensorerna kommer den tidpunkt vid vilken den upptäcks av de olika sensorerna att vara olika. Avkänningens relativa ordningsföljd och varaktigheten mellan avkänningen av olika sensorer kan användas för att bedöma handrörelsens riktning och fart. Gesterna kan vara så enkla som att dra en rak linje i luften genom att föra handen från vänster till höger över sensorerna, eller komplexa rörelser som att rita en cirkel i luften.

Ta som exempel fyra kapacitiva närhetssensorer arrangerade enligt Figur 1 runt ett infotainmentsystem i en bil. En enkel gest kan exempelvis vara en hand som ritar en rak linje i luften genom att dra från vänster till höger över sensorerna.

Under handens färd aktiveras väns­ter sensor först så snart handen närmar sig systemet. När handen fortsätter att passera över konsolen aktiveras den övre och nedre sensorn samtidigt som den vänstra sen­sorn förblir aktiverad. När handen rör sig närmare den högra sensorn aktiveras även denna.  Den vänstra sensorn slutar känna av handen när handen har förts utanför dess avkänningsområde. När handen förs över den högra sensorn känner den övre och nedre sensorn inte längre av handens närvaro. När handen förs längre bort kommer inte heller den högra sensorn att känna av handen.

Om vi tittar på sensorernas aktiveringsordning kommer ett av nedanstående sekvenser att uppstå, beroende på handens position och de enskilda sensorerna känslighet:

Vänster  övre  nedre  höger
Vänster  nedre  övre  höger
Vänster  nedre  höger
Vänster  övre  höger

Alla de ovanstående sensoraktiveringssekvenserna är kopplade till samma vänster-höger-gest. I det här fallet används en PSoC för att implementera de kapacitiva närhetssensorerna. En kapacitans-till-digital-omvandlare (CSD, Capsense Sigma Delta) i PSoC:en används för att mäta kapacitansen. Utdata från CSD-modulen kallas rawcount. Ju högre rawcount, desto större kapacitans. Närvaron av en hand ökar sensorns kapacitans.

När rawcount för en sensor överstiger ett visst tröskelvärde säger vi att sensorn aktiveras av ett objekters närvaro. Rawcount- mönstret för de fyra sensorerna när en hand rör sig i en rak linje från vänster till ­höger visas i figur 1. Mönstret anger ordningsföljden för sensorernas aktivering. Om handen förs i motsatt riktning (höger till  vänster) blir sekvensen den omvända, det vill säga en av nedanstående:

Höger  övre  nedre  vänster
Höger  nedre  övre  vänster
Höger  nedre  vänster
Höger  övre  vänster

De ovannämnda gesterna innefattar horisontella handrörelser. En vertikal linjeriktning analyseras på motsvarande sätt.

Gesterna upp-ner och ner-upp kan kopplas till enkla åtgärder som till exempel att rulla upp eller ner en meny eller en låtlista. Vänster-höger och höger-vänster kan kopplas till att byta till nästa låt eller skiva på en musikspelare. Samma gester kan även användas istället för knapptryckningar för att sätta på eller stänga av innerbelysningen i en bil genom att sätta upp närhetssensorer så som figur 2 visar.

En gest uppifrån-ner liknar upp-ner-rörelsen i en knapptryckning. När en upp- eller ner-knapp hålls nertryckt fortsätter dock skärmen att rulla upp eller ner så länge knappen hålls nertryckt. Med andra ord fastnar åtgärden så länge knappen är nertryckt. För att ersätta denna knapptryckning med en gest måste gesten kunna efterlikna också denna funktion.

Vi modifierar gesten enligt nedan för att åstadkomma detta. När handen förs från den övre sensorn och neråt mot den ned­re sen­sorn tolkar systemet detta som en uppifrån-ner-gest så fort handen förs förbi den nedre sensorn. Vi kan modifiera gesten så att nedrullningskommandot skickas så snart handen når den sista sensorn i gestens sekvens, i det här fallet den nedre sensorn. Dessutom upprepas kommandot så länge handen förblir närvarande över den nedre sensorn.

När den önskade menyposten nås, förs handen längre ner och bort från den nedre sensorn, varpå nedrullningskommandot avbryts. Så för att göra den här ihållande gesten för vi inte bort handen från systemet direkt, utan stannar handen över den sista sensorn, innan vi för bort den från sensorns avkänningsområde. Kommandot upprepas så länge handen stannar över sensorn.

Rawcountmönster för övre och nedre sensor för den här fastnande uppifrån-ner-­gesten visas i figur 3. Den nedre sensorn förblir aktiverad efter att den övre sensorn har slutat känna av handen. Det indikerar att handen har stannat vid den nedre sen­sorn istället för att fortsätta rakt ner. För att ge det låsande kommandot kontrollerar vi om den övre sensorn aktiverades först, följt av aktivering av den nedre sensorn. Den övre sensorn känner sedan inte av handen medan den nedre sensorn fortfarande gör det.

Om handen stannar i närheten av den nedre sensorn under en viss bestämd tid, utfärdas det låsande kommandot så länge som den nedre sen­sorn känner av handen.

På liknande sätt kan andra gester modifieras för låsande funktioner vilket betyder att gester helt kan ersätta knappfunktionerna upp och ner.

Handen kan föras i ett cirkelmönster medsols eller motsols över sensorerna med början på vilken sensor som helst. Cirkeln är sluten när handen når den sensor som den började på och sedan tas bort från cirkeln. Handen kan till exempel föras över den högra sensorn och sedan föras medsols över den nedre, vänstra och övre sensorn i den ordningen, innan den förs bort från cirkeln igen över den högra sensorn. På motsvarande sätt kan en cirkel slutas motsols. Även upprepade rotationer i flera varv i en och samma gest, kan kännas av och räknas.

Cirkelgesten liknar rörelsen när ett reglage vrids. Detta kan kopplas till kommandon som att höja eller sänka volymen på en musikspelare eller zooma in eller ut på en karta.

I den här artikeln har vi diskuterat avkänning av enkla handrörelser med hjälp av kapacitiva närhetssensorer. Med samma principer kan vi bygga mer komplexa gester där båda händerna används för att teckna ett mönster i luften. Huruvida man lyckas med avkänningen av sådana gester beror dock fortfarande på hur bra sensormönstret sätts ut. Det är viktigt att välja ett lämpligt mönster som tillåter tolerans i hand­rörelsen när gester tecknas, samtidigt som det finns en tydlig distinktion i den ordning i vilken sensorerna aktiveras.