GPIO: sve o Raspberry Pi 4 i 3 vezama

Raspberry Pi 4 GPIO

u GPIO pinovi ploče Raspberry Pi 4, 3, a također i njegovi prethodnici, pružaju SBC ploči mogućnosti slične onima koje Arduino može imati, jer pomoću njih možete stvarati vrlo zanimljive elektroničke projekte kontrolirane iz operativnog sistema pomoću koda na različitim jezicima, poput Pythona.

To ploču čini više od pukog jeftinog računara. Omogućit će vam povezivanje mnoštva elektronički elementi koju možete koristiti s Arduinom, ali kojom se također može upravljati s Pi-a. U ovom vodiču pokušat ću vam dati što više informacija o ovim GPIO pinovima kako biste ih mogli početi koristiti ...

Šta je GPIO?

GPIO

GPIO je akronim za Ulaz / izlaz opće namjene, odnosno Ulaz / izlaz opće namjene. Mogu ga imati različiti elektronički proizvodi, poput samih čipova ili određenih PCB ploča poput ove Raspberry Pi. Kao što im samo ime govori, to su igle koje se mogu konfigurirati za obavljanje različitih funkcija, stoga su opće namjene i nisu za određenu upotrebu.

Korisnik u vrijeme izvođenja može biti taj koji može konfigurirajte ove GPIO pinove tako da rade ono što on želi. To se može učiniti na različite načine, kao što su određeni kodovi ili skripte s konzole ili program Python, što je jedan od najjednostavnijih i najpoželjnijih načina zbog količine opcija koje vam stoje na raspolaganju.

Na taj način, Raspberry Pi ne samo da ima niz portova i interfejsi za povezivanje više standardnih uređaja, ali dodajte ove GPIO pinove kako biste mogli dodati druge elektroničke uređaje ili izrađivačke projekte koje ste sami kreirali. Na isti način kao što biste to učinili s Arduinom i njegovim I / O pinovima za kontrolu.

Y nije ekskluzivno za Arduino ili Raspberry Pi, kao i druge slične SBC ploče i ugrađeni proizvodi.

GPIO karakteristike

I između njene KARAKTERISTIKE najistaknutiji:

  • Mogu biti konfiguriran tanto kao ulaz kao izlaz. Oni imaju tu dualnost kao što se to događa onima Arduino.
  • GPIO pinovi takođe može se aktivirati i deaktivirati kodom. Odnosno, mogu se postaviti na 1 (nivo visokog napona) ili 0 (nivo niskog napona).
  • Naravno da mogu čita binarne podatke, kao jedinice i nule, odnosno signal napona ili njegovo odsustvo.
  • Izlazne vrijednosti od Čitanje i pisanje.
  • Ulazne vrijednosti se u nekim slučajevima mogu konfigurirati kao događaji tako da generiraju neku vrstu akcije na ploči ili sistemu. Neki ugrađeni sistemi koriste ih kao IRQ-ove. Drugi slučaj je konfiguriranje da kada jedan ili više pinova budu aktivni od strane određenih senzora, izvršite neku radnju ...
  • Što se tiče napona i intenziteta, morate dobro znati maksimalne kapacitete prihvatljive za ploču, u ovom slučaju Raspberry Pi 4 ili 3. Ne biste ih trebali propuštati kako biste je izbjegli oštetiti.

Inače, kada je grupa GPIO pinova grupirana, kao što je slučaj sa Raspberry Pi, grupa je poznata kao GPIO port.

GPIO pinovi na Raspberry Pi

Raspberry Pi GPIO

Šema vrijedi za verziju 4, 3, Zero

Novi Ploče Raspberry Pi 4 i verzija 3 Opremljeni su velikim brojem GPIO pinova. Ne nude sve verzije isti iznos niti su numerirane na isti način, tako da morate biti oprezni s tim da biste dobro znali kako treba uspostaviti vezu prema modelu i reviziji koju imate.

Ali ono što je općenitije su tipovi GPIO koje možete pronaći u luci Raspberry Pi ploča. I to će biti prvo što bih želio razjasniti, jer ćete tako znati vrste pribadača možete računati na svoje projekte:

  • Hrana: ovi pinovi se koriste za povezivanje dalekovoda ili ožičenja za vaše elektroničke projekte. Odgovaraju pinovima sličnim onima na Arduino ploči i pružaju napone od 5v i 3v3 (3.3v ograničeno na opterećenje od 50mA). Pored toga, pronaći ćete i one uzemljene (GND ili Ground). Ako ne koristite vanjske izvore napajanja poput baterija ili adaptera, ovi pinovi mogu biti od velike pomoći za napajanje vašeg kruga.
  • DNC (Ne povezuj): to su pribadače koje su u nekim verzijama i nemaju funkciju, ali da su na novim pločama dobile drugu svrhu. Ovo ćete naći samo u primitivnijim modelima Pi-a. U novim 3 i 4 oni će biti označeni kao GND generalno, moći će se integrirati u prethodnu grupu.
  • Podesive igle: oni su uobičajeni GPIO i mogu se programirati kodovima kao što ću kasnije objasniti da učinite ono što vam treba.
  • Specijalne igle: ovo su neke veze koje su namijenjene posebnim vezama ili sučeljima poput UART, TXD i RXD serijskih veza, itd., kao što se to događa s Arduinom. Naći ćete čak i neke poput SDA, SCL, MOSI, MISO, SCLK, CE0, CE1 itd. Među njima se ističu:
    • PWM, koji može regulirati širinu impulsa kao što smo vidjeli u prethodnom članku. Na Raspberry Pi 3 i 4 to su GPIO12, GPIO13, GPIO18 i GPIO19.
    • SPI je još jedno komunikacijsko sučelje o kojem sam također govorio u drugom članku. U slučaju novih 40-pinskih ploča, to su pinovi (s različitim komunikacijskim kanalima, kao što vidite):
      • SPI0: MOSI (GPIO10), MISO (GPIO9), SCLK (GPIO11), CE0 (GPIO8), CE1 (GPIO7)
      • SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK(GPIO21); CE0 (GPIO18); CE1 (GPIO17); CE2 (GPIO16)
    • I2C je još jedna veza koju sam također objasnio na ovom blogu. Ova sabirnica se sastoji od podatkovnog signala (GPIO2) i sata (GPIO3). Pored EEPROM podataka (GPIO0) i EEPROM sata (GPIO1).
    • Serijska, još jedna vrlo praktična komunikacija s TX (GPIO14) i RX (GPIO15) iglama poput onih koje možete pronaći na ploči Arduino UNO.

Zapamtite da su GPIO-ovi sučelje između Raspberry Pi-a i vanjskog svijeta, ali jesu njegova ograničenja, posebno električni. Nešto o čemu morate uzeti u obzir kako ne biste pokvarili ploču jest zapamtiti da su ovi GPIO pinovi obično nebuferisani, odnosno bez međuspremnika. To znači da nemaju zaštitu, pa morate pratiti veličine primijenjenog napona i intenziteta kako ne biste završili s beskorisnom pločicom ...

GPIO razlike između verzija

Stare igle za Raspberry Pi GPIO

Kao što sam rekao, nisu svi modeli iste igleEvo nekoliko dijagrama kako biste mogli vidjeti razlike između modela i tako se moći usredotočiti na Raspberry Pi 4 i 3, koji su najnoviji i onaj koji vjerovatno imate. Razlikuje se (sve grupe imaju iste igle):

  • Raspberry Pi 1 Model B Rev 1.0, sa 26-pinom malo se razlikuje od Rev2.
  • Raspberry Pi 1 Model A i B Rev 2.0, oba modela sa 26-pinskim.
  • Rapsberry Pi model A +, B +, 2B, 3B, 3B +, Zero i Zero W, kao i 4 modela, svi sa 40-pinskim GPIO zaglavljem.

Šta mogu da priključim na GPIO?

Raspberry Pi šešir

Ne samo da ćete moći povežite elektroničke uređaje como tranzistori, senzori vlage / temperature, termistori, koračni motori, LEDitd. Također možete povezati komponente ili module kreirane posebno za Raspberry Pi i koji proširuju mogućnosti ploče izvan onoga što je uključeno u bazu.

Mislim na slavne kape ili kape i ploče koje možete naći na tržištu. Postoji mnogo vrsta, od onih koje se koriste za upravljanje motorima sa vozačima, do drugih za stvaranje računski klastersa LED panel kontrolirati, dodati Mogućnost DVB TV-a, LCD ekran, Itd

Ove kape ili kape Montiraju se na ploču Raspberry Pi, podudaranje GPIO-a potrebnih za njegov rad. Stoga je njegova montaža prilično jednostavna i brza. Naravno, pobrinite se za verziju ploče kompatibilnu sa svakom kapom, jer je GPIO port drugačiji kao što ste vidjeli ...

To kažem u slučaju da imate stariju ploču, jer to imaju šeširi kompatibilan samo s najnovijim. Kao i modeli Raspberry Pi A +, B +, 2, 3 i 4.

Uvod u upotrebu GPIO-a na Raspberry Pi

Izlaz naredbe za pinout

Izvor: Raspberry Pi

Za početak na Raspbian-u možete otvoriti konzolu i otkucati naredba pin outVratit će vam sliku na terminalu s GPIO pinovima dostupnim na vašoj ploči i čemu služi svaki. Nešto vrlo praktično da to uvijek bude prisutno u trenutku rada kako se ne biste zbunili.

Prvi projekat: treperenje LED diode sa GPIO-ima

GPIO sa LED na Raspberry Pi

Najosnovniji način izrade vrste "Zdravo, svet" sa GPIO-ima je korištenje jednostavne LED diode spojene na pinove Raspberry Pi-a kako biste mogli vidjeti kako oni rade. U ovom slučaju, spojio sam ga na GND, a drugi na pin 17, iako možete odabrati još jedan od uobičajenih pinova ...

Jednom kad se povežete, možete kontrolirati ih iz Raspbiana koristeći terminal. U Linuxu se koriste određene datoteke poput onih u direktoriju / sys / class / gpio /. Na primjer, za stvaranje datoteke s potrebnom strukturom za početak rada:

echo 17 > /sys/class/gpio/export

Onda možeš konfigurirati kao ulaz (ulaz) ili kao izlaz (izlaz) onaj pin 17 izabran za naš primjer. To možete učiniti vrlo jednostavno sa:

echo out > /sys/class/gpio/gpio17/direction

U ovom slučaju kao izlaz, jer želimo poslati električni impuls na LED da ga uključimo, ali ako je to bio senzor itd., Mogli biste ga koristiti. Sada za uključiti (1) ili isključiti (0) LED koju možete koristiti:

echo 1 > /sys/class/gpio/gpio17/value
echo 0 > /sys/class/gpio/gpio17/value

Ako želite prijeći na drugi projekt i izbriši unos kreirano, možete to učiniti na ovaj način:

echo 17 > /sys/class/gpio/unexport

Usput, također možete prikupiti sve potrebne naredbe za svoj projekt, kao i sve prethodne, spremiti ih u vrstu datoteke bash skripta a zatim ih istodobno pokrenite u snopu, umjesto da ih ukucate jedan po jedan. Ovo je zgodno kada istu vježbu ponovite više puta, tako da ne morate prepisivati. Samo trči i idi. Na primjer:

nano led.sh

#!/bin/bash
source gpio 
gpio mode 17 out
while true; do 
gpio write 17 1 
sleep 1.3 
gpio write 17 0 
sleep 1.3 done

Kada završite, spremite i tada mu možete dati odgovarajuće dozvole za izvršavanje i izvršavanje skripta da se LED lampica upali, pričekajte 1.3 sekunde i isključite se ovako u petlji ...

chmod +x led.sh
./led.sh

Napredak u programiranju

izvorni kod programskog jezika

Očito gore navedeno radi za male elektroničke projekte s malo komponenata, ali ako želite stvoriti nešto naprednije, umjesto naredbi, ono što možete koristiti su programski jezici za izradu različitih skripti ili izvornih kodova koji automatiziraju rad.

Mogu se koristiti različiti alati programirati na vrlo različitim jezicima. Biblioteke koje je zajednica razvila znatno vam olakšavaju stvari, kao što su WiringPi, sysfs, pigpio itd. Programi mogu biti najrazličitiji, od Pythona, koji je mnogima omiljena opcija, preko Rubyja, Jave, Perla, BASIC-a, pa čak i C #.

Službeno vam nudi Raspberry Pi mnogo objekata za programiranje GPIO-a, kao što su:

  • grebanje, za one koji ne znaju kako programirati i žele koristiti blokove slagalica ovog projekta s kojima se Arduino također može programirati itd. Programiranje grafičkim blokovima prilično je intuitivno i vrlo praktično za područje obrazovanja.
  • piton: Ovaj jednostavni protumačeni programski jezik omogućava vam stvaranje jednostavnih i moćnih kodova, s mnoštvom biblioteka na raspolaganju za gotovo sve što zamislite.
  • C / C ++ / C #: moćniji su programski jezici za stvaranje binarnih datoteka s kojima će se komunicirati s GPIO-ima. To možete učiniti na nekoliko načina, koristeći standardni obrazac ili sučelje jezgre putem bibliotekelibgpiod, ali i putem biblioteke treće strane kao što je pygium.
  • Obrada3, slično Arduinu.

Izaberite fleksibilno onaj koji vam se najviše sviđa ili mislite da je jednostavan.


4 komentara, ostavi svoj

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

      Neprijatelj rekao je

    Vrlo lijep članak o početku u Rasperryju

         Isaac rekao je

      Hvala lijepo.

           Ruth Medina rekao je

        jesi li ti autor?

             Isaac rekao je

          Da