01 от 09
Въведение в игличките на Малина Пи
Терминът "GPIO" (изход за обща употреба) не е изключителен за Raspberry Pi. Входове и изходи пина могат да бъдат намерени на повечето микроконтролери като Arduino, Beaglebone и др.
Когато говорим за GPIO с Raspberry Pi, ние говорим за дългия блок на щифтовете в горния ляв ъгъл на дъската. По-старите модели са имали 26 пина, но повечето от нас ще използват настоящия модел с 40.
Можете да свържете компоненти и други хардуерни устройства към тези пинове и да използвате код, за да контролирате това, което правят. Това е важна част от Raspberry Pi и отличен начин да се запознаете с електрониката.
След няколко софтуерни проекта, най-вероятно ще откриете, че експериментирате с тези пинове, които желаете да смесите кода си с хардуера, за да станете нещата в реалния живот.
Този процес може да бъде смущаващ, ако сте нови за сцената, и като се има предвид, че един фалшив ход може да увреди вашия Raspberry Pi, разбираемо е, че това е нервна зона, която начинаещите могат да проучат.
Тази статия ще обясни какво прави всеки тип GPIO ПИН и техните ограничения.
02 от 09
GPIO
Първо, нека да разгледаме GPIO като цяло. Игрите могат да изглеждат еднакви, но всички имат различни функции. Изображението по-горе показва тези функции в различни цветове, които ще обясним в следващите стъпки.
Всеки щифт се номерира от 1 до 40, започвайки отдолу наляво. Това са физическите номера на ПИН, но съществуват и конвенции за номериране / етикетиране като "BCM", които се използват при писане на код.
03 от 09
Мощност и земя
Маркирани в червено, са захранващи щифтове, означени с "3" или "5" за 3.3V или 5V.
Тези игли ви позволяват директно да изпращате захранване на устройство, без да е необходим код. Няма начин да ги изключите.
Има 2 релси за мощност - 3.3 волта и 5 волта. Според тази статия, 3.3V железопътната линия е ограничена до текущото теглене от 50mA, докато 5V железопътната линия може да осигури каквото и да е сегашното мощно напрежение от вашето захранване, след като Pi е взела това, от което се нуждае.
Наблюдаваните кафяви са земните щифтове (GND). Тези игли са точно това, което казват - наземни щифтове - които са важна част от всеки електронен проект.
(5V GPIO колчета са физически номера 2 и 4. 3.3V GPIO пина са физически номера 1 и 17. Земни GPIO пина са физически номера 6, 9, 14, 20, 25, 30, 34 и 39)
04 от 09
Входове / изходи
Зелените пинове са това, което наричам "генерични" входове / изходи. Те могат лесно да се използват като входове или изходи без никакви притеснения за сблъсъка с други функции като I2C, SPI или UART.
Това са щифтовете, които могат да изпращат захранване към светодиод, зумер или други компоненти, или да бъдат използвани като вход за четене на датчици, превключватели или друго входно устройство.
Изходната мощност на тези щифтове е 3.3V. Всеки щифт не трябва да надвишава 16mA на ток, като потъва или извор, а целият комплект GPIO щифтове не трябва да надвишава повече от 50mA във всеки един момент. Това може да бъде рестриктивно, така че може да се наложи да станете творчески в определени проекти.
(Генеричните GPIO пина са физически номера 7, 11, 12, 13, 15, 16, 18, 22, 29, 31, 32, 33, 35, 36, 37, 38 и 40)
05 от 09
I2C Pins
В жълто имаме I2C игли. I2C е комуникационен протокол, който по прост начин позволява на устройствата да комуникират с малините Pi. Тези игли могат да се използват и като "генерични" GPIO пина.
Добър пример за използване на I2C е много популярният MCP23017 порт разширител чип, който може да ви даде повече входно / изход пина чрез този протокол I2C.
(I2C GPIO пина са физически номера 3 и 5)
06 от 09
UART (серийни) пинове
В сиво, са картите UART. Тези игли са друг комуникационен протокол, който предлага серийни връзки и може да се използва и като "генерични" GPIO входове / изходи.
Любимата ми употреба за UART е да активира серийна връзка от моя Pi към моя лаптоп през USB. Това може да се постигне чрез допълнителни платки или прости кабели и премахва необходимостта от екран или интернет връзка за достъп до вашия Pi.
(UART GPIO пина са физически ПИН номера 8 и 10)
07 от 09
SPI пина
В розово имаме SPI игли. SPI е интерфейсна шина, която изпраща данни между Pi и други хардуерни / периферни устройства. Обикновено се използва за верига на устройства като LED матрица или дисплей.
Както и другите, тези игли могат да се използват и като "генерични" GPIO входове / изходи.
(SPI GPIO пина са физически щифтове 19, 21, 23, 24 и 26)
08 от 09
DNC пина
Накрая има два пина в синьо, които понастоящем са означени като DNC, което означава "не се свързвай". Това може да се промени в бъдеще, ако Фондацията Raspberry Pi промени платките / софтуера.
(DNC GPIO пина са физически номера на щифтове 27 и 28)
09 от 09
Конвенции за номериране на GPIO
Когато кодирате с GPIO, имате възможност да импортирате GPIO библиотеката по един от двата начина - BCM или BOARD.
Опцията, която предпочитам е GPIO BCM. Това е конвенцията за номериране на Broadcom и считам, че тя се използва по-често при проекти и хардуерни добавки.
Вторият вариант е GPIO BOARD. Този метод използва вместо това физическите номера на щифтове, което е удобно при броене на игли, но ще откриете, че той се използва по-малко в примерите за проекти.
Режимът GPIO е настроен при импортиране на GPIO библиотеката:
За да импортирате като BCM:
вмъкване на RPi.GPIO като GPIO GPIO.setmode (GPIO.BCM)За да импортирате като BOARD:
вмъкване на RPi.GPIO като GPIO GPIO.setmode (GPIO.BOARD)И двата метода правят точно една и съща работа, това е просто въпрос на преференциално номериране.
Аз редовно се възползват от удобен GPIO етикет дъски, като RasPiO Portsplus (на снимката), за да проверите кои пина съм свързване на кабели също. Едната страна показва конвенцията за номериране на BCM, другата показва BOARD - така че сте покрити за всеки проект, който намирате.