2 начина да добавите бутон към вашия проект на Raspberry Pi

2 начина да добавите бутон към вашия проект на Raspberry Pi

Научаването да използвате GPIO щифтовете на вашия Raspberry Pi отваря цял свят от възможности. Основните принципи, научени чрез проекти за начинаещи, проправят пътя към полезни знания както за електрониката, така и за програмирането.





Този урок ще ви покаже два начина да добавите бутон към вашия проект на Raspberry Pi. Бутонът ще се използва за управление на светодиод. Писмени инструкции са достъпни под видеото.





Ще имаш нужда

За да започнете, уверете се, че имате следните компоненти:





  • 1 x Raspberry Pi (Всеки ще го направи, модел 3B се използва в този урок)
  • 1 x бутон
  • 1 x LED
  • 1 x 220 ома резистор (по -високите стойности са добре, вашият светодиод ще бъде само по -слаб)
  • 1 x Платка
  • Свържете проводниците

След като се съберат, трябва да имате компоненти, които изглеждат така:

Ще ви трябва и SD карта с инсталирана операционна система Raspbian. Най -бързият начин да направите това е с изображението на NOOBS (New Out of the Box Software). Инструкции как да направите това са налични във този видеоклип:



Настройка на веригата

Ще използвате GPIO щифтовете на Pi, за да направите веригата, и ако не сте запознати с тях, нашите ръководство за GPIO щифтове на Raspberry Pi ще помогне. Веригата тук е почти същата като в предишната ни Raspberry Pi LED проект , с добавянето на бутона, който ще използвате днес.

Настройте веригата си според тази диаграма:





  • The 5v и GND щифтове се свързват към захранващите шини на дъската.
  • ПИН 12 (GPIO 18) свързва се с положителния крак на светодиода.
  • Единият крак на резистор се прикрепя към отрицателния крак на светодиода, а другият крак се прикрепя към заземяващата шина на дъската.
  • ПИН 16 (GPIO 23) прикрепя към едната страна на бутона, другата страна се прикрепя към заземяващата шина на макета.

След като е настроен, ето как трябва да изглежда:

Проверете веригата си, за да се уверите, че е правилна, и след това включете вашия Raspberry Pi.





Метод 1: Библиотеката RPi.GPIO

След като Pi се стартира, отидете в менюто и изберете Програмиране> Thonny Python IDE . Ще се отвори нов скрипт на Python. Ако сте съвсем нов за Python, това е чудесен език за начинаещи и има много чудесни места, където можете да научите повече за Python, след като приключите с този урок!

Започнете, като импортирате библиотеката RPi.GPIO и зададете режима на платката.

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)

Сега декларирайте променливите за номера на LED и бутоните.

ledPin = 12
buttonPin = 16

Обърнете внимание, че тъй като имаме режим на дъска, зададен на ДЪСКА ние използваме номера на пинове, а не номера на GPIO. Ако това ви е объркващо, диаграмата за разпределение на Raspberry Pi може да ви помогне да я изясните.

Настройка на бутона

Време е да настроите GPIO щифтовете. Настройте LED щифта на изход, а щифта на бутона за вход с издърпващ се резистор

GPIO.setup(ledPin, GPIO.OUT)
GPIO.setup(buttonPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)

Текстът след GPIO.IN се отнася до вътрешен резистор за издърпване на Raspberry Pi. Трябва да активирате това, за да получите чисто отчитане от бутона. Тъй като бутонът отива към заземяващия щифт, имаме нужда от издърпващ се резистор, който да държи входния щифт HIGH, докато не го натиснете.

Преди да продължим, нека разгледаме издърпващите и падащите резистори.

Прекъсване: Издърпайте нагоре/Издърпайте резистори

Когато конфигурирате GPIO щифт за въвеждане, той чете този щифт, за да определи състоянието му. В тази схема трябва да прочетете дали е щифт ВИСОКО или НИСКИ за да задейства светодиода при натискане на бутона. Това би било просто, ако това бяха единствените състояния, които може да има щифт, но за съжаление има и трето състояние: ПЛАВАЩ .

Плаващ щифт има стойност между висока и ниска, което кара входа да действа непредсказуемо. Издърпващите/изтеглящите резистори решават това.

Горното изображение е опростена диаграма на бутон и Raspberry Pi. GPIO щифтът се свързва към земята чрез бутона. Вътрешният издърпващ резистор прикрепя GPIO щифта към вътрешното Pi захранване. Този ток тече и щифтът е безопасно издърпан до ВИСОК.

Когато натиснете бутона, GPIO щифтът се свързва директно към заземяващия щифт и бутонът чете ниско.

Издърпващите се резистори са за, когато превключвателят е свързан към захранващия щифт. Този път вътрешният резистор прикрепя щифта GPIO към земята, като държи LOW, докато не натиснете бутона.

Теорията за издърпване и издърпване на резисторите е объркваща на пръв поглед, но важна информация, която трябва да имате при работа с микроконтролери. Засега, ако не го разбирате съвсем, не се притеснявайте!

Нека продължим там, където сме спрели.

Цикълът на програмата

След това настройте програмния цикъл:

while True:
buttonState = GPIO.input(buttonPin)
if buttonState == False:
GPIO.output(ledPin, GPIO.HIGH)
else:
GPIO.output(ledPin, GPIO.LOW)

The докато True loop непрекъснато изпълнява кода вътре в него, докато не приключим програмата. Всеки път, когато се затвори, актуализира buttonState като прочетете входа от buttonPin . Докато бутонът не се натиска, той остава ВИСОКО .

След като бутонът е натиснат, buttonState става НИСКИ . Това задейства ако изявление , от Фалшиво е същото като НИСКИ , и светодиодът се включва. The иначе изявлението изключва светодиода, когато buttonPin не е False.

Запазете и стартирайте вашия скрипт

Запазете скрипта си, като щракнете върху Файл> Запазване като и избор на име на файл. Можете да стартирате скицата, като щракнете върху зеленото Играйте бутон в лентата с инструменти на Thonny.

Сега натиснете бутона и вашият светодиод трябва да светне! Натиснете червеното Спри се бутон по всяко време, за да спрете програмата

Ако имате затруднения, проверете внимателно кода и настройката на веригата за грешки и опитайте отново.

Метод 2: Библиотека GPIO Zero

Библиотеката RPi.GPIO е фантастична, но в блока има ново дете. Библиотеката GPIO Zero беше създадено от мениджъра на общността Raspberry Pi Бен Нътъл с намерението да направи кода по -опростен и по -лесен за четене и писане.

За да тествате новата библиотека, отворете нов файл на Thonny и импортирайте библиотеката.

from gpiozero import LED, Button
from signal import pause

Ще забележите, че не сте импортирали цялата библиотека. Тъй като използвате само светодиод и бутон, имате нужда само от тези модули в скрипта. Ние също внасяме Пауза от библиотеката на сигналите, която е библиотека на Python за управление на събития.

Настройването на щифтовете е много по -лесно с GPIO Zero:

led = LED(18)
button = Button(23)

Тъй като библиотеката GPIO Zero има модули за светодиода и бутона, не е необходимо да настройвате входове и изходи както преди. Ще забележите, че въпреки че щифтовете не са се променили, числата тук са различни от горните. Това е така, защото GPIO Zero използва само номера на пино GPIO (известни също като Broadcom или BCM номера).

какви игри на ps3 могат да се играят на ps4

Останалата част от скрипта е само от три реда:

button.when_pressed = led.on
button.when_released = led.off
pause()

The пауза () повикването тук просто спира излизането на скрипта, когато достигне дъното. Събитията с два бутона се задействат при всяко натискане и освобождаване на бутона. Запазете и стартирайте скрипта си и ще видите същия резултат като преди!

Два начина за добавяне на бутон към Raspberry Pi

От двата начина за настройка на бутона методът GPIO Zero изглежда е най -лесният. Все още си струва да научите за библиотеката RPi.GPIO като повечето начинаещи проекти на Raspberry Pi използваи го. Колкото и да е прост този проект, знанието може да се използва за редица неща.

Използването на GPIO пиновете е чудесен начин да научите и изобретите свои собствени устройства, но далеч не е всичко, което можете да направите с Pi. Нашето неофициално ръководство за Raspberry Pi е изпълнено с творчески идеи и уроци, които можете да изпробвате сами! За друг урок като този, проверете как да направите бутон за свързване с Wi-Fi .

Дял Дял Туит електронна поща 5 съвета за зареждане на вашите VirtualBox Linux машини

Уморени ли сте от лошото представяне на виртуалните машини? Ето какво трябва да направите, за да увеличите производителността на VirtualBox.

Прочетете Напред
Свързани теми
  • Направи си сам
  • Малина Пи
  • Python
  • GPIO
  • Уроци за проекти „направи си сам“
За автора Иън Бъкли(216 статии са публикувани)

Иън Бъкли е журналист на свободна практика, музикант, изпълнител и видео продуцент, живеещ в Берлин, Германия. Когато не пише или е на сцената, той се занимава с „направи си сам“ електроника или код с надеждата да стане луд учен.

Още от Иън Бъкли

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате