Projektityöni oli Arduinolla tehty reaktiopeli neljällä ledillä ja neljällä kytkimellä sekä LCD-näytöllä. Löysin idean peliin, kun googlasin "Arduino projects" tai jotakin vastaavaa. Peli oli samantyylinen kuin mitä olin suunnitellut, ei kuintenkaan aivan samanlainen. Siinä oli esimerkiksi elämäpisteet ja mahdollisuus kerätä extrapisteitä.
2. Projektiryhmä
Tein projektin yksin, joka oli varmasti yksi syistä siihen, että projekti eteni kurssin alussa suunnitellun aikataulun mukaisesti loppuun asti. Näin jälkeenpäin voin myös todeta, että projektissa ei olisi ollut työtäkään useammalle kuin yhdelle.
3. Projektin valmistelu
Ennen varsinaista projektin aloittamista tein projektisuunnitelman Openofficella ja myöskin Openproj -ohjelmalla. Projektiin tarvittavat osat löytyivät Arduinon komponenttilaatikosta demo-versiota varten. Viimeistä versiota varten tilasin netistä värilliset painokytkimet.
| Projektisuunnitelma |
4. Projektityön suorittaminen
Aloitin itse projektin suunnittelemalla komponenttien sijoittelun levylle. Digitaaliset portit olivat lähellä loppua kesken. Jouduin ottamaan kaikki mahdolliset portit käyttöön, myöskin portit 0 ja 1, että saan LCD-näytönkin toimivaksi. Kun sain kaikki komponentit järkevästi sijoiteltua demo-levylle, aloitin koodin kirjoittamisen. Pohjaksi löysin samantyylisen pelin koodin, josta kopioin lähinnä kohdan, jossa tietyn ledin syttyessä piti painaa tiettyä kytkintä, että valo sammuu ja seuraava syttyy.
Koodin valmistumiseen meni eniten työvaiheista aikaa, n. 6 työpäivää, eli jaksomme tuntimäärällä kolme viikkoa. Tämä oli myös työvaiheista ainoa, joka kesti enemmän kuin aikatauluun suunnittelin. Projekti pysyi kuitenkin helposti aikataulussa, koska puolestaan useampaan muuhun vaiheeseen meni oletettua vähemmän aikaa. Lopulliseen koodiin tuli muun muassa aloitus- ja lopputekstit, pelin päätyttyä pelajaan taso, eli "rank" (Beginner, Intermediate, Professional, Champion), normaali pistelasku (1 oikea painallus = 1 piste), sekä "highscore", eli paras tulos mitä pelissä on saatu. Muisti tosin tyhjenee kun peli sammutetaan.
![]() |
| Aloitusteksti |
![]() |
| Pistelasku |
![]() |
| Peli hävitty |
![]() |
| Kuva rankista |
![]() |
| Highscore |
![]() |
| Hävityn pelin jälkeen |
![]() |
| Kytkimet + kotelo |
Sen jälkeen etsin opettajankopin komponenttikarusellistä oikeankokoiset vastukset (4x 220 Ω, 4x 10 kΩ) ja tinasin ne oikeille paikoille. 10 kΩ vastukset tulivat kytkimien eteen ja 220 Ω vastukset ledien eteen. Vastuksien jälkeen piti etsiä sopivaa kaapelia, joista tehdä hyppylangat Arduinolta levylle. Kaapelin piti olla todella ohutta, jotta ne mahtuvat Arduinon portteihin. Sellaista löytyi ICT-käytävän varastosta. Kyseessä oli jonkinlainen puhelinkaapeli. Katkoin ja kuorin sivuleikkureilla siitä yhteensä 15 hyppylankaa. Tämän jälkeen projekti oli vielä viimeistä testausta vaille valmis. Lopputulos oli onnistunut. Paitsi. Peli toimi aikamoisella viiveellä johtuen mahdollisesti hyppylangoista tai kytkimistä. Siihen en enää keksinyt ratkaisua.
5. Loppuyhteenveto
Projekti onnistui mielestäni hyvin, viimeisestäkin versiosta saatiin toimiva, vaikka viivettä tiedonsiirrossa hiukan enemmän onkin. Jos olisin tiennyt kurssin alussa, että Arduino projektit koteloidaan yleensä, olisin varannut myös sille suunnitelmissa jonkin verran aikaa.
Projektin valinta myös näin jälkeenpäin ajateltuna oli oikea. Projekti opetti paljon lisää Arduinon koodikielestä ja komponenttien ohjaamisesta.
Projekti onnistui mielestäni hyvin, viimeisestäkin versiosta saatiin toimiva, vaikka viivettä tiedonsiirrossa hiukan enemmän onkin. Jos olisin tiennyt kurssin alussa, että Arduino projektit koteloidaan yleensä, olisin varannut myös sille suunnitelmissa jonkin verran aikaa.
Projektin valinta myös näin jälkeenpäin ajateltuna oli oikea. Projekti opetti paljon lisää Arduinon koodikielestä ja komponenttien ohjaamisesta.
![]() |
| Lopputulos |







