Sumo-battle med micro:bit på hjul

Sumobattle
Sumo-battle med micro:bit på hjul
1. juli 2022
Færdigt produkt på pc
Teknologiens betydning for menneskets…
2. juli 2022
Sumobattle
Sumo-battle med micro:bit på hjul
1. juli 2022
Færdigt produkt på pc
Teknologiens betydning for menneskets…
2. juli 2022

8. klasse


Fag

Teknologiforståelse, kan afvikles i alle fag, her matematik (8BC)

Faglige emner

Programmering, matematik, computationel tankegang, design af enkle redskaber, samspil mellem udstyr og program.

Teknologier

Programmering i micro:bit/scratch til bitbot XL bil på makecode.microbit.org

Af Mikkel Andreassen




Beskrivelse

Programmering af micro:bit/bitbot-bil til at udføre forskellige challenges i kombination med enkle redskaber af pap til bilen.

Forløbsbeskrivelse

MÅLSÆTNING

Lade eleverne udfordre hinanden og vinde battles med snedig kode på enkle kamprobotter

MÅLGRUPPE

Forløbet kan stilladseres til flere klassetrin, men størst udbytte fås nok fra 5. og op i klasser med nogen forkundskab i micro:bit, men forkundskab er ikke afgørende.

RELEVANS

Forløbet demonstrerer 1:1 forhold mellem programmeringen og robottens fysiske formåen og adfærd. Jeg valgte at starte eleverne op på et grundprogram med mulighed for optimering og med tydelig sammenhæng mellem programmets enkelte dele og de rutiner robotten skal udføre for at vinde et battle eller skubbe kopper ud på tid.

Det medvirker til en forståelse af kode til f.eks. husholdningsapparater, robotstøvsugere, droner mv.

INSPIRATION:

Japanske sumo-robotter:

https://www.youtube.com/watch?v=mS-L2fpV1Is

Battlebots https://battlebots.com/ etc.

TIDSPLAN:

2-3 uger á 5 lektioner

MATERIALER

Materialer pr. gruppe/elev:

  • 1 Micro:bit + USB-kabel + 3 AA-batterier
  • 1 bitbot XL-bil, evt. til deling
  • 3D-printet kofanger
  • Sider til reflektion af Sonar
  • 20x20cm papstykke i 4mm kraftig bølgepap
  • Tusch til montering bag på bitbot XL
  • PC til programmering

Fælles materialer:

  • Battlearena af hvid karton eller store ark hvidt papir. Bane/labyrint opstreges med tyk sort tusch/tape/papir/folie. 1-3 cm bred streg
  • Hobbykniv og skæreunderlag til tilpasning af pap
  •  

LÆRINGSMILJØ:

På skolen, i de sædvanlige klasselokaler

FORLØBET:

Uge 1 Lektion 1-5

Lektion 1: Eleverne opdeles i grupper á ca. 3 og får udleveret micro:bit, pap, kofanger og tilgår .hex-fil med SUMO-program til micro:bit.
Det gennemgås fælles hvilken funktion de enkelte dele i programmet har, og der opfordres til at man starter med kode, før man indretter udstyr af pap på kofangeren.
Eleverne følte sig trygge ved at indrette med pap men det blev nemt en undskyldning for at undgå at arbejde med koden.

Lektion 2-4: Eleverne følges i deres arbejde med at optimere koden og indrette kofangeren til bedst at bekæmpe modstanderen. Det er oplagt at opgaverne fordeles i gruppen.
Eleverne opfordres til at teste og afprøve deres kode og lave test-kampe for at spotte muligheder for at forbedre koden.

Lektion 5: Første del afsluttes med en turnering hvor deltagerne kæmper hinanden ud af banen.

.hex-fil vedlagt - med startkode til sumo-battle
Importeres ind i makecode og kan danne grundlag for kode til micro:bit / bit:bot XL

Uge 2 Lektion 6-10 - ny challenge

Opgaveeksempler:

  • No More Plastic: Skub plastkopper ud
  • Line-Follow: Opgaver med linjesøger
  • Labyrint/maze:
    • Opgaver med labyrint med lodrette sider
  • Lightsensor: Find mørkeste/lyseste sted
  • Tegne:
    • En tusch kan monteres bagpå. Hvilke mønstre
      kan tegnes med forskellig kørsel?

Lektion 6: Jeg valgte 2 challenges. ”Skub kopper ud” og ”Lyssensor”.
”Skub kopper ud” bygger videre på ”Sumo” og bruger de samme sensorer. Her er udfordringen at ændre koden så bilen ikke fortsætter ud over stregen mens den skubber en kop. I sumo angrebs-mode skulle bilen bare skubbe en modstander ud én gang og derfor fortsætter bilen over stregen mens den skubber - men her skal bilen stoppe når den har skubbet koppen ud men før den selv kører over stregen. Straks linje-sensorerne ser stregen under bilen skal den bakke tilbage ind i banen for at skubbe andre kopper ud.

Lektion 7-9: Teste og forbedre

Lektion 10: Turnering

8BC UGE 8 "SUMO-BATTLE":

20 eleverne havde til deling 4 bitbot XL-biler fra 4tronix.co.uk. Opdelt i par - max 3 - fik hver gruppe en micro:bit, 20x20cm pap, en 3D-printet kofanger udstyret med ”skyklapper”, så den kan ses af modstanders sonar - det minimale pap-udstyr.

Eleverne tog godt imod opgaven selvom det hurtigt blev klart at opgaven ikke var helt nem. Startkoden er på mange måder færdig og derfor svær at forbedre for elever med lidt/begyndende kendskab til kode og selve dysten kan indeholde stor usikkerhed. Flere elever arbejdede målrettet med at isolere programmeret adfærd der kan genskabe en sejr.

Det er selvfølgelig et valg om man vil lade eleverne programmere adfærd op fra scratch ;) og i dette tilfælde var det oplagt at eleverne havde noget at starte fra. Startprogrammet giver også god anledning til at forklare basal programmering, f.eks. hvis/så loopet, der lytter til bilens sensorer der danner konditioner/betingelser for hvilke handlinger bilen skal udføre.

Selv elever der oplevede store udfordringer lod sig rive med og brugte f.eks. tid på at kode bitbot’ens lysshow hvilket jo også er kode. Der sås ofte forskellige lyseffekter alt efter hvilken sensor der aktiverede et loop og det gav anledning til en snak om at lysene skulle være forskellige for at visualisere hvilke loops der var aktive.

Den del der vedgik individuel indretning af køretøjerne med pap optog og gav anledning til stor humor og finesse. Alle biler/teams blev tildelt navne til turneringsplanen: Rainbow Dash, Ferrari 2.1, Princess, Gurli Gris osv.


8BC UGE 9 Lyssensor + kop-skubber/No Plastic

No Plastic - her skal bilen finde et antal plastkopper og skubbe dem ud af arenaen. Koden hertil ligger i forlængelse af SUMO-koden, og eleverne opdager f.eks. at angrebsadfærden skal ændres så bilen ikke indgår en tidsfastsat kørsel.
Til højre ses de 2 ”drive” blokke, hvoraf den ene skal køre et fastsat tidsrum og den anden blot skal køre så længe betingelsen er tilstede:

I SUMO startkoden indgår bilen en tidsfastsat kørsel når objekter er tættere end 20 cm, dvs. når bilen i denne challenge fanger en kop, vil sonar konstant trigges af en kop tæt på og bilen kører over stregen.

Derfor skal kondition/betingelse ændres fra
sonar < 20 cm
til
sonar < 20 cm og
linsensor_left = 0 og
linsensor_right = 0
- altså, der må kun skubbes når objekt er indenfor en bestemt afstand og begge linesensorer ser et hvidt underlag. Når en af disse sensor output forsvinder - f.eks. når bilen kører over den sorte streg - så bortfalder betingelsen, loopet deaktiveres og dermed kørsel.

I denne challenge er der mange muligheder for optimering. Når f.eks. bilen undviger en streg er den fra start programmeret til at bakke og dreje i et tidsrum. Eleverne opfordres til at indbygge nye betingelser, så bilen f.eks. stopper med at dreje indtil den ”ser” en kop som derefter skubbes ud.

Selvom mange ikke kan løse ovenstående, kan de fleste optimere på hastigheden.

Papredskaberne har her en mere logisk funktion og de fleste gennemskuer at der skal en bred skovl foran, hvilket medførte begrænsning af bilens samlede størrelse.

Regler til ”No Plastic”:
Der køres 3 heat og gennemsnitlig tid udregnes.
Bonus:

  • 3 gennemførte heat: tid - 10%
  • 2 gennemførte heat: tid - 5%
  • 1 gennemført heat ingen bonus.
  • Bil udgår ved 0 gennemførte heat.
  • Heat annulleres når bil:
    • Går i stå, kører ud af banen eller er mere end f.eks. 2m om at skubbe kopper ud.

 

8BC bitbot/micro:bit EVALUERING/AFRUNDING

Det er min opfattelse at de fleste klasser - medmindre de har gennemført grundige forløb med kodning af micro:bit - bør få adgang til startkode til bitbot challenges.

Startkoden viser basale greb i kodning og eleverne kan efterfølgende se at det virker hvorefter de kan optimere/ændre forskellige parametre eller lege med forskellige lyseffekter i loops’ne.

At forvente at de kan kode det fra bunden indenfor et kort forløb som her - 10-15 lektioner er ikke realistisk og på denne måde får alle - også mindre interesserede elever - et indblik i hvad kode kan og gør. Effekten af ændringer i programmet kan straks ses og afprøves. Det værste der kan ske er at de skal starte forfra med startkoden - altså gå tilbage til den sidste version der virkede.

Fra lærerside kræver det basal indsigt i denne type kodning og kendskab til micro:bit. Man skal kunne finde rundt i Makecode editoren for at kunne fejlfinde og hjælpe eleverne på vej.

Jeg oplevede selv en udfordring med lyssensor challenge hvor jeg dels håbede det virkede bedre, ikke havde haft tid til at afprøve hvor pålideligt de virkede - line sensors og sonar er meget pålidelige.

Jeg havde også en urealistisk forventning til at eleverne kunne ”knække koden” og jeg havde advaret om at netop denne challenge var den sværeste. Kun en lille gruppe havde valgt udfordringen og de brugte meget tid på trial and error uden at opleve et definitivt gennembrud på sammenhæng mellem kode og sensorer. Det må jeg følge op på. Linket rapidonline.com/bitbot har gode eksempler som skal efterprøves - de er til den første version af bitbot men kan stadig bruges. Der er også intro til fjernstyring af bitbot med 2 micro:bits.

Elevernes læring
Flere elever gjorde meget ud af at udvikle på koden og gjorde en indsats med research og eksperimentering. Andre fandt større interesse i at indrette bilerne.

Alle gik fra forløbet med en forståelse af sammenhængen mellem programmering, sensorinput og fysisk virkemåde af bilen - hvilket var det basale formål.