Het lampje gaat aan op een willekeurig moment, en wie het eerst op zijn knop drukt, wint. Simpel, spannend en verslavend: perfect voor een regenachtige middag. Ondertussen leer je drie dingen die in bijna elk elektronicaproject terugkomen: een uitgang aansturen (het lampje), een ingang uitlezen (de knoppen) en met tijd rekenen. Reken op een half uur, inclusief een paar potjes.
Wat heb je nodig
- Een Raspberry Pi Pico of Pico W met pinnetjes (headers)
- Een breadboard en een paar jumperkabels
- Eén ledje en een weerstand van 330 ohm
- Twee drukknopjes
- Een laptop met het gratis programma Thonny
Alles behalve de laptop zit in de Raspberry Pi Pico-kit.
Aansluiten
| Onderdeel | Sluit aan op | Pin op de Pico |
|---|---|---|
| Ledje, lange poot | Via de weerstand naar GP15 | Pin 20 |
| Ledje, korte poot | GND (min) | Pin 18 |
| Knop links | Tussen GP14 en GND | Pin 19 en pin 18 |
| Knop rechts | Tussen GP16 en GND | Pin 21 en pin 23 |
Een weerstand voor de knoppen heb je niet nodig: de Pico heeft er zelf een ingebouwd, een zogeheten pull-up. Die houdt de ingang “hoog” (1), en als je drukt, verbind je hem met GND en wordt hij “laag” (0).
MicroPython op de Pico
Sluit de Pico aan op je laptop en open Thonny. Kies rechtsonder de interpreter “MicroPython (Raspberry Pi Pico)”. Staat er nog geen MicroPython op de Pico, dan biedt Thonny aan om het te installeren; houd daarvoor de witte BOOTSEL-knop ingedrukt terwijl je de usb-kabel insteekt.
De code
from machine import Pin
import time
import random
lampje = Pin(15, Pin.OUT)
links = Pin(14, Pin.IN, Pin.PULL_UP)
rechts = Pin(16, Pin.IN, Pin.PULL_UP)
while True:
lampje.off()
print("Klaar? Wacht op het lampje...")
time.sleep_ms(random.randint(2000, 5000))
lampje.on()
start = time.ticks_ms()
# wachten tot een van de knoppen wordt ingedrukt (ingedrukt = 0)
while links.value() == 1 and rechts.value() == 1:
pass
tijd = time.ticks_diff(time.ticks_ms(), start)
if links.value() == 0:
print("Links wint in", tijd, "milliseconden!")
else:
print("Rechts wint in", tijd, "milliseconden!")
time.sleep(3)
Sla het op de Pico op als main.py, dan start het spel voortaan vanzelf zodra de Pico stroom krijgt. De uitslag verschijnt onderin Thonny.
Hoe het werkt
Het programma draait in een eindeloze lus. Eerst gaat het lampje uit en wacht de Pico een willekeurige tijd tussen twee en vijf seconden, zodat niemand kan voorspellen wanneer het zover is. Dan gaat het lampje aan en onthoudt de Pico de tijd. De binnenste lus doet niets anders dan heel snel kijken of er al een knop laag is. Zodra dat zo is, rekent de Pico uit hoeveel milliseconden er verstreken zijn en wie er gedrukt heeft.
Maak het moeilijker
- Valse start: wie drukt voordat het lampje aangaat, verliest de ronde.
- Scorebord: houd bij wie er wint en stop bij vijf punten.
- Geluid: een zoemer die piept bij een valse start.
- Twee lampjes: laat ook het lampje van de winnaar oplichten.
Loop je vast, of wil je het samen bouwen? Neem je Pico mee naar de winkel of kom naar een Pi Plaza-workshop. En wie het hele gezin heeft verslagen, mag een foto sturen voor de Pi Plaza-muur.