OKL Oppimispeli

by matiaskkeskitalo in Teachers > 1

258 Views, 1 Favorites, 0 Comments

OKL Oppimispeli

kurssi1.jpg
kurssi2.jpg

Pelien kautta oppiminen ja tekeminen tuntuu monesta meistä hauskalta tavalta oppia asioita. Olemme kehittäneet pelin, jossa arpakoneen kautta valikoituu tehtäväksi tehdä kuvan ja arvotun numeron osoittamaa asiaa 15 sekuntia.


Pelilauta on suunniteltu monikäyttöiseksi pelinappuloiden ja micro:bitin avulla. Micro:bit ohjelmoidaan arpomaan kuvio, jonka mukaan valikoituu tehtävä. Kun tehtävää lähdetään toteuttamaan, microbit aloittaa laskennan 15 alaspäin musiikin kera. Tehtävästä riippuen 15 sekunnin aikana tehdään arpakoneen valitsemaa tehtävää joko luettelemalla kategoriaan liittyviä aiheita tai fyysisiä harjoitteita suorittamalla. Tehtävät voi itse suunnitella sellaisiksi, jotka sopivat sen hetkiseen tilanteeseen parhaalla tavalla.

Supplies

Tarvitset:

-Laserleikkurin

-3mm Vaneria

-3D- Tulostimen (Ei välttämätön, käytetty tässä työssä visuaalisena elementtinä)

-Micro-bit piirilevyn

-Inkscape

-RD works tai jokin muu laserleikkauksen softa

-3D- viipalointiohjelma

Suunnittelu

suunnittelu 2.jpg
suunnittelu.jpg

Suunnittelimme opetuskäyttöön suunnitellun pelin. Lähtötilanteessa halusimme rakentaa toiminnallisen pelin, jonka avulla oppiminen on hauskaa ajanviettoa.

Ohjelmointi

Screenshot (1).png
Screenshot (3).png
kytkentäkaavio.jpg

OHJELMOIDUT TOIMINNOT

RAVISTAMALLA: arvotaan kumpaa kirjainta painetaan seuraavaksi A vai B

A NAPPI: Arpoo hymynaaman tai surunaaman ja numeron 1-10

B NAPPI: Arpoo sydämen tai X muodon ja numeron 1-10

A+B NAPPI: Aloittaa 15 sekunnin laskennan ja musiikin. (pelin suoritusaika)

KYTKENTÄKAAVIO

Kuvana

VALMIS KOODI (JavaSkript)


let time = 0 

control.onEvent(EventBusSource.MICROBIT_ID_BUTTON_AB, EventBusValue.MES_REMOTE_CONTROL_EVT_PLAY, function () { 

   for (let index = 0; index < 5; index++) { 

       music.playTone(392, music.beat(BeatFraction.Quarter)) 

       music.rest(music.beat(BeatFraction.Eighth)) 

       music.playTone(392, music.beat(BeatFraction.Quarter)) 

       music.rest(music.beat(BeatFraction.Eighth)) 

       music.playTone(392, music.beat(BeatFraction.Quarter)) 

       music.rest(music.beat(BeatFraction.Eighth)) 

       music.playTone(262, music.beat(BeatFraction.Whole)) 

       music.playTone(262, music.beat(BeatFraction.Whole)) 

       music.playTone(392, music.beat(BeatFraction.Whole)) 

       music.playTone(392, music.beat(BeatFraction.Whole)) 

       music.playTone(349, music.beat(BeatFraction.Quarter)) 

       music.rest(music.beat(BeatFraction.Eighth)) 

       music.playTone(330, music.beat(BeatFraction.Quarter)) 

       music.rest(music.beat(BeatFraction.Eighth)) 

       music.playTone(294, music.beat(BeatFraction.Quarter)) 

       music.playTone(523, music.beat(BeatFraction.Whole)) 

       music.playTone(523, music.beat(BeatFraction.Whole)) 

       music.playTone(392, music.beat(BeatFraction.Whole)) 

       music.playTone(349, music.beat(BeatFraction.Quarter)) 

       music.rest(music.beat(BeatFraction.Eighth)) 

       music.playTone(330, music.beat(BeatFraction.Quarter)) 

       music.rest(music.beat(BeatFraction.Eighth)) 

       music.playTone(294, music.beat(BeatFraction.Quarter)) 

       music.playTone(523, music.beat(BeatFraction.Whole)) 

       music.playTone(523, music.beat(BeatFraction.Whole)) 

       music.playTone(392, music.beat(BeatFraction.Whole)) 

       music.playTone(349, music.beat(BeatFraction.Quarter)) 

       music.rest(music.beat(BeatFraction.Eighth)) 

       music.playTone(330, music.beat(BeatFraction.Quarter)) 

       music.rest(music.beat(BeatFraction.Eighth)) 

       music.playTone(349, music.beat(BeatFraction.Quarter)) 

       music.rest(music.beat(BeatFraction.Eighth)) 

       music.playTone(294, music.beat(BeatFraction.Whole)) 

       music.playTone(294, music.beat(BeatFraction.Whole)) 

   } 

}) 

input.onGesture(Gesture.Shake, function () { 

   if (Math.randomBoolean()) { 

       basic.showLeds(` 

           . . # . . 

           . # . # . 

           # . . . # 

           # # # # # 

           # . . . # 

           `) 

   } else { 

       basic.showLeds(` 

           # # # # # 

           # . . . # 

           # # # # . 

           # . . . # 

           # # # # . 

           `) 

   } 

   basic.pause(5000) 

   basic.clearScreen() 

}) 

input.onButtonPressed(Button.A, function () { 

   if (Math.randomBoolean()) { 

       basic.showIcon(IconNames.Happy) 

       basic.pause(2000) 

       basic.showString("" + (randint(1, 10))) 

   } else { 

       basic.showIcon(IconNames.Sad) 

       basic.pause(2000) 

       basic.showString("" + (randint(1, 10))) 

   } 

   basic.pause(5000) 

   basic.clearScreen() 

}) 

input.onButtonPressed(Button.AB, function () { 

   time = 15 

   while (time >= 0) { 

       basic.showNumber(time) 

       basic.pause(1000) 

       time += -1 

   } 

   music.stopAllSounds() 

   basic.clearScreen() 

}) 

input.onButtonPressed(Button.B, function () { 

   if (Math.randomBoolean()) { 

       basic.showIcon(IconNames.Square) 

       basic.pause(2000) 

       basic.showString("" + (randint(1, 10))) 

   } else { 

       basic.showIcon(IconNames.No) 

       basic.pause(2000) 

       basic.showString("" + (randint(1, 10))) 

   } 

   basic.pause(5000) 

   basic.clearScreen() 

}) 

Nappulan 3D- Mallintaminen & Tulostaminen

kurssi3.jpg
vili mastonappulakuva.png

Nappulat on suunniteltu Tinkercad alustalla. Nappulat menee laatikon pienempiin reikiin. Samalla tälle pelille se on visuaalinen elementti ja mahdollistaa laudan monipuolisemman käytön. Jatkosuunnittelua varten nappiloiden alla voi itse halutessaan suunnitella lisää pelin ominaisuukisa.

Nappuloiden tulostus totetutettiin Renta 3D- tulostimella. Nappulat ovat PVC muovia. Nappulat viipaloidaan 3D- tulostimelle sopivalla ohjelmalla stl muodosta.


Laserleikkaus

kurssi4.jpg
pelilautakuva.png
mikrobitkuva.png

Laserleikkaus ja laatikko on totutettu 3mm vanerille.

Pelilaataatikko on suunniteltu ja totutettu boxmaker sovelluksella josta saatiin täsmälleen oikean kokoinen pelilaatikko ja oikean kokoiset sormiliitokset. Laatikkoa modattiin inkscape sovelluksella omaa käyttötarkoitustavarten. Laatikon kanteen suunniteltiin isoreikä ja 10 pientäreikää. Laatikon kylkiin voi tehdä haluaamaansa designiä laserleikkurilla.

Mikrobitlaatikko tiedostossa on mikrobitille suunniteltu laatikko samalla boxmaker sovelluksella ja inkscape sovelluksella. Pelikortit on piirretty vapaasti inkscapella. Päälimmäiseksi kortiksi valitsimme Rauman 580-vuotias juhlavuosi kuvan. Tähän korttiin voi vapaasti suunnitella oman kuvan ja siitä syystä jätimme sen tyhjäksi linkkiin.

Tehtävä korteille olemme valinneet 4 aihe kategoriaa. Kategoriat ovat lihaskunto, jooga, tieto ja järjestäytyminen. Jokaisesta kategoriasta löytyy 10 eri tehtävää, jonka micro:bit arpoo pelaajalle/pelaajille. Peliä voi pelata 1-20 ihmistä.