PXT: Joystick
Skrevet av: Tom Arne Orthe
Introduksjon
I denne oppgaven skal vi koble en joystick (styrepinne) til Micro:bit-en og så styre en figur («sprite») på Micro:bit-ens skjerm ved hjelp av joysticken. Figuren er en lysende LED på skjermen til Micro:bit.

Steg 1: Vi kobler til joysticken
For å koble til joystick-en trenger vi noe ekstra utstyr:
-
1 grønn ledning med kontakt (hull) i begge ender.
-
1 rød ledning med kontakt (hull) i begge ender.
-
1 blå ledning med kontakt (hull) i begge ender.
-
1 svart ledning med kontakt (hull) i begge ender.
-
1 koblingsbrett slik at vi kan bruke alle tilkoblingsmuligheter micro:biten har.
-


Sjekkliste
Steg 2: Vi koder micro:biten
For å kode micro:biten må vi forstå hvordan koblingen vi laget i forrige steg fungerer. Strøm vil gå fra 3V på micro:biten til +5V på Joysticken. Strøm vil så gå tilbake fra GND på joystick til 0V (GND) på Micro:bit-en. Joysticken vil også sende litt strøm over VRx og VRy og mengden strøm vil avhenge av hvor mye vi beveger pinnen på joysticken langs X-aksen (side til side) og Y-aksen (opp og ned). Micro:biten kan da lese verdiene (mellom 0 og 1023) på pin 1 og 0 for å finne ut i hvilken posisjon joysticken står. På pin 0 betyr verdi 0 at joysticken er bøyd helt til venstre og 1023 betyr helt til høyre. På pin 1 betyr verdi 0 at joysticken er bøyd helt ned og 1023 betyr at joystick er bøyd helt opp. Verdien 512 betyr at joysticken står rett opp.
Sjekkliste
let spiller = game.createSprite(2, 2)
let spiller = game.createSprite(2, 2)
basic.forever(function () {
lesX = pins.analogReadPin(AnalogPin.P0)
lesY = pins.analogReadPin(AnalogPin.P1)
if (lesX < 300) {
spiller.change(LedSpriteProperty.X, -1)
}
if (lesX > 700) {
spiller.change(LedSpriteProperty.X, 1)
}
if (lesY < 300) {
spiller.change(LedSpriteProperty.X, 1)
}
if (lesY > 700) {
spiller.change(LedSpriteProperty.X, -1)
}
})
Test prosjektet
Noen utfordringer
Noen forslag til endringer og utvidelser, men prøv selv dine ideer!
Du har nå lært hvordan du kan lage en enkel animasjon med micro:bit. Nedenfor er noen ideer til videreutvikling, men finn gjerne på noe helt eget!
Forbedre denne siden
Funnet en feil? Kunne noe vært bedre?
Hvis ja, vennligst gi oss tilbakemelding ved å lage en sak på Github eller fiks feilen selv om du kan. Vi er takknemlige for enhver tilbakemelding!









