GPIO: totul despre conexiunile Raspberry Pi 4 și 3

Raspberry Pi 4 GPIO

L Pinii GPIO ai plăcii Raspberry Pi 4, 3și, de asemenea, predecesorii săi, oferă consiliului SBC capacități similare cu cele pe care le poate avea Arduino, deoarece cu acestea puteți crea proiecte electronice foarte interesante controlate din sistemul de operare prin intermediul codului în diferite limbi, cum ar fi Python.

Asta face ca placa să fie mai mult decât un computer ieftin. Vă va permite să vă conectați o multitudine de elemente electronice pe care îl puteți folosi cu Arduino, dar care poate fi controlat și din Pi. În acest ghid voi încerca să vă ofer cât mai multe informații despre acești pini GPIO, astfel încât să puteți începe să profitați de ei ...

Ce este GPIO?

GPIO

GPIO este acronimul pentru General Purpose Input / Output, adică General Purpose Input / Output. Diferite produse electronice îl pot avea, cum ar fi cipurile în sine sau anumite plăci PCB, cum ar fi acest Raspberry Pi. După cum sugerează și numele, sunt ace care pot fi configurate pentru a îndeplini diferite funcții, prin urmare sunt de uz general și nu pentru o utilizare specifică.

Acesta va putea fi utilizatorul în timpul rulării configurați acei pini GPIO astfel încât să facă ce vrea el. Se poate face în diferite moduri, cum ar fi cu anumite coduri sau scripturi de pe consolă sau cu programul Python, care este una dintre cele mai simple și preferate modalități datorită cantității de opțiuni pe care le aveți la dispoziție.

În acest fel, Raspberry Pi nu numai că are o serie de porturi și interfeţe pentru a conecta mai multe dispozitive standard, dar adăugați acești pini GPIO, astfel încât să puteți adăuga alte dispozitive electronice sau proiecte de producător pe care le-ați creat singuri. În același mod pe care l-ați face cu Arduino și pinii I / O ai acestuia pentru control.

Y nu exclusiv pentru Arduino sau Raspberry Pi, la fel și alte plăci SBC similare și produse încorporate.

Caracteristici GPIO

Și între CARACTERISTICILE ei cele mai remarcabile:

  • Ei pot să fie configurat așa ca intrare ca ieșire. Au această dualitate așa cum li se întâmplă celor din Arduino.
  • Știfturile GPIO poate fi activat și dezactivat după cod. Adică pot fi setate la 1 (nivel de tensiune înaltă) sau 0 (nivel de tensiune scăzută).
  • Bineînțeles că pot citiți date binare, ca cele și zerourile, adică semnalul de tensiune sau absența acestuia.
  • Valorile de ieșire ale Citire si scriere.
  • Valorile de intrare pot fi configurate în unele cazuri ca Evenimente astfel încât să genereze un tip de acțiune pe tablă sau sistem. Unele sisteme încorporate le folosesc ca IRQ-uri. Un alt caz este să configurați că atunci când unul sau mai mulți pini sunt activi de către anumiți senzori, efectuați o acțiune ...
  • În ceea ce privește tensiunea și intensitatea, trebuie să cunoașteți bine capacitățile maxime acceptabile pentru placă, în acest caz Raspberry Pi 4 sau 3. Nu ar trebui să le treceți pentru a evita deteriorarea acesteia.

Apropo, atunci când un grup de pini GPIO este grupat, așa cum este cazul Raspberry Pi, grupul este cunoscut ca Port GPIO.

Pinii GPIO ai Raspberry Pi

Raspberry Pi GPIO

Schema valabilă pentru versiunea 4, 3, Zero

Noul Plăcile Raspberry Pi 4 și versiunea 3 Sunt echipate cu un număr mare de pini GPIO. Nu toate versiunile oferă aceeași sumă și nici nu sunt numerotate în același mod, așa că trebuie să fii atent cu aceasta pentru a ști bine cum ar trebui să faci conexiunea în funcție de modelul și revizuirea pe care o ai.

Dar ceea ce este mai generic este tipurile de GPIO pe care le puteți găsi în portul plăcilor Raspberry Pi. Și acesta va fi primul lucru pe care aș dori să-l precizez, deoarece așa veți ști tipurile de ace te poți baza pe proiectele tale:

  • hrănireAcești pini sunt utilizați pentru a conecta liniile de alimentare sau cablurile pentru proiectele dvs. electronice. Acestea corespund unor pini similari cu cei de pe placa Arduino și care furnizează tensiuni de 5v și 3v3 (3.3v limitat la 50mA sarcină). În plus, veți găsi și cele de la sol (GND sau Ground). Dacă nu utilizați surse de alimentare externe, cum ar fi baterii sau adaptoare, acești pini vă pot fi de mare ajutor pentru a vă alimenta circuitul.
  • DNC (Nu vă conectați): sunt ace care sunt în unele versiuni și care nu au nicio funcție, dar că în noile plăci li s-a dat un alt scop. Le veți găsi doar în modele mai primitive ale Pi. În noile 3 și 4 acestea vor fi marcate ca GND în general, putându-se integra în grupul anterior.
  • Pinii configurabili: sunt GPIO-urile normale și pot fi programate prin coduri așa cum vă voi explica mai târziu pentru a face ceea ce aveți nevoie.
  • Pinii speciali: acestea sunt câteva conexiuni care sunt destinate conexiunilor speciale sau interfețelor precum conexiunile seriale UART, TXD și RXD etc., așa cum se întâmplă cu Arduino. Veți găsi chiar și unele precum SDA, SCL, MOSI, MISO, SCLK, CE0, CE1 etc. Se remarcă printre ei:
    • PWM, care poate regla lățimea impulsului așa cum am văzut într-un articol anterior. Pe Raspberry Pi 3 și 4 acestea sunt GPIO12, GPIO13, GPIO18 și GPIO19.
    • SPI este o altă interfață de comunicare pe care am discutat-o ​​și într-un alt articol. În cazul noilor plăci cu 40 de pini, acestea sunt pini (cu canale de comunicare diferite, după cum puteți vedea):
      • 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 este o altă conexiune pe care am explicat-o și în acest blog. Această magistrală este alcătuită din semnalul de date (GPIO2) și ceasul (GPIO3). În plus față de datele EEPROM (GPIO0) și ceasul EEPROM (GPIO1).
    • Serial, o altă comunicare foarte practică cu pinii TX (GPIO14) și RX (GPIO15) precum cei pe care îi puteți găsi pe tablă Arduino UNO.

Amintiți-vă că GPIO-urile sunt interfața dintre Raspberry Pi și lumea exterioară, dar au limitările sale, mai ales electric. Ceva de care trebuie să țineți cont pentru a nu strica placa este să vă amintiți că acești pini GPIO sunt de obicei fără tampon, adică fără tampon. Aceasta înseamnă că nu au protecție, deci trebuie să monitorizați magnitudinile de tensiune și intensitate aplicate pentru a nu ajunge la o placă inutilă ...

Diferențe GPIO între versiuni

Vechi pin Raspberry Pi GPIO

Așa cum am spus, nu toate modelele sunt aceleași piniIată câteva diagrame, astfel încât să puteți vedea diferențele dintre modele și astfel să vă puteți concentra asupra Raspberry Pi 4 și 3, care sunt cele mai noi și pe care probabil le aveți în posesia dvs. Diferă între (fiecare grup împarte aceleași pini):

  • Raspberry Pi 1 Model B Rev 1.0, cu 26 de pini ușor diferit de Rev2.
  • Raspberry Pi 1 Model A și B Rev 2.0, ambele modele cu 26 de pini.
  • Rapsberry Pi Model A +, B +, 2B, 3B, 3B +, Zero și Zero W, precum și 4 modele. Toate acestea cu un antet GPIO cu 40 de pini.

Ce pot conecta la GPIO-uri?

Pălărie Raspberry Pi

Nu vei putea doar conectați dispozitive electronice ca tranzistoare, senzori de umiditate / temperatură, termistori, motoare pas cu pas, LED-uri, etc. De asemenea, puteți conecta componente sau module create special pentru Raspberry Pi și care extind capacitățile plăcii dincolo de ceea ce este inclus în bază.

Mă refer la faimos pălării sau pălării și plăci pe care le puteți găsi pe piață. Există multe tipuri, de la cele folosite pentru a controla motoarele cu drivere, până la altele pentru a crea un cluster de calcul, Cu Panou LED controlabil, pentru a adăuga Capacitate TV DVB, ecran LCD, Etc

Aceste pălării sau pălării Sunt montate pe placa Raspberry Pi, potrivirea GPIO-urilor necesare pentru ca acesta să funcționeze. Prin urmare, asamblarea sa este destul de simplă și rapidă. Desigur, asigurați-vă că versiunea cu placă este compatibilă cu fiecare pălărie, deoarece portul GPIO este diferit așa cum ați văzut ...

Spun asta în cazul în care aveți o farfurie mai veche, deoarece pălăriile sunt compatibil doar cu cele mai noi. La fel și modelele Raspberry Pi Model A +, B +, 2, 3 și 4.

Introducere în utilizarea GPIO pe Raspberry Pi

Ieșire comandă Pinout

Sursa: Raspberry Pi

Pentru a începe, pe Raspbian, puteți deschide consola și tastați comanda pinoutCeea ce vă va reveni este o imagine din terminal cu pinii GPIO disponibili pe placa dvs. și la ce servește fiecare. Ceva foarte practic pentru a-l avea mereu prezent în momentul muncii, astfel încât să nu vă confundați.

Primul proiect: intermitentul unui LED cu GPIO-urile

GPIO cu LED pe Raspberry Pi

Cel mai simplu mod de a face un fel de „Hello world” cu GPIO-uri este să folosiți un LED simplu conectat la pinii Raspberry Pi, astfel încât să puteți vedea cum funcționează. În acest caz, l-am conectat la GND și celălalt la pinul 17, deși puteți alege un alt pin normal ...

Odată conectat, puteți controlează-i de la Raspbian folosind terminalul. În Linux, fișiere specifice sunt utilizate ca cele din directorul / sys / class / gpio /. De exemplu, pentru a crea un fișier cu structura necesară pentru a începe să funcționeze:

echo 17 > /sys/class/gpio/export

Atunci poti configurați ca intrare (intrare) sau ca ieșire (ieșire) acel pin 17 ales pentru exemplul nostru. O puteți face foarte ușor cu:

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

În acest caz, ca ieșire, din moment ce dorim să trimitem un impuls electric la LED pentru a-l aprinde, dar dacă ar fi un senzor etc., ați putea folosi. Acum pentru porniți (1) sau opriți (0) LED-ul pe care îl puteți utiliza:

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

Dacă doriți să treceți la un alt proiect și ștergeți intrarea creat, puteți face acest lucru:

echo 17 > /sys/class/gpio/unexport

Apropo, puteți aduna, de asemenea, toate comenzile necesare pentru proiectul dvs., ca toate cele anterioare, să le salvați într-un tip de fișier script bash și apoi rulați-le într-un pachet simultan, în loc să le tastați unul câte unul. Acest lucru este la îndemână atunci când repetați același exercițiu de multe ori, deci nu trebuie să rescrieți. Fugi și pleacă. De exemplu:

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

După ce terminați, salvați și apoi îi puteți oferi permisiunile de executare și executare corespunzătoare scenariul pentru ca LED-ul să se aprindă, așteptați 1.3 secunde și opriți-vă astfel într-o buclă ...

chmod +x led.sh
./led.sh

Programare în avans

cod sursă de limbaj de programare

Evident, cele de mai sus funcționează pentru proiecte electronice mici, cu puține componente, dar dacă doriți să creați ceva mai avansat, în loc de comenzi, ceea ce puteți folosi sunt limbaje de programare pentru a crea diferite scripturi sau coduri sursă care automatizează operațiunea.

Pot fi folosite instrumente diferite pentru a programa, cu limbaje foarte diferite. Bibliotecile dezvoltate de comunitate vă fac lucrurile mult mai ușoare, cum ar fi WiringPi, sysfs, pigpio etc. Programele pot fi foarte variate, de la Python, care este opțiunea preferată a multora, prin Ruby, Java, Perl, BASIC și chiar C #.

Oficial, Raspberry Pi vă oferă multe facilități pentru a vă programa GPIO-urile, cum ar fi:

  • Scratch, pentru cei care nu știu să programeze și doresc să folosească blocurile de puzzle ale acestui proiect cu care poate fi programat și Arduino etc. Programarea cu blocuri grafice este destul de intuitivă și foarte practică pentru domeniul educației.
  • Piton: Acest limbaj de programare interpretat simplu vă permite să creați coduri simple și puternice, cu o multitudine de biblioteci la dispoziția dvs. pentru a face aproape tot ce vă imaginați.
  • C / C ++ / C #: sunt limbaje de programare mai puternice pentru a crea binare cu care să interacționeze cu GPIO-urile. Puteți face acest lucru în mai multe moduri, utilizând formularul standard sau interfața kernel prin intermediul biblioteciilibgpiod, dar și printr-o bibliotecă terță, cum ar fi pigio.
  • Prelucrare3, similar cu Arduino.

Alegeți flexibil cel care îți place cel mai mult sau crezi că este simplu.


Conținutul articolului respectă principiile noastre de etică editorială. Pentru a raporta o eroare, faceți clic pe aici.

Fii primul care comenteaza

Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.