User Tools

Site Tools


spillkontroller

Kitronik GAME ZIP 64 spillkontroller

Dette er en klassisk spillkontroller med trykknapper, en motor som kan skape vibrasjoner, og en buzzer som enten kan lage en buzze-lyd, men som også kan brukes til å spille enkel musikk på. Du trenger en micro:bit til å styre kontrolleren, samt en kontroller av denne typen:

5626_large-game-zip-64-microbit-console-front.jpg

Ved å 3D-printe et etui kan denne lett modifiseres til et flott spill. Lenker til ferdige filer til 3D-printing eller laserkutting kan finnes nederst på denne siden:

Micro:bit har også sin egen skjerm som kan vise tekst, tall og symboler. Denne er flott til debogging. Micro:bit har også knapper og muligheter til tilkobling via blåtann for avansert spillprogrammering, samt akselerometer som kan brukes til å styre spillet.

Laste ned bibliotek

Det er utviklet et bibliotek (en samling med ferdige kommandoer til å styre kontrolleren) som gjør det vesentlig enklere å utvikle kode. Foreløpig (pr. 18. september 2018) er det en liten bug i dette biblioteket som gjør at det ikke virker helt som det skal dersom du bruker micropyton til å programmere micro:biten, men dersom du bruker makecode og PXT fungerer det fint.

For å laste ned biblioteket i makecode går du til “Avansert”-menyen (1), velger “Hent tilleggsfunksjon” (2) og søker etter zip64. Da skal det komme fram et bibliotek som heter “kitronik-zip-64”. Da vil det komme fram en ny kategori (3) blokker du kan bruke.

Styre skjermen

Skjermen er utstyrt med 8×8 neopiksler (programmerbare lysdioder). Disse kan fort bli varme dersom de står på med høy lysstyrke i lang tid. Det er mulig å dimme dem og styre farge og intensitet ved å bruke bibliotekets “set brightness”-kommando og “set color”-kommando.

For å styre lysene på skjermen må du lage en egen variabel som brukes hver gang du skal sende en kommando til skjermen. I eksemplet under under heter variabelen “Display”, men du kan i utgangspunktet kalle den hva du vil.

Koden over vil lyse opp en neopiksel i gangen. Lyspunktet vil flytte seg nedover en og en rekke piksler i gangen.

Spørsmål:

  1. Hva skjer hvis du fjerner “clear”-kommandoen? Og hvorfor?
  2. Hva skjer hvos du fjerner “show”-kommandoen? Og hvorfor?

Oppgave: Greier du å få lyspunktet til å flytte seg horisontalt (bortover) i stedet for vertikalt (nedover)?

Løsningsforslag:

Løsningsforslag:

Styre motor

Koden over vil kjøre motoren i korte intervaller. Hva skjer om du fjerner “pause”-kommandoen?

Styre lyd

Ved hjelp av buzzeren kan man lage lyder. Hva skjer om du fjerner “set pitch pin”-kommandoen? Hva skjer om du setter pausen til 1000?

Lese knappetrykk

Ved hjelp av det tidligere nevnte biblioteket er det lett å registrere knappetrykk.

Koden over starter med å lyse opp punktet (0,0) i neopiksel-matrisen. Dette tilsvarer øverst i venstre hjørne. Når knappene blir trykket blir lyspunktet flyttet.

Oppgave: Greier du å modifisere eksemplet slik at lyspunktet, når det når en kant, “wrapper rundt” til den andre siden? Altså at når lyspunktet f.eks. beveger seg mot venstre og kommer til venstre kant kommer til å “hoppe” til høyre kant og fortsetter å bevege seg mot venstre igjen?

Løsningsforslag:

Løsningsforslag:

Avansert oppgave: Greier du å bruke matematikk (særlig divisjonsrest-funksjonen, av og til kalt modulo) til å løse dette problemet?

Avansert løsningsforslag:

Avansert løsningsforslag:

Lenker

spillkontroller.txt · Last modified: 2018/09/18 14:37 (external edit)