Met het breadboard kun je circuits maken zonder iets te hoeven solderen. Het is een geweldig hulpmiddel om met elektronica te experimenteren, maar het kan een beetje intimiderend zijn. Door een project te maken, kunt u gemotiveerd blijven tijdens het leren.
Er zijn veel eenvoudige spellen waarmee je geweldige projecten voor beginners kunt maken met Raspberry Pi. Een van de makkelijke spellen waarmee je kunt beginnen is Simon. Simons spel geheugen spel Een reeks lampjes knippert in willekeurige volgorde en de speler moet de volgorde onthouden. Naarmate de speler vordert, neemt de lengte van de reeks toe.

Snelle links
Vereiste componenten
Om te beginnen heb je de volgende dingen nodig:
- Raspberry Pi-apparaat.
- microSD-kaart Flash is gemaakt voor het besturingssysteem Raspbian-besturingssysteem op haar.
- 4 x LED lampjes in verschillende kleuren.
- 4 x Weerstanden (alles van 220 ohm tot 1 kilo ohm).
- 4x knoppen.
- 1 x Experimenteerbord.
- Sluit kabels aan om alles aan te sluiten.
Je kunt elk Raspberry Pi-model voor dit project gebruiken, maar de Pi Zero-modellen kunnen niet gemakkelijk worden aangesloten op breadboards zonder wat solderen. Welk model je ook gebruikt, je hebt ook een voeding, een monitor, een toetsenbord en een muis nodig.
Als je nog niet eerder een Raspberry Pi hebt ingesteld, kun je leren hoe je alles voor deze tutorial kunt instellen op Beginnersgids voor Raspberry Pi.
Je gaat Python-code schrijven in deze tutorial, je kunt elke teksteditor gebruiken om het te schrijven, maar misschien vind je een eenvoudigere code-editor. Er zijn er al veel geïnstalleerd op het Raspberry Pi-besturingssysteem en Thonny is ontworpen om handig te zijn voor beginners. Wat je ook gebruikt, je moet de code kunnen opslaan en uitvoeren om deze tutorial te kunnen volgen.
Aan de slag met het breadboard
De Raspberry Pi heeft twee rijen algemene input/output (GPIO) pinnen. Met deze pinnen kun je verschillende externe componenten op je Raspberry Pi aansluiten. Sommige pinnen verzenden informatie, andere leveren stroom en sommige aarden uw elektronische apparaten.

We beginnen met het toevoegen van een LED aan ons breadboard.
Begin met het aansluiten van de GPIO-pin op uw bord. Het maakt niet uit welke pin, zolang het maar een GPIO-pin is en geen power-pin of ground-pin. Hierboven ziet u een GPIO-pinnendiagram, dat u zal helpen beslissen welke pin u moet gebruiken. Deze tutorial maakt gebruik van pin pin 18, ook wel GPIO 24 genoemd.
De pin zal het breadboard van stroom voorzien en de Raspberry Pi in staat stellen te communiceren met de componenten op het bord. Verbind vervolgens pin 6 op de Pi met de massakabel van het breadboard. Hierdoor wordt het bord geaard en kunnen elektrische circuits worden gemaakt.

Het vermogen van Raspberry is te hoog om de LED direct aan te sluiten. Het gebruik van een weerstand verlaagt het vermogensniveau en voorkomt dat de LED doorbrandt. Sluit een kant van de weerstand aan op dezelfde lijn waarop de GPIO-pin was aangesloten en het uiteinde op de andere kant van het bord. Plaats vervolgens de positieve kant van de LED na de elektrische weerstand. De negatieve pool van de LED kan direct op de negatieve kant worden aangesloten. Het eindresultaat zou eruit moeten zien als de bovenstaande grafiek. Controleer uw draden grondig en zet de Pi aan. De lamp moet branden.
Nu heb je een circuit gemaakt met je Raspberry Pi dat je kunt besturen met je code.
Gebruik Python-code om de lichten te bedienen
Deze tutorial leidt je door de code door de stappen, maar als je ooit terug wilt naar de definitieve code, is deze beschikbaar op Pastebin.
Op dit moment gaat de stroom naar de LED, maar we willen bepalen wanneer deze wordt in- en uitgeschakeld. Met de volgende Python-code kunnen we met het bord praten.
import RPi.GPIO as GPIO GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) red = 18 GPIO.setup(red, GPIO.OUT) GPIO.output(red, GPIO.LOW)
De eerste paar regels zijn wat dingen definieert. De Raspberry Pi GPIO-bibliotheek wordt geïmporteerd. waar het ons toelaat als GPIO Verwijs naar de RPi.GPIO-variabele als GPIO om wat schrijfwerk te besparen. De GPIO-pinmodus is geconfigureerd om: BOORD. U hoeft deze opstelling niet te gebruiken, maar het kan gemakkelijker zijn om naar de pinnen te verwijzen door hun volgorde in de GPIO-rijen.
Ten slotte stellen we de waarschuwingen in op false. Dit stopt onnodige waarschuwingen.
De laatste drie regels sturen de LED aan. De rode LED is verbonden met de GPIO-pin 18. In plaats van dit te onthouden, wordt de variabele opgeslagen rood de plaats. Daarna wordt het geïnformeerd GPIO.-configuratie Onze software stuurt de informatie naar de rode pin. Ten slotte stellen we de GPIO.output op de rode pin in op lage. Als dit programma loopt, gaat het lampje uit. Om het weer in te schakelen, schakel GPIO.LAAG naar mij GPIO.HOOG en voer het programma opnieuw uit.
Bewaar de code en klik op تشغيل Om hem in actie te zien. Als er geen knop Uitvoeren is in de code-editor, sla deze dan op met een willekeurige naam (mijnbestandsnaam) en voer de opdracht uit python mijnbestandsnaam.py in het Terminal-venster. U moet eerst naar dezelfde map gaan als het nieuwe Python-bestand.
Voeg meer LED-verlichting toe
Om het Simon-spel te maken, hebben we vier lichten van verschillende kleuren nodig. Dezelfde stappen die u hebt gebruikt om de rode LED in te stellen, kunnen worden gebruikt om de andere drie in te stellen. Uw bedrading zou er als volgt uit moeten zien:

Uw code zou er als volgt uit moeten zien:
import RPi.GPIO as GPIO GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) red = 18 yellow = 22 green = 24 blue = 26 GPIO.setup(red, GPIO.OUT) GPIO.setup(yellow, GPIO.OUT) GPIO.setup(green, GPIO.OUT) GPIO.setup(blue, GPIO.OUT) GPIO.output(red, GPIO.HIGH) GPIO.output(yellow, GPIO.HIGH) GPIO.output(green, GPIO.HIGH) GPIO.output(blue, GPIO.HIGH)
Nadat de LED's zijn getest, stelt u in: GPIO.uitgang على GPIO.LAAG Om elke LED weer aan te zetten.
Hoewel de kleur van de draden die je gebruikt er niet toe doet, probeer kleuren te gebruiken die logisch zijn om je te helpen de inhoud van het bord gemakkelijker te lezen. Zwarte draden worden bijvoorbeeld vaak gebruikt voor aardingsdraden. In dit circuit wilt u misschien de kleur van de draad afstemmen op de kleur van het LED-licht.
Bedien lichten met knoppen
Begin met het toevoegen van een knop aan je bord. De knop moet worden aangesloten op zowel de aardingsconnector als de GPIO-pin. Het elektrische circuit zou er als volgt uit moeten zien:

Om ervoor te zorgen dat de knop de LED bestuurt, moeten we een code aan onze code toevoegen. Het instellen van de knop is vergelijkbaar met het instellen van een LED, behalve dat de GPIO-pin is ingesteld als invoer en niet als uitvoer. Deze code stelt ook de interne pull-up-weerstand op de Pi in, die nodig is om de knop correct te laten werken.
GPIO.setup(32, GPIO.IN, pull_up_down=GPIO.PUD_UP)
Nu hebben we code nodig die controleert of de knop is ingedrukt.
game = True while game: redButtonState = GPIO.input(32) if redButtonState == 0: GPIO.output(red, GPIO.HIGH) time.sleep(1) GPIO.output(red, GPIO.LOW)
We willen dat ons programma blijft controleren of de knop wordt ingedrukt, dus het herhaalcommando moet worden gebruikt en. Omdat de iteratie nooit vals is, blijft de code actief en controleert de knop totdat we het programma handmatig beëindigen door op de stopknop te drukken of een sneltoets te gebruiken CTRL + C.
Om het gemakkelijker te maken om de invoer aan te geven die de GPIO-pin ons stuurt, slaan we deze informatie op in de variabele rodeKnopStatus. Als onze knopinvoer verandert in 0, weten we dat de knop is ingedrukt.
Als de knop wordt ingedrukt, gaat de rode LED branden. Na een seconde gaat de LED uit. Om deze duur toe te voegen, gebruiken we de functie tijd.slaap (1). Om dit te laten werken, moet je de tijdbibliotheek bovenop je code importeren.
Zodra een knop is ingeschakeld, kunt u nog drie knoppen toevoegen, één voor elke LED. Uw code zou er als volgt uit moeten zien:
import random import time import RPi.GPIO as GPIO GPIO.setmode (GPIO.BOARD) GPIO.setwarnings(False) red = 18 yellow = 22 green = 24 blue = 26 GPIO.setup(red, GPIO.OUT) GPIO.setup(yellow, GPIO.OUT) GPIO.setup(green, GPIO.OUT) GPIO.setup(blue, GPIO.OUT) GPIO.setup(32, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(36, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(38, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(40, GPIO.IN, pull_up_down=GPIO.PUD_UP) game = True while game: redButtonState = GPIO.input(32) if redButtonState == 0: GPIO.output(red, GPIO.HIGH) time.sleep(1) GPIO.output(red, GPIO.LOW) yellowButtonState = GPIO.input(36) if yellowButtonState == 0: GPIO.output(yellow, GPIO.HIGH) GPIO.input(40) if blueButtonState == 0:GPIO.output(blue, GPIO.HIGH) time.sleep(1) GPIO.output(blue, GPIO.LOW)
En het breadboard zou er als volgt uit moeten zien:

Alle elektronische apparaten zijn nu klaar. Als je problemen hebt, controleer dan je code op fouten. Onthoud dat u de volledige code kunt downloaden van Pastebin Als je vast komt te zitten!
Maak het spel
Dit project heeft al alle basisprincipes behandeld die u moet weten om aan de slag te gaan met een breadboard. Maar als je van deze vaardigheden een spel maakt, kun je echt laten zien wat je kunt!
In het spel van Simon ziet de speler een reeks lampjes knipperen en moet hij het patroon onthouden. Het begint gemakkelijk met slechts één lamp. Elk niveau voegt een willekeurig licht toe aan het patroon om het spel uitdagender te maken.
Creëer stijl
Deze stap is vrij eenvoudig. Eén array zal ons lichtpatroon dragen (patroon). Een tweede array zal de GPIO-pinnen van onze LED's opslaan (lichten). Bij elke iteratie van het spel wordt een nieuw willekeurig licht toegevoegd aan het einde van de patroonset. We zullen de .functie gebruiken willekeurig.randent() Om een getal tussen 0 en 3 te kiezen, dat staat voor 4 LED's.
patroon = [] lichten = [rood, geel, groen, blauw] terwijl het spel: patroon.append(random.randint(0,3))
Vervolgens moeten we de lichten aandoen om het patroon te laten zien.
while game: pattern.append(random.randint(0,3)) for x in pattern: GPIO.output(lights[x], GPIO.HIGH) time.sleep(1) GPIO.output(lights[x], GPIO.LOW) time.sleep(0.5)
Het is belangrijk om tussen twee lampen te stoppen. Het maakt het gemakkelijk om te zien of hetzelfde licht achtereenvolgens in een patroon wordt gebruikt.
Spelersinvoer krijgen
Vervolgens moet het spel wachten tot de speler de volgorde van de lichten heeft geraden. De software moet elk lampje in het patroon controleren en wachten tot de speler op de knop drukt. Dit vereist geneste iterators:
voor tijd.sleep(1) GPIO.output(rood, GPIO.LOW) als yellowButtonState == 0: GPIO.output(geel, GPIO.HIGH) waitingForInput = False tijd.sleep(1) GPIO.output(geel, GPIO.LOW) als greenButtonState == 0: GPIO.output(groen, GPIO.HIGH) waitingForInput = False tijd.sleep(1) GPIO.output(groen, GPIO.LOW) als blueButtonState == 0: GPIO.output(blauw, GPIO.HIGH) waitingForInput = False tijd.sleep(1) GPIO.output(blauw, GPIO.LOW)
De meeste van de bovenstaande code hergebruikt de code die we hebben geschreven om de knoppen te testen.
Invoer speler controleren
Vanaf hier is het heel eenvoudig om te controleren of de speler het juiste patroon heeft ingevoerd. Elke keer dat er op een knop wordt gedrukt, kan het spel controleren of het de juiste knop is. Voeg hiervoor de zin . toe if Overige voor elke knopinvoer:
Als redButtonState == 0: GPIO.output(red, GPIO.HIGH) waitingForInput = False Als x != 0: game = False time.sleep(1) GPIO.output(red, GPIO.LOW)
variabele x van herhalen besteld, Hij heeft het volgende lichtnummer. De rode LED staat op de eerste positie, of nummer 0. Als de speler op de rode LED-knop drukt terwijl we een 0 in ons patroon hebben, heeft hij gelijk! Zo niet, dan verliest hij het spel. zal resulteren in de configuratie van de variabele spel على vals Om de spellus te stoppen en het programma te beëindigen.
ons einde! Ik heb een spel helemaal opnieuw gemaakt!
Het maken van een game voegt meer code toe aan dit project dan alleen het toevoegen van LED's en knoppen. Werken aan een eindproject dat je aan je vrienden en familie kunt laten zien, kan je helpen gemotiveerd te blijven.
Dit spel is vrij eenvoudig. Daag jezelf uit om het basisontwerp te verbeteren. Misschien kunnen de lichten knipperen als de speler verliest. Misschien wil je jezelf uitdagen om geluiden aan het spel toe te voegen. Je fantasie is de enige limiet!
Nou ja, je fantasie en de hardware die je moet gebruiken. Nu kunt u bekijken Beste projecten om een smart-tv te maken met Raspberry Pi










