Šajā sesijā mēs izmantosim saskarni ar kursorsviru ar Raspberry Pi. Kursorsviru galvenokārt izmanto, lai spēlētu dažādas spēles. Lai gan USB tipa kursorsviras ir viegli savienojamas, taču šodien mēs kursorsviru savienosim caur Raspberry Pi GPIO tapām, tas daudzos gadījumos noderēs.
Aveņu Pi un kursorsviras modulis:
Kursorsviras ir pieejamas dažādās formās un izmēros. Tipisks kursorsviras modulis parādīts zemāk redzamajā attēlā. Šis kursorsviras modulis parasti nodrošina analogās izejas, un šī moduļa nodrošinātie izejas spriegumi pastāvīgi mainās atkarībā no virziena, kurā mēs to pārvietojam. Un mēs varam iegūt kustības virzienu, interpretējot šīs sprieguma izmaiņas, izmantojot kādu mikrokontrolleru. Iepriekš mēs izmantojām AVR mikrokontrolleru ar vadības sviru.
Šim kursorsviras modulim ir divas asis, kā redzat. Tās ir X ass un Y ass. Katra JOY STICK ass ir piestiprināta pie potenciometra vai katla. Šo podu viduspunkti tiek izdzīti kā Rx un Ry. Tātad Rx un Ry ir mainīgi punkti šiem podiem. Kad kursorsvira ir gaidīšanas režīmā, Rx un Ry darbojas kā sprieguma dalītāji.
Kad kursorsviru pārvieto pa horizontālo asi, spriegums pie Rx tapas mainās. Līdzīgi, kad to pārvieto pa vertikālo asi, mainās spriegums Ry tapā. Tātad mums ir četri kursorsviras virzieni uz diviem ADC izvadiem. Kad nūja tiek pārvietota, katras tapas spriegums ir augsts vai zems atkarībā no virziena.
Kā mēs zinām, Raspberry Pi nav iekšēja ADC (Analog to Digital Converter) mehānisma. Tātad šo moduli nevar tieši savienot ar Pi. Lai pārbaudītu sprieguma izejas, mēs izmantosim uz Op-amp bāzes salīdzinātājus. Šie OP-ampēri nodrošina signālus Raspberry Pi un Pi pārslēdz gaismas diodes atkarībā no signāliem. Šeit mēs izmantojām četrus gaismas diodes, lai norādītu kursorsviras kustību četros virzienos. Pārbaudiet demonstrācijas video beigās.
Katra no 17 GPIO tapām nevar uzņemt spriegumu, kas lielāks par + 3,3 V, tāpēc Op-amp izejas nevar būt augstākas par 3,3 V. Tāpēc mēs esam izvēlējušies op-amp LM324, šim IC ir četrkodolu operācijas pastiprinātājs, kas var darboties pie 3V. Izmantojot šo IC, mums ir piemērotas izejas mūsu Raspberry pi GPIO Pins izvadiem. Uzziniet vairāk par Raspberry Pi GPIO tapām šeit. Pārbaudiet arī mūsu Raspberry Pi apmācību sēriju kopā ar dažiem labiem IoT projektiem.
Nepieciešamās sastāvdaļas:
Šeit mēs izmantojam Raspberry Pi 2 B modeli ar Raspbian Jessie OS. Visas aparatūras un programmatūras pamatprasības ir iepriekš apspriestas, lai sāktu darbu, varat to apskatīt Raspberry Pi ievadā un mirgo Raspberry PI LED, izņemot mums nepieciešamo:
- 1000µF kondensators
- Kursorsviras modulis
- LM324 Op-amp IC
- 1KΩ rezistors (12 gab.)
- LED (4 gab.)
- 2.2KΩ rezistors (4 gab.)
Ķēdes shēma:
LM324 IC iekšpusē ir četri OP-AMP salīdzinātāji, lai noteiktu četrus kursorsviras virzienus. Zemāk ir LM324 IC diagramma no tās datu lapas.
Savienojumi, kas tiek veikti vadības sviras interfeisam ar Raspberry Pi, ir parādīti zemāk esošajā shēmā. U1: A, U1: B, U1: C, U1: D norāda četrus salīdzinātājus LM324 iekšpusē. Mēs esam parādījuši katru salīdzinājumu shēmā ar atbilstošo tapu Nr. no LM324 IC.
Darba skaidrojums:
Lai noteiktu kursorsviras kustību pa Y asi, mums ir OP-AMP1 vai U1: A un OP-AMP2 vai U1: B, un kursorsviras kustības noteikšanai pa X asi mums ir OP-AMP3 vai U1: C un OP-AMP4 vai U1: D.
OP-AMP1 nosaka kursorsviras kustību pa Y asi:
U1 negatīvā spaile: A ir aprīkots ar 2,3 V (izmantojot sprieguma dalītāja ķēdi ar 1K un 2,2 K), un pozitīvais spaile ir savienota ar Ry. Pārvietojot kursorsviru uz leju pa Y asi, Ry spriegums palielinās. Kad šis spriegums ir lielāks par 2,3 V, OP-AMP nodrošina izejas Pin 3,3 V izeju. Šo OP-AMP AUGSTO loģisko izvadi atklās Raspberry Pi, un Pi reaģēs, pārslēdzot LED.
OP-AMP2 nosaka kursorsviras kustību augšup pa Y asi:
U1: B negatīvais terminālis ir aprīkots ar 1,0 V (izmantojot sprieguma dalītāja ķēdi ar 2,2 K un 1 K), un pozitīvais spaile ir savienota ar Ry. Virzot kursorsviru uz augšu pa Y asi, Ry spriegums samazinās. Kad šis spriegums ir mazāks par 1,0 V, OP-AMP izeja ir zema. Šo LOW loģisko OP-AMP izvadi noteiks Raspberry Pi, un Pi reaģēs, pārslēdzot LED.
OP-AMP3 nosaka kursorsviras kreiso sānu kustību pa X asi:
U1 komparatora negatīvais terminālis: C ir aprīkots ar 2,3 V (izmantojot sprieguma dalītāja ķēdi ar 1K un 2,2 K), un pozitīvais spaile ir savienota ar Rx. Pārvietojot kursorsviru pa kreisi pa tās x asi, Rx spriegums palielinās. Kad šis spriegums ir lielāks par 2,3 V, OP-AMP nodrošina izejas Pin 3,3 V izeju. Šo OP-AMP AUGSTO loģisko izvadi atklās Raspberry Pi, un Pi reaģēs, pārslēdzot LED.
OP-AMP4 nosaka kursorsviras labās puses kustību pa X asi:
Salīdzinātāja U1: 4 negatīvais spailes ir aprīkots ar 1,0 V (izmantojot sprieguma dalītāja ķēdi ar 2,2 K un 1 K), un pozitīvais spaile ir pievienota Rx. Pārvietojot kursorsviru pa labi pa tās x asi, Rx spriegums samazinās. Kad šis spriegums ir mazāks par 1,0 V, OP-AMP izeja ir zema. Šo LOW loģisko OP-AMP izvadi noteiks Raspberry Pi, un Pi reaģēs, pārslēdzot LED.
Tādā veidā visas četras loģikas, kas nosaka četrus kursorsviras virzienus, savienojas ar Aveņu Pi. Aveņu Pi ņem šo salīdzināmo ierīču izvadi kā ievadi un atbilstoši reaģē, pārslēdzot gaismas diodes. Zemāk ir rezultāti, kas parādīti Raspberry Pi terminālā, jo, izmantojot mūsu Python kodu, mēs arī uz termināla esam uzdrukājuši kursorsviras virzienu.
Python kods un video ir norādīts zemāk. Kods ir viegli un to var saprast pēc komentāriem, kas sniegti kodā.