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!