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, maar hebben ook een selectie van pinnen voor invoer / uitvoer voor algemeen gebruik.

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, maar hebben ook een selectie van pinnen voor invoer / uitvoer voor algemeen gebruik.
Advertentie

gekenmerkte-RPI-gpio 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, maar hebben ook een selectie van pinnen voor invoer / uitvoer voor algemeen gebruik . 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 met een Pi aan de slag te gaan, dus ik herhaal hier niet de eerste stappen voor het downloaden van een OS of het aansluiten van de SD-kaart. Ik neem aan dat je een werkend Raspiaans systeem hebt dat al is opgezet.

Waarschuwing : hoewel een Raspberry Pi vergelijkbaar met een Arduino kan worden gebruikt, is er iets meer zorg nodig. De pinnen van de Pi werken op 3, 3 V, terwijl de Arduino 5V gebruikt. 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 dit gebeuren.

Wees daarom heel voorzichtig met het repliceren van Arduino-projecten op je Pi - volg een Pi-specifieke tutorial, of zorg voor een goed begrip van 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 ("Cobbler Kit")

De GPIO-pinnen bevinden zich aan de zijkant van de Pi, naast de RCA-video-uitgang.

breakout-kabel

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.

breakout-board

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 blootstelt, zul je moeten rennen met naked Pi of een gat moeten snijden.

clear-case-gpio

Je kunt ook een volboard krijgen dat bovenop je pi past 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 NO (normally closed) en COM- terminals van uw relais voor uw LED of een ander apparaat.

circuit

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.

pin4

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.

Ten eerste moeten we WiringPi installeren.

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 rechtstreeks te besturen via de opdrachtregel zoals deze:

 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 halen (hier zijn 5 sites om Python te leren De 5 beste websites om Python te leren programmeren De 5 beste websites om Python-programmering te leren In het afgelopen decennium is de programmeertaal van Python enorm populair geworden onder programmeurs in alle codeergebieden: van webontwikkelaars tot videogameconstructeurs tot interne toolmakers, veel mensen zijn gevallen in ... 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 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) 

Dit is een heel eenvoudig Python-script dat de LED (of wat je maar hebt aangesloten op je relais) gedurende 5 seconden aanzet en vervolgens gedurende 5 seconden, 10 keer uit . Je zou het grootste deel van de code moeten kunnen begrijpen. De GPIO.setmode- regel wordt eenvoudig gebruikt om het pincodesysteem aan te geven dat we gaan gebruiken.

Dat is het! Om de code uit te voeren, typt u:

 python test.py 

afgewerkt

Volgende week zullen we de opstelling een beetje uitwerken en spannende dingen doen zoals het toevoegen van stembesturing. Als u elektrische onderdelen met hoog voltage in het relaiscircuit wilt invoegen, moet u er zeker van zijn dat u een geschikt relais gebruikt op de stroomvoerende draad en zorg ervoor dat u alles omsluit zodat het niet bij de nieuwsgierige vingers vandaan komt van baby's of moeder. Maar 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.

In this article