Brukerverktøy

Nettstedverktøy


introduksjon_til_bitbot

Dette er en gammel utgave av dokumentet!


Bit:bot

Her kan du laste ned ferdige hex-filer for å programmere din bit:bot, eller du kan følge bruksanvisningen under for å programmere bit:bot selv. Les mer her om hvordan du programmerer en micro:bit.

Etter å ha overført programmet til micro:bit kan du slå på bit:bot. Merk at du må løfte opp bit:bot fra underlaget når du slår på; bit:bot har lyssensorer på undersiden, og dersom det er mørkt under bit:bot ved oppstart vil den gå i «pairing mode» (for bluetooth). Dersom du løfter den litt opp mot lyset ved oppstart unngår du denne modusen og ditt program vil starte i stedet.

Fjernkontroll

For å kunne styre bit:bot via fjernkontroll trenger vi en micro:bit med batteri. Denne skal vi programmere til å sende kommandoer til en annen micro:bit som er festet til bit:bot og som skal styre bit:bot. Lag et program som kan sende akselerometerets x- og y-verdier til bit:bot. Du trenger ikke regne på kreftene eller akselerasjonen, bare sende verdiene.

Oppdrag 1a. Radiosender

Nå skal du programmere den micro:biten du skal holde i og bruke til å styre bit:bot.

Bruk kommandoer fra Radio-menyen til å lage en radiosender. Du må velge deg en kanal du kan sende meldinger på, og du skal bruke samme kanalnummer som nummeret på datamaskinen du bruker. Dersom datamaskinen din heter Trigger-03 skal du bruke kanal nummer 3.

<hidden Tips 1:>Du velger kanal ved å bruke kommandoen «radio sett gruppe». Det er tilstrekkelig å gjøre dette én gang, f.eks. ved start.</hidden> <hidden Løsningsforslag:></hidden>


Oppdrag 1b. Sende data

Les av akselerometerets x- og y-verdi og send disse ut på den valgte radiokanalen. Bit:bot må få hyppige oppdateringer fra fjernkontrollen. <hidden Tips 1:>I Inndata-menyen kan du finne en kommando for å lese akselerometerets verdier.</hidden> <hidden Tips 2:>Du trenger å sende en identifikator i tillegg til x- og y-verdiene. Dersom akselerometerets y-verdi er 1000, og du sender meldingen «1000» til bit:bot, så vet ikke bit:bot om det er x- eller y-verdien som er mottatt. Du må derfor sende en identifikator (f.eks. «acc_y») først. Dersom bit:bot mottar meldingen «acc_y 1000» kan mottageren finne ut at det er y-verdien av akselerometeret som er 1000. Du kan selv velge teksten til identifikatoren, men både sender og mottager må programmeres med samme identifikator.</hidden> <hidden Tips 3:>I Radio-menyen finnes det mange måter man kan sende data på. F.eks. kan du bruke kommandoen «radio send verdi» til å spesifisere en identifikator.</hidden> <hidden Løsningsforslag:></hidden>


Oppdrag 1c. Sende ekstra data

Dette er et oppdrag for avanserte brukere. Programmer radiosenderen til også å sende kommandoer for knappetrykk og andre input.

Motta data

Nå skal du programmere den micro:biten som skal sitte i bit:bot og motta kommandoer fra den håndholdte micro:biten med batteri.


Oppdrag 2a. Radiomottaker

Lag et program som mottar på samme radiokanal som fjernkontrollen sender på. <hidden Løsningsforslag:>Merk at kanalnummeret må stemme med nummeret på din datamaskin
</hidden>


Oppdrag 2b. Motta data

Lag et program som mottar data fra den valgte radiokanalen og finner x- og y-akselerasjon og legger tallene i hver sin variabel. <hidden Tips 1:>Du kan bruke kommandoen «når radio mottar» til å hente data fra radio. Hvilken variant av denne kommandoen du skal bruke kommer litt an på hvilken identifikator du valgte da du programmerte radiosenderen. Du kan bruke den blå knappen med tannhjulet til å velge hvordan du vil motta data. Dersom du valgte en tekst-identifikator (en identifikator som består av tekst, f.eks. «acc_y») kan du benytte en struktur som ligner på dette:

I eksemplet over vil de mottatte dataene bli oppdelt i to deler og lagret som to separate variabler, en som kalles «name» og en som kalles «value». Disse to variablene kan du bruke i ditt program. Hvis radioen f.eks. mottar dataene «acc_y 1000» vil den første delen (acc_y) bli lagret i variabelen «name» og den siste delen (1000) bli lagret i variabelen «value».</hidden> <hidden Tips 2:>Du kan bruke Hvis-setninger til å filtrere om den mottatte meldingen inneholder x- eller y-verdi:
</hidden> <hidden Løsningsforslag:>Merk at kanalnummeret må stemme med nummeret på din datamaskin
</hidden>


Styre motorer

For å kontrollere bit:bot må vi å laste ned et bibliotek med kommandoer spesiallaget for bit:bot. Et programbibliotek er en samling med ferdiglagde kommandoer som vi kan laste ned slik at vi slipper å lage alt selv, og dette biblioteket finner vi ved å først åpne Avansert-menyen, deretter trykke på «Hent tilleggsfunksjon». Der søker du etter «bitbot» og trykker på biblioteket som heter «bitbot - A BitBot package for pxt-microbit». Dette biblioteket inneholder kommandoer for å styre bit:bot. En av kommandoene har dessverre en bug: «kjør motor»-kommandoen gir deg mulighet til å bestemme hvor fort motoren skal kjøre. Kommandoen fungerer som den skal så lenge du kjører framover, men p.g.a. en programmeringsfeil vil bit:bot alltid kjøre på maks. fart bakover. Løsningsforslagene vil derfor ikke bruke denne kommandoen, men du kan gjerne bruke den likevel.

I de følgende oppdragene trenger vi også å bruke litt vanskelig matematikk til å regne ut farten til de to motorene. Det er absolutt lov til å kopiere løsningsforslagene dersom du synes matematikken blir for vanskelig. Disse beregningene skal utføres hver gang bit:bot mottar nye data fra fjernkontrollen, så du kan godt kode alt dette i «når radio mottar»-blokken.

Oppdrag 3a. Bruke datavariabel til å styre motorer

Lag et program som bruker y-verdien fra akselerometeret til å styre motorene fram og tilbake. <hidden Tips 1:>Det er én motor for hvert hjul, og med tanke på at bit:bot før eller senere skal kunne svinges må disse hjulene kunne kjøres med hver sin hastighet. Det vil være en fordel for deg om du lager to variabler (f.eks. kalt «høyre» og «venstre») som skal inneholde farten til hver motor. For øyeblikket skal begge gå like fort, men det er likvel greit å lagre dette som to separate verdier.</hidden> <hidden Tips 2:>«Kjør motor»-kommandoen kan kjøre en valgfri motor med en valgfri hastighet. Hastigheten du gir skal være mellom -1023 og +1023. På en eller annen måte må du sørge for at du kun gir kommandoen gyldige verdier.</hidden> <hidden Tips 3:>Dersom du vil ha regulerbar fart bakover (sterkt anbefalt!) må vi bruke andre kommandoer enn «kjør motor».

Blokkene over vil styre venstre motor riktig. Du må lage en likedan blokk for høyre motor. Merk: Venstre motor er koblet til P0 og P8 (se på koden!), men høyre motor er koblet til andre porter. Les på undersiden av bit:bot hva som er riktige porter for å styre høyre motor.</hidden> <hidden Løsningsforslag 1:></hidden> <hidden Løsningsforslag 2:></hidden>


Oppdrag 3b. Endre følsomhet

Test bit:bot med programmet ditt. Du kommer til å merke at fjernkontrollen er veldig følsom. Bit:bot står i ro bare når fjernkontrollen ligger helt flatt. Det er derfor vanskelig å få bit:bot til å stå rolig. Endre programmet ditt slik at det blir enklere å få bit:bot til å stå i ro. <hidden Tips 1:>Kommandoene du trenger finner du i Matematikk-menyen.</hidden> <hidden Tips 2:>Årsaken til at det er vanskelig å få bit:bot til å stå i ro er at det kun er én verdi (nemlig 0) som får bit:bot til å stå i ro. Alle andre tall vil få bit:bot til å kjøre. Dersom alle verdier fra f.eks. -100 til 100 ble ignorert ville man fått bedre kontroll.</hidden> <hidden Tips 3:>Du kan bruke absoluttverdikommandoen fra Matematikk-menyen til å ignorere fortegnet. Absoluttverdien av 50 er 50. Absoluttverdien av -50 er også 50.</hidden> <hidden Løsningsforslag:>Blokken under er bare for venstre motor. Høyre motor må være tilsvarende, men med andre porter
</hidden>


Oppdrag 3c. Svinge

Modifiser programmet slik at du kan bruke x-verdien fra akselerometeret til å svinge. Både x- og y-verdien vil variere mellom -1023 og +1023. Men du må sørge for at hastighets-verdien til «kjør motor»-kommandoen ikke blir større enn 1023. <hidden Tips 1:>Dersom du vil svinge til venstre kan du bremse det venstre hjulet slik at det kjører saktere enn det høyre.</hidden> <hidden Tips 2:>Matematisk kan vi skrive det slik: Høyre hjul kan kjøre med hastighet Y pluss X og venstre hjul kan kjøre med hastighet Y minus X.</hidden> <hidden Løsningsforslag:></hidden>


Når du er ferdig kan det endelige resultatet f.eks. se slik ut:
<hidden Mulig løsning></hidden>


Buzzer

Bit:bot er utstyrt med en buzzer som kan lage lyd.

Oppdrag 4a. Lage lyd

Endre programmet ditt slik at du får en sirene når bit:bot kjører bortover. <hidden Tips 1:>Du kan bruke kommandoen «buzz lyd» fra bitbot-menyen til å lage lyd. Dersom «buzz lyd» settes til 1 får du en høy, skjærende sirene. Hvis den settes til 0 blir det deilig stille. Ikke sett denne kommandoen til 1 unødvendig lenge!</hidden> <hidden Tips 2:>Dersom du vil ha en annen tone enn den du får med «buzz lyd» kan du bruke «skriv analog til»-kommandoen fra Tilkobling-menyen. Dersom denne kommandoen sender et lite tall (f.eks. 50) blir det en dyp, lav tone. Dersom du gir et høyt tall (f.eks. 1000) blir det en høy, kraftig lys tone. Ikke sett tall høyere enn 1023. Her må du passe på å sette porten til P14.</hidden> <hidden Løsningsforslag 1:></hidden> <hidden Løsningsforslag 1:>Bruk fortrinnsvis det andre løsningsforslaget
</hidden>


Oppdrag 4b. Lage av/på-knapp for lyden

Dette er et oppdrag for avanserte brukere. Greier du å slå lyden av og på med fjernkontrollen?


Neopixler

Bit:bot er utstyrt med 12 neopixler; en neopixel er en programmerbar lysdiode (LED) hvor ditt program kan bestemme hvilken farge den skal ha, og programmet ditt kan også skifte farge på lyset. Først må du bruke en eller flere av kommandoene for å endre på lyset (sett lysdioder til, nullstill lysdioderm skift/roter lysdioder eller sett styrke på lysdioder). Etterpå må du kjøre kommandoen «vis lysdioder». Det er denne kommandoen som «oppdaterer» diodene, og hvis den ikke blir kjørt vil ingenting skje.

Oppdrag 5a. Lage lys

Bruk neopikslene til å lage blålys til sirene-bilen din. <hidden Løsningsforslag 1:></hidden>


Oppdrag 5b. Lage regnbue

Programmer bit:bot til å la neopixlene skifte farge hele tiden.

Oppdrag 5c. Av/på-knapp for lys

Dette er et oppdrag for avanserte brukere. Greier du å lage en fjernstyrt av/på-knapp til blålysene?

Videre oppdrag

Nå har du lært å bruke alle de viktigste funksjonene til micro:bit og bit:bot. Nå kan du fritt leke deg med å få bit:bot til å oppføre seg slik du vil. Greier du å få bit:bot til å sende meldinger tilbake til skjermen på fjernkontrollen? Dersom du bruker MI:powerboard til fjernkontrollen inneholder dette kortet en høyttaler. Greier du få bit:bot til å spille musikk på fjernkontrollen? Greier du å programmere bit:bot til å detektere bråstopp og spille en alarm når den krasjer i veggen?

Lenker

Her kan du lese om detaljert montering og styring av bit:bot: http://4tronix.co.uk/blog/?p=1490

Her kan du lese mer om hvordan du kan styre bit:bot ved hjelp av bluetooth: https://ukbaz.github.io/howto/bitbotRemoteControl.html

introduksjon_til_bitbot.1519831857.txt.gz · Sist endret: (ekstern redigering)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki