Ebben a projektben egy szórakoztató áramkört fogunk kifejleszteni a Force szenzor és az Arduino Uno segítségével. Ez az áramkör lineárisan hozza létre az érzékelőre kifejtett erőhöz kapcsolódó hangot. Ehhez összekapcsoljuk a FORCE érzékelőt az Arduino Uno-val. Az UNO-ban 8 bites ADC (Analog to Digital Conversion) funkciót fogunk használni a munka elvégzéséhez.
Erőérzékelő vagy erőérzékeny ellenállás
A FORCE érzékelő egy jelátalakító, amely megváltoztatja az ellenállását, ha nyomást gyakorolnak a felületre. A FORCE érzékelő különböző méretben és formában kapható. Az egyik olcsóbb verziót fogjuk használni, mert itt nem kell sok pontosság. FSR400 egyik legolcsóbb erő érzékelők a piacon. Az FSR400 képét az alábbi ábra mutatja. Erőérzékeny ellenállásoknak vagy FSR-nek is nevezik őket, mivel ellenállása a rá ható erő vagy nyomás függvényében változik. Ha nyomást gyakorolunk erre az erőérzékelő ellenállásra, az ellenállása csökken, vagyis az ellenállás fordítottan arányos az alkalmazott erővel. Tehát, ha nem gyakorolunk rá nyomást, az FSR ellenállása nagyon magas lesz.
Most fontos megjegyezni, hogy az FSR 400 hosszában érzékeny, az erőt vagy a súlyt az érzékelő szemének közepén lévő labirintusra kell koncentrálni, amint az az ábrán látható. Ha az erőt rossz időben alkalmazzák, a készülék tartósan károsodhat.
Egy másik fontos dolog tudni, hogy az érzékelő nagy hatótávolságú áramokat képes meghajtani. Tehát ne felejtse el a hajtási áramokat a telepítés során. Az érzékelő erőhatára 10 Newton. Tehát csak 1 kg súlyt alkalmazhatunk. 1 kg-nál nagyobb súlyok alkalmazása esetén az érzékelő eltéréseket mutathat. Ha 3 kg-nál nagyobb mértékben növekszik. az érzékelő tartósan károsodhat.
Mint korábban elmondtuk, ezt az érzékelőt használják a nyomás változásainak érzékelésére. Tehát amikor a súlyt ráhelyezzük a FORCE érzékelő tetejére, az ellenállás drasztikusan megváltozik. Az FS400 súlyellenállása az alábbi grafikonon látható,
Amint az a fenti ábrán látható, az érzékelő két érintkezője közötti ellenállás súlyával csökken, vagy az érzékelő két érintkezője közötti vezetőképesség nő. A tiszta vezető ellenállását a következők adják:
Hol, p- A vezető ellenállása
l = a vezető hossza
A = A vezető területe.
Vegyünk egy „R” ellenállású vezetőt, ha valamilyen nyomást gyakorolunk a vezető tetejére, akkor a vezeték területe csökken és a vezető hossza megnő a nyomás hatására. Tehát képlet szerint a vezető ellenállásának növekednie kell, mivel az R ellenállás fordítottan arányos a területtel és egyenesen arányos az l hosszúsággal.
Tehát ezzel egy nyomás vagy súly alatti vezető esetén a vezető ellenállása növekszik. De ez a változás az általános ellenálláshoz képest kicsi. Jelentős változás érdekében sok vezető egymásra rakódik. Ez történik a fenti ábrán látható erőérzékelők belsejében. Alaposan megnézve az érzékelő belsejében sok vonal látható. E vonalak mindegyike egy vezetőt képvisel. Az érzékelő érzékenysége a vezető számában van megadva.
De ebben az esetben az ellenállás a nyomás hatására csökken, mert az itt használt anyag nem tiszta vezető. Az FSR itt robusztus polimer vastag film (PTF) eszközök. Tehát ezek nem tiszta vezető anyagú eszközök. Ezek olyan anyagból készülnek, amelynek ellenállása csökken az érzékelő felületére kifejtett erő növekedésével. Ez az anyag az FSR grafikonján bemutatott jellemzőket mutatja.
Az ellenállásnak ez a változása csak akkor hozhat jót, ha ki tudjuk olvasni őket. A kézben lévő vezérlő csak a feszültség esélyeit tudja leolvasni, és nem kevesebbet, ehhez feszültségosztó áramkört fogunk használni, ezzel levezethetjük az ellenállás változását feszültségváltozásként.
A feszültségosztó egy rezisztív áramkör, és az ábrán látható. Ebben az rezisztív hálózatban van egy állandó ellenállásunk és egy másik változó ellenállásunk. Amint az ábrán látható, R1 itt állandó ellenállás, R2 pedig FORCE érzékelő, amely ellenállásként működik. Az elágazás középpontját mérésre vesszük. Az R2 változással a Voutnál van változás. Tehát ezzel feszültségváltozásunk van a tömeggel.
Most fontos megjegyezni, hogy a vezérlő által az ADC átalakításhoz bevitt bemenet akár 50µAmp. Az ellenállás alapú feszültségosztónak ez a terhelő hatása fontos, mivel a feszültségosztó Vout-jából vett áram növeli a hiba százalékos arányát, egyelőre nem kell aggódnunk a terhelési hatás miatt.
Az FSR érzékelő ellenőrzése
Az erőérzékelő ellenállást multiméterrel lehet tesztelni. Csatlakoztassa az FSR érzékelő két tüskéjét a multiméterhez erőkifejtés nélkül, és ellenőrizze az ellenállás értékét, ez nagyon magas lesz. Ezután alkalmazzon némi erőt a felületére, és nézze meg az ellenállás értékének csökkenését.
Az FSR érzékelő alkalmazásai
Az erőérzékelő ellenállásokat elsősorban nyomásérzékelő "gombok" létrehozására használják. Különböző területeken használják őket, mint például az autók kihasználtságának érzékelői, az ellenálló érintőképernyők, a robot ujjbegyei, a végtagok, a billentyűzetek, a lábpronációs rendszerek, a hangszerek, a beágyazott elektronika, a tesztelő és mérő berendezések, az OEM fejlesztőkészlet és a hordozható elektronika, a sport. Ezeket a kiterjesztett valóság rendszereiben is használják, valamint a mobil interakció fokozására.
Szükséges alkatrészek
Hardver: Arduino Uno, tápegység (5v), 1000 uF kondenzátor, 100nF kondenzátor (3 db), 100KΩ ellenállás, hangjelző, 220Ω ellenállás, FSR400 erőérzékelő.
SZOFTVER: Atmel studio 6.2 vagy Aurdino esténként
Áramköri ábra és működési magyarázat
Az áramköri csatlakozást az erőérzékelő ellenállás és az Arduino összekapcsolására az alábbi ábra mutatja.
Az érzékelőn átmenő feszültség nem teljesen lineáris; zajos lesz. A zaj kiszűrésére egy kondenzátort helyeznek el az elválasztó áramkör minden ellenállásán, az ábra szerint.
Itt fogjuk venni az osztó által biztosított feszültséget (a súlyt lineárisan ábrázoló feszültség), és betápláljuk az UNO egyik ADC csatornájába. Az átalakítás után felvesszük a digitális értéket (a súlyt képviselve), és összekapcsoljuk a PWM értékkel a hangjelző meghajtásához.
Tehát a tömeggel megvan a PWM értéke, amely a digitális értéktől függően megváltoztatja a terhelési arányát. Ha magasabb a digitális érték, akkor magasabb a PWM üzemi aránya, így nagyobb a hangjelző által keltett zaj. Tehát a súlyt viszonyítottuk a hanghoz.
Mielőtt tovább folytatnánk, beszéljünk az Arduino Uno ADC-jéről. Az ARDUINO-nak hat ADC csatornája van, amint az az ábrán látható. Ezekben bármelyik vagy mindegyik használható analóg feszültség bemenetként. Az UNO ADC 10 bites felbontású (tehát a (0- (2 ^ 10) 1023 értékekből származó egész értékek). Ez azt jelenti, hogy a 0 és 5 volt közötti bemeneti feszültségeket 0 és 1023 közötti egész értékekre fogja feltérképezni. (5/1024 = 4,9 mV) egységenként.
Itt az UNO A0-ját fogjuk használni.
Kevés dolgot kell tudnunk.
|
Először is az UNO ADC csatornák alapértelmezett referenciaértéke 5 V. Ez azt jelenti, hogy bármilyen bemeneti csatornán maximális 5 V bemeneti feszültséget adhatunk az ADC konverzióhoz. Mivel egyes érzékelők 0-2,5 V feszültséget szolgáltatnak, 5 V referenciával kisebb pontosságot kapunk, ezért van egy utasításunk, amely lehetővé teszi számunkra a referenciaérték megváltoztatását. Tehát a referenciaérték megváltoztatásához („analogReference ();”) Mostantól így hagyjuk.
Alapértelmezés szerint a kártya maximális 10 bites felbontását kapjuk meg, ez a felbontás az utasítás használatával megváltoztatható („analogReadResolution (bit);”). Ez a felbontásváltozás bizonyos esetekben jól jöhet. Egyelőre így hagyjuk.
Ha a fenti feltételeket alapértelmezés szerint állítjuk be, akkor a „0” csatorna ADC-jéből leolvashatjuk az értéket az „analogRead (pin);” függvény közvetlen meghívásával, itt a „pin” azt a csapot jelenti, ahová analóg jelet csatlakoztattunk, ebben az esetben „A0” lenne. Az ADC-ből származó érték egész számba vehető: „int SENSORVALUE = analogRead (A0); ”, Ezzel az utasítással az ADC utáni érték a„ SENSORVALUE ”egész számba kerül.
Az Arduino Uno PWM-je a NYÁK-kártyán „~” szimbólumként jelölt csapok bármelyikénél elérhető. Az UNO-ban hat PWM csatorna található. Célunkhoz a PIN3-at fogjuk használni.
analogWrite (3, VALUE); |
A fenti feltételből közvetlenül megkapjuk a PWM jelet a megfelelő csapnál. A zárójelben található első paraméter a PWM jel pin számának kiválasztására szolgál. A második paraméter az írási terhelési arányra vonatkozik.
Az UNO PWM értéke 0-ról 255-re változtatható. A „0” legalacsonyabb a „255” a legmagasabb értékre. 255-ös terhelési aránnyal 5 V-ot kapunk a PIN3-nál. Ha az illetékarány 125-ként van megadva, akkor a PIN3-nál 2,5 V-ot kapunk.
Most 0-1024 értéket kapunk ADC kimenetként és 0-255 értéket PWM terhelési arányként. Tehát az ADC körülbelül négyszerese a PWM aránynak. Tehát az ADC eredmény 4-gyel való elosztásával megkapjuk a hozzávetőleges vámtételt.
Ezzel lesz egy PWM jelünk, amelynek terhelési aránya a súlytól függően lineárisan változik. Ezt kapjuk a hangjelzőhöz, a súlytól függően van hanggenerátorunk.