Aan de slag met GPIO Op een Raspberry Pi
Als je de Arduino cool vond, wacht dan gewoon tot je een Raspberry Pi hebt gevonden - deze dingen zijn geweldig. Ze zijn niet alleen een volledig functionele computer, ze hebben ook een selectie van Algemeen gebruik invoer / uitvoer pinnen. Net als een Arduino kunnen we deze gebruiken om elektronica-projecten te maken - en het is verrassend eenvoudig om te beginnen.
Vandaag zullen we een relais aansluiten en gebruiken om een LED in te schakelen, maar je kunt net zo gemakkelijk een lamp aanzetten.
Deze inleiding dient als eerste onderdeel van een groter huisautomatiseringsproject. Christian heeft al de basis gelegd om aan de slag te gaan met een Pi, dus ik herhaal hier niet de eerste stappen voor het downloaden van een besturingssysteem of het aansluiten van de SD-kaart - ik neem aan dat je een werkend Raspiaans systeem al ingesteld.
Waarschuwing: Hoewel een Raspberry Pi kan op dezelfde manier als een Arduino worden gebruikt, is er iets meer zorg nodig. De pinnen van de Pi werken op 3.3v, terwijl de Arduino gebruikt 5v. Hoewel het mogelijk is om een Arduino te verbreken, is het een stuk eenvoudiger om een Pi te verbreken, omdat de pinnen rechtstreeks op de chip aan boord zijn aangesloten - door 5v naar beneden te sturen kan het frituren.
Wees daarom erg voorzichtig met het repliceren van Arduino-projecten op je Pi - volg een Pi-specifieke tutorial, of zorg voor een goed begrip van de basiselektronica.
Vereisten:
- NPN-transistor, zoals P2N2222A
- 1k weerstand
- Relais; Ik gebruik een 4-relais 5v-module met extra beschermingscircuits ingebouwd (dus geen extra dioden nodig
- LED en 220 ohm weerstand voor testen
- Breakout-kabel
Breakout-kabel (“Schoenmaker Kit”)
De GPIO-pinnen bevinden zich aan de zijkant van de Pi, naast de RCA-video-uitgang.
Hoewel je technisch gezien sommige vrouwelijk eindigende verbindingskabels rechtstreeks hierop kunt aansluiten, zijn ze niet op een bruikbare manier gelabeld en heb je dus meer kans om iets te breken. In plaats daarvan krijgt u een breakout-kabel zoals deze van Adafruit of een van de vele goedkopere klonen op eBay. Mogelijk moet je dit solderen want het komt in kitvorm.
Hoewel de plaatzijde een inkeping heeft om correcte plaatsing van de kabel aan te geven, doet de Pi-kant dat niet. Zorg ervoor dat de 3v- en 5v-pinnen in de uiterste hoek van de pi op één lijn liggen met de relevante pinnen op het bord. Natuurlijk, als je een case hebt gekocht die de GPIO-header niet blootlegt, zul je moeten rennen met naked Pi of een gat moeten snijden.
Je kunt ook een volboard krijgen dat bovenop je pi hangt en meestal wordt geleverd met een selectie handige onderdelen.
Basiscircuit
Stel het circuit in zoals hieronder wordt beschreven. Ik heb het relaiscircuit weggelaten omdat dit zal variëren. Gebruik de NEE (normaal gesloten) en COM terminals van uw relais voor uw LED of een ander apparaat.
Gebruik pin 4 van de Raspberry Pi. Op mijn breakout-bord is het gemarkeerd met + GPCLK0; ongeacht, het is de vierde pin die meetelt vanaf 3V3.
Opdrachtregel testen
In de volgende voorbeelden neem ik aan dat u bent aangemeld via SSH of anders als de rootgebruiker. Als dat niet het geval is, moet je een aantal opdrachten invoeren met sudo voor verhoogde rechten.
Eerst moeten we installeren WiringPi.
git clone git: //git.drogon.net/wiringPi cd wiringPi ./build
Ervan uitgaande dat alles goed ging, zouden we nu in staat moeten zijn om de GPIO direct te besturen via de opdrachtregel als volgt:
gpio -g-modus 4 uit gpio -g schrijven 4 1
De eerste opdracht lijkt op de Arduino-instelfunctie, waarbij we de Pi-gebruikpin 4 als een uitvoer vertellen. Het volgende commando schrijft een waarde van 1 naar de pin, die de transistor moet activeren, het relais moet activeren, het circuit voor de LED moet sluiten en moet inschakelen.
Geweldig. Als dit niet het geval is, ga dan terug en controleer uw bedrading. Klikt het relais??
Python
Hoewel Python niet de enige manier is om met de GPIO-pinnen te communiceren, wordt het over het algemeen als het gemakkelijkst beschouwd, en het is het meest gevonden in bestaande projecten. In tegenstelling tot C is Python relatief eenvoudig op te pikken (hier zijn 5 sites om Python te leren De 5 beste websites om Python te leren programmeren De 5 beste websites om Python te leren programmeren Wil je Python-programmeren leren? Hier zijn de beste manieren om Python online te leren, waarvan vele volledig gratis zijn Lees meer).
Begin met het installeren van de volgende Python-extensies:
apt-get install python-dev apt-get install python-rpi.gpio
Maak nu een nieuw bestand met de naam test.py. als u een opdrachtregel gebruikt, typt u
nano test.py
Plak of typ het volgende (ook op deze pasteben):
import RPi.GPIO als GPIO importtijd GPIO.setmode (GPIO.BCM) GPIO.setup (4, GPIO.OUT) voor x binnen het bereik (0,10): time.sleep (5) GPIO.output (4,1) time.sleep (5) GPIO.output (4,0)
Dit is een heel eenvoudig Python-script dat de LED (of wat je maar hebt aangesloten op je relais) gedurende 5 seconden aanzet en daarna 5 seconden uitschakelt, 10 keer. Je zou het grootste deel van de code moeten kunnen begrijpen. De GPIO.setmode lijn wordt eenvoudig gebruikt om het pincodeerschema aan te geven dat we gaan gebruiken.
Dat is het! Om de code uit te voeren, typt u:
python test.py
Volgende week zullen we de opstelling een beetje uitwerken en spannende dingen doen zoals het toevoegen van stembesturing. Als u elektrische artikelen met hoog voltage in het relaiscircuit wilt toevoegen, moet u er zeker van zijn dat u een relais met de juiste classificatie gebruikt op de live draad, en zorg ervoor dat je alles insluit, zodat het weg is van de nieuwsgierige vingers van baby's, of mama. Serieus, wees veilig.
Plaats uw vragen, opmerkingen, feedback en haiku's in het onderstaande vak - maar houd er rekening mee dat ik u zal beoordelen op grammatica..
Ontdek meer over: Raspberry Pi.