Spring til indhold
8-15 år Øvet ⏱ 1-2 timer

Lav en skattejagt med to micro:bits – varm eller kold?

Gem en micro:bit udenfor, og find den med en anden. Jo tættere du kommer, jo flere lamper lyser – for radiosignalet bliver stærkere.

Illustration af en micro:bit med et lysende hjerte

micro:bitten har en indbygget radio, så to micro:bits kan sende beskeder til hinanden. Og radiosignaler bliver svagere, jo længere de skal. Det bruger du til en skattejagt: den ene micro:bit er skatten, der hele tiden sender “her er jeg!”. Den anden er din søger, der viser, hvor stærkt signalet er.

Sådan gør du

  1. Åbn MakeCode, og lav et nyt projekt, der hedder Skat. Skift fra blokke til Python øverst på skærmen, og skriv skattens kode. Du kan også bygge det samme med blokkene under Radio.
  2. Download koden til den første micro:bit, og sæt batteripakken til. Den viser en diamant – det er skatten.
  3. Lav et nyt projekt, der hedder Søger, med søgerens kode. Download den til den anden micro:bit.
  4. Test indenfor: hold de to micro:bits tæt sammen, og gå langsomt væk med søgeren. Søjlen på skærmen bliver lavere, jo længere væk du kommer. Står du helt tæt på, viser søgeren et hjerte.
  5. Gå udenfor! Den ene gemmer skatten – fx i en busk, under en bænk eller bag et træ – mens den anden kigger væk. Så går jagten ind: følg søjlen, til hjertet dukker op.
  6. Byt roller, og tag tid på hinanden.

Skatten (MakeCode Python)

# SKATTEN: den micro:bit, du gemmer
radio.set_group(42)          # vælg jeres eget tal mellem 0 og 255
basic.show_icon(IconNames.DIAMOND)

def on_forever():
    radio.send_number(0)     # "her er jeg!"
    basic.pause(200)
basic.forever(on_forever)

Søgeren (MakeCode Python)

# SØGEREN: den micro:bit, du går rundt med
radio.set_group(42)          # samme tal som skatten
styrke = -128                # svagest mulige signal
sidst_hoert = 0

def on_received_number(receivedNumber):
    global styrke, sidst_hoert
    styrke = radio.received_packet(RadioPacketProperty.SIGNAL_STRENGTH)
    sidst_hoert = input.running_time()
radio.on_received_number(on_received_number)

def on_forever():
    if input.running_time() - sidst_hoert > 2000:
        basic.show_icon(IconNames.NO)       # intet signal i 2 sekunder
    elif styrke > -50:
        basic.show_icon(IconNames.HEART)    # du står lige ved skatten!
    else:
        led.plot_bar_graph(Math.constrain(styrke + 100, 0, 50), 50)
    basic.pause(100)
basic.forever(on_forever)

Signalstyrken er et negativt tal: -128 er meget svagt, og jo tættere tallet kommer på 0, jo stærkere er signalet. Søgeren lægger 100 til, så tallet passer til søjlen, og Math.constrain sørger for, at det altid ligger mellem 0 og 50. Hører søgeren ikke skatten i to sekunder, viser den et kryds.

💡 Brug jeres eget gruppenummer i radio.set_group – ellers kan I komme til at finde et andet holds skat! Er jagten for nem, så tilføj radio.set_transmit_power(1) i skattens kode. Sendestyrken går fra 0 til 7, og jo lavere den er, jo kortere når signalet.

💡 Træer, vægge og mennesker svækker radiosignaler, så søjlen kan hoppe lidt. Stå stille et øjeblik, og drej langsomt rundt. Hvilken vej bliver søjlen højere?

💡 Til forældre: Aftal på forhånd, hvilket område jagten foregår i, og gem ikke skatten tæt på vej eller vand. Mangler I micro:bit nummer to, så spørg på skolen eller biblioteket, om I kan låne en.

Vil du lære mere om micro:bittens sensorer? Byg en temperaturmåler, og tag den med ud på jagten.

🧠 Udfordring – prøv selv

Gem flere skatte: giv hver skat sit eget tal i radio.send_number (1, 2 og 3), og lad søgeren vise tallet på den skat, den har fundet, når hjertet dukker op.