Ang Tour of the Raspberry Pi GPIO

01 ng 09

Isang Panimula sa Mga Pins ng Raspberry Pi

Ang Raspberry Pi GPIO. Richard Saville

Ang terminong 'GPIO' (General Purpose Input Output) ay hindi eksklusibo sa Raspberry Pi. Ang input at output pin ay matatagpuan sa karamihan ng mga microcontroller tulad ng Arduino, Beaglebone at higit pa.

Kapag pinag-uusapan natin ang tungkol sa GPIO sa Raspberry Pi, tinutukoy natin ang mahabang bloke ng mga pin sa itaas na kaliwang sulok ng board. Ang mga may edad na mga modelo ay mayroong 26 pin, gayunpaman karamihan sa atin ay gumagamit ng isang kasalukuyang modelo na may 40.

Maaari mong ikonekta ang mga bahagi at iba pang mga hardware device sa mga pin na ito, at gamitin ang code upang kontrolin kung ano ang ginagawa nila. Ito ay isang mahalagang bahagi ng Raspberry Pi at isang mahusay na paraan upang malaman ang tungkol sa electronics.

Matapos ang ilang mga proyektong software, malamang na makikita mo ang iyong sarili sa pag-eksperimento sa mga pin na ito, sabik na ihalo ang iyong code sa hardware upang gumawa ng mga bagay na mangyayari sa 'totoong buhay'.

Ang prosesong ito ay maaaring maging intimidating kung bago ka sa eksena, at isinasaalang-alang na ang isang maling paglipat ay maaaring makapinsala sa iyong Raspberry Pi, maliwanag na ito ay isang kinakabahan na lugar para sa mga nagsisimula upang tuklasin.

Ang artikulong ito ay magpapaliwanag kung ano ang ginagawa ng bawat uri ng GPIO pin at ang kanilang mga limitasyon.

02 ng 09

Ang GPIO

Ang GPIO pin ay may bilang na 1 hanggang 40, at maaaring ma-grupo sa ilalim ng iba't ibang mga function. Richard Saville

Una, tingnan natin ang GPIO sa kabuuan. Ang mga pin ay maaaring magmukhang pareho ngunit lahat sila ay may iba't ibang mga function. Ang imahe sa itaas ay nagpapakita ng mga function na ito sa iba't ibang kulay na ipapaliwanag namin sa mga sumusunod na hakbang.

Ang bawat pin ay may bilang na 1 hanggang 40 na nagsisimula sa kaliwang ibaba. Ang mga ito ay ang mga pisikal na numero ng pin, gayunpaman, mayroong mga pag-numero / label na mga kombensyon tulad ng 'BCM' na ginagamit kapag nagsusulat ng code.

03 ng 09

Power & Ground

Ang Raspberry Pi ay nag-aalok ng maraming kapangyarihan at lupa pin. Richard Saville

Itinampok ang pula, ang mga pin ng kapangyarihan na may label na '3' o '5' para sa 3.3V o 5V.

Hinahayaan ka ng mga pin na ito na direktang magpadala ng kapangyarihan sa isang aparato nang hindi nangangailangan ng anumang code. Walang paraan ng paggawa ng mga ito alinman.

May 2 riles ng kapangyarihan - 3.3 volts at 5 volts. Ayon sa artikulong ito, ang 3.3V rail ay limitado sa 50mA kasalukuyang gumuhit, samantalang ang 5V rail ay maaaring magbigay ng kahit anong kasalukuyang kapasidad na natitira mula sa iyong power supply matapos na kunin ng Pi ang kung ano ang kailangan nito.

Ang naka-highlight na kayumanggi ay ang mga pin ng lupa (GND). Ang mga pin ay eksakto kung ano ang sinasabi nila - mga pin ng lupa - na isang mahalagang bahagi ng anumang proyekto ng electronics.

(5V GPIO pin ay mga pisikal na numero 2 at 4. 3.3V GPIO pin ay mga pisikal na numero 1 at 17. Mga pisikal na numero GPIO pin ay mga pisikal na numero 6, 9, 14, 20, 25, 30, 34 at 39)

04 ng 09

Input / Output Pins

Ang Input and Output pin ay nagbibigay-daan sa iyo upang ikonekta ang hardware tulad ng mga sensor at switch. Richard Saville

Ang berdeng mga pin ay tinatawag kong 'generic' input / output pin. Ang mga ito ay maaaring madaling gamitin bilang input o output nang walang anumang mga alalahanin tungkol sa clashing sa iba pang mga pag-andar tulad ng I2C, SPI o UART.

Ang mga ito ang mga pin na maaaring magpadala ng kapangyarihan sa isang LED, buzzer, o iba pang mga bahagi, o gamitin bilang isang input upang mabasa ang mga sensors, switch o iba pang input device.

Ang lakas ng output ng mga pin ay 3.3V. Ang bawat pin ay hindi dapat lumagpas sa 16mA ng kasalukuyang, alinman sa paglubog o sourcing, at ang buong hanay ng mga pin GPIO ay hindi dapat lumagpas sa higit sa 50mA sa anumang oras. Ito ay maaaring maging mahigpit, kaya maaaring mayroon kang makakuha ng malikhain sa ilang mga proyekto.

(Generic GPIO pin ay pisikal na numero 7, 11, 12, 13, 15, 16, 18, 22, 29, 31, 32, 33, 35, 36, 37, 38 at 40)

05 ng 09

I2C Pins

Pinapayagan ka ng I2C na ikonekta ang iba pang mga device sa iyong Pi gamit lamang ang isang pares ng mga pin. Richard Saville

Sa dilaw, mayroon kaming mga I2C pin. Ang I2C ay isang komunikasyon protocol na sa simpleng mga tuntunin ay nagbibigay-daan sa mga aparato upang makipag-usap sa Raspberry Pi. Ang mga pin na ito ay maaari ding gamitin bilang 'pangkaraniwang' GPIO pin.

Ang isang mahusay na halimbawa ng paggamit ng I2C ay ang napaka-tanyag na MCP23017 port expander chip, na maaaring magbigay sa iyo ng karagdagang input / output Pins sa pamamagitan ng protocol na ito ng I2C.

(I2C GPIO pin ay pisikal na pin numero 3 at 5)

06 ng 09

UART (Serial) Pins

Kumonekta sa iyong Pi sa isang serial na koneksyon sa mga pin ng UART. Richard Saville

Sa grey, ang mga UART pin. Ang mga pin ay isa pang komunikasyon protocol na nag-aalok ng mga serial na koneksyon, at maaari ring gamitin bilang 'generic' GPIO inputs / outputs pati na rin.

Ang aking paboritong paggamit para sa UART ay upang paganahin ang isang serial na koneksyon mula sa aking Pi sa aking laptop sa USB. Ito ay maaaring makamit gamit ang mga add-on boards o simpleng cable at aalisin ang pangangailangan para sa isang screen o internet connection upang ma-access ang iyong Pi.

(Ang pins ng UART GPIO ay pisikal na mga pin na numero 8 at 10)

07 ng 09

SPI Pins

Ang SPI Pins - isa pang kapaki-pakinabang na komunikasyon protocol. Richard Saville

Sa rosas , mayroon kaming mga pin ng SPI. Ang SPI ay isang interface bus na nagpapadala ng data sa pagitan ng Pi at iba pang hardware / peripheral. Ito ay karaniwang ginagamit para sa chaining ng mga aparato tulad ng isang LED matrix o display.

Tulad ng iba, ang mga pin na ito ay maaari ding gamitin bilang 'generic' na mga input / output GPIO.

(SPI GPIO pin ay pisikal na pin numero 19, 21, 23, 24 at 26)

08 ng 09

DNC Pins

Wala nang makita dito - ang mga DNC pin ay hindi nagsisilbing function. Richard Saville

Sa wakas ay dalawang pin na asul na, sa kasalukuyan, ay may label na DNC na kumakatawan sa 'Huwag Kumunekta'. Maaaring magbago ito sa hinaharap kung babaguhin ng Raspberry Pi Foundation ang mga board / software.

(DNC GPIO pin ay pisikal na pin numero 27 at 28)

09 ng 09

GPIO Numbering Conventions

Ang Portsplus ay isang madaling gamitin na tool para sa pag-check ng GPIO pin numbers. Richard Saville

Kapag may coding sa GPIO, mayroon kang pagpipilian upang i-import ang GPIO library sa isa sa dalawang paraan - BCM o BOARD.

Ang opsiyon na gusto ko ay GPIO BCM. Ito ang kombensiyon ng bilang ng Broadcom at nalaman ko na ginagamit ito sa mas karaniwang mga proyekto at mga add-on ng hardware.

Ang ikalawang opsyon ay GPIO BOARD. Ang pamamaraang ito ay gumagamit ng pisikal na mga numero ng pin sa halip, na madaling gamitin kapag nagbibilang ng mga pin, ngunit masusumpungan mong mas mababa ito sa mga halimbawa ng proyekto.

Ang GPIO mode ay naka-set kapag nag-import ng GPIO library:

Upang mag-import bilang BCM:

import RPi.GPIO bilang GPIO GPIO.setmode (GPIO.BCM)

Upang i-import bilang BOARD:

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

Pareho ng mga pamamaraan na ito ang ginagawa nang eksakto ang parehong trabaho, ito ay isang bagay lamang ng pagbilang ng kagustuhan.

Regular kong ginagamit ang mga madaling gamitin na GPIO label boards tulad ng RasPiO Portsplus (pictured) upang suriin kung aling mga pin ako ay nakakonekta sa mga wire masyadong. Ang isang tabi ay nagpapakita ng kombensyon ng BCM numbering, ang iba pang nagpapakita ng BOARD - kaya nasasakop ka para sa anumang proyekto na iyong nahanap.