Обиколка на маслиновия пипер GPIO

01 от 09

Въведение в игличките на Малина Пи

Малина Пи ПП GPIO. Ричард Савил

Терминът "GPIO" (изход за обща употреба) не е изключителен за Raspberry Pi. Входове и изходи пина могат да бъдат намерени на повечето микроконтролери като Arduino, Beaglebone и др.

Когато говорим за GPIO с Raspberry Pi, ние говорим за дългия блок на щифтовете в горния ляв ъгъл на дъската. По-старите модели са имали 26 пина, но повечето от нас ще използват настоящия модел с 40.

Можете да свържете компоненти и други хардуерни устройства към тези пинове и да използвате код, за да контролирате това, което правят. Това е важна част от Raspberry Pi и отличен начин да се запознаете с електрониката.

След няколко софтуерни проекта, най-вероятно ще откриете, че експериментирате с тези пинове, които желаете да смесите кода си с хардуера, за да станете нещата в реалния живот.

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

Тази статия ще обясни какво прави всеки тип GPIO ПИН и техните ограничения.

02 от 09

GPIO

GPIO пина са номерирани от 1 до 40 и могат да бъдат групирани под различни функции. Ричард Савил

Първо, нека да разгледаме GPIO като цяло. Игрите могат да изглеждат еднакви, но всички имат различни функции. Изображението по-горе показва тези функции в различни цветове, които ще обясним в следващите стъпки.

Всеки щифт се номерира от 1 до 40, започвайки отдолу наляво. Това са физическите номера на ПИН, но съществуват и конвенции за номериране / етикетиране като "BCM", които се използват при писане на код.

03 от 09

Мощност и земя

Raspberry Pi предлага множество захранващи и заземяващи щифтове. Ричард Савил

Маркирани в червено, са захранващи щифтове, означени с "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 ви позволява да свържете други устройства към вашия Pi само с няколко щифта. Ричард Савил

В жълто имаме I2C игли. I2C е комуникационен протокол, който по прост начин позволява на устройствата да комуникират с малините Pi. Тези игли могат да се използват и като "генерични" GPIO пина.

Добър пример за използване на I2C е много популярният MCP23017 порт разширител чип, който може да ви даде повече входно / изход пина чрез този протокол I2C.

(I2C GPIO пина са физически номера 3 и 5)

06 от 09

UART (серийни) пинове

Свържете се с вашия Pi през серийна връзка с картите UART. Ричард Савил

В сиво, са картите UART. Тези игли са друг комуникационен протокол, който предлага серийни връзки и може да се използва и като "генерични" GPIO входове / изходи.

Любимата ми употреба за UART е да активира серийна връзка от моя Pi към моя лаптоп през USB. Това може да се постигне чрез допълнителни платки или прости кабели и премахва необходимостта от екран или интернет връзка за достъп до вашия Pi.

(UART GPIO пина са физически ПИН номера 8 и 10)

07 от 09

SPI пина

SPI Pins - друг полезен комуникационен протокол. Ричард Савил

В розово имаме SPI игли. SPI е интерфейсна шина, която изпраща данни между Pi и други хардуерни / периферни устройства. Обикновено се използва за верига на устройства като LED матрица или дисплей.

Както и другите, тези игли могат да се използват и като "генерични" GPIO входове / изходи.

(SPI GPIO пина са физически щифтове 19, 21, 23, 24 и 26)

08 от 09

DNC пина

Тук няма какво да се види - DNC щифтовете нямат никаква функция. Ричард Савил

Накрая има два пина в синьо, които понастоящем са означени като DNC, което означава "не се свързвай". Това може да се промени в бъдеще, ако Фондацията Raspberry Pi промени платките / софтуера.

(DNC GPIO пина са физически номера на щифтове 27 и 28)

09 от 09

Конвенции за номериране на GPIO

Portsplus е удобен инструмент за проверка на ПИН номера на 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 - така че сте покрити за всеки проект, който намирате.