The 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 sustava pomoću koda na različitim jezicima, poput Pythona.
To ploču čini više od pukog jeftinog računala. Omogućit će vam povezivanje mnoštva elektronički elementi koji možete koristiti s Arduinom, ali kojim 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 ...
Što je 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 i samo ime govori, to su pribadače 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 taj je 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, na primjer s određenim kodovima ili skriptama s konzole ili s programom Python, što je jedan od najjednostavnijih i najpoželjnijih načina zbog količine mogućnosti kojima raspolažete.
Na taj način, Raspberry Pi ne samo da ima niz priključaka i sučelja za povezivanje više standardnih uređaja, ali dodajte ove GPIO pribadače kako biste mogli dodati druge elektroničke uređaje ili izrađivačke projekte koje ste sami stvorili. 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.
Značajke GPIO
I između njezine KARAKTERISTIKE najistaknutiji:
- Oni mogu biti konfiguriran tako kao ulaz kao izlaz. Oni imaju tu dualnost kao što se to događa onima od Arduino.
- GPIO igle također može se aktivirati i deaktivirati kodom. Odnosno, mogu se postaviti na 1 (razina visokog napona) ili 0 (razina niskog napona).
- Naravno da mogu čitati binarne podatke, kao jedinice i nule, odnosno signal napona ili njegov odsustvo.
- Izlazne vrijednosti Čitanje i pisanje.
- Ulazne vrijednosti mogu se u nekim slučajevima konfigurirati kao Događanja tako da generiraju neku vrstu radnje na ploči ili sustavu. Neki ih ugrađeni sustavi koriste kao IRQ-ove. Drugi je slučaj konfigurirati 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 prolaziti kako biste je izbjegli oštetiti.
Inače, kada se grupira skupina GPIO pinova, kao što je slučaj s Raspberry Pi, grupa je poznata kao GPIO priključak.
GPIO pribadače na Raspberry Pi
Novo Ploče Raspberry Pi 4 i verzija 3 Opremljeni su velikim brojem GPIO pinova. Ne nude sve verzije jednak iznos niti su numerirane na isti način, pa morate biti oprezni s tim da biste dobro znali kako biste trebali uspostaviti vezu prema modelu i reviziji koju imate.
No, generičnije su vrste GPIO-a koje možete pronaći u luci Raspberry Pi ploča. I to će biti prvo što bih želio razjasniti, budući da ćete na ovaj način znati vrste pribadača možete računati na svoje projekte:
- hranjenjeTe se igle koriste za spajanje 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). Uz to ćete pronaći i one uzemljene (GND ili Ground). Ako ne upotrebljavate 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 nikakvu funkciju, ali da su na novim pločama dobile drugu svrhu. Naći ćete ih samo u primitivnijim modelima Pija. U nova 3 i 4 bit će označeni kao GND općenito, moći integrirati u prethodnu skupinu.
- Podesive igle: oni su uobičajeni GPIO i mogu se programirati kodovima kao što ću kasnije objasniti da učinite ono što trebate.
- Posebne pribadače: 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 raspravljao 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. Ovu sabirnicu čine podatkovni signal (GPIO2) i sat (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.
Ne zaboravite 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 nebuferirani, 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 inačica
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 vjerojatno imate. Razlikuje se (sve skupine imaju iste igle):
- Raspberry Pi 1 Model B Rev 1.0, s 26-pinom malo se razlikuje od Rev2.
- Raspberry Pi 1 Model A i B Rev 2.0, oba modela s 26-pinova.
- Rapsberry Pi Model A +, B +, 2B, 3B, 3B +, Zero i Zero W, a također i 4 modela, svi s 40-pinskim GPIO zaglavljem.
Što mogu priključiti na GPIO?
Ne samo da ćete moći spojiti elektroničke uređaje kao tranzistori, senzori vlage / temperature, termistori, koračni motori, LEDitd. Također možete povezati komponente ili module stvorene posebno za Raspberry Pi i koji proširuju mogućnosti ploče izvan onoga što je uključeno u bazu.
Mislim na slavne šeširi ili šeširi i ploče koje možete pronaći na tržištu. Postoje mnoge vrste, od onih koje se koriste za upravljanje motorima s vozačima, do drugih za stvaranje računalni klaster, S LED ploča kontrolirati, dodati Mogućnost DVB TV-a, LCD zaslon, 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 ...
Kažem to za slučaj da imate stariju pločicu, jer šeširi jesu kompatibilan samo s najnovijim. Kao i modeli Raspberry Pi A +, B +, 2, 3 i 4.
Uvod u upotrebu GPIO-a na Raspberry Pi
Za početak na Raspbian-u možete otvoriti konzolu i upisati naredba pinoutVratit ć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 projekt: treperenje LED diode s GPIO-ima
Najosnovniji način izrade vrste "Pozdrav svijetu" s GPIO-ima je korištenje jednostavne LED diode spojene na igle 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 odabran 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 koristiti u. 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 stvoreno, 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 snopovima, umjesto da ih upisujete jednu po jednu. To je zgodno kad 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
Kad završite, spremite i tada mu možete dati odgovarajuća dopuštenja 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
Programiranje unaprijed
Očito gore navedeno funkcionira za male elektroničke projekte s malo komponenata, ali ako želite stvoriti nešto naprednije, umjesto naredbi, ono što možete koristiti su programskih jezika za izradu različitih skripti ili izvornih kodova koji automatiziraju rad.
Mogu se koristiti različitih alata programirati na vrlo različitim jezicima. Biblioteke koje je zajednica razvila znatno vam olakšavaju stvari, poput WiringPi, sysfs, pigpio itd. Programi mogu biti vrlo raznoliki, 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:
- Zagrebite, za one koji ne znaju 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 je praktično za područje obrazovanja.
- Piton: Ovaj jednostavni protumačeni programski jezik omogućuje vam stvaranje jednostavnih i moćnih kodova, s mnoštvom knjižnica na raspolaganju za gotovo sve što zamislite.
- C / C ++ / C #: oni su moćniji programski jezici za stvaranje binarnih datoteka s kojima će komunicirati s GPIO-ima. To možete učiniti na nekoliko načina, koristeći standardni obrazac ili sučelje jezgre putem knjižnicelibgpiod, 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.
Vrlo lijep članak o početku u Rasperryju
Puno hvala.
jesi li ti autor?
Da