Reaktiopeli
Tässä projektissa valmistetaan kahden pelaajan reaktiopeli BBC:n Micro:bit mikrokontrolleria hyödyntäen. Pelilaatikko valmistetaan laserleikkaamalla vanerista. Ohjaimet valmistetaan 3d tulostamalla. Pelin pohjalla on yksinkertainen reaktiopeli, jota on laajennettu pistelaskujärjestelmällä.
Suunnitelman lopussa on tuntijako opetuskäyttöä ajatellen (Step 6), ohjeita eriyttämiseen (Step 7) sekä ohjeita oppilaan oman suunnittelun tukemiseen (Step 8).
Supplies
- Micro:bit (käytetty V1)
- Laservaneria (käytetty paksuus 3 mm)
- Laserleikkuri
- 3D tulostin
- 3D-tulostimen tulostuslankaa (käytetty PETG)
- Johtoa
- 2 painokytkintä (OFF-ON)
- Kutistesukkaa
Suunnittelu
Suunnittele pelin perustoiminta, eli mitä reaktiopeli tarvitsee yksinkertaisimmillaan toimiakseen. Mieti, haluatko mahdollisesti laajentaa peliä jotenkin, esimerkiksi pisteenlaskun, reaktioajan mittaamisen tai miinuspisteiden muodossa. Hahmottele pelilaatikon ja ohjainten muotoja esimerkiksi paperille. Kytkentäkaaviota voit suunnitella esimerkiksi TinkerCad Circuitsissa.
Ohjelmointi
Suunnittele ja rakenna koodi MicroBitin omassa suunnitteluohjelmassa. Koodia voi yksinkertaistaa tai monipuolistaa oman osaamisen ja halukkuuden mukaisesti. Tärkeintä on saada ohjelma tunnistamaan eri ohjaimet ja kytkinten painanta. Lisäksi koodiin voidaan lisätä esimerkiksi pisteidenlasku, pisterajat, uudelleenkäynnistys ja erilaisia viestejä.
Rakensimme reaktiopelin koodin oheisen ohjeen perusteella: https://microbit.org/projects/make-it-code-it/reaction-game/?editor=makecode
Tässä oma ratkaisumme reaktiopelin koodista: https://makecode.microbit.org/_d5FYVPh3F5aV
Voit tutustua koodin eri osioiden käyttötarkoitukseen koodiin kirjoitettujen kommenttien avulla.
Ohjainten 3D Suunnittelu
Suunnittele ohjainten muoto ja johtojen läpivienti esimerkiksi TinkerCadissa. Huomioi painokytkinten asennusaukon leveys ja paksuus, jotta kytkimet saa asennettua tulostettuihin ohjaimiin.
Tallenna suunnitelma STL. tiedostona. Avaa tiedosto 3D tulostimen tulostusohjelmassa, jossa suunnitelmalle suoritetaan viipalointi ja mahdollisten tukirakenteiden lisäys. Tulosta kappaleet.
Laatikon Suunnittelu Ja Leikaaminen
Suunnittele pelilaatikko esimerkiksi MakerCase sivustolla, josta saat laatikon ulkoreunat valmiina. Tee laatikosta riittävän suuri, että sen sisälle mahtuvat johdot, sekä virtalähde. Suunnittele lisäksi laatikkoon johtojen läpiviennit. Laatikkoon tarvitaan ainakin reiät ohjainten johdoille, virtalähteen johdolle sekä MicroBitin liitännöille. Lisäksi voit koristella laatikkoa lisäämällä erilaisia kuvia tai tekstejä esimerkiksi Inkscape ohjelmalla. Tallenna suunnitelma DXF-tiedostona. Siirrä tiedosto laserleikkausohjelmaan. Valitse työn leikkausjärjestys siten, että leikkuri ensin kaivertaa kaiverrettavat kohdat, leikkaa irti kappaaleen sisällä olevat reiät ja lopuksi leikkaa kappaleet irti. Kokoa lopuksi laatikko.
Johdotus Ja Kokoaminen
Kokoa laatikon seinät ja kansi. Liitä kaksi johtoa molempiin painokytkimiin. Asenna painokytkimet kiinni ohjaimiin. Halutessasi voit yhdistää johdot esimerkiksi kutistesukilla tai sähköteipillä. Vedä ohjainten johdot laatikon sivuseinämien rei’istä laatikon sisäpuolelle. Juota ohjainten maadoitusjohdot yhteen erilliseen johtoon. Tuo ohjainten johdot MicroBitin liitäntöjä varten kanteen tehdyn reiän läpi. Liitä maadoitusjohto MicroBitin maadoitusnapaan, A-ohjaimen toinen johto MicroBitin 0-napaan ja B-ohjaimen toinen johto MicroBitin 1-Napaan. Tuo virtalähteen johto, sille tarkoitetun reiän läpi. Halutessasi voit tehdä esimerkiksi lankanaulasta koukun, jonka avulla virtalähteen johto pysyy paikallaan myös silloin, kuin se ei ole MicroBitissä kiinni. Lopuksi kiinnitä pelilaatikon pohja paikoilleen siten, että virtalähde ja johdot jäävät laatikon sisäpuolelle. Halutessasi voit vielä koristella peliä erinäisin keinoin, esimerkiksi nimeämällä ohjaimet ja eri painikkeiden toiminnon.
Tuntijako
Esimerkki projektin tuntijaosta.
Opetuksen Eriyttäminen
Projekti olisi hyvä toteuttaa pareittain, jolloin oppilaat saavat tukea toisiltaan kaikissa projektin vaiheissa. Parien muodostaminen tulee suunnitella niin, että se tukee oppimista. Todennäköisesti parin jäsenten osaamisen kannattanee olla suurin piirtein samalla tasolla ainakin ohjelmoinnin osalta, jolloin kummallakin on mahdollisuus työskennellä omaan taitotasoon nähden sopivalla haastavuuden tasolla ja toisaalta tukea toista osapuolta (Barkley ym., 2014; Hawlitschek ym., 2022). Isommissa ryhmissä on mahdollista, että kaikille ei riitä tekemistä projektin aikana.
Peliä suunnitellessa eriyttämistä voidaan toteuttaa alaspäin esimerkiksi pilkkomalla suunnittelua pienempiin ja yksinkertaisempiin osiin ja tukena voidaan käyttää valmista suunnittelupohjaa. Oppilaille voidaan myös tarjota kuvallista tukea kytkentäkaavioon sekä mallityö suunnittelun tueksi, jotta oppilaat pääsevät tutkimaan peliä ja tutustumaan sen rakenteeseen. Ylöspäin eriytettäessä oppilaita voidaan kannustaa suunnittelemaan peliä yksityiskohtaisemmin sekä monipuolisesti ominaisuuksia peruspelin päälle ja näiden toteutusta. Esimerkiksi peruspeliin voidaan lisätä reaktioajan mittaus, erilaisia merkkejä, joihin reagoida tai jättää reagoimatta, muokata pistelaskua ja niin edelleen.
Ohjelmointia voidaan eriyttää edelleen tukemalla oppilaita tutoriaalien ja yksityiskohtaisten ohjeiden avulla. Työskentelymuotona pariohjelmointi soveltunee hyvin tämän kaltaiseen työskentelyyn ja tukee oppimista. Pelin kehittämistä kannattaa tukea myös harjoitustöillä ennen varsinaista projektia. Yksi hyvä ja ohjelmointiosaamista tukeva malli työskentelyyn on esimerkiksi Use-Modify-Create –malli (Franklin ym., 2020), jossa oppilaat ensin Use vaiheessa tuottavat koodia yksinkertaisten ohjeiden mukaan, jonka jälkeen muokkaavat koodia Modify vaiheessa. Esimerkiksi Modify-tehtävissä voidaan etsiä valmiista koodista bugeja, joita korjataan halutun lopputuloksen mukaan. Vasta tämän jälkeen edetään tuottamaan koodia Create -vaiheessa, tässä tapauksessa reaktiopelin muodossa. Tämän Use-Modify-Create-mallin mukaisen lähestymismallin kautta oppilailla on paremmat valmiudet lähteä itse tuottamaan peliä. Etenkin Modify-vaiheen tehtävissä on hyvä mahdollisuus antaa oppilaille vapautta edetä ja valita itselleen sopivia harjoitustöitä. Peliä ohjelmoinnissa oppilailla on mahdollisuus taas lisätä ja muokata pelin ominaisuuksia tai vastaavasti palata katsomaan harjoitustöitä tai tukeutua yksityiskohtaisempiin ohjeisiin.
Oppilaan Oma Suunnittelu
Pelin toimintamekaniikka on jokseenkin sama kaikilla, mikä edesauttaa opetuksen toteutusta, mutta oppilaan yksilöllinen suunnittelu on silti mahdollista. Pelin toimintaa voidaan joko yksinkertaistaa tai monipuolistaa oppilaan osaamisen ja halun mukaisesti. Jokainen pari voi itse määritellä, millaisia eri ominaisuuksia haluavat peliin ohjelmoida. Esimerkiksi peliin voidaan lisätä pisterajoja, erilaisia viestejä tai merkkejä, jotka eivät ole pelin toiminnan kannalta välttämättömiä, mutta tuovat peliin lisäsisältöä.
Myös pelin ulkonäköön oppilaat voivat vaikuttaa suuresti. Esimerkiksi peliohjainten rakenne ja pelilaatikon muoto sekä koko voidaan suunnitella oppilaiden mielen mukaisiksi. Myös pelilaatikko ja -ohjainten ulkonäköä voidaan koristella esimerkiksi erilaisilla kuvilla, tarroilla tai väreillä. Ulkonäöllisiä valintoja voidaan tehdä jo valmistusvaiheessa, esimerkiksi 3d-tulosteen värin valinnalla, tai jälkikäteen esimerkiksi maalaamalla työn puiset osat.
Lähteet
Barkley, E. F., Major, C. F. & Cross, K. P. (2014). Collaborative Learning Techniques. Jossey-Bass.
Franklin, D., Coenraad, M., Palmer, J., Eatinger, D., Zipp, A., Anaya, M., White, M., Pham, H., Gökdemir, O. & Weintrop, D. (2020). An Analysisi of Use-Modify-Create Pedagogical Approach’s Success in Balancing Structure and Student Agency. Teoksessa A. Robins, A. Moskal, A. J. Ko & R. McCauey (toim.), ICER ’20: Proceedings of the 2020 ACM Conference on international Computing Education Research (s. 14–24). Association for Computing Machinery.
Hawlitschek, A., Berndt, S., & Schulz, S. (2022). Empirical research on pair programming in higher education: A literature review. Computer Science Education, 1–29. https://doi.org/10.1080/08993408.2022.2039504