Турнеја на Малина Пи GPIO

01 од 09

Вовед во пиновите на Малина Пи

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

Терминот "GPIO" (влез за општа намена) не е ексклузивен за Малина Пи. Влезните и излезните игли може да се најдат на повеќето микроконтролери како што се 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 железнички може да обезбеди сегашниот капацитет е оставена од вашиот снабдување со електрична енергија откако Пи има преземено она што е потребно.

Обележани кафеави се игличките иглички (GND). Овие игли се токму она што тие велат - иглички - кои се витален дел од секој електронски проект.

(5V GPIO пиновите се физички броеви 2 и 4. Пиновите за 3.3V GPIO се физички броеви 1 и 17. Земените GPIO пинови се физички броеви 6, 9, 14, 20, 25, 30, 34 и 39)

04 од 09

Влезни / излезни иглички

Влезните и излезните иглички ви овозможуваат да поврзете хардвер како сензори и прекинувачи. Ричард Савил

Зелените пинови се она што јас го нарекувам "генерички" влез / излез иглички. Овие може лесно да се користат како влезови или излези без никакви грижи за судир со други функции како што се I2C, SPI или UART.

Ова се игличките кои можат да испраќаат енергија на LED, сирена или други компоненти или да се користат како влез за читање на сензори, прекинувачи или друг влезен уред.

Излезната моќ на овие пинови е 3.3V. Секој игла не треба да надминува 16mA струја, или тоне или извори, а целиот сет на GPIO пинови не смее да надмине повеќе од 50mA во секое време. Ова може да биде рестриктивно, па можеби ќе треба да се креативни во одредени проекти.

(Generic GPIO иглички се физички броеви 7, 11, 12, 13, 15, 16, 18, 22, 29, 31, 32, 33, 35, 36, 37, 38 и 40)

05 од 09

I2C иглички

I2C ви овозможува да поврзете други уреди со вашиот Pi со само неколку пина. Ричард Савил

Во жолто, имаме пинови на I2C. I2C е комуникациски протокол кој со едноставни термини им овозможува на уредите да комуницираат со Малина Пи. Овие иглички, исто така, може да се користат како "генерички" 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 иглички - уште еден корисен протокол за комуникација. Ричард Савил

Во розова , ние имаме 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)

За да увезете како одбор:

увоз RPi.GPIO како GPIO GPIO.setmode (GPIO.BOARD)

И двете од овие методи ја прават истата работа, тоа е само прашање на нумерација предност.

Јас редовно ги користам практичните табли за етикети на GPIO како што е RasPiO Portsplus (на сликата) за да проверам кои иглички ги поврзувам жиците. Едната страна ја прикажува конвенцијата за нумерирање на BCM, другата покажува BOARD - така што сте покриени за било кој проект што го наоѓате.