Tietoliikenteen sovellusprojektissa siirrettiin anturitietoja ja opetettiin algoritmia

Oamkin laite- ja tuotesuunnittelun opiskelijat saivat joulun alla valmiiksi toisen opintovuotensa tietoliikenteen sovellusprojektin. Ohjaavat opettajat ja koko ryhmä kokosivat sen jälkeen kokemukset ja parannusehdotukset, joita aina hyödynnetään seuraavan ryhmän projektin suunnittelussa. Yhden ryhmän projektiposteri valittiin ryhmän parhaaksi ja saa julkisuutta sekä tässä että tutkinto-ohjelman Instagram-tilillä.

Tietoliikenteen sovellusprojektin ideana oli tehdä yksikertainen langaton IoT-järjestelmä, jossa kerätään Arduino-pientietokoneilla dataa tietokantaan koneoppimisalgoritmin suunnittelua varten. Kun Arduinolta lähetetyt kiihtyvyysanturitiedot oli kerätty, tiedot haettiin soketti- ja HTTP-rajapintoja käyttäen opiskelijan omalle koneelle K-Means-algoritmin opettamista varten.

K-Means-opetusalgoritmi ohjelmoitiin Pythonilla ja opetettu K-Means-luokittelualgoritmi toteutettiin Arduinolle C++-kielellä. Luokittelualgoritmin suorituskyky mitattiin kytkemällä Arduinoon sama kiihtyvyysanturi, jolla opetusdata oli kerätty. Lopulta mittaustulokset siirrettiin vielä Pythonille confusion-matriisin laskentaa ja tulostusta varten. Kuvan projektiposterissa yksi projektiryhmä esittelee työskentelyään ja arvioi tuloksia.

Samaa tehtävänantoa ratkottiin yksilötyönä ryhmän tuella

Projektin tehtävänanto oli tässä uuden opetussuunnitelman toteutuksessa kaikilla sama, toisin kuin ensimmäisen opiskeluvuoden kahdessa isossa projektissa. Projektia työstettiin ryhminä, mutta jokaisen tuli tehdä kaikki asiat. Ryhmän tärkein merkitys olikin tukea kaikkien oppimista. Projektimaisuutta toivat maanantain viikkopalaverit ohjaajan kanssa ja ryhmien daily meetingit.

Tähän projektiin opettajat olivat tehneet jo tiettyjä osia valmiiksi. Opiskelijat pääsivät siten keskittymään edellisessä periodissa opetettuihin asioihin, kuten koneoppimiseen. Arduinon kehitysympäristö ja Python oli ymmärrettävä ensin yksinkertaisemmalla tasolla, kehitetty algoritmi tuli viedä sen jälkeen takaisin Arduino-ympäristöön ja kaikki piti sovittaa toimimaan yhteen.

Opettajien kannalta tämä uusi versio oli yksinkertaisempi ohjata ja arvioidakin. Projektin läpäisyllä opiskelija ylsi arvosanaan 3, ja vapaaehtoisilla lisätehtävillä oli mahdollista saavuttaa arvosana 4 tai 5.

Seuraavaa toteutusta hienosäädetään taas

Projektia ohjanneet tietotekniikan tutkinto-ohjelman lehtorit Kari Jyrkkä ja Teemu Korpela kokosivat ajatuksiaan päättyneestä projektista. Myös opiskelijat olivat antaneet tarkkaa palautetta projektista, ja näillä eväillä seuraavan ryhmän toteutus on taas astetta täydellisempi.

Kari: – Aihehan on hieno! Muutos aiempien toteutusten hiirenloukkuprojektiin on isompi opintopistemäärä. Hiirenloukussa oli myös vapaus valita asioita ryhmän toteutuksessa.

Teemu: – Jos tietää, mitä tekee, niin tässä menisi ehkä päivä. Harva osasi versionhallintaa heti, ja esimerkiksi GitHub repositoryn readme-tiedostoon laadittava projektikuvaus oli osalle haastava tehdä. Jo 1. vuonna on tehty vastaavia, mutta asiat unohtuvat. Usein kyllä itseltänikin.

Kari: – Selvästi oli kesä välissä! Nyt kerrattiin jo 1. vuonna käytyä C++-asiaa sekä palautettiin mieleen GitHubia ja Gitiä, jotka olivat vähän ruosteessa. Toinen hyvä tulos opiskelijalle oli jokaisen oma GitHub-repositorio, jota pystyy hyödyntämään harjoittelupaikkojen haussa.

Teemu: – Päivittäiset palaverit olivat ehkä turhia, sillä opiskelijat tekivät projektia aika paljon etänä ja olivat koko ajan Discordissa. Jatkossa voisikin velvoittaa ryhmät paikalle kerran viikossa kertomaan, mitä on saatu aikaiseksi, jotta päästään hyödyntämään kasvokkain-tilannetta.

Kari: – Projektissa käy tyypillisesti selväksi, onko edellisen jakson asiat oikeasti opittu. Tässä mallissa kaikki pääsevät – eli pakotetaan – tekemään, eikä kukaan voi mennä siivellä. Edellisellä jaksolla opetettu Pythonin, koneoppimisen ja tietoliikenteen teoria integroitu projektissa.

Teemu: – Tämän perusteella muokataan taas seuraavaa projektia. Ainakin radiorajapinta kannattaa tehdä eri työkalulla. Nyt käytetty 433 MHz:n radio oli liian yksinkertainen ja ruuhkautti radiotien, mutta toisaalta opiskelijallekin tuli selväksi, miten siinä tapauksessa käy.

Kari: – Jatkossa kehitetään ainakin langatonta tiedonsiirtoa ja otetaan mukaan Linuxia. Arduino on surkea kehitysympäristönä, joten parempi voisi olla Raspberry tai jokin muu tehokkaampi ympäristö.

Teemu: – Entäpä jos kokeillaankin ensi kerta parityönä? Siinä saataisiin hyödynnettyä koodin tuottamisessa hieman aidompi tilanne, että toiselta tulee GitHubiin pull request ja toinen katselmoi sen. Pitääpä harkita!

Teksti: Tuula Hopeavuori, Kari Jyrkkä ja Teemu Korpela
Kuva: Projektiryhmä 4: Tauno Koivisto, Teemu Malo, Riku Paananen, Neea Pauna, Jonna Raatikainen, Ville Sandberg ja Mika Väliaho, TVT21SPL

Saatat pitää myös näistä...

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *