Komma igång med GPIO på en Raspberry Pi

Om du, trots att Arduino var cool, vänta tills du får händerna på en Raspberry Pi - dessa saker är fantastiska. Förutom att vara en fullt fungerande dator har de också ett urval av Allmänna Input / Output-stiften.

Om du, trots att Arduino var cool, vänta tills du får händerna på en Raspberry Pi - dessa saker är fantastiska.  Förutom att vara en fullt fungerande dator har de också ett urval av Allmänna Input / Output-stiften.
Annons

skiss-RPI-GPIO Om du, trots att Arduino var cool, vänta tills du får händerna på en Raspberry Pi - dessa saker är fantastiska. Förutom att vara en fullt fungerande dator har de också ett urval av Allmänna Input / Output- stiften. Precis som en Arduino kan vi använda dessa för att skapa elektronikprojekt - och det är förvånansvärt enkelt att komma igång.

Idag kopplar vi ett relä och använder det för att slå på en LED, men du kan lika enkelt slå på en lampa.

Denna introduktion tjänar som första del till ett större hemautomatiseringsprojekt. Christian har redan lagt grunden på att komma igång med en Pi, så jag kommer inte att upprepa de första stegen här för att ladda ner ett operativsystem eller ansluta till SD-kortet - jag antar att du har ett fungerande Raspian-system som redan är upprättat.

Varning : Även om en Raspberry Pi kan användas på samma sätt som en Arduino behöver lite mer omsorg. Pinnarna pinnar arbetar vid 3, 3 v, medan Arduino använder 5v . Medan det är möjligt att bryta en Arduino, är det mycket lättare att bryta en Pi, eftersom stiften ansluter direkt till inombordschipet - att skicka 5v där ner kan steka det.

Var därför försiktig med att försöka replikera Arduino-projekt på din Pi - antingen följ en Pi-specifik handledning, eller se till att du har en bra förståelse för grundläggande elektronik.

Krav:

  • NPN-transistor, såsom P2N2222A
  • 1k motstånd
  • Relä; Jag använder en 4-relä 5v-modul som har extra skyddskretsar inbyggd (så det behövs inte extradioder
  • LED och 220 ohm motstånd för testning
  • Breakout-kabel

Breakout-kabel ("Cobbler Kit")

GPIO-stiften är placerade på sidan av Pi, bredvid RCA-utgången.

breakout-kabel

Även om du tekniskt kan ansluta några kvinnliga slutade jumperkablar direkt till dessa, är de inte märkta på något användbart sätt och du är därför mer benägna att bryta något. I stället får du en breakout-kabel som den här från Adafruit, eller en av de många billigare klonerna på eBay. Du kan behöva lödda detta eftersom det kommer att komma i kitform.

breakout-board

Även om brätsidan har en hack i den för att indikera korrekt kabelplacering, gör inte Pi-sidan det. Se till att 3v- och 5v-stiften i Pi: s översta hörn stämmer med de relevanta stiften på brädet. Självklart, om du köpte ett ärende som inte avslöjar GPIO-rubriken så behöver du springa med naken Pi eller klippa ett hål.

klar case-GPIO

Alternativt kan du få en helpension som anbringar ovanpå din Pi, och brukar komma med ett urval av användbara komponenter.

Basic Circuit

Ställ in kretsen enligt nedan. Jag har släppt ut reläkretsarna eftersom detta kommer att variera. Använd NO- reläet (normalt stängt) och COM- utgångarna för din LED eller annan enhet.

krets

Använd stift 4 från Raspberry Pi. På mitt breakoutkort är det märkt + GPCLK0; Oavsett, det är fjärde stifträkning från 3V3.

pin4

Kommandoradsprovning

I följande exempel antar jag att du är inloggad via SSH eller på annat sätt som root-användare. Om inte, måste du förorda några av kommandona med sudo för förhöjda behörigheter.

Först måste vi installera WiringPi .

git clone git://git.drogon.net/wiringPi cd wiringPi ./build 

Förutsatt att allt gick bra, borde vi nu kunna styra GPIO direkt från kommandoraden så här:

 gpio-g-läge 4 ut gpio -g skriv 4 1 

Det första kommandot liknar Arduinos installationsfunktion där vi talar om Pi-användstift 4 som en utgång. Nästa kommando skriver ett värde på 1 till stiftet, vilket ska utlösa transistorn, aktivera reläet, stäng kretskortet för lysdioden och sätt på den.

Grymt bra. Om det inte gör det, gå tillbaka och kolla dina kablar. Klicka på reläet?

Pytonorm

Även om Python inte är det enda sättet att kommunicera med GPIO-pinnarna, anses det allmänt som det enklaste, och det är det som oftast finns i befintliga projekt. Till skillnad från C är Python relativt lätt att hämta (här är 5 platser att lära sig Python De 5 bästa hemsidorna för att lära sig Python-programmering De 5 bästa hemsidorna för att lära sig Python-programmering Under det senaste decenniet har Python programmeringsspråk exploderat i popularitet bland programmerare i alla områden av kodning. Från webbutvecklare till videospeldesigners till inbyggda verktygsskapare har många fallit i ... Läs mer).

Börja med att installera följande Python-tillägg:

 apt-get install python-dev apt-get install python-rpi.gpio 

Skapa nu en ny fil som heter test.py. Om du använder en kommandorad skriver du in

 nano test.py 

Klistra in eller skriv in följande (även på denna pastebin):

 import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(4, GPIO.OUT) for x in range(0, 10): time.sleep(5) GPIO.output(4, 1) time.sleep(5) GPIO.output(4, 0) 

Det här är ett mycket enkelt Python-skript som kommer att släcka lysdioden (eller vad du har anslutit till ditt relä) i 5 sekunder och sedan av i 5 sekunder, 10 gånger . Du borde kunna förstå det mesta av koden. GPIO.setmode- raden används helt enkelt för att ange PIN-numreringsschemat vi ska använda.

Det är allt! För att köra koden, skriv:

 python test.py 

färdiga

Nästa vecka ska vi utarbeta installationen lite och göra några spännande saker som att lägga till röststyrning. Om du ska lägga till högspänningselektronik i reläkretsen, vill du vara säker på att du använder ett lämpligt märkt relä på live-kabeln och se till att du ansluter allt så att det är borta från de nyfina fingrarna av spädbarn eller mamma. Allvarligt, var dock säker.

Vänligen skicka dina frågor, kommentarer, feedback och haikus i rutan nedan - men kom ihåg att jag betygsätter dig om grammatik används.

In this article