Hover:bit Programmer Fjernkontrollen
Last updated
Last updated
I denne oppgaven skal vi programmere hover:bit fjernkontrolleren (sender), som skal sende instruksjoner via radio som fartøyet (mottaker) skal ta imot. Før vi gjør det må vi tenke på hva vi ønsker å kontrollere på fartøyet.
Du lærer om
Radio Kommunikasjon
Blokk programmering
Variabler
Estimert tidsforbruk: 1-3 skoletimer
En nærmere titt på vårt luftputefartøy
Når luften blåses inn i posen ved hjelp av putemotoren, skapes en liten åpning mellom fartøyet og bakken. Da fjernes friksjonen, og fartøyet sklir lett og raskt ved hjelp av skyvemotoren.
Før vi begynner Må vi tenke på hva vi ønsker å gjøre med fartøyet. Det første vi ønsker er å kunne skru fartøyet sin luftpute av og på (aktiv). Det andre er vi må kunne bevege halen for å greie å svinge (rotasjon). Til slutt så må vi kunne bestemme hastigheten på skyvemotoren (hastighet).
Disse verdiene kommer vi til å måtte få microbiten til å huske på (også kjent som variabler), derfor gir vi dem enkle navn som “aktiv”, “rotasjon” og “hastighet”.
Steg 1) Start et nytt prosjekt på makecode.microbit.org og trykk på “nytt prosjekt”, og gi det navnet “Hover:bit Fjernkontroller”.
Steg 2) Det første vi må gjøre er å ta å bestemme oss for hvilken radio kanal vi skal kommunisere med fartøyet på. Skap en variabel med å trykke på variabler deretter på “Lag en ny variabel…” og gi den navnet “RadioKanal”.
Dra ut en “sett RadioKanal til” blokk fra “variabler” menyen, og plasser den inn i “ved start” blokken, og velg et kanal nummer. (Her setter vi den til 7)
Steg 3) Det vi har gjort så langt er å lage en variabel, men ikke gjort noe med verdien av den variabelen. La oss begynne med å vise hvilken kanal vi har valgt med å dra ut en “vis tall” blokk fra “basis” menyen.
Nå viser vi bare et tilfeldig tall, la oss fikse det med å gå inn på variabel menyen og dra ut variabelen vår “RadioKanal” og dra den inn i “vis tall” blokken.
Nå må vi sørge for at vi faktisk sier med radioen vår at vi vil bruke denne kanalen. Dra ut en blokk som heter “radio sett gruppe 1” fra “Radio” menyen inn i “ved start” blokken som ligger ute på brettet.
La oss gjenbruke “RadioKanal” variablen her, med å dra ut “RadioKanal” blokken fra “Variabler” menyen inn i “radio sett gruppe” blokken ute på brettet.
Om du har gjort det riktig så langt, så kan du se på din venstre side av skjermen hvor “simulatoren” av micro:bit kjører viser et 7 tall på displayet. (Kan hende du må trykke på play)
Merk: Variabler hjelper oss slik at vi slipper å huske på hvilken radio kanal vi har valgt hver gang vi ønsker å bruke den. Hvis vi ikke hadde gjort det så måtte vi ha skrevet radio kanal tallet våres 3 ganger i denne koden, variabler hjelper oss slik at det blir mindre feil i koden våres!
Hva er det som egentlig skjer i koden våres nå? Når micro:bit starter (”ved start” blokken) Så bestemmer vi at variablen “RadioKanal” får en verdi på 7 som deretter vises på skjermen på micro:bit. Vi sørger også for at radioen på micro:bit blir satt til “RadioKanal” sin verdi (7).
Steg 4) La oss sette sammen logikken vår for hvordan vi skal gi hastighet til bilen, først og fremst så ønsker vi at knapp “A” (venstre på micro:bit) skrur hastigheten ned, og at knapp “B” (høyre på micro:bit) øker farten.
La oss starte med å lage en variabel som heter “Hastighet” og legge ut to rosa blokker som heter “når knapp a trykkes”.
Etter det så drar vi ut 2 av blokken fra menyen “inndata” som heter “når knapp a trykkes” ut på brettet, og endrer den ene blokken til å lytte på knapp “B”. Etter det så drar vi ut en blokk som heter “endre “hastighet” med 1” inn i hver av blokkene, og endrer verdien på blokken som tar imot tastetrykk fra “A” knappen til -10 og det samme med knapp “B” bare at vi der setter verdien til 10.
Steg 5) Vi skal nå programmere oppførselen til fartøyet når den skrues av og på. For å gjøre dette må vi først skape en ny variabel med navn “Aktiv”.
Vi har kun et mulig tastetrykk igjen som kan brukes til dette og det blir knapp “A+B” når begge knappene aktiveres samtidig. Start med å dra ut en blokk fra “inndata” som heter “når knapp A trykkes” og endre hvilken knapp den lytter på til “A+B”.
Deretter må vi lage logikken på hva som skal skje når vi trykker på denne knappen (A+B). Når vi da trykker på knappen ønsker vi at “Aktiv” sin verdi skal endre seg fra 0 (av) til 1 (på) eller motsatt. Vi kan gjøre det med å dra ut en blokk fra “logikk” som heter “hvis sann så, ellers”
Etter det så drar vi ut “Aktiv” blokken fra “variabler” og legger den inn i “hvis” blokken, etter det drar vi ut “sett Aktiv til 0” og plasser en i hver av delene til “hvis” blokken. På den første skal verdien være 0 (av) og på den andre skal verdien være 1 (på).
La oss også legge til at vi setter “Hastighet” til 0 når vi trykker begge knappene samtidig, uansett om fartøyet skrues av eller på. Dra en “sett Aktiv til 0” blokk fra menyen “Variabler” og sett den på bunnen av “når knapp a+b trykkes”, da er vi sikre på at farten er alltid 0 når vi starter eller stopper fartøyet.
Koden din bør nå se slik ut. Om du har gjort noe feil, kan du gå tilbake til steget der hvor feilen skjedde.
Hva er det som egentlig skjer i koden vår nå? Når vi trykker “A+B” knappen ned, så sjekker vi om “Aktiv” sin verdi er lik 1 (på), hvis den er det så setter vi “Aktiv” sin verdi til 0 (av), ellers så setter vi den til 1 (på). Det vi har laget her er at knappen våres bytter om verdien på variabelen “Aktiv” til motsatt av det den er hver gang den trykkes.
Steg 6) La oss nå programmere rotasjonen av halen til fartøyet.
Vi begynner med å plassere en “gjenta for alltid” blokk fra “basis” menyen ut på brettet.
Deretter skaper vi en variabel som heter “Rotasjon”, ved å trykke oss inn på “variabler” menyen og så trykke på “Lag en variabel…”
Etter det så drar vi en “sett Rotasjon til” blokk fra “variabler” menyen inn i “gjenta for alltid” blokken ute på brettet.
Micro:bit har en innebygd funksjon som kan gjenkjenne om fjernkontrolleren blir rotert på, denne funksjonen skal vi ta bruk av.
Gå inn på “Inndata” menyen også trykke under den på “… Mer” også finner vi “helningsvinkel (°) vinkel forover-bakover” og drar den inn i “sett rotasjon til” blokken våres ute på brettet. Så forandrer vi om vi ønsker lytte på rotasjon “framover-bakover” til “høyre-venstre”.
Steg 7) Vi trenger måte å se om bilen er skrudd av eller på, la oss lage det nå. Start med å fjerne “Vis tall RadioKanal” blokken som er i “ved start” blokken på brettet.
Deretter henter vi en “hvis sann så, ellers” blokk fra “logikk” menyen, og drar den inn i “gjenta for alltid” ute på brettet.
La oss legge “Aktiv” blokken fra “Variabler” inn i “hvis sann så, ellers” blokken som er allerede ute på brettet.
Så når fartøyet våres er skrudd på (aktiv er like 1) da vil vi vise radiokanalen vi er koblet opp på, dra “vis tall” blokken fra “basis” menyen, inn i første delen av “hvis aktiv så ellers”.
La oss vise hvilken radio kanal vi bruker ved å hente det fra “RadioKanal” blokken, som ligger i “variabler” menyen og drar den ut på “vis tall 0” blokken.
Når fartøyet våres er skrudd av så burde vi vise et ikon som indikerer at den er slått av. Dra “vis ikon” fra “basis” menyen ut på brettet, og velg hvilket ikon du ønsker. Vi valgte “X”.
La oss sørge for at skjermen er tom før vi tegner noe som helst, dra en tøm skjermen
Du kan nå teste med enten microbiten eller i simulatoren, ved å trykke på A+B samtidig skal du kunne først se et ikon og deretter et tall som er kanalen vi har valgt for radioen vår.
Steg 7) Dette luftputefartøyet kan bevege seg veldig fort! La oss lage en nødbrems i tilfelle vi er på vei til å kræsje med noe. Start med å hente “når ristes” blokk fra “inndata” menyen og legg den ut på brettet.
Deretter så henter vi en “sett rotasjon til” blokk fra “variabler” menyen, og legger den inn i “når ristes” blokken ute på brettet. Og endrer den til “Hastighet” variablen vår.
Gjør det samme igjen, men denne gangen endre variablen til “Aktiv”.
Steg 8) La oss sette opp den siste delen av fjernkontrolleren, nemlig å sende instruksjoner over radioen til mottakeren (fartøyet). Vi begynner med å dra ut 3 stykker “radio send verdi name = 0”, fra “radio” menyen og plasserer de på bunnen av “gjenta for alltid” blokken. På den øverste så skriver vi bokstaven “A” for “Aktiv” variablen, i midten så skriver vi bokstaven “H” for “Hastighet” variablen. Og til slutt så skriver vi “R” for “Rotasjon” variablen.
Etter det på “variabel” menyen drar vi “Aktiv” variablen inn i “radio send verdi A” blokken, så drar vi “Hastighet” blokken inn i “radio send verdi H” blokken. Og til slutt så drar vi “Rotasjon” blokken inn i “radio send verdi R” blokken.
Når du er ferdig burde det se sånn her ut på brettet ditt.
Overfør programmet over på Micro:bit
Trykk på last ned ikonet nederst på siden. Programmet du har laget vil lagre seg som en .Hex fil. Legg merke til hvor du lagrer filen. Når den er lastet ned kan du simpelthen dra den over til micro:bit ikonet i filutforskeren. Micro:bit blinker oransje bak når programmet lastes over, og stopper når den er ferdig. Programmet er umiddelbart klart til å brukes når micro:bit er koblet til strøm.