GPIO: tanan bahin sa koneksyon sa Raspberry Pi 4 ug 3

Raspberry Pi 4 GPIO

ang Ang mga GPIO nga pin sa board nga Raspberry Pi 4, ang 3, ug usab ang mga gisundan niini, paghatag sa SBC board nga adunay mga kaarang nga parehas sa mahimo sa Arduino, tungod kay kauban nimo makahimo ka og mga makaikag nga mga elektronik nga proyekto nga kontrolado gikan sa operating system pinaagi sa code sa lainlaing sinultian, sama sa Python

Nga naghimo sa board labi pa sa usa ka barato nga kompyuter. Tugotan ka nga magkonektar sa daghang mga electronic nga mga elemento nga mahimo nimo gamiton sa Arduino, apan mahimo usab kini makontrol gikan sa Pi. Sa kini nga panudlo paningkamutan nako nga hatagan ka daghang impormasyon kutob sa mahimo bahin sa mga GPIO pin aron masugdan nimo ang pagpahimulos sa kanila ...

Unsa ang GPIO?

GPIO

GPIO mao ang singkubo alang sa Kinatibuk-ang Katuyoan nga Pag-input / Paggawas, kana mao, Kinatibuk-ang Katuyoan nga Pag-input / Paggawas. Ang lainlaing mga elektronik nga produkto mahimo’g adunay kini, sama sa mga chip mismo o pila ka mga board sa PCB sama sa kini nga Raspberry Pi. Ingon sa gisugyot sa ngalan, sila mga lagdok nga mahimo’g ma-configure aron mahimo ang lainlaing mga gimbuhaton, busa kini kadaghanan nga katuyoan ug dili alang sa usa ka piho nga paggamit.

Kini ang mogamit sa bisan unsang oras nga makahimo i-configure kini nga mga GPIO pin aron mabuhat nila ang iyang gusto. Mahimo kini sa lainlaing mga paagi, sama sa piho nga mga code o script gikan sa console o sa programa sa Python, nga usa sa pinakasayon ​​ug labing gusto nga paagi tungod sa kadaghan nga mga kapilian nga anaa kanimo.

Sa kini nga paagi, ang Raspberry Pi dili lamang adunay usa ka serye sa mga pantalan ug mga interface aron makakonektar sa daghang mga sagad nga aparato, apan idugang kini nga mga GPIO pin aron madugangan nimo ang uban pang mga elektronik nga aparato o mga proyekto sa tighimo nga imong kaugalingon ang naghimo. Sa parehas nga paagi nga gusto nimo sa Arduino ug ang I / O nga mga lagdok alang sa pagpugong.

Y dili eksklusibo sa Arduino o Raspberry Pi, mao usab ang uban pang mga susama nga SBC board ug mga naka-embed nga produkto.

Naglihok ang GPIO

Ug taliwala ang iyang CARACTERISTICS labing talagsaon:

  • Mahimo kini ma-configure daghan kaayo ingon input ingon output. Adunay sila kana nga dualitas kung mahitabo sa mga sa Arduino.
  • Ang mga GPIO pin usab mahimong maaktibo ug ma-deactivate pinaagi sa code. Kana mao, mahimo sila ibutang sa 1 (taas nga lebel sa boltahe) o 0 (ubos nga lebel sa boltahe).
  • Siyempre mahimo nila basaha ang datos nga binary, sama sa mga ug zero, kana mao, signal sa boltahe o pagkawala niini.
  • Mga kantidad sa output sa Pagbasa ug pagsulat.
  • Ang mga kantidad sa pag-input mahimong ma-configure sa pipila nga mga kaso ingon mga panghitabo aron makahimo sila usa ka klase nga aksyon sa board o system. Ang pipila nga mga naka-embed nga sistema naggamit kanila ingon mga IRQ. Ang usa pa nga kaso mao ang pag-configure nga kung ang usa o labaw pa nga mga lagdok aktibo sa pipila nga mga sensor, paghimo og pipila nga aksyon ...
  • Mahitungod sa boltahe ug kusog, kinahanglan nimo mahibal-an pag-ayo ang labing kadaghan nga mga kapasidad nga madawat alang sa pisara, sa kini nga kaso ang Raspberry Pi 4 o 3. Dili nimo kini ipasa aron malikayan nga madaut kini.

Pinaagi sa dalan, kung ang usa ka grupo sa mga pin sa GPIO gitapok, sama sa kaso sa Raspberry Pi, ang grupo naila nga Pantalan sa GPIO.

Ang mga GPIO nga pin sa Raspberry Pi

Raspberry Pi GPIO

Balido ang iskema alang sa bersyon 4, 3, Zero

Ang bag-o Raspberry Pi 4 boards ug bersyon 3 Gisangkapan sila sa daghang numero nga mga GPIO nga pin. Dili tanan nga mga bersyon nagtanyag parehas nga kantidad, ni giihap sa parehas nga paagi, busa kinahanglan nga mag-amping ka niini aron mahibal-an og maayo kung giunsa nimo mahimo ang koneksyon sumala sa modelo ug pagbag-o nga anaa kanimo.

Apan kung unsa ang labi ka hayag mao ang mga lahi sa GPIO nga mahimo nimo makit-an sa pantalan sa mga board nga Raspberry Pi. Ug kana ang una nga butang nga gusto nakong ipatin-aw, tungod kay kana ang nahibal-an nimo ang mga klase nga pin makasalig ka sa imong mga proyekto:

  • PagkaonAng kini nga mga lagdok gigamit aron makakonektar sa mga linya sa kuryente o mga kable alang sa imong mga elektronik nga proyekto. Nahiangay sila sa mga lagdok nga parehas sa naa sa Arduino board, ug nga naghatag voltages nga 5v ug 3v3 (3.3v nga gikutuban sa 50mA nga karga). Dugang pa, makit-an usab nimo ang mga ground ground (GND o Ground). Kung dili ka mogamit mga panggawas nga kuryente sa gawas sama sa mga baterya, o adapter, kini nga mga lagdok mahimong makatabang kaayo aron mapadagan ang imong circuit.
  • DNC (Ayaw Pagdugtong): sila mga pin nga naa sa pipila ka mga bersyon ug nga wala’y gimbuhaton, apan nga sa bag-ong mga board gihatagan sila usa pa nga katuyoan. Mahibal-an ra nimo kini sa labi ka una nga mga modelo sa Pi. Sa bag-ong 3 ug 4 markahan sila ingon GND sa kinatibuk-an, nga mahimo’g mahiusa sa miaging grupo.
  • Ang mga configure nga mga lagdok: Sila ang normal nga mga GPIO, ug mahimo sila maprograma sa mga code ingon nga ipatin-aw nako sa ulahi aron mahimo ang imong kinahanglan.
  • Espesyal nga mga lagdok: kini ang pipila ka mga koneksyon nga gituyo alang sa mga espesyal nga koneksyon o interface sama sa UART, TXD ug RXD serial nga mga koneksyon, ug uban pa, sama sa nahinabo sa Arduino. Makita pa nimo ang pipila sama sa SDA, SCL, MOSI, MISO, SCLK, CE0, CE1, ubp. Nagtindog sila taliwala sa ila:
    • PWM, nga makontrol ang gilapdon sa pulso sama sa nakita namon sa miaging artikulo. Sa Raspberry Pi 3 ug 4 sila ang GPIO12, GPIO13, GPIO18 ug GPIO19.
    • Ang SPI usa pa ka interface sa komunikasyon nga gihisgutan usab nako sa laing artikulo. Sa kaso sa bag-ong mga 40-pin board, kini ang mga pin (nga adunay lainlaing mga agianan sa komunikasyon ingon sa imong makita):
      • 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 usa pa nga koneksyon nga gipasabut usab nako sa kini nga blog. Kini nga bus gilangkuban sa signal sa data (GPIO2) ug sa orasan (GPIO3). Dugang sa EEPROM Data (GPIO0) ug EEPROM Clock (GPIO1).
    • Serial, usa pa nga praktikal nga komunikasyon sa mga pin sa TX (GPIO14) ug RX (GPIO15) sama sa mga makit-an nimo sa pisara Arduino UNO.

Hinumdomi nga ang mga GPIO mao ang interface taliwala sa Raspberry Pi ug sa gawas nga kalibutan, apan adunay sila mga limitasyon niini, labi na ang elektrikal. Usa ka butang nga kinahanglan nimong hunahunaon aron dili madaut ang pisara aron hinumdoman nga kini nga mga GPIO nga lagmit dili sagupon, kana mao, nga wala’y buffer. Kini nagpasabut nga wala sila proteksyon, busa kinahanglan nimo nga bantayan ang kadako sa boltahe ug kusog nga gigamit aron dili matapos ang us aka kawang nga plato ...

Mga kalainan sa GPIO taliwala sa mga bersyon

Mga karaan nga Raspberry Pi GPIO nga pin

Ingon sa akong giingon, dili tanan nga mga modelo parehas nga mga lagdokNiini ang pipila nga mga diagram aron makita nimo ang mga pagkalainlain tali sa mga modelo ug sa ingon makapunting sa Raspberry Pi 4 ug 3, nga mao ang labi ka bag-o ug ang usa nga tingali adunay kanimo. Lahi kini taliwala (tanan sa matag grupo nagbahin sa parehas nga mga lagdok):

  • Ang Raspberry Pi 1 Model B Rev 1.0, nga adunay 26-pin nga gamay nga lahi sa Rev2.
  • Ang Raspberry Pi 1 Model A ug B Rev 2.0, parehas nga mga modelo nga adunay 26-pin.
  • Ang Rapsberry Pi Model A +, B +, 2B, 3B, 3B +, Zero ug Zero W, ug usab ang mga modelo sa 4. Tanan sila nga adunay 40-pin GPIO header.

Unsa man ang mahimo nako nga isumpay sa mga GPIO?

Ang kalo nga Raspberry Pi

Dili ra nimo mahimo magkonektar sa mga electronic device como mga transistor, mga sensor sa kaumog / temperatura, thermistors, stepper motor, LEDs, ug uban pa Mahimo ka usab nga magkonektar sa mga sangkap o modyul nga gihimo nga piho alang sa Raspberry Pi ug nga gipalapdan ang mga kaarang sa board nga labaw sa kung unsa ang gilakip sa base.

Nagpasabut ako sa bantog kalo o kalo ug mga plato nga makit-an nimo sa merkado. Daghang mga lahi, gikan sa gigamit aron makontrol ang mga motor sa mga drayber, sa uban aron makahimo usa ka kumpol sa computinguban sa LED panel makontrol, aron madugangan Katakos sa DVB TV, LCD screen, Ug uban pa

Kini nga mga kalo o kalo Gibutang sila sa board nga Raspberry Pi, pagpares sa mga GPIO nga kinahanglan aron kini molihok. Busa, ang pagpundok niini medyo yano ug dali. Bitaw, siguruha nga ang bersyon sa plato nahiangay sa matag kalo, tungod kay ang GPIO port lahi sa nakita nimo ...

Gisulti ko kini kung adunay ka mas tigulang nga plato, tungod kay ang mga kalo katugma ra sa labing bag-o. Sama sa Raspberry Pi Model A +, B +, 2, 3, ug 4 nga mga modelo.

Pasiuna sa paggamit sa GPIO sa Raspberry Pi

Pagpagawas sa mando nga output

Gigikanan: Raspberry Pi

Aron magsugod, sa Raspbian, mahimo nimo mabuksan ang console ug pag-type ang sugo pinoutKung unsa kini ibalik kanimo usa ka imahe sa terminal nga adunay mga GPIO pin nga magamit sa imong board ug alang sa unsa ang matag usa. Usa ka butang nga praktikal kaayo aron kanunay adunay kini sa oras sa pagtrabaho aron dili ka maglibog.

Una nga proyekto: pag-flash sa usa ka LED sa mga GPIO

Ang GPIO nga adunay LED sa Raspberry Pi

Ang labi ka punoan nga paagi aron makahimo usa ka lahi "Hello world" kauban ang mga GPIO ang paggamit sa usa ka yano nga LED nga konektado sa mga lagdok sa Raspberry Pi aron makita nimo kung giunsa kini molihok. Sa kini nga kaso, gikonektar nako kini sa GND ug ang uban pa sa pin 17, bisan kung makapili ka usa pa sa naandan nga mga lagdok ...

Kung nakakonekta na, mahimo nimo kontrolaha sila gikan sa Raspbian paggamit sa terminal. Sa Linux, gigamit ang piho nga mga file sama sa mga sa / sys / class / gpio / direktoryo. Pananglitan, aron makahimo usa ka file nga adunay kinahanglan nga istraktura aron magsugod sa pagtrabaho:

echo 17 > /sys/class/gpio/export

Unya mahimo nimo pag-configure ingon usa ka input (sa) o ingon usa ka output (gawas) kana nga pin 17 nga gipili alang sa among pananglitan. Mahimo nimo kini dali kaayo sa:

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

Sa kini nga kaso ingon usa ka output, tungod kay gusto namon nga magpadala usa ka elektrisidad nga pulso sa LED aron i-on kini, apan kung kini usa ka sensor, ug uban pa, mahimo nimo gamiton. Karon alang sa pag-on (1) o pagpalong (0) ang LED nga mahimo nimo gamiton:

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

Kung gusto nimong magpadayon sa laing proyekto ug tangtang sa entry gihimo, mahimo nimo kini buhaton sa ingon niini:

echo 17 > /sys/class/gpio/unexport

Pinaagi sa pamaagi, mahimo usab nimong tipunon ang tanan nga kinahanglanon nga mga mando alang sa imong proyekto, sama sa tanan nga nauna, i-save kini sa usa ka tipo sa file bash script ug pagkahuman ipadagan kini sa mga binugkos nga tanan sa usa ka higayon, imbis nga kini usa-usa nga type. Kini dali gamiton kung imong gibalikbalik ang parehas nga ehersisyo daghang beses, mao nga dili ka kinahanglan magsulat usab. Pagdagan ra ug lakaw. Pananglitan:

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

Pagkahuman nimo, makatipig ka ug mahimo nimo kini hatagan ang angay nga pagpatuman ug pagtuman sa mga pagtugot ang iskrip alang sa LED nga pag-on, paghulat sa 1.3 segundo ug pag-off nga ingon niini sa usa ka loop ...

chmod +x led.sh
./led.sh

Pag-uswag sa programa

code sa gigikanan sa pinulongan sa programa

Dayag nga ang naa sa taas molihok alang sa gagmay nga mga elektronik nga proyekto nga adunay pipila nga mga sangkap, apan kung gusto nimo maghimo usa ka butang nga labi ka abante, imbis nga mga mando, ang mahimo nimong gamiton mao ang programming nga mga pinulongan aron makahimo lainlaing mga script o mga source code nga mag-automate sa operasyon.

Mahimo sila magamit lainlaing mga himan sa programa, nga adunay lainlaing mga sinultian. Ang mga librarya nga gihimo sa komunidad naghimo nga labi ka kadali alang kanimo, sama sa WiringPi, sysfs, pigpio, ubp. Ang mga programa mahimong lainlain, gikan sa Python, nga labi nga gusto sa kadaghanan, pinaagi sa Ruby, Java, Perl, BASIC, ug bisan sa C #.

Opisyal nga, gitanyag kanimo ang Raspberry Pi daghang pasilidad aron maprograma ang imong mga GPIO, sama sa:

  • Scratch, alang sa mga wala mahibal-an kung unsaon magprograma ug gusto gamiton ang mga puzzle block sa kini nga proyekto diin mahimo usab maprograma ang Arduino, ubp. Ang pagprograma nga adunay mga graphic block medyo intuitive ug praktikal alang sa natad sa edukasyon.
  • Python: Ang kini nga yano nga gihubad nga pinulongan sa programa nagtugot kanimo sa paghimo yano ug kusganon nga mga code, nga adunay usa ka panon sa mga librarya nga mahimo nimo aron buhaton ang tanan nga imong gihunahuna.
  • C / C ++ / C #: labi sila ka kusganon nga mga sinultian sa pagprograma aron makahimo mga binaryohan diin makigsulti sa mga GPIO. Mahimo nimo kini sa daghang paagi, gamit ang sukaranan nga porma o interface sa kernel pinaagi sa libraryalibgpiod, apan pinaagi usab sa usa ka librarya sa ikatulo nga partido sama sa baboy.
  • Pagproseso3, parehas sa Arduino.

Pilia ang pagkabalhin ang labing gusto nimo o sa imong hunahuna yano ra.


Ang sulud sa artikulo nagsunod sa among mga prinsipyo sa pamatasan sa editoryal. Aron magreport usa ka pag-klik sa sayup dinhi.

4 nga mga komento, biya sa imoha

Biyai ang imong komentaryo

Ang imong email address dili nga gipatik.

*

*

  1. Responsable sa datos: Miguel Ángel Gatón
  2. Katuyoan sa datos: Kontrolaha ang SPAM, pagdumala sa komento.
  3. Legitimation: Ang imong pagtugot
  4. Komunikasyon sa datos: Ang datos dili ipahibalo sa mga ikatulong partido gawas sa ligal nga obligasyon.
  5. Pagtipig sa datos: Ang database nga gidumala sa Occentus Networks (EU)
  6. Mga Katungod: Sa bisan unsang oras mahimo nimong limitahan, bawion ug tanggalon ang imong kasayuran.

  1.   Kaalaotan dijo

    Nindot kaayo nga artikulo bahin sa pagsugod sa Rasperry

    1.    Isaac dijo

      Daghang salamat.

      1.    Ruth Medina dijo

        ikaw ang author?

        1.    Isaac dijo

          Oo

Pagsulay sa InglesPagsulay sa Catalanespanyol nga quiz