Vaihtoehtoisten ohjelmointikielten hyödyntäminen sulautetuissa järjestelmissä
Sjöroos, Riku (2023)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2023111329289
https://urn.fi/URN:NBN:fi:amk-2023111329289
Tiivistelmä
Sulautettujen järjestelmien kehityksessä on pitkään ollut hallitsevana ohjelmointikielenä C-ohjelmointikieli. Nykyään kuitenkin on tarjolla myös vaihtoehtoisia ohjelmointikieliä C-ohjelmointikielen tilalle.
Tämän opinnäytetyön tavoitteena oli selvittää, mitä muita ohjelmointikieliä olisi tarjolla sulautettujen järjestelmien kehitykseen ja testata niillä yleisimpiä mikrokontrollereiden ominaisuuksia. Työn tilaajana oli Huld Oy.
Ohjelmointikieliksi valikoitui kartoituksen jälkeen Python ja JavaScript. Python-implementaationa käytettiin MicroPythonia ja JavaScript-implementaationa Espruinoa. Verrokkina näille kahdelle käytettiin Arduino-ohjelmointikieltä, joka perustuu C++-ohjelmointikieleen. Työssä kartoitettiin yleisimpien valmistajien mikrokontrollereita ja niistä pyrittiin valitsemaan sellainen, jota valitut ohjelmointikielet tukevat. Kehitysalustaksi valikoitui kartoituksen jälkeen STM32F4DISCOVERY-kehitysalusta, jolla testattiin kaikkia kolmea eri ohjelmointikieltä.
Ohjelmointikielillä testattiin suorituskykyä laskennassa, sekä muutamaa yleistä ominaisuutta kuten GPIO-pinnejä, A/D-muunninta, D/A-muunninta, SPI-väylää, pulssinleveysmodulaatiota ja toimintojen ajoittamista.
Laskennan ja koodin suorituskyvyssä C++-pohjainen Arduino-ohjelmointikieli oli ylivoimainen. Toiseksi nopein oli MicroPython ja hitain Espruino. Kaikilla ohjelmointiympäristöillä pystyi suorittamaan testattavat asiat ongelmitta.
MicroPython ja Espruino mielletään enemmän opetuskäyttöön ja harrastajille sopiviksi, mutta ne soveltuisivat myös erinomaisesti nopeaan kehitykseen ja prototyyppien kehittämiseen. Opetuskäytössä ne ovat erinomaisia, sillä ne tarjoavat REPL-komentokehotteen, johon syötetyt komennot suoritetaan mikrokontrollerissa välittömästi. Ohjelmakoodia ei myöskään tarvitse kääntää, kuten C-pohjaisilla ohjelmointikielillä. Tämä nopeuttaa pienten muutosten tekemistä ohjelmakoodin ja sen nopeaa testaamista.
Tämän opinnäytetyön tavoitteena oli selvittää, mitä muita ohjelmointikieliä olisi tarjolla sulautettujen järjestelmien kehitykseen ja testata niillä yleisimpiä mikrokontrollereiden ominaisuuksia. Työn tilaajana oli Huld Oy.
Ohjelmointikieliksi valikoitui kartoituksen jälkeen Python ja JavaScript. Python-implementaationa käytettiin MicroPythonia ja JavaScript-implementaationa Espruinoa. Verrokkina näille kahdelle käytettiin Arduino-ohjelmointikieltä, joka perustuu C++-ohjelmointikieleen. Työssä kartoitettiin yleisimpien valmistajien mikrokontrollereita ja niistä pyrittiin valitsemaan sellainen, jota valitut ohjelmointikielet tukevat. Kehitysalustaksi valikoitui kartoituksen jälkeen STM32F4DISCOVERY-kehitysalusta, jolla testattiin kaikkia kolmea eri ohjelmointikieltä.
Ohjelmointikielillä testattiin suorituskykyä laskennassa, sekä muutamaa yleistä ominaisuutta kuten GPIO-pinnejä, A/D-muunninta, D/A-muunninta, SPI-väylää, pulssinleveysmodulaatiota ja toimintojen ajoittamista.
Laskennan ja koodin suorituskyvyssä C++-pohjainen Arduino-ohjelmointikieli oli ylivoimainen. Toiseksi nopein oli MicroPython ja hitain Espruino. Kaikilla ohjelmointiympäristöillä pystyi suorittamaan testattavat asiat ongelmitta.
MicroPython ja Espruino mielletään enemmän opetuskäyttöön ja harrastajille sopiviksi, mutta ne soveltuisivat myös erinomaisesti nopeaan kehitykseen ja prototyyppien kehittämiseen. Opetuskäytössä ne ovat erinomaisia, sillä ne tarjoavat REPL-komentokehotteen, johon syötetyt komennot suoritetaan mikrokontrollerissa välittömästi. Ohjelmakoodia ei myöskään tarvitse kääntää, kuten C-pohjaisilla ohjelmointikielillä. Tämä nopeuttaa pienten muutosten tekemistä ohjelmakoodin ja sen nopeaa testaamista.