GPIO: allt om Raspberry Pi 4 och 3-anslutningar

Raspberry Pi 4 GPIO

mycket GPIO-stift på Raspberry Pi 4-kortet, 3, och dess föregångare, förser SBC-kortet med funktioner som liknar de som Arduino kan ha, eftersom du med dem kan skapa mycket intressanta elektroniska projekt som styrs från operativsystemet med hjälp av kod på olika språk, till exempel Python.

Det gör kortet mer än bara en billig dator. Det gör att du kan ansluta en mängd elektroniska element som du kan använda med Arduino, men det kan också styras från Pi. I den här guiden kommer jag att försöka ge dig så mycket information som möjligt om dessa GPIO-stift så att du kan börja dra nytta av dem ...

Vad är GPIO?

GPIO

GPIO är akronym för Input / Output för allmänt ändamål, det vill säga Input / Output för allmänt ändamål. Olika elektroniska produkter kan ha det, till exempel chipsen eller vissa PCB-kort som denna Raspberry Pi. Som namnet antyder är de stift som kan konfigureras för att utföra olika funktioner, därför är de allmänna ändamål och inte för specifikt bruk.

Det är användaren vid körning som kan konfigurera dessa GPIO-stift så att de gör vad han vill. Det kan göras på olika sätt, till exempel med vissa koder eller skript från konsolen eller med Python-programmet, vilket är ett av de enklaste och mest föredragna sätten på grund av hur många alternativ du har till ditt förfogande.

På detta sätt har Raspberry Pi inte bara en serie portar och gränssnitt för att ansluta flera standardenheter, men lägg till dessa GPIO-stift så att du kan lägga till andra elektroniska enheter eller tillverkarprojekt som du själv har skapat. På samma sätt som du skulle göra med Arduino och dess I / O-stift för kontroll.

Y inte exklusivt för Arduino eller Raspberry Pi, det gör också andra liknande SBC-kort och inbäddade produkter.

GPIO-funktioner

Och mellan hennes karaktärer mest enastående:

  • De kan konfigurerassom ingång som utgång. De har den dualiteten som det händer med dem från Arduino.
  • GPIO-stift också kan aktiveras och avaktiveras med kod. Det vill säga de kan ställas in på 1 (högspänningsnivå) eller 0 (lågspänningsnivå).
  • Naturligtvis kan de läs binära data, som de och nollorna, det vill säga spänningssignal eller frånvaro av den.
  • Utgångsvärden för Läser och skriver.
  • Ingångsvärdena kan i vissa fall konfigureras som Händelser så att de genererar någon typ av åtgärder på kortet eller systemet. Vissa inbäddade system använder dem som IRQ. Ett annat fall är att konfigurera att när en eller flera stift är aktiva av vissa sensorer, utför någon åtgärd ...
  • När det gäller spänning och intensitet måste du känna till de maximala kapaciteterna som är acceptabla för kortet, i det här fallet Raspberry Pi 4 eller 3. Du bör inte passera dem för att undvika att skada den.

Förresten, när en grupp GPIO-stift är grupperade, som är fallet med Raspberry Pi, är gruppen känd som GPIO-port.

GPIO-stiften på Raspberry Pi

Raspberry Pi GPIO

Schema giltigt för version 4, 3, Zero

Den nya Raspberry Pi 4-kort och version 3 De är utrustade med ett stort antal GPIO-stift. Inte alla versioner erbjuder samma belopp, och de är inte heller numrerade på samma sätt, så du måste vara försiktig med detta för att veta väl hur du ska göra anslutningen enligt den modell och version du har.

Men det som är mer generiskt är de typer av GPIO som du hittar i hamnen på Raspberry Pi-kort. Och det kommer att vara det första jag vill klargöra, eftersom det är så du kommer att veta typerna av stift du kan lita på för dina projekt:

  • matningDessa stift används för att ansluta kraftledningar eller ledningar för dina elektroniska projekt. De motsvarar stift som liknar de på Arduino-kortet, och som ger spänningar på 5v och 3v3 (3.3v begränsad till 50mA belastning). Dessutom hittar du marken (GND eller Ground). Om du inte använder externa strömkällor som batterier eller adaptrar kan dessa stift vara till stor hjälp för att driva din krets.
  • DNC (Anslut inte): de är stift som finns i vissa versioner och som inte har någon funktion, men att de i de nya tavlorna har fått ett annat syfte. Du hittar bara dessa i mer primitiva modeller av Pi. I de nya 3 och 4 markeras de generellt som GND och kan integreras i den föregående gruppen.
  • Konfigurerbara stift: De är de vanliga GPIO: erna, och de kan programmeras med koder som jag kommer att förklara senare för att göra vad du behöver.
  • Särskilda stift: det här är några anslutningar som är avsedda för speciella anslutningar eller gränssnitt som UART-, TXD- och RXD-seriella anslutningar etc., som det händer med Arduino. Du hittar till och med några som SDA, SCL, MOSI, MISO, SCLK, CE0, CE1, etc. De sticker ut bland dem:
    • PWM, som kan reglera pulsbredden som vi såg i en tidigare artikel. På Raspberry Pi 3 och 4 är de GPIO12, GPIO13, GPIO18 och GPIO19.
    • SPI är ett annat kommunikationsgränssnitt som jag också diskuterade i en annan artikel. När det gäller de nya 40-stifts korten är de stiften (med olika kommunikationskanaler som du kan se):
      • 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 är en annan koppling som jag också har förklarat i den här bloggen. Denna buss består av datasignalen (GPIO2) och klockan (GPIO3). Förutom EEPROM Data (GPIO0) och EEPROM Clock (GPIO1).
    • Seriell, en annan mycket praktisk kommunikation med TX (GPIO14) och RX (GPIO15) stift som de du hittar på tavlan Arduino UNO.

Kom ihåg att GPIO är gränssnittet mellan Raspberry Pi och omvärlden, men det har de dess begränsningar, särskilt elektriska. Något som du måste ta hänsyn till för att inte förstöra kortet är att komma ihåg att dessa GPIO-stift vanligtvis är obuffrade, det vill säga utan buffert. Det betyder att de inte har skydd, så du måste övervaka storleken på den spänning och intensitet som appliceras för att inte hamna med en värdelös platta ...

GPIO skillnader mellan versioner

Gamla Raspberry Pi GPIO-stift

Som jag sa, inte alla modeller har samma stiftHär är några diagram så att du kan se skillnaderna mellan modeller och därmed kunna fokusera på Raspberry Pi 4 och 3, som är de nyaste och den du förmodligen har i din besittning. Det skiljer sig mellan (alla grupper delar samma stift):

  • Raspberry Pi 1 Model B Rev 1.0, med 26-stift något annorlunda än Rev2.
  • Raspberry Pi 1 modell A och B Rev 2.0, båda modeller med 26-stift.
  • Rapsberry Pi Model A +, B +, 2B, 3B, 3B +, Zero och Zero W, samt fyra modeller, alla med ett 4-stifts GPIO-huvud.

Vad kan jag ansluta till GPIO: erna?

Raspberry Pi-hatt

Du kommer inte bara att kunna anslut elektroniska enheter som transistorer, fukt- / temperatursensorer, termistorer, stegmotorer, lysdioder, etc. Du kan också ansluta komponenter eller moduler som skapats speciellt för Raspberry Pi och som utökar kortets funktioner utöver vad som ingår i basen.

Jag hänvisar till den berömda hattar eller hattar och tallrikar som du kan hitta på marknaden. Det finns många typer, från de som används för att styra motorer med drivrutiner, till andra att skapa ett datakluster, Med LED-panel kontrollerbar, för att lägga till DVB-TV-funktion, LCD skärmEtc.

Dessa hattar eller hattar De är monterade på Raspberry Pi-kortet, som matchar de GPIO som behövs för att den ska fungera. Därför är dess montering ganska enkel och snabb. Se naturligtvis till att plattversionen är kompatibel med varje hatt, eftersom GPIO-porten är annorlunda som du har sett ...

Jag säger detta om du har en äldre tallrik, eftersom hattar är endast kompatibel med det nyaste. Liksom Raspberry Pi-modellerna A +, B +, 2, 3 och 4 modeller.

Introduktion till GPIO på Raspberry Pi

Pinout-kommandoutgång

Källa: Raspberry Pi

För att komma igång, på Raspbian, kan du öppna konsolen och skriva kommandot pinoutVad det kommer att returnera till dig är en bild i terminalen med GPIO-stiften tillgängliga på ditt bräde och vad var och en är för. Något väldigt praktiskt att alltid ha det närvarande när du arbetar så att du inte blir förvirrad.

Första projektet: blinkar en LED med GPIO: erna

GPIO med LED på Raspberry Pi

Det mest grundläggande sättet att göra ett slags "Hello world" med GPIO: er är att använda en enkel LED ansluten till stiften på Raspberry Pi så att du kan se hur de fungerar. I det här fallet har jag anslutit den till GND och den andra till stift 17, även om du kan välja en annan av de vanliga stiften ...

När du är ansluten kan du kontrollera dem från Raspbian använder terminalen. I Linux används specifika filer som de i katalogen / sys / class / gpio /. Till exempel för att skapa en fil med den struktur som krävs för att börja arbeta:

echo 17 > /sys/class/gpio/export

Då kan du konfigurera som en ingång (in) eller som en utgång (ut) den stift 17 som valts för vårt exempel. Du kan göra det väldigt enkelt med:

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

I det här fallet som en utgång, eftersom vi vill skicka en elektrisk puls till lysdioden för att slå på den, men om det var en sensor, etc., kan du använda i. Nu för slå på (1) eller stäng av (0) den LED som du kan använda:

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

Om du vill gå vidare till ett annat projekt och ta bort inlägg skapad kan du göra det på det här sättet:

echo 17 > /sys/class/gpio/unexport

Förresten, du kan också samla alla nödvändiga kommandon för ditt projekt, som alla tidigare, spara dem i en filtyp bash-skript och kör dem sedan i buntar samtidigt, istället för att skriva dem en efter en. Det här är praktiskt när du upprepar samma övning många gånger så att du inte behöver skriva om. Bara springa och gå. Till exempel:

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

När du är klar sparar du och sedan kan du ge den rätt kör- och körbehörighet manuset för att lysdioden ska tändas, vänta 1.3 sekunder och stäng av så här i en slinga ...

chmod +x led.sh
./led.sh

Programförskott

programmeringsspråk källkod

Uppenbarligen fungerar ovanstående för små elektroniska projekt med få komponenter, men om du vill skapa något mer avancerat, istället för kommandona, är det du kan använda programmeringsspråk för att skapa olika skript eller källkoder som automatiserar operationen.

De kan användas olika verktyg att programmera, med mycket olika språk. Biblioteken som samhället har utvecklat gör saker mycket enklare för dig, som WiringPi, sysfs, pigpio, etc. Programmen kan vara mycket varierande, från Python, som är det föredragna alternativet för många, genom Ruby, Java, Perl, BASIC och till och med C #.

Officiellt erbjuder Raspberry Pi dig många anläggningar för att programmera dina GPIO: er, till exempel:

  • Scratch, för dem som inte vet hur man programmerar och vill använda pusselblocken i detta projekt som Arduino också kan programmeras med etc. Programmering med grafiska block är ganska intuitivt och mycket praktiskt för utbildningsområdet.
  • Python: Detta enkla tolkade programmeringsspråk låter dig skapa enkla och kraftfulla koder, med ett stort antal bibliotek till ditt förfogande för att göra nästan allt du tänker dig.
  • C / C ++ / C #: är mer kraftfulla programmeringsspråk för att skapa binärer som du kan interagera med GPIO med. Du kan göra det på flera sätt med standardformuläret eller kärngränssnittet via biblioteketlibgpiod, men också genom ett tredjepartsbibliotek som pygium.
  • Bearbetning 3, liknande Arduino.

Välj flexibelt den du gillar mest eller tycker du är enkel.


4 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   foe sade

    Mycket trevlig artikel om att börja på Rasperry

    1.    Isaac sade

      Tack så mycket.

      1.    Ruth Medina sade

        är du författaren?

        1.    Isaac sade

          Ja