Teknik 1 · område 1 · när du är klar med dagens uppgift
Stationerna
Tio små byggen med sensorkitet. Välj en, hämta delarna i lådan, bygg. Varje kort har delarna, målet och en ledtråd – men ingen färdig kod. Det är meningen: det här är problem att lösa, inte kod att skriva av.
Modulerna har tre stift: S (signal) till en GP-pinne, + till 3V3, − till GND. Analoga moduler (ljus, NTC, joystick) måste ha S på GP26, GP27 eller GP28. Digitala kan sitta var som helst.
Svårighet: ★ klarar du direkt efter dagens genomgång · ★★ kräver att du kombinerar två saker · ★★★ kräver något nytt, kortet ger ledtråden.
S1 · Trafikljus ★
Delar: röd, gul och grön LED, 3 × 220 Ω. Stretch: tryckknapp.
Mål: rätt svensk sekvens: röd → röd+gul → grön → gul → röd. Använd
variabler för tiderna.
Stretch: fotgängarknapp – trycker man blir det rött inom tre sekunder.
Ledtråd: tre Pin-objekt, en while True, och
sleep mellan varje läge. Knappen läses där det är grönt.
S2 · Nattlampa med dimmer ★
Delar: ljussensormodul (S → GP26), LED.
Mål: ju mörkare, desto starkare lyser LED:n. Inte av/på – glidande.
Ledtråd: read_u16() ger 0–65535. En LED som är
PWM(Pin(15)) har duty_u16() som tar 0–65535. Vad händer om du
skickar in det ena i det andra? Och om det blir tvärtom: 65535 - varde.
S3 · Reaktionsspel ★★
Delar: LED, tryckknapp.
Mål: LED:n är släckt. Efter en slumpmässig tid (1–5 s) tänds den. Mät
tiden till knapptrycket och skriv ut den i millisekunder.
Stretch: bästa tiden sparas. Tjuvstart (tryck innan LED:n tänds) ger
"Tjuvstart!".
Ledtråd: import random och random.uniform(1, 5)
ger ett slumptal. time.ticks_ms() ger klockan i millisekunder – läs av före
och efter, och time.ticks_diff(efter, fore) ger skillnaden.
S4 · Termometer med varning ★★
Delar: NTC-modul (S → GP27), buzzer, LED.
Mål: skriv ut temperaturen varje sekund. Larma över 30 °C (håll fingret
på sensorn).
Rimlighet: om din formel ger 250 °C – vad är fel? Rummet är omkring
20 °C. Kalibrera mot det.
Ledtråd: NTC:ns värde sjunker när det blir varmt. En enkel modell:
temp = 20 + (rumsvarde - varde) / k. Mät rumsvarde först.
Hitta k genom att jämföra med en riktig termometer, eller med fingret
(ungefär 32 °C på ytan).
S5 · Stöldlarm ★★
Delar: tiltsensor eller vibrationssensor, buzzer, LED, tryckknapp.
Mål: i larmat läge tjuter det om någon rör breadboarden – tills knappen
trycks. Knappen larmar av och på.
Ledtråd: en variabel larmat som är True eller False, som
toggle-lampan. Tre lägen att skilja på: larmat och stilla, larmat och rörd (tjuter),
olarmat. Tiltsensorn är digital – läs den som en knapp.
S6 · Varvräknare ★★★
Delar: optisk läsgaffel, en pappskiva med ett hål eller en tunga,
något som snurrar (för hand går bra).
Mål: räkna hur många gånger pappen passerar gaffeln. Skriv ut varv per
minut.
Ledtråd: räkna bara när värdet går från 1 till 0 – inte medan
det är 0. Spara förra värdet i en variabel och jämför med det nya varje varv i loopen.
Stretch: Pin.irq() låter Pico:n räkna själv i bakgrunden.
Sök på micropython pin irq.
S7 · Joystick-RGB ★★
Delar: joystick (X → GP26, Y → GP27), RGB-LED-modul (tre stift R, G, B
till tre GP-pinnar).
Mål: joystickens läge bestämmer färgen. I mitten är den släckt.
Ledtråd: två read_u16(), tre PWM med
duty_u16(). X kan styra rött, Y grönt. Vad ska styra blått? I mitten är
båda ungefär 32000 – hur blir det "släckt" där?
S8 · Morse-sändare ★★★
Delar: LED eller buzzer.
Mål: text = "SOS" överst i programmet – och programmet
blinkar morse för varje bokstav.
Ledtråd: en dictionary kopplar bokstav till mönster:
morse = {"S": "...", "O": "---"}. Sedan for bokstav in text: och
inuti den for tecken in morse[bokstav]:. Punkt är kort, streck är långt.
Stretch: input() i terminalen – skriv vad som helst.
S9 · Magnetlås ★
Delar: magnetkontakt eller hallsensor, LED (två färger, eller
röd/grön-modulen), buzzer.
Mål: grönt när magneten är nära (dörren stängd). Rött och ett pip när
den tas bort.
Ledtråd: sensorn är digital. Läs den som knappen. Prova först med
print vilket värde "nära" ger.
S10 · Knack-kod ★★★
Delar: knacksensor, LED.
Mål: tre knackningar inom två sekunder tänder LED:n. Andra mönster gör
ingenting.
Ledtråd: spara tidpunkten för varje knack (ticks_ms()) i en
lista med append. Hur många av tiderna i listan ligger inom de senaste
2000 ms? En knack studsar också – vänta 0,1 s efter varje.
Stationer jag klarat
Kryssen sparas i din webbläsare.
En station som gick är värd två rader. En station som inte gick, och varför, är värd fyra.