Pro
Siirry sisältöön
Tekoäly

Tekoäly, robotiikkarakentelijoiden uusi ystävä

Kirjoittajat:

Heikki Hietala

lehtori
Haaga-Helia ammattikorkeakoulu

Julkaistu : 08.11.2024

Kuten kaikkialla muuallakin, generatiivinen tekoäly on ilmestynyt pysyväksi osaksi Haaga-Helian 3D + Robo Labin toimintaa. Siinä missä aiemmin viriteltiin toimivia Google-hakuja, jotta löydettäisiin käsillä olevan ohjelmointiprojektin ongelmaan ratkaisuksi sopiva esimerkkiohjelma, ovat opiskelijat jo jonkin aikaa ennemmin kertoneet tekoälylle, mikä ongelma on ja mitä ollaan hakemassa ratkaisuksi.

Se onkin hyvä lähestymistapa, kun kerran tällaisia palveluita on. Useimmat käyttävät ChatGPT:tä sen ihmisystävällisen käyttökokemuksen vuoksi, mutta edistyneemmät opiskelijat ovat ottaneet käyttöön ohjelmointiympäristöön integroidun Copilotin joko Visual Studio Codessa tai Githubissa, tai sitten Claude AI:n. Asetelmista riippumatta on havaittu, että tekoälyn käytöstä saatavat hyödyt ovat suunnilleen samat.

Tekoäly auttaa alkuun

Parhaiten tekoäly on avuksi aivan perusasioiden parissa. Kurssien alussa opiskelijoille annetaan Arduino-ohjelmointialusta, jonka kanssa on hyvä harjoitella laiteohjelmoinnin perusteita. Jos he sitten saavat kymmenen LED-hohtodiodia ja nipun kytkentälankoja, he voivat mennä kysymään ChatGPT:ltä: ”Minulla on Arduino, kymmenen LEDiä ja tarvittava määrä johtoja. Kirjoita ohjelmakoodi, joka laskee nollasta 1024:ään ja esittää laskurin arvon binäärikoodina. Anna myös kytkentäohjeet, ja kommentoi koodi.”

Kolmisenkymmentä sekuntia myöhemmin opiskelija näkee ohjeet LEDien kytkemiseen ja kommentoidun ohjelmakoodin, jonka siirtäminen Arduinoon vie toiset 30 sekuntia. Kun kytkennät on tehty, opiskelija näkee binäärilaskurinsa toiminnassa.

arduinolaite

Toinen erittäin hyvä käyttökohde on esimerkiksi Internet of Things -laitteeseen tarvittavien anturien etsintä. Arduino-maailmassa on satoja antureita, joilla voidaan mitata mitä moninaisimpia asioita, mutta oikean anturin löytäminen kuhunkin tarpeeseen on ollut varsin hankalaa. Nyt opiskelijat voivat kuvailla tekoälylle, millaista laitetta he ovat rakentamassa ja mitä suureita he haluavat mitata. Tekoäly pystyy paitsi kertomaan antureista sinänsä, myös vertaamaan niitä keskenään, mikä on erittäin suureksi avuksi siinä vaiheessa, kun laitteen rakennetta suunnitellaan.

Kolmas apu on koodin rakenteellinen tarkastaminen. Joskus opiskelijat ovat edenneet oman koodinsa kirjoittamisessa, mutta vastaan on tullut rakenteellinen ongelma, jonka vuoksi ohjelma ei toimi halutulla tavalla. Kun ohjelmakoodin lähettää tekoälylle ja kuvailee, mitä ohjelman toivoisi tekevän, tekoäly saattaa hyvinkin osata kertoa, kuinka ohjelmaa pitää muokata halutun tuloksen saamiseksi. Ja kun Arduino-ohjelmointiympäristön virheilmoitukset ovat usein varsin kryptisiä, niin virheilmoituksen lähettäminen tekoälyn tulkittavaksi tuottaa useimmiten selkeät ohjeet ongelman ratkaisemiseksi.

Siitä on apua edistyneellekin

Tekoälyn puutteet ovat useimmiten käyttäjän puutteita. Eräässä laitteessa, jota 3D + Robo Labissa rakennettiin, oli tavoitteena noutaa Finavian sivuilta Suomen lentokenttien lähtevien ja saapuvien lentojen tiedot ja näyttää ne pienellä näytöllä. Laite rakennettiin kehittyneen ESP32-ohjelmointialustan päälle, koska siinä on tarjolla sekä Bluetooth-yhteys että langattoman verkon käyttömahdollisuus.

esp-laite

Finavian rajapinta palauttaa myös jo lähteneiden lentojen tietoja, ja ne haluttiin suodattaa pois. ChatGPT tuotti kätevästi koodin, joka pystyi hakemaan tiedot ja jäsentämään ne niin, että suuresta tietojoukosta poimittiin vain viisi arvoa näytettäväksi, mutta lähteneiden lentojen suodatus ei tuntunut millään onnistuvan. Laite näytti aina kaikki lennot, vaikka ChatGPT:tä kuinka ohjeistettiin poistamaan lennot tulosjoukosta.

Pitkän pohdinnan jälkeen havaittiin, että ChatGPT:tä ei ollut koskaan pyydetty selvittämään nykyhetken kellonaika, jota vastaan voitaisiin verrata koneiden lähtöaikaa. Kun ohjelmakoodi palautettiin ChatGPT:lle ja lisättiin kehotteeseen pyyntö kirjoittaa koodiin myös funktio, joka noutaa verkosta kellonajan vertailua varten, tekoälyn palauttama koodi alkoi toimia täydellisesti. Voidaan siis sanoa, että tekoälyn teho tulee käyttöön vasta kun käyttäjä osaa määritellä haluamansa asiat tarkasti.

flight info -laite

Sitä saa mitä tilaa

Kehotteen kirjoittamisen taito onkin se, mitä 3d + Robo Labissa voidaan harjoitella. Tämä edellyttää taas sitä, että opiskelijoilla on perustiedot laitteista ja selkeä ymmärrys siitä, miten ne toimivat. Pelkän kehotteen avulla aikaansaatu, vaikka kommentoitukin koodi, ei auta heitä ymmärtämään, mitä laite oikeasti tekee. Sen oppimiseksi heidän täytyy edelleen oppia lukemaan koodia ja osata itsekin selvittää, miksi jokin virhe tapahtuu.

Esimerkiksi ChatGPT on vuorenvarmasti sitä mieltä, että nestekidenäytön alustaminen tapahtuu komennolla lcd.begin(). Näin voi olla jossain koodissa, mutta useimpien ohjelmakirjastojen mukaan laite alkaa toimia komennolla lcd.init(). Se täytyy aina erikseen mainita, sillä ChatGPT vaihtaa koodia haluamakseen satunnaisin väliajoin.

ChatGPT:n taipumus muokata koodia omin päin on sen vahvuus ja heikkous. On opiskelijan kannalta hankalaa, että aiemmin toiminut koodi yllättäen poikii uusia virheilmoituksia, mutta oppiipa opiskelija siinä myös lukemaan koodiansa tarkkaan ja pitämään koodinsa omissa käsissään.

Tiivistyksenä voisi sanoa, että tulen lailla tekoäly 3d + Robo Labissa on hyvä renki, mutta sen taipumus pyrkiä isännäksi on pidettävä tarkkaan kurissa.