← Område 1 Guide · Det första programmet Felsökning

Teknik 1 · område 1 · pass 1

Det första programmet

Ett program är instruktioner i ordning. Pico:n läser dem uppifrån och ner och gör exakt det som står, varken mer eller mindre. Det första programmet tänder och släcker en lysdiod – och det räcker för att förstå hur allt annat i blocket fungerar.

I VS Code: File → New File. Spara direkt som blink.py i mappen teknik1 (Ctrl+S). Skriv av programmet rad för rad – kopiera inte, det är genom att skriva du lär dig var tecknen sitter.

from machine import Pin
from time import sleep

led = Pin(25, Pin.OUT)

while True:
    led.on()
    sleep(0.5)
    led.off()
    sleep(0.5)
Indraget är inte pynt

Raderna under while True: har fyra mellanslag i början. Det är så Python vet att de hör till loopen. VS Code gör indraget själv när du trycker Enter efter kolonet – ta inte bort det.

2. Vad varje rad gör

RadenVad den gör
from machine import PinHämtar verktyget som styr pinnar. Det finns inte förrän du hämtat det
from time import sleepHämtar verktyget som väntar
led = Pin(25, Pin.OUT)Pinne 25 är den inbyggda lysdioden. OUT betyder att vi skickar ut, inte lyssnar. Namnet led väljer du själv
while True:Gör raderna nedanför om och om igen, för alltid
led.on()Pinnen går hög – 3,3 volt – och lysdioden tänds
sleep(0.5)Vänta en halv sekund. Inget händer på pinnen under tiden
led.off()Pinnen går låg – 0 volt – och lysdioden släcks

Det är hela idén: varje rad gör något med en pinne, eller väntar. Pinnen är antingen på eller av.

3. Kör, stoppa, ändra

  1. Klicka Run nere i listen (eller Ctrl+Shift+P → MicroPico: Run current file on Pico). Den gröna lysdioden på kortet blinkar.
  2. Klicka Stop. Den slutar.
  3. Ändra 0.5 till 0.1 på båda ställena. Kör igen. Ändra till 2. Kör igen.
  4. Ta bort raden led.off(). Gissa vad som händer innan du kör.
Prova själv

Gör så att den lyser länge och är släckt kort. Sedan tvärtom. Du behöver bara ändra två tal.

4. Breadboarden

Breadboarden är en platta med hål där du kopplar ihop saker utan att löda. Det enda du måste veta:

   a  b  c  d  e     f  g  h  i  j
1  o  o  o  o  o  |  o  o  o  o  o     ← a1–e1 sitter ihop. f1–j1 sitter ihop.
2  o  o  o  o  o  |  o  o  o  o  o        Men a1 och f1 gör det inte.
3  o  o  o  o  o  |  o  o  o  o  o
              spåret

5. LED på pinne 15

Du behöver: en lysdiod, ett motstånd på 220 Ω (röd-röd-brun), två kopplingstrådar.

  1. Tråd från Pico:ns GP15 till en tom rad på breadboarden.
  2. Motståndet från den raden till en ny rad.
  3. Lysdiodens långa ben i motståndets rad. Det korta benet i en egen rad.
  4. Tråd från lysdiodens korta ben till GND på Pico:n.
Två regler

Motståndet är inte valfritt. Utan det brinner lysdioden efter en stund. Långt ben till plus. Lyser den inte: vänd lysdioden. Den går inte sönder av att sitta fel.

Sedan samma program med en siffra ändrad. Spara som blink15.py:

from machine import Pin
from time import sleep

led = Pin(15, Pin.OUT)

while True:
    led.on()
    sleep(0.5)
    led.off()
    sleep(0.5)

Kör. Nu blinkar lysdioden på breadboarden i stället för den på kortet. Samma kod, annan pinne – det är precis så roboten kommer att styras om tre veckor.

6. SOS – din första uppgift

SOS på morse är tre korta, tre långa, tre korta. Kort = 0,2 sekunder, lång = 0,6. Mellan varje blink är den släckt 0,2 sekunder.

Skriv det först med talen inskrivna överallt. Det blir många rader. Det är meningen.

När det fungerar: du vill göra hela mönstret dubbelt så snabbt. Hur många ställen måste du ändra på? Det är därför variabler finns. Skriv om programmet så här i början, och använd namnen i stället för talen:

from machine import Pin
from time import sleep

led = Pin(15, Pin.OUT)
kort = 0.2
lang = 0.6

while True:
    led.on()
    sleep(kort)
    led.off()
    sleep(kort)
    # … fortsätt själv: tre korta, tre långa, tre korta

Nu räcker det att ändra kort och lang på ett ställe.

Klart när — det här ska alla ha

Om du hinner — utmaning

Kryssen sparas i din webbläsare.

Klar med allt? Stationerna – tio små byggen med sensorkitet.

7. Felsökning

7 rader

SymptomTrolig orsakÅtgärd
Röd text: IndentationErrorIndraget under while True: saknas eller är olika på olika raderFyra mellanslag på varje rad i loopen. Inte tab på en och mellanslag på en annan
Röd text: NameError: name 'pin' isn't definedLitet p i pinPython skiljer på stora och små bokstäver. Pin
Röd text: SyntaxError och en pilEtt tecken saknas – oftast kolonet efter while True eller en parentesTitta på raden pilen pekar på, och raden ovanför
Programmet kör men lysdioden på breadboarden är släcktLysdioden sitter åt fel hållVänd den. Långt ben mot motståndet
Lysdioden lyser svagt eller inte alls, koden är rättMotstånd och lysdiod i samma rad, eller GND-tråden i fel radKontrollera att varje del går från en rad till en annan rad
Run-knappen är gråEtt program kör redanKlicka Stop, eller tryck Ctrl+C i Pico:ns terminal
Den inbyggda lysdioden blinkar fast jag kör blink15.pyDu ändrade inte 25 till 15, eller körde fel filKontrollera att fliken du står i är blink15.py och att raden säger Pin(15, …)

Ord på den här sidan

OrdBetyder
programInstruktioner i ordning. Körs uppifrån och ner
importHämta ett verktyg så att det går att använda
pinne (GPIO)Ett ben på Pico:n som programmet kan sätta på eller av, eller lyssna på
loopRader som körs om och om igen. while True: är en loop utan slut
indragMellanslagen i början av en rad. Visar vad som hör till loopen
variabelEtt namn som står för ett värde. kort = 0.2. Ändra på ett ställe, gäller överallt
breadboardKopplingsplatta. Fem hål i en rad sitter ihop
motståndKomponent som begränsar strömmen. 220 Ω skyddar lysdioden

Ordträning