novice

Vezja in tehnike za izvedbo kapacitivnega zaznavanja dotika

Cloud Computing - Computer Science for Business Leaders 2016 (December 2018).

Anonim

Vezja in tehnike za izvedbo kapacitivnega zaznavanja dotika


V tem članku so predstavljene nekatere osnovne konfiguracije zgoščenega kroga in se ukvarjajo z nizkimi in visokofrekvenčnimi hrupami.

Podporne informacije

  • Električna polja in kapacitete
  • Dejavniki, ki vplivajo na kapaciteto
  • Op-Amp Oscilator Circuits
  • Pozitivne povratne informacije

Prejšnji člen

  • Uvod v Capacitive Touch Sensing

Merjenje sprememb

Če ste prebrali prejšnji članek, veste, da je bistvo kapacitivnega zaznavanja na dotik sprememba kapacitivnosti, ki se zgodi, ko se objekt (ponavadi človeški prst) približuje kondenzatorju. Prisotnost prsta povečuje kapacitivnost z 1) uvajanjem snovi (tj. Človeškega mesa) s sorazmerno visoko dielektrično konstanto in 2) zagotavljanjem prevodne površine, ki vzporedno z obstoječim kondenzatorjem ustvarja dodatno kapacitivnost.

Seveda samo dejstvo, da kapacitivnosti niso posebej uporabne. Da dejansko izvedemo kapacitivno zaznavo dotika, potrebujemo vezje, ki lahko meri kapaciteto z dovolj natančnostjo, da dosledno ugotovi povečanje kapacitivnosti zaradi prisotnosti prsta. Obstajajo različni načini za to, nekateri precej preprosti, drugi bolj sofisticirani. V tem članku bomo obravnavali dva splošna pristopa k implementaciji kapacitivno-sense funkcionalnosti; prvi temelji na časovni konstanti RC (upor-kondenzator), drugi pa temelji na pogostih premikih.

RC Time Constant-Like Old Friend

Če ste kot jaz, doživite nejasne občutke univerzitetne nostalgije, ko vidite eksponentno krivuljo, ki predstavlja napetost preko kondenzatorja za polnjenje ali praznjenje. Obstaja nekaj o tem - morda je bil to eden od prvih časov, ko sem spoznal, da višja matematika dejansko ima nekaj razmerja z resničnostjo ali pa v tem dobi robotov za trganje grozdja obstaja nekaj privlačnega glede preprostosti izpustnega kondenzatorja. V vsakem primeru vemo, da se ta eksponentna krivulja spremeni, ko se spremeni odpornost ali kapacitivnost. Recimo, da imamo vezje RC, sestavljeno iz 1 MΩ uporov in kapacitivnega tipalnega sistema s tipično kapacitivnostjo 10 pF.

Uporabimo lahko vhodno-izhodni pin za splošne namene (konfiguriran kot izhod), da napolnimo senzorsko kapo do visoke napetosti logike. Nato potrebujemo kondenzator za odvajanje preko velikega upora. Pomembno je razumeti, da ne morete preprosto preklopiti izhodnega stanja na nizko logiko. I / O pin, konfiguriran kot izhod, bo prenašal logično nizek signal, to pomeni, da bo izhod opremljen z nizko-impedančno povezavo z zemeljskim vozliščem. Tako bi se kondenzator hitro izpraznil skozi to nizko impedanco - tako hitro, da mikrokrmilnik ne bi mogel zaznati subtilnih časovnih sprememb, ki so jih povzročile majhne spremembe kapacitivnosti. Kar potrebujemo tukaj je visok impedančni zatič, ki prisili skoraj ves tok skozi odpornik, kar lahko dosežemo s konfiguracijo pin kot vhod. Torej, najprej nastavite pin kot logično visok izhod, nato pa se faza izpusta začne s spreminjanjem pinja na vhod. Nastala napetost bo videti nekaj takega:

Če se nekdo dotakne senzorja in s tem ustvari dodatnih 3 pF kapacitivnosti, se bo časovna konstanta povečala, kot sledi:

Čas praznjenja ni veliko drugačen s standardi človeka, vendar bi lahko sodoben mikrokrmilnik to zaznavo zagotovo zaznal. Recimo, da imamo časovnik, ki deluje na 25 MHz; začnemo s časovnikom, ko preklopimo pin v vhodni način. Ta časovnik lahko uporabimo za sledenje času praznjenja tako, da nastavimo isti čep, ki deluje kot sprožilec, ki sproži zajem dogodka ("zajemanje" pomeni shranjevanje vrednosti časovnika v ločenem registru). Dogodek zajemanja se zgodi, ko napetost praznjenja prečka logično nizek prag, na primer 0, 6 V. Kot je prikazano na naslednji ploskvi, je razlika v času praznjenja s pragom 0, 6 V ΔT = 5, 2 μs.

S časovnim časovnim časom 1 / (25 MHz) = 40 ns, ta ΔT ustreza 130 kljukam. Tudi če bi se sprememba kapacitivnosti zmanjšala za faktor 10, bi še vedno imeli 13 razlike med nedotaknjenim senzorjem in dotaknjenim senzorjem.

Torej, ideja je, da večkrat napolnite in izpraznite kondenzator, medtem ko spremljate čas praznjenja; če čas praznjenja presega vnaprej določen prag, mikrokrmilniška predpostavlja, da je prst prišel v stik s kondenzatorjem na dotik (v narekovaje sem dal "kontakt", ker se prst nikoli ne dotika kondenzatorja, kot je bilo omenjeno v prejšnjem članek, je kondenzator ločen od zunanjega okolja s spajkalno masko in ohišjem naprave). Vendar pa je resnično življenje malo bolj zapleteno kot idealna razprava, ki je predstavljena tukaj; viri napak so opisani spodaj v poglavju "Ukvarjanje z resničnostjo".

Spremenljivi kondenzator, spremenljiva frekvenca

V izvedbi, ki temelji na frekvenčnem premiku, se kapacitivni senzor uporablja kot del "C" RC oscilatorja, tako da sprememba kapacitivnosti povzroči spremembo frekvence. Izhodni signal se uporablja kot vhod v števec, ki šteje število naraščajočih ali padajočih robov, ki se pojavijo v določenem merilnem obdobju. Ko prihajajoči prst povzroči povečanje kapacitivnosti senzorja, se frekvenca izhodnega signala oscilatorja zmanjša in tako se tudi število robov zmanjša.

Tako imenovani sprostitveni oscilator je skupno vezje, ki se lahko uporablja za ta namen. Poleg kondenzatorja občutljiv na dotik je potreben nekaj uporov in primerjalnik; to se zdi kot veliko več težav kot tehnika zaračunavanja / praznjenja, o kateri smo govorili zgoraj, vendar če ima vaš mikrokrmilnik integriran primerjalni modul, to ni preveč slabo. Ne bom se podrobno seznanil s to oscilatorsko vezjo, ker 1) je razpravljano drugje, vključno tukaj in tukaj, in 2) se zdi malo verjetno, da bi želeli uporabiti pristop oscilatorja, ko je veliko mikrokontrolerjev in diskretnih IC, ki ponujajo visoko zmogljive kapacitivno-touch-sense funkcionalnost. Če nimate druge izbire, kot da bi ustvarili lastno kondenzacijsko vezje, mislim, da je tehnika zaračunavanja / praznjenja, ki je obravnavana zgoraj, bolj preprosta. V nasprotnem primeru bo vaše življenje malo enostavnejše, če izberete mikrokrmilnik z namensko strojno opremo.

Capacitive-sense peripheral v mikrokontrolerjih EFM32 iz Silicon Labs je primer integriranega modula, ki temelji na pristopu relaksacijskega oscilatorja:

Multiplekser omogoča, da frekvenco oscilacije nadzira osem različnih kondenzatorjev na dotik. Hitro kolesarjenje po kanalih lahko čipov učinkovito spremlja osem tipk, občutljivih na dotik, ker je delovna frekvenca mikrokrmilnika tako visoka glede na hitrost, s katero se prst premika.

Ukvarjanje z resničnostjo

Capacitive-touch-sense sistem bo ogrožal visokofrekvenčni in nizkofrekvenčni hrup.

Hrup visoke frekvence povzroči manjše spremembe vzorca v vzorcu v izmerjenem času praznjenja ali štetju robov. Na primer, brezžično vezje za polnjenje / praznjenje, ki je opisano zgoraj, ima lahko čas praznjenja 675 klopov, nato 685 klopov, nato 665 klopov, nato 670 klopov in tako naprej. Pomen tega hrupa je odvisen od pričakovane spremembe prsti v času praznjenja. Če se kapaciteta poveča za 30%, bo ΔT 130 klopov. Če je naša visokofrekvenčna razlika le okoli ± 10 klopov, lahko zlahka ločimo signal od hrupa.

Vendar pa je 30-odstotno povečanje kapacitivnosti verjetno blizu najvišjega zneska sprememb, ki bi lahko upravičeno pričakovali. Če dobimo samo 3-odstotno spremembo, je ΔT 13 klopov, ki je preblizu tla hrupa. Eden od načinov za zmanjšanje učinka hrupa je zvišanje jakosti signala in to lahko storite tako, da zmanjšate fizično ločitev med kondenzatorjem PCB in prstom. Često je mehanski dizajn omejen z drugimi dejavniki, zato morate kar najbolje izkoristiti kakršno koli velikost signala, ki ga dobite. V tem primeru morate znižati tlak hrupa, ki ga lahko dosežete s povprečenjem. Na primer, vsak nov čas praznjenja se lahko primerja ne s predhodnim časom praznjenja, ampak povprečjem zadnjih 4 ali 8 ali 32 časov praznjenja. Tehnika frekvenčnega premika, ki je opisana zgoraj, samodejno vključuje povprečenje, ker majhne razlike med srednjo frekvenco ne bodo bistveno vplivale na število ciklov, ki se štejejo v obdobju merjenja, ki je dolg v primerjavi s časom nihanja.

Nizkofrekvenčni hrup se nanaša na dolgoročne spremembe kapacitivnosti senzorja s prsti; lahko jih povzročajo okoljski pogoji. Te vrste hrupa ni mogoče povprečiti, ker bi lahko variacija trajala zelo dolgo časa. Zato je edini način za učinkovito obravnavanje nizkofrekvenčnega hrupa prilagodljiv: prag, ki se uporablja za prepoznavanje prisotnosti prsta, ne more biti fiksna vrednost. Namesto tega ga je treba redno prilagajati na podlagi izmerjenih vrednosti, ki ne kažejo pomembnih kratkoročnih razlik, kot so tiste, ki jih povzroča prst.

Zaključek

Tehnologije implementacije, ki so opisane v tem članku, kažejo, da kapacitivno zaznavanje na dotik ne zahteva kompleksne strojne opreme ali zelo zahtevne strojne programske opreme. Kljub temu je vsestranska, robustna tehnologija, ki lahko zagotovi večje izboljšave glede mehanskih alternativ.