OKL Oppimispeli
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
Suunnittelimme opetuskäyttöön suunnitellun pelin. Lähtötilanteessa halusimme rakentaa toiminnallisen pelin, jonka avulla oppiminen on hauskaa ajanviettoa.
Ohjelmointi
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()
})
Downloads
Nappulan 3D- Mallintaminen & Tulostaminen
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.
Downloads
Laserleikkaus
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ä.