В тази сесия ще се свържем с джойстик с Raspberry Pi. Джойстикът се използва предимно за игра на различни игри. Въпреки че джойстиците от USB тип са лесни за свързване, но днес ще свържем джойстик чрез щифтове Raspberry Pi GPIO, това ще бъде полезно в много случаи.
Модул Raspberry Pi и джойстик:
Джойстиците се предлагат в различни форми и размери. Типичен модул Джойстик е показан на фигурата по-долу. Този модул Джойстик обикновено осигурява аналогови изходи и изходните напрежения, предоставени от този модул, продължават да се променят според посоката, в която го движим. И можем да получим посоката на движение, като интерпретираме тези промени на напрежението с помощта на някакъв микроконтролер. Преди това използвахме AVR микроконтролер с джойстик.
Този модул на джойстика има две оси, както можете да видите. Те са оста X и Y оста. Всяка ос на JOY STICK е монтирана към потенциометър или гърне. Средните точки на тези саксии се изхвърлят като Rx и Ry. Така Rx и Ry са променливи точки към тези саксии. Когато джойстикът е в режим на готовност, Rx и Ry действат като делител на напрежението.
Когато джойстикът се премести по хоризонталната ос, напрежението на Rx щифта се променя. По същия начин, когато се движи по вертикалната ос, напрежението на щифта Ry се променя. Така че имаме четири посоки на джойстика на два ADC изхода. Когато пръчката се премести, напрежението на всеки щифт става високо или ниско в зависимост от посоката.
Както знаем, Raspberry Pi няма вътрешен механизъм ADC (аналогов към цифров преобразувател). Така че този модул не може да бъде свързан директно към Pi. Ще използваме сравнители, базирани на Op-amp, за да проверим изходите на напрежението. Тези OP-усилватели подават сигнали към Raspberry Pi, а Pi превключва светодиодите в зависимост от сигналите. Тук сме използвали четири светодиода, за да посочим движението на джойстика в четири посоки. Проверете демонстрационното видео в края.
Всеки от 17-те GPIO пина не може да приема напрежение по-високо от + 3.3V, така че изходите на Op-усилвателя не могат да бъдат по-високи от 3.3V. Следователно ние избрахме операционен усилвател LM324, този интегрален модул има четириядрен операционен усилвател, който може да работи при 3V. С този IC имаме подходящи изходи за изходи за нашите Raspberry pi GPIO Pins. Научете повече за GPIO щифтовете на Raspberry Pi тук. Също така проверете нашата серия уроци за Raspberry Pi заедно с някои добри IoT проекти.
Необходими компоненти:
Тук използваме Raspberry Pi 2 Model B с OS Raspbian Jessie. Всички основни хардуерни и софтуерни изисквания са обсъдени по-рано, можете да ги потърсите във въведението на Raspberry Pi и мигащият индикатор Raspberry PI за начало, освен това, от което се нуждаем:
- 1000µF кондензатор
- Модул на джойстика
- LM324 Op-amp IC
- 1KΩ резистор (12 броя)
- LED (4 броя)
- 2.2KΩ резистор (4 броя)
Електрическа схема:
Вътре в LM324 IC има четири компаратора OP-AMP за откриване на четири посоки на джойстика. По-долу е дадена диаграмата на LM324 IC от нейния лист с данни.
Връзките, които се извършват за интерфейсен модул Джойстик с Raspberry Pi, са показани на схемата по-долу. U1: A, U1: B, U1: C, U1: D показва четирите компаратора вътре в LM324. Показахме всеки компаратор в електрическата схема със съответния Pin номер. на LM324 IC.
Работно обяснение:
За откриване на движението на джойстика по оста Y имаме OP-AMP1 или U1: A и OP-AMP2 или U1: B, а за откриване на движението на джойстика по оста X имаме OP-AMP3 или U1: C и OP-AMP4 или U1: D.
OP-AMP1 открива низходящото движение на джойстика по оста Y:
Отрицателен извод на компаратора U1: A е снабден с 2.3V (с помощта на верига на делител на напрежение от 1K и 2.2K) и положителният извод е свързан към Ry. При преместване на джойстика надолу по оста Y, напрежението на Ry се увеличава. След като това напрежение стане по-високо от 2.3V, OP-AMP осигурява + 3.3V изход на изходния си щифт. Този HIGH логически изход на OP-AMP ще бъде открит от Raspberry Pi и Pi реагира чрез превключване на LED.
OP-AMP2 открива движението на джойстика нагоре по оста Y:
Отрицателният извод на компаратора U1: B е снабден с 1.0V (използвайки верига на делителя на напрежението от 2.2K и 1K) и положителният извод е свързан към Ry. При преместване на джойстика нагоре по оста Y, напрежението на Ry намалява. След като това напрежение стане по-ниско от 1.0V, изходът на OP-AMP намалява. Този НИЗКИ логически изход на OP-AMP ще бъде открит от Raspberry Pi и Pi реагира чрез превключване на LED.
OP-AMP3 открива движението на лявата страна на джойстика по оста X:
Отрицателен терминал на компаратора U1: C е снабден с 2.3V (като се използва делителна верига на напрежението от 1K и 2.2K), а положителният терминал е свързан към Rx. При преместване на джойстика наляво по оста х, Rx напрежението се увеличава. След като това напрежение стане по-високо от 2.3V, OP-AMP осигурява + 3.3V изход на изходния си щифт. Този HIGH логически изход на OP-AMP ще бъде открит от Raspberry Pi и Pi реагира чрез превключване на LED.
OP-AMP4 засича движението на дясната страна на джойстика по оста X:
Отрицателният извод на компаратора U1: 4 е снабден с 1.0V (използвайки верига на делителя на напрежението от 2.2K и 1K), а положителният извод е свързан към Rx. При преместване на джойстика надясно по оста му, Rx напрежението намалява. След като това напрежение стане по-ниско от 1.0V, изходът на OP-AMP намалява. Този НИЗКИ логически изход на OP-AMP ще бъде открит от Raspberry Pi и Pi реагира чрез превключване на LED.
По този начин всички четири логики, които определят четирите посоки на джойстика, се свързват с Raspberry Pi. Raspberry Pi приема изходите на тези компаратори като входове и съответно реагира чрез превключване на светодиодите. По-долу са резултатите, показани на терминала на Raspberry Pi, тъй като ние също сме отпечатали посоката на джойстика на терминала, използвайки нашия Python Code.
Python код и видео са дадени по-долу. Кодът е лесен и може да се разбере от коментарите, дадени в кода.