GPIO: gjithçka rreth lidhjeve Raspberry Pi 4 dhe 3

Raspberry Pi 4 GPIO

L Kunjat GPIO të bordit Raspberry Pi 4, 3, dhe gjithashtu paraardhësit e tij, i sigurojnë bordit SBC aftësi të ngjashme me ato që mund të ketë Arduino, pasi që me ta mund të krijoni projekte elektronike shumë interesante të kontrolluara nga sistemi operativ me anë të kodit në gjuhë të ndryshme, siç është Python.

Kjo e bën bordin më shumë sesa thjesht një kompjuter të lirë. Kjo do t'ju lejojë të lidhni një mori të elemente elektronikë që mund ta përdorni me Arduino, por që mund të kontrollohet edhe nga Pi. Në këtë udhëzues do të përpiqem t'ju jap sa më shumë informacione të jetë e mundur në lidhje me këto kunja GPIO në mënyrë që të filloni të përfitoni prej tyre ...

Çfarë është GPIO?

GPIO

GPIO është shkurtesa për Input / Output të Qëllimit të Përgjithshëm, domethënë, Input / Output i Qëllimit të Përgjithshëm. Produkte të ndryshme elektronike mund ta kenë atë, siç janë vetë patate të skuqura ose borde të caktuara PCB siç është ky Raspberry Pi. Siç sugjeron emri i tyre, ato janë kunja që mund të konfigurohen për të kryer funksione të ndryshme, prandaj ato janë qëllimi i përgjithshëm dhe jo për një përdorim specifik.

Do të jetë përdoruesi në kohën e duhur që mund konfiguroni këto kunja GPIO në mënyrë që ata të bëjnë atë që ai dëshiron. Mund të bëhet në mënyra të ndryshme, të tilla si me disa kode ose skripta nga tastiera ose me programin Python, i cili është një nga mënyrat më të thjeshta dhe më të preferuara për shkak të sasisë së opsioneve që keni në dispozicion.

Në këtë mënyrë, Raspberry Pi jo vetëm që ka një seri portesh dhe Interfaces për të lidhur pajisje të shumëfishta standarde, por shtoni këto kunja GPIO në mënyrë që të mund të shtoni pajisje të tjera elektronike ose projekte të prodhuesve që keni krijuar vetë. Në të njëjtën mënyrë që do të bënit me Arduino dhe kunjat e tij / I për kontroll.

Y jo ekskluzive për Arduino ose Raspberry Pi, kështu bëjnë edhe bordet e tjera të ngjashme SBC dhe produktet e ngulitura.

Karakteristikat GPIO

Dhe midis KARAKTERISTIKAT e saj më të shquar:

  • Ata munden konfigurohet aq shume si hyrje si dalje. Ata kanë atë dualitet siç ndodh me ata të Arduino.
  • Edhe kunjat GPIO mund të aktivizohet dhe çaktivizohet me kod. Kjo është, ato mund të vendosen në 1 (niveli i tensionit të lartë) ose 0 (niveli i tensionit të ulët).
  • Sigurisht që munden lexoni të dhëna binare, si ato dhe zero, që do të thotë, sinjal i tensionit ose mungesa e tij.
  • Vlerat e prodhimit të Të lexuarit dhe të shkruarit.
  • Vlerat e hyrjes mund të konfigurohen në disa raste si ngjarje në mënyrë që ato të gjenerojnë një lloj veprimi në bord ose sistem. Disa sisteme të ngulitura i përdorin ato si IRQ. Një rast tjetër është të konfiguroni që kur një ose më shumë kunja janë aktive nga sensorë të caktuar, kryeni një veprim ...
  • Sa i përket tensionit dhe intensitetit, duhet të dini mirë kapacitetet maksimale të pranueshme për bordin, në këtë rast Raspberry Pi 4 ose 3. Ju nuk duhet t'i kaloni ato për të shmangur dëmtimin e tij.

Nga rruga, kur një grup kunjash GPIO grupohet, siç është rasti me Raspberry Pi, grupi njihet si Porti GPIO.

Kunjat GPIO të Raspberry Pi

Raspberry Pi GPIO

Skema e vlefshme për versionin 4, 3, Zero

I riu Bordet Raspberry Pi 4 dhe versioni 3 Ato janë të pajisura me një numër të madh të kunjave GPIO. Jo të gjitha versionet ofrojnë të njëjtën shumë, dhe as nuk janë të numëruara në të njëjtën mënyrë, kështu që duhet të keni kujdes me këtë që të dini mirë se si duhet ta bëni lidhjen sipas modelit dhe rishikimit që keni.

Por ajo që është më e përgjithshme është llojet e GPIO që mund të gjeni në portin e tabelave Raspberry Pi. Dhe kjo do të jetë gjëja e parë që do të doja ta bëja të qartë, pasi kështu do ta dini llojet e kunjave mund të mbështeteni në projektet tuaja:

  • ushqim: këto kunja përdoren për të lidhur linjat e energjisë ose instalimet elektrike për projektet tuaja elektronike. Ata korrespondojnë me kunja të ngjashëm me ato në bordin Arduino, dhe që sigurojnë tensione prej 5v dhe 3v3 (3.3v të kufizuar në ngarkesë 50mA). Përveç kësaj, do të gjeni edhe ato tokësore (GND ose Ground). Nëse nuk përdorni burime të jashtme të energjisë të tilla si bateri, ose adaptorë, këto kunja mund t'ju ndihmojnë shumë për të furnizuar qarkun tuaj.
  • DNC (Mos u Lidh): ato janë kunja që janë në disa versione dhe që nuk kanë asnjë funksion, por që në bordet e reja atyre u është dhënë një qëllim tjetër. Këto do t'i gjeni vetëm në modelet më primitive të Pi. Në 3 dhe 4 të reja ata do të shënohen si GND përgjithësisht, duke qenë në gjendje të integrohen në grupin e mëparshëm.
  • Kunjat e konfigurueshme: Ato janë GPIO-të normale dhe ato mund të programohen me kode siç do t'ju shpjegoj më vonë për të bërë atë që ju nevojitet.
  • Kunjat speciale: këto janë disa lidhje që janë të destinuara për lidhje ose ndërfaqe speciale si lidhjet seriale UART, TXD dhe RXD, etj, siç ndodh me Arduino. Do të gjeni madje disa si SDA, SCL, MOSI, MISO, SCLK, CE0, CE1, etj. Ata dallohen midis tyre:
    • PWM, e cila mund të rregullojë gjerësinë e pulsit siç pamë në një artikull të mëparshëm. Në Raspberry Pi 3 dhe 4 ato janë GPIO12, GPIO13, GPIO18 dhe GPIO19.
    • SPI është një ndërfaqe tjetër komunikimi që diskutova edhe në një artikull tjetër. Në rastin e bordeve të reja 40-pin, ato janë kunjat (me kanale të ndryshme komunikimi siç mund ta shihni):
      • 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 është një lidhje tjetër që e kam shpjeguar edhe në këtë blog. Ky autobus përbëhet nga sinjali i të dhënave (GPIO2) dhe ora (GPIO3). Përveç të dhënave EEPROM (GPIO0) dhe orës EEPROM (GPIO1).
    • Serial, një komunikim tjetër shumë praktik me kunjat TX (GPIO14) dhe RX (GPIO15) si ato që mund të gjesh në bord Arduino UNO.

Mos harroni se GPIO-të janë ndërfaqja midis Raspberry Pi dhe botës së jashtme, por ato kanë kufizimet e tij, sidomos elektrike. Diçka që duhet të merrni parasysh në mënyrë që të mos prishni tabelën është të mbani mend se këto kunja GPIO zakonisht nuk zhbllokohen, domethënë pa buffer. Kjo do të thotë që ata nuk kanë mbrojtje, prandaj duhet të monitoroni madhësitë e tensionit dhe intensitetit të aplikuar në mënyrë që të mos përfundoni me një pllakë të padobishme ...

Dallimet GPIO midis versioneve

Kunjat e vjetra Raspberry Pi GPIO

Siç thashë, jo të gjitha modelet janë kunjat e njëjtëKëtu janë disa diagrame, kështu që ju mund të shihni ndryshimet midis modeleve dhe kështu të jeni në gjendje të përqendroheni në Raspberry Pi 4 dhe 3, të cilat janë më të rejat dhe ato që ndoshta keni në zotërimin tuaj. Ai ndryshon midis (të gjithë grupet ndajnë të njëjtat kunja):

  • Raspberry Pi 1 Model B Rev 1.0, me 26-kunja pak më ndryshe nga Rev2.
  • Raspberry Pi 1 Modeli A dhe B Rev 2.0, të dy modele me 26-pin.
  • Rapsberry Pi Model A +, B +, 2B, 3B, 3B +, Zero dhe Zero W, dhe gjithashtu 4 modele. Të gjithë me një kokë GPIO 40-pin.

Çfarë mund të futem në GPIO?

Kapelë Raspberry Pi

Ju jo vetëm që do të jeni në gjendje të bëni lidhni pajisjet elektronike si tranzitorë, sensorë të lagështisë / temperaturës, termistorët, motorë me hapa, LEDs, etj Ju gjithashtu mund të lidhni komponentët ose modulet e krijuara posaçërisht për Raspberry Pi dhe që zgjerojnë aftësitë e bordit përtej asaj që përfshihet në bazë.

Po i referohem të famshmes kapele ose kapele dhe pllaka që mund t’i gjeni në treg. Ka shumë lloje, nga ato që përdoren për të kontrolluar motorët me drejtuesit, te të tjerët për të krijuar një grup kompjuterik, Me Panel LED e kontrollueshme, për të shtuar Aftësia e TV DVB, Ekran LCD, Etj

Këto kapele ose kapele Ata janë montuar në bordin Raspberry Pi, që përputhen me GPIO-të e nevojshme për të funksionuar. Prandaj, montimi i tij është mjaft i thjeshtë dhe i shpejtë. Sigurisht, sigurohuni që versioni i pllakës është i pajtueshëm me secilën kapelë, pasi porta GPIO është e ndryshme siç e keni parë ...

E them këtë në rast se keni një pjatë më të vjetër, pasi kapelet janë e pajtueshme vetëm me më të rejat. Siç janë modelet Raspberry Pi Model A +, B +, 2, 3 dhe 4.

Hyrje në përdorimin e GPIO në Raspberry Pi

Dalja e komandës Pinout

Burimi: Raspberry Pi

Për të filluar, në Raspbian, mund të hapni konsolën dhe të shtypni komanda fiksojAjo që do t'ju kthejë është një imazh në terminal me kunjat GPIO të disponueshëm në bordin tuaj dhe atë për të cilën secili është. Diçka shumë praktike për ta pasur gjithmonë të pranishme në momentin e punës në mënyrë që të mos ngatërroheni.

Projekti i parë: ndezja e një LED me GPIO-të

GPIO me LED në Raspberry Pi

Mënyra më themelore për të bërë një lloj "Përshëndetje botë" me GPIO është të përdorni një LED të thjeshtë të lidhur me kunjat e Raspberry Pi në mënyrë që të shihni se si funksionojnë. Në këtë rast, unë e kam lidhur atë me GND dhe tjetri në pin 17, megjithëse mund të zgjidhni një tjetër nga kunjat normale ...

Pasi të lidheni, mundeni kontrolloni ato nga Raspbian duke përdorur terminalin. Në Linux, skedarët specifikë përdoren si ato në drejtorinë / sys / class / gpio /. Për shembull, për të krijuar një skedar me strukturën e nevojshme për të filluar punën:

echo 17 > /sys/class/gpio/export

Atëherë mundeni konfiguroni si një hyrje (në) ose si një dalje (jashtë) ajo kunja 17 e zgjedhur për shembullin tonë. Ju mund ta bëni atë shumë lehtë me:

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

Në këtë rast si dalje, pasi që ne duam të dërgojmë një impuls elektrik në LED për ta ndezur, por nëse do të ishte një sensor, etj., Mund ta përdorni. Tani për ndez (1) ose fik (0) LED që mund të përdorni:

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

Nëse doni të kaloni në një projekt tjetër dhe fshini hyrjen krijuar, ju mund ta bëni në këtë mënyrë:

echo 17 > /sys/class/gpio/unexport

Nga rruga, ju gjithashtu mund të mblidhni të gjitha komandat e nevojshme për projektin tuaj, si të gjitha ato të mëparshme, t'i ruani ato në një lloj skedari skenari bash dhe pastaj drejtoji ato në një pako menjëherë, në vend që t'i shtypësh një nga një. Kjo është e dobishme kur përsërisni të njëjtin ushtrim shumë herë, kështu që nuk keni pse të rishkruani. Thjesht vrapo dhe shko. Për shembull:

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

Pasi të keni mbaruar, ju kurseni dhe më pas mund t'i jepni lejet e duhura të ekzekutimit dhe ekzekutimit skenarin që LED të ndizet, prisni 1.3 sekonda dhe fikuni kështu në një lak ...

chmod +x led.sh
./led.sh

Përparimi i programimit

kodi burimor i gjuhës programuese

Padyshim që më lart funksionon për projekte të vogla elektronike me pak përbërës, por nëse doni të krijoni diçka më të përparuar, në vend të komandave, ato që mund të përdorni janë gjuhë programimi për të bërë skripte të ndryshme ose kodet burimore që automatizojnë operacionin.

Ato mund të përdoren mjete të ndryshme për të programuar, me gjuhë shumë të ndryshme. Bibliotekat që komuniteti ka zhvilluar i bëjnë gjërat shumë më të lehta për ju, të tilla si WiringPi, sysfs, pigpio, etj. Programet mund të jenë shumë të larmishme, nga Python, i cili është opsioni i preferuar i shumë njerëzve, përmes Ruby, Java, Perl, BASIC, madje edhe C #.

Zyrtarisht, Raspberry Pi ju ofron shumë lehtësira për të programuar GPIO-të tuaja, të tilla si:

  • Zeroja, për ata që nuk dinë të programojnë dhe duan të përdorin blloqet e enigmave të këtij projekti me të cilët mund të programohet edhe Arduino, etj. Programimi me blloqe grafike është mjaft intuitiv dhe shumë praktik për fushën e arsimit.
  • Piton: Kjo gjuhë e thjeshtë e programuar e interpretuar ju lejon të krijoni kode të thjeshta dhe të fuqishme, me një mori bibliotekash në dispozicionin tuaj për të bërë pothuajse gjithçka që imagjinoni.
  • C / C ++ / C #: janë gjuhë programimi më të fuqishme për të krijuar binare me të cilat bashkëveprojnë me GPIO-të. Mund ta bëni në disa mënyra, duke përdorur formën standarde ose ndërfaqen e bërthamës përmes bibliotekëslibgpiod, por edhe përmes një biblioteke të palëve të treta si p.sh. derrkuc.
  • Përpunimi3, e ngjashme me Arduino.

Zgjidhni në mënyrë fleksibile ai që ju pëlqen më shumë ose mendoni se është i thjeshtë.


4 komente, lini tuajën

Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   armik dijo

    Artikull shumë i bukur për fillimin në Rasperry

    1.    Isaac dijo

      Shumë falemnderit.

      1.    Ruth Medina dijo

        jeni ju autori?

        1.    Isaac dijo

          Po