I denne økten skal vi grensesnitt en joystick med Raspberry Pi. Joystick brukes primært til å spille forskjellige spill. Selv om USB-joysticks er enkle å koble til, men i dag skal vi koble Joystick gjennom Raspberry Pi GPIO-pinner, dette vil være nyttig i mange tilfeller.
Raspberry Pi og joystick-modul:
Joysticks er tilgjengelige i forskjellige former og størrelser. En typisk joystick-modul er vist i figuren nedenfor. Denne joystick-modulen gir vanligvis analoge utganger, og utgangsspenningene som tilbys av denne modulen endres i henhold til retningen vi beveger den i. Og vi kan få bevegelsesretningen ved å tolke disse spenningsendringene ved hjelp av en mikrokontroller. Tidligere har vi brukt AVR Microcontroller med joystick.
Denne joystick-modulen har to akser som du kan se. De er X-akse og Y-akse. Hver akse av JOY STICK er montert på et potensiometer eller potte. Midtpunktene til disse pottene blir kjørt ut som Rx og Ry. Så Rx og Ry er variable punkter i disse pottene. Når styrespaken er i beredskap, fungerer Rx og Ry som spenningsdeler.
Når styrespaken beveges langs den horisontale aksen, endres spenningen ved Rx-pinnen. På samme måte endres spenningen ved Ry-pin når den beveges langs den vertikale aksen. Så vi har fire retninger av joystick på to ADC-utganger. Når pinnen flyttes, blir spenningen på hver pinne høy eller lav, avhengig av retning.
Som vi vet har Raspberry Pi ikke en intern ADC- mekanisme (Analog til Digital Converter). Så denne modulen kan ikke kobles direkte til Pi. Vi vil bruke Op-amp-baserte komparatorer for å kontrollere spenningsutgangene. Disse OP-forsterkerne gir signaler til Raspberry Pi og Pi bytter lysdioder til avhengig av signalene. Her har vi brukt fire lysdioder for å indikere bevegelsen til styrespaken i fire retninger. Sjekk demonstrasjonsvideoen på slutten.
Hver av de 17 GPIO-pinnene kan ikke ta spenning høyere enn + 3,3V, så Op-amp-utgangene kan ikke være høyere enn 3,3V. Derfor har vi valgt op-amp LM324, denne IC har quad operasjonsforsterker som kan fungere ved 3V. Med denne IC har vi passende utganger for utganger til Raspberry pi GPIO Pins. Lær mer om GPIO Pins of Raspberry Pi her. Sjekk også Raspberry Pi Tutorial Series sammen med noen gode IoT-prosjekter.
Nødvendige komponenter:
Her bruker vi Raspberry Pi 2 Model B med Raspbian Jessie OS. Alle de grunnleggende maskinvare- og programvarekravene er tidligere diskutert, du kan slå opp i Raspberry Pi Introduction og Raspberry PI LED Blinking for å komme i gang, annet enn det vi trenger:
- 1000 µF kondensator
- Styrespakemodul
- LM324 Op-amp IC
- 1KΩ motstand (12 stykker)
- LED (4 deler)
- 2.2KΩ motstand (4 deler)
Kretsdiagram:
Det er fire OP-AMP-komparatorer inne i LM324 IC for å oppdage fire retninger av joystick. Nedenfor er diagrammet til LM324 IC fra databladet.
Tilkoblingene som gjøres for interfacing joystick-modul med Raspberry Pi er vist i kretsskjemaet nedenfor. U1: A, U1: B, U1: C, U1: D indikerer de fire komparatorene inne i LM324. Vi har vist hver komparator i kretsskjemaet med tilhørende pin-nr. av LM324 IC.
Arbeidsforklaring:
For å oppdage bevegelsen til styrespaken langs Y-aksen, har vi OP-AMP1 eller U1: A og OP-AMP2 eller U1: B, og for å oppdage bevegelsen til styrespaken langs X-aksen, har vi OP-AMP3 eller U1: C og OP-AMP4 eller U1: D.
OP-AMP1 oppdager nedadgående bevegelse av joystick langs Y-aksen:
Negativ terminal for komparator U1: A er utstyrt med 2.3V (ved bruk av spenningsdelerkrets med 1K og 2,2K) og Positive terminal er koblet til Ry. Når du beveger styrespaken ned langs Y-aksen, øker Ry-spenningen. Når denne spenningen går høyere enn 2,3V, gir OP-AMP + 3,3V utgang ved utgangsstiften. Denne HØYE logiske utgangen av OP-AMP vil bli oppdaget av Raspberry Pi og Pi reagerer ved å bytte en LED.
OP-AMP2 oppdager bevegelsen til joysticken oppover langs Y-aksen:
Negativ terminal for komparator U1: B er utstyrt med 1.0V (ved bruk av spenningsdelerkrets med 2,2K og 1K) og positiv terminal er koblet til Ry. Når du beveger styrespaken opp langs Y-aksen, reduseres Ry-spenningen. Når denne spenningen går lavere enn 1,0V, blir OP-AMP-utgangen lav. Denne lave logiske utgangen av OP-AMP vil bli oppdaget av Raspberry Pi og Pi reagerer ved å bytte en LED.
OP-AMP3 oppdager bevegelsen til venstre på joysticken langs X-aksen:
Negativ terminal for komparator U1: C er utstyrt med 2.3V (ved hjelp av spenningsdelerkrets med 1K og 2,2K) og Positive terminal er koblet til Rx. Når du beveger joysticken til venstre langs x-aksen, øker Rx-spenningen. Når denne spenningen går høyere enn 2,3V, gir OP-AMP + 3,3V utgang ved utgangsstiften. Denne HØYE logiske utgangen av OP-AMP vil bli oppdaget av Raspberry Pi og Pi reagerer ved å bytte en LED.
OP-AMP4 oppdager høyre bevegelse av joystick langs X-aksen:
Negativ terminal for komparator U1: 4 er utstyrt med 1.0V (ved bruk av spenningsdelerkrets med 2,2K og 1K) og positiv terminal er koblet til Rx. Når du beveger styrespaken rett langs x-aksen, reduseres Rx-spenningen. Når denne spenningen går lavere enn 1,0V, blir OP-AMP-utgangen lav. Denne lave logiske utgangen av OP-AMP vil bli oppdaget av Raspberry Pi og Pi reagerer ved å bytte en LED.
På denne måten blir alle de fire logikkene, som bestemmer joystickens fire retninger, koblet til Raspberry Pi. Raspberry Pi tar utgangene til disse komparatorene som innganger og svarer deretter ved å bytte lysdioder. Nedenfor er resultatene vist på Raspberry Pi-terminalen, ettersom vi også har skrevet ut retningen til joystick på terminalen ved hjelp av vår Python-kode.
Python-kode og video er gitt nedenfor. Koden er enkel og kan forstås av kommentarene i koden.