Ebben a munkamenetben egy Joystickot fogunk összekapcsolni a Raspberry Pi-vel. A joystickot elsősorban különféle játékok játszására használják. Bár az USB típusú joystickokat könnyű csatlakoztatni, de ma a Joystickot a Raspberry Pi GPIO csapok segítségével fogjuk csatlakoztatni, ez sok esetben jól fog jönni.
Raspberry Pi és joystick modul:
A botkormányok különböző formákban és méretben kaphatók. Egy tipikus Joystick modult az alábbi ábra mutat be. Ez a joystick modul általában analóg kimeneteket biztosít, és a modul által biztosított kimeneti feszültségek folyamatosan változnak az irányunk szerint. És megkapjuk a mozgás irányát, ha ezeket a feszültségváltozásokat valamilyen mikrovezérlő segítségével értelmezzük. Korábban az AVR mikrokontrollert használtuk Joystick-tal.
Ennek a joystick modulnak két tengelye van, amint láthatja. X tengely és Y tengely. A JOY STICK minden tengelye egy potenciométerhez vagy fazékhoz van rögzítve. Ezeknek az edényeknek a középső pontjait Rx és Ry néven hajtják ki. Tehát Rx és Ry ezeknek a fazekaknak a változó pontjai. Amikor a joystick készenléti állapotban van, az Rx és Ry feszültségosztóként működik.
Amikor a joystickot elmozdítják a vízszintes tengely mentén, az Rx tüskénél a feszültség megváltozik. Hasonlóképpen, amikor a függőleges tengely mentén mozog, a Ry csap feszültsége megváltozik. Tehát a botkormánynak négy iránya van két ADC kimeneten. A bot mozgatásakor az egyes csapok feszültsége az iránytól függően magas vagy alacsony.
Mint tudjuk, a Raspberry Pi nem rendelkezik belső ADC (analóg-digitális átalakító) mechanizmussal. Tehát ez a modul nem köthető közvetlenül a Pi-hez. Op-amp alapú komparátorokat fogunk használni a feszültség kimenetek ellenőrzésére. Ezek az OP-erősítők jeleket adnak a Raspberry Pi-nek, és a Pi a jelektől függően váltogatja a LED-eket. Itt négy LED-et használtunk a Joystick négy irányú mozgásának jelzésére. Ellenőrizze a bemutató videót a végén.
A 17 GPIO érintkező mindegyike nem képes + 3,3 V-nál magasabb feszültséget felvenni, ezért az Op-amp kimenetek nem lehetnek magasabbak 3,3 V-nál. Ezért az op-amp LM324-et választottuk, ennek az IC-nek négy működési erősítője van, amely 3 V-nál is képes működni. Ezzel az IC-vel megfelelő kimenetekkel rendelkezünk a Raspberry pi GPIO Pins kimeneteihez. Tudjon meg többet a Raspberry Pi GPIO-csapjairól itt. Ellenőrizze a Raspberry Pi bemutató sorozatunkat és néhány jó IoT-projektet.
Szükséges alkatrészek:
Itt a Raspberry Pi 2 Model B-t használjuk Raspbian Jessie operációs rendszerrel. Az összes alapvető hardver- és szoftverkövetelményt korábban megbeszéltük. Megtekintheti a Raspberry Pi bevezetőjében és a Raspberry PI LED villog a kezdéshez, azon kívül, amire szükségünk van:
- 1000µF kondenzátor
- Joystick modul
- LM324 Op-amp IC
- 1KΩ ellenállás (12 darab)
- LED (4 db)
- 2,2KΩ ellenállás (4 db)
Kördiagramm:
Az LM324 IC-n belül négy OP-AMP komparátor található a botkormány négy irányának detektálására. Az alábbiakban bemutatjuk az LM324 IC diagramját az adatlapján.
Az Interfacing Joystick modul és a Raspberry Pi kapcsolatait az alábbi kapcsolási rajz mutatja. U1: A, U1: B, U1: C, U1: D jelzi az LM324 belsejében található négy összehasonlítót. Megmutattuk az egyes komparátorokat a kapcsolási rajzon a megfelelő Pin sz. az LM324 IC.
Munka magyarázat:
A joystick Y tengely mentén történő mozgásának érzékeléséhez OP-AMP1 vagy U1: A és OP-AMP2 vagy U1: B, és a botkormány X tengely mentén történő mozgásának érzékeléséhez OP-AMP3 vagy U1: C és OP-AMP4 vagy U1: D.
Az OP-AMP1 érzékeli a joystick lefelé irányuló mozgását az Y-tengely mentén:
Az U1 komparátor negatív kapcsa: A 2,3 V-val van ellátva (feszültségosztó áramkört használva 1K és 2,2K-val), és a pozitív kapocs csatlakozik a Ry-hez. Amikor a joystickot lefelé mozgatja Y tengelye mentén, a Ry feszültség növekszik. Amint ez a feszültség meghaladja a 2,3 V-ot, az OP-AMP + 3,3 V kimenetet biztosít a kimeneti érintkezőjén. Az OP-AMP HIGH logikai kimenetét a Raspberry Pi észleli, Pi pedig LED kapcsolásával válaszol.
Az OP-AMP2 érzékeli a joystick felfelé irányuló mozgását az Y-tengely mentén:
Az U1 komparátor negatív kapcsa: 1,0 V feszültséggel van ellátva (feszültségosztó áramkört használva 2,2 K és 1 K feszültséggel), és a pozitív kapocs csatlakozik a Ry-hez. Amikor a joystickot felfelé mozgatja Y tengelye mentén, a Ry feszültség csökken. Amint ez a feszültség alacsonyabb lesz, mint 1,0 V, az OP-AMP kimenet alacsony lesz. Az OP-AMP LOW logikai kimenetét a Raspberry Pi érzékeli, Pi pedig egy LED kapcsolásával válaszol.
Az OP-AMP3 érzékeli a joystick bal oldali mozgását az X tengely mentén:
Az U1 komparátor negatív kapcsa: 2,3 V feszültséggel van ellátva (feszültségosztó áramkört használva 1 K és 2,2 K értékkel), és a pozitív kapocs csatlakozik az Rx-hez. A joystick bal tengely mentén történő mozgatásakor az Rx feszültség nő. Amint ez a feszültség meghaladja a 2,3 V-ot, az OP-AMP + 3,3 V kimenetet biztosít a kimeneti érintkezőjén. Az OP-AMP HIGH logikai kimenetét a Raspberry Pi észleli, Pi pedig LED kapcsolásával válaszol.
Az OP-AMP4 érzékeli a joystick jobb oldali mozgását az X tengely mentén:
Az U1: 4 komparátor negatív kapcsa 1,0 V-val van ellátva (feszültségosztó áramkört használva 2,2K és 1K-val), és a pozitív kapocs csatlakozik az Rx-hez. Ha a joystickot jobbra mozgatja az x tengely mentén, az Rx feszültség csökken. Amint ez a feszültség alacsonyabb lesz, mint 1,0 V, az OP-AMP kimenet alacsony lesz. Az OP-AMP LOW logikai kimenetét a Raspberry Pi érzékeli, Pi pedig egy LED kapcsolásával válaszol.
Így mind a négy logika, amely meghatározza a joystick négy irányát, összekapcsolódik a Raspberry Pi-vel. A Raspberry Pi ezeknek az összehasonlítóknak a kimenetét veszi bemenetként, és ennek megfelelően reagál a LED-ek kapcsolásával. Az alábbiakban a Raspberry Pi terminálján látható eredmények láthatók, mivel a Joystick irányát a terminálra is kinyomtattuk a Python kód segítségével.
A Python kód és a videó alább található. A kód egyszerű és érthető a kódban megadott megjegyzésekből.