Raspberry Pi е ARM архитектура базирана на процесор платка, предназначена за електронни инженери и любители. PI е една от най-надеждните платформи за разработване на проекти в момента. С по-висока скорост на процесора и 1 GB RAM, PI може да се използва за много високопрофилни проекти като Обработка на изображения и Интернет на нещата.
За да направите някой от високопрофилните проекти, трябва да разберете основните функции на PI. Ето защо сме тук, ще разгледаме всички основни функционалности на Raspberry Pi в тези уроци. Във всяка поредица от уроци ще обсъдим една от функциите на PI. До края на поредицата уроци ще можете сами да правите проекти с висок профил. Проверете ги за Първи стъпки с конфигурацията на Raspberry Pi и Raspberry Pi.
Установяването на комуникация между PI и потребителя е много важно за проектирането на проекти за PI. За комуникация PI трябва да приема входове от потребителя. В този втори урок от серията PI ще свържем бутон към Raspberry Pi, за да вземем ВХОДИ от потребителя.
Тук ще свържем бутон към един GPIO Pin и светодиод към друг GPIO pin на Raspberry Pi. Ще напишем програма на PYTHON, за да мига непрекъснато светодиода, при натискане на бутона от потребителя. Светодиодът ще мига, като включите и изключите GPIO.
Преди да се заемем с програмирането, нека поговорим малко за LINUX и PYHTON.
LINUX:
LINUX е операционна система като Windows. Той изпълнява всички основни функции, които може да изпълнява Windows OS. Основната разлика между тях е, че Linux е софтуер с отворен код, където Windows не е такъв. Това, което всъщност означава, е, че Linux е безплатен, докато Windows не. Linux OS може да се изтегли и експлоатира безплатно, но за да изтеглите оригинална Windows OS, трябва да платите парите.
И друга съществена разлика между тях е, че Linux OS може да бъде „модифициран“ чрез промяна в кода, но Windows OS не може да бъде модифициран, това ще доведе до правни усложнения. Така че всеки може да вземе операционната система Linux и може да я модифицира според своите изисквания, за да създаде своя собствена операционна система. Но не можем да направим това в Windows, операционната система Windows има ограничения, за да ви попречи да редактирате OS.
Тук говорим за Linux, защото JESSIE LITE (Raspberry Pi OS) е базирана на LINUX операционна система, която сме инсталирали в частта за въвеждане на Raspberry Pi. PI OS се генерира въз основа на LINUX, така че трябва да знаем малко за операционните команди на LINUX. Ще обсъдим тези команди на Linux в следващите уроци.
ПИТОН:
За разлика от LINUX, PYTHON е език за програмиране като C, C ++ и JAVA и др. Тези езици се използват за разработване на приложения. Запомнете езиците за програмиране, работещи в операционната система. Не можете да стартирате език за програмиране без операционна система. Така че OS е независима, докато езиците за програмиране са зависими. Можете да стартирате PYTHON, C, C ++ и JAVA както на Linux, така и на Windows.
Приложенията, разработени от тези езици за програмиране, могат да бъдат игри, браузъри, приложения и т.н. Ще използваме програмен език PYTHON на нашия PI, за проектиране на проекти и за манипулиране на GPIO.
Ще обсъдим малко за PI GPIO, преди да продължим по-нататък,
GPIO щифтове:
Както е показано на горната фигура, има 40 изходни щифта за PI. Но когато погледнете втората фигура, можете да видите, че не всички 40 извода могат да бъдат програмирани за наша употреба. Това са само 26 GPIO пина, които могат да бъдат програмирани. Тези щифтове преминават от GPIO2 към GPIO27.
Тези 26 GPIO щифта могат да бъдат програмирани според нуждите. Някои от тези щифтове изпълняват и някои специални функции, за това ще обсъдим по-късно. Със специалния GPIO, оставен настрана, остават 17 GPIO (светло зелен Cirl).
Всеки от тези 17 GPIO щифта може да достави максимум 15 mA ток. И сумата на токовете от всички GPIO не може да надвишава 50mA. Така че можем да изтеглим максимум 3 mA средно от всеки от тези GPIO щифтове. Така че не бива да се подправяте с тези неща, освен ако не знаете какво правите.
Необходими компоненти:
Тук използваме Raspberry Pi 2 Model B с Raspbian Jessie OS. Всички основни хардуерни и софтуерни изисквания са обсъдени преди това, можете да ги потърсите във въведението на Raspberry Pi, различно от това, от което се нуждаем:
- Свързващи щифтове
- 220Ω или 1KΩ резистор
- LED
- Бутон
- Дъска за хляб
Обяснение на веригата:
Както е показано на схемата, ще свържем светодиод към PIN35 (GPIO19) и бутон към PIN37 (GPIO26). Както казахме по-рано, не можем да изтеглим повече от 15 mA от някой от тези изводи, така че за ограничаване на тока свързваме последователно 220 LED или 1 KΩ резистор със светодиода.
Работно обяснение:
След като всичко е свързано, можем да включим Raspberry Pi, за да напишем програмата в PYHTON и да я изпълним. (За да знаете как да използвате PYTHON, отидете на PI BLINKY).
Ще говорим за няколко команди, които ще използваме в програмата PYHTON.
Ще импортираме GPIO файл от библиотеката, функцията по-долу ни позволява да програмираме GPIO пинове на PI. Преименуваме също „GPIO“ на „IO“, така че в програмата, когато искаме да се позовем на GPIO щифтове, ще използваме думата „IO“.
импортирайте RPi.GPIO като IO
Понякога, когато GPIO щифтовете, които се опитваме да използваме, може да изпълняват някои други функции. В този случай ще получим предупреждения, докато изпълняваме програмата. Командата по-долу казва на PI да игнорира предупрежденията и да продължи с програмата.
IO.setwarnings (False)
Можем да отнесем GPIO пиновете на PI, или чрез пинов номер на борда, или чрез номера на тяхната функция. На диаграмата на щифтовете можете да видите „ПИН 37“ на платката е „GPIO26“. Така че ние казваме тук, или ще представим щифта тук с '37' или '26'.
IO.setmode (IO.BCM)
Задаваме GPIO26 (или PIN37) като входен щифт. Ще открием натискането на бутона чрез този щифт.
IO.setup (26, IO.IN)
Докато 1: се използва за безкрайност. С тази команда операторите в този цикъл ще се изпълняват непрекъснато.
След като програмата се изпълни, светодиодът, свързан към GPIO19 (PIN35), мига при всяко натискане на бутона. След като освободите светодиода, той отново ще премине в състояние OFF.