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änt Ingång / utgång stift. 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 plugga in SD-kortet - jag antar att du har en fungerande Raspian-system redan inrättad.
Varning: Även om en hallon Pi kan används på samma sätt som en Arduino, behövs lite mer omsorg. Pinnarna pinnar arbetar vid 3.3V, 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
Brytkabel (“Cobbler Kit”)
GPIO-stiften är placerade på sidan av Pi, bredvid RCA-utgången.
Ä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.
Ä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.
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 NEJ (normalt stängd) och COM terminaler på ditt relä för din LED eller annan enhet.
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.
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 klon 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 kretsen för LED-lampan 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-stiften, 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 webbplatserna för att lära sig Python Programmering Vill du lära dig Python programmering? Här är de bästa sätten att lära sig Python online, varav många är helt gratis. Läs mer).
Börja med att installera följande Python-tillägg:
apt-get install python-dev apt-get installera 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):
importera RPi.GPIO som GPIO importtid GPIO.setmode (GPIO.BCM) GPIO.setup (4, GPIO.OUT) för x i intervallet (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. De GPIO.setmode linje 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
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-ledningen, och var noga med att bifoga allt så det är borta från babyens nyfikna fingrar eller mamma. Men allvarligt, var försiktig.
Vänligen skicka dina frågor, kommentarer, feedback och haikus i rutan nedan - men kom ihåg att jag betygsätter dig om grammatik.
Utforska mer om: Raspberry Pi.