Advertentie
Als je dacht dat de Arduino cool was, wacht dan maar tot je een Raspberry Pi Raspberry Pi: The Unofficial TutorialOf je nu een huidige Pi-eigenaar bent die meer wil leren of een potentiële eigenaar van dit apparaat op creditcardformaat, dit is geen gids die je wilt missen. Lees verder - deze dingen zijn geweldig. Ze zijn niet alleen een volledig functionele computer, ze hebben ook een selectie van Invoer / uitvoer voor algemeen gebruik pinnen. Net als een Arduino kunnen we deze gebruiken om elektronicaprojecten te maken - en het is verrassend eenvoudig om te beginnen.
Vandaag gaan we een relais aansluiten en het gebruiken om een LED aan te zetten, maar je kunt net zo goed een lamp aanzetten.
Deze introductie is het eerste onderdeel van een groter huisautomatiseringsproject. Christian heeft de basis al gelegd aan de slag met een Pi Raspberry Pi: The Unofficial TutorialOf je nu een huidige Pi-eigenaar bent die meer wil leren of een potentiële eigenaar van dit apparaat op creditcardformaat, dit is geen gids die je wilt missen. Lees verder
, dus ik herhaal de eerste stappen hier om een besturingssysteem te downloaden of de SD-kaart aan te sluiten niet - ik neem aan dat je een werkende Raspian-systeem al ingesteld.Waarschuwing: Hoewel een Raspberry Pi kan op dezelfde manier worden gebruikt als een Arduino, 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 breken, is het een stuk eenvoudiger om een Pi te breken, omdat de pinnen rechtstreeks op de ingebouwde chip worden aangesloten - als je 5V naar beneden stuurt, kan het frituren.
Wees daarom heel voorzichtig met het proberen om Arduino-projecten op uw Pi te repliceren - volg een Pi-specifieke tutorial of zorg ervoor dat u een goed begrip hebt van basiselektronica.
Voorwaarden:
- NPN-transistor, zoals P2N2222A
- 1k weerstand
- Relais; Ik gebruik een 4-relais 5v-module met extra ingebouwde beveiligingsschakelingen (dus geen extra diodes nodig)
- LED en 220 ohm weerstand voor testen
- Breakout-kabel
Breakout-kabel ("schoenmakerset")
De GPIO-pinnen bevinden zich aan de zijkant van de Pi, naast de RCA-video-uitgang.
Hoewel je sommige vrouwelijke jumperkabels technisch hier rechtstreeks op kunt aansluiten, zijn ze niet op een nuttige manier gelabeld en is de kans groter dat je iets breekt. Koop in plaats daarvan een breakout-kabel zoals tzijn een van Adafruit, of een van de vele goedkopere klonen op eBay. Mogelijk moet u dit solderen omdat het in kitvorm wordt geleverd.
Hoewel de bordzijde een inkeping heeft om de juiste kabelplaatsing aan te geven, doet de Pi-zijde 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, moet je rennen met naakte Pi of een gat maken.
Als alternatief kunt u een vol bord krijgen dat bovenop uw Pi wordt aangebracht en meestal wordt geleverd met een selectie van nuttige componenten.
Basiscircuit
Stel het circuit in zoals hieronder beschreven. Ik heb het relaiscircuit weggelaten omdat dit zal variëren. Gebruik de NEE (normaal gesloten) en COM aansluitingen van uw relais voor uw LED of ander apparaat.
Gebruik pin 4 van de Raspberry Pi. Op mijn breakout-bord staat het + GPCLK0; hoe dan ook, het is de vierde pin die telt vanaf 3V3.
Opdrachtregel testen
In de volgende voorbeelden ga ik ervan uit dat je bent ingelogd via SSH of anderszins als de rootgebruiker. Als dat niet het geval is, moet je sommige opdrachten voorafgaan met sudo voor verhoogde rechten.
Eerst moeten we installeren Bedrading Pi.
git clone git: //git.drogon.net/wiringPi cdwiringPi ./build
Ervan uitgaande dat alles goed is gegaan, zouden we nu in staat moeten zijn om de GPIO rechtstreeks vanaf de opdrachtregel als volgt te bedienen:
GPIO -g-modus 4 uit. gpio -g schrijven 4 1
De eerste opdracht is vergelijkbaar met de instelfunctie van de Arduino, waarbij we de Pi vertellen dat pin 4 als uitgang wordt gebruikt. 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 inschakelen.
Geweldig. Als dit niet het geval is, ga dan terug en controleer je bedrading. Klikt het relais?
Python
Hoewel Python niet de enige manier is om te communiceren met de GPIO-pinnen, wordt het over het algemeen als de gemakkelijkste beschouwd en wordt het het meest aangetroffen in bestaande projecten. In tegenstelling tot C is Python relatief eenvoudig op te halen (hier is 5 sites om Python te leren De 5 beste websites om Python-programmeren te lerenWilt u Python-programmeren leren? Hier zijn de beste manieren om Python online te leren, waarvan er vele volledig gratis zijn. Lees verder ).
Begin met het installeren van de volgende Python-extensies:
apt-get installeer python-dev apt-get installeer python-rpi.gpio
Maak nu een nieuw bestand met de naam test.py. typ je als je een opdrachtregel gebruikt
nano test.py
Plak of typ het volgende (ook aan deze pastebin):
importeer RPi. GPIO als GPIO. importeer tijd. GPIO.setmode (GPIO.BCM) GPIO.setup (4, GPIO.OUT) voor x in 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 ook hebt aangesloten op je relais) 5 seconden aanzet en vervolgens 5 seconden uit, 10 keer. Je zou de meeste code moeten kunnen begrijpen. De GPIO.setmode lijn wordt alleen gebruikt om het pinnummeringsschema aan te geven dat we gaan gebruiken.
Dat is het! Typ het volgende om de code uit te voeren:
python test.py
Volgende week gaan we de opstelling een beetje uitwerken en spannende dingen doen, zoals het toevoegen van stembesturing. Als u elektrische hoogspanningsitems aan het relaiscircuit gaat toevoegen, wilt u er zeker van zijn dat u een correct beoordeeld relais gebruikt op de spanningvoerende draaden zorg ervoor dat u alles omsluit zodat het niet in de buurt komt 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 een cijfer zal geven voor het gebruik van grammatica.
James heeft een BSc in Artificial Intelligence en is CompTIA A + en Network + gecertificeerd. Hij is de hoofdontwikkelaar van MakeUseOf en brengt zijn vrije tijd door met het spelen van VR paintball en bordspellen. Hij bouwt al pc's sinds hij een kind was.