Nykyelektroniikan suunnittelukoulu: Tekoäly tulee sulautettuihin – ohjelmointi ja sovellukset

Tekoäly ja koneoppiminen ovat mullistamassa sulautettujen järjestelmien kehittämistä. Tässä nykyelektroniikan suunnittelusarjan kuudennessa artikkelissa käydään läpi tekoälyn hyödyntämistä elektroniikkalaitteiden suunnittelussa ja uusien toimintojen luonnissa sulautettuihin järjestelmiin. Mukana on laaja katsaus tarjolla oleviin työkaluihin ja generatiivisen tekoälyn palveluihin.

PLUS +++

  • Osa1. Tutki ja selvitä markkinoista piiri- ja ohjelmistovalintoihin, julkaistu 28.2.2023 (LINKKI)
  • Osa 2. Kohti protoa piireistä moduuleihin ja ohjelmointiin, julkaistu 5.4.2023 (LINKKI)
  • Osa 3. Kotelointi, laitekokoonpano ja sertifioinnit, julkaistu 8.5.2023 (LINKKI)
  • Osa 4. Sulautetut ohjain- ja FPGA-ratkaisut työkaluineen, julkaistu 1.11.2023 (LINKKI)
  • Osa 5. Sulautetun ratkaisujen tietoturva – verkko ja IoT,  julkaistu 11.11.2023 (LINKKI)
  • Osa 6. Tekoäly tulee sulautettuihin ratkaisuihin – ohjelmointi ja sovellukset, julkaistu 20.03.2025
  • LISÄÄ: Nykyelektroniikan suunnittelukoulu on julkaistu myös e-lehtenä, osat 1-3 pdf- ja issuu-muodoissa, toukokuussa 2023.

Kirjoittaja Tomi Engdahl, kuvat valmistajat

Suuria kielimalleja (LLM, large language models) hyödyntävä generatiivinen tekoäly on tullut parin viime vuoden aikana myös huippuelektroniikan laitekehittäjien arkeen.  Uusimpien tietojen mukaan jopa puolet suomalaisista tietotyöläisistä sanoo hyödyntävänsä jo generatiivista tekoälyä työssään.

Ja vuoteen 2028 mennessä amerikkalaisen konsultointiyhtiö Gartnerin mukaan 75 prosenttia ohjelmistokehittäjistä käyttäisi jo koodin luomisessa säännöllisesti generatiivista tekoälyä. Samalla generatiiviset ratkaisut tulevat käyttöön uusien elektroniikka- ja sulatettujen laitteiden toteutusten kehittämisessä. Jo nyt tekoälyllä voidaan automatisoida monia ohjelmoijankin työtehtäviä aina perussuunnittelusta ohjelmistokehitykseen ja testaukseen.

Kuva 1: Microchip on julkaissut uuden MPLAB AI Coding Assistant -koodausavustajan, joka toimii Windowsissa Microsoft Visual Studio Code -laajennuksena. Microchip has released the new MPLAB AI Coding Assistant, that is a Microsoft Visual Studio Code extension for Windows.

Tekoäly ohjelmoinnin apuna

Monet ohjelmistojen kehittäjät hyödyntävät jo tekoälyllä varustettuja koodiavustajia koodatakseen nopeammin. Näin voidaan saada parhaimmillaankin huomattavia parannuksia omaan tekemiseen. Ratkaisuja kokeilleiden mukaan nykyiset tekoälyllä ruuditetut koodausapurit pystyvät parhaimmillaan jopa hämmästyttävän tulokseen, vaikka hutejakin tulee edelleen.

Taulukko 1. Chatbot-tyyppisiä tekoälypalveluita, joita voi käyttää koodauksen apuna..  Chatbot style AI services.

Tekoäly on tullut tietokoneohjelmien kehittäjien avuksi viimeisen kahden vuoden aikana.  Parhaimmillaan tekoäly voi avustaa koodaajia monin tavoin, kuten auttaa oikean dokumentaation löytämisessä, tuottaa ohjelmakoodia sekä dokumentaatiota, analysoida ohjelmakoodin laatua, automatisoida testaamisena ja avustaa ongelmien ratkaisemisessa. Tavoitteena on, että tekoälyn avulla koodaajat voivat parantaa tuottavuuttaan, tehokkuuttaan ja laatuaan, säästää aikaa ja resursseja. Lisäksi laajat tekoälyn kielimallit sopivat moniin ohjelmointitehtävin loistavasti.

Laajojen kielimallien perusongelma on edelleen, että eli ns. hallusinaatiot, eli tilanteet, joissa tekoäly tuottaa loogisesti virheellistä tai täysin käsittämättömiä vastauksia, vaivaavat myös koodausapureita, mikä syö osin niiden hyötyjä. Siksi saavutettava hyöty voi olla pieni tai merkittävä.

Ohjelmakoodia suoraan kuvauksesta

Tekoäly voi muuttaa ohjelmistokehitystä selvästi. Esimerkiksi generatiivisen tekoälyn avulla on mahdollista tuota ohjelmakoodia pelkästään kuvailemalla, miten sen pitäisi toimia. Kuvailemalla mitä ohjelman pitäisi tehdä, voi tekoälytyökalua pyytää tuottamaan ohjelmakoodia halutulle ohjelmointikielelle. Jos tulos ei miellytä, niin saatua ohjelmakoodia voi muokata nopeasti antamalla tekoälykoodigeneraattorille muutetun tai tarkennetun kuvauksen, ja pyytämällä uuden koodin.

Kuva 1. Generatiivista tekoälyä voi käyttää ohjelmointiin. Tässä esimerkki kuinka Google Gemini tekoälyä osaa kirjoittaa Arduino kortilla toimivan ohjelman lähdekoodin yksinkertaisen kuvauksen perusteella. Generative AI can be used for programming. In this example Google Gemini AI is used to generate code for Arduino board. 

Uudenlainen toimintapa mahdollistaa parhaimmillaan nopean ja ketterän kokeilun varsinkin alkuvaiheessa. Ja kun tarpeeksi hyvältä näyttävää lähdeohjelmakoodi on saatu, se voidaan kopioida ohjelmointiympäristöön, jossa sitä voi edelleen muokata ja testata.

Verkon yleiskäyttöiset AI chatbot-työkalut pystyvät tuottamaa ohjelmakoodia kuvauksen perusteella monille ohjelmointikielille. Näitä ovat esimerkiksi  OpenAI ChatGPT, Google Gemini, Microsoft Copilot, Anthropic Claude, ranskalainen Mistral AI Le Chat sekä uusimmat kiinalainen DeepSeek ja Elon Muskin perustaman xAI yrityksen Grog.

Niiden tuetuissa ohjelmointikielissä on myös sulautettujen järjestelmien ohjelmoinnissa käytetyimmät yleisimmät kielet kuten C, C++, Python ja JavaScript, mutta onnistuu koodaaminen harvemminkin käytetyillä kielillä kuten Ada, Rust tai Assembly.

Lisäksi samasta kuvauksesta voidaan tarvittaessa tuottaa ohjelmakoodia eri ohjelmointikielille, joten voit esimerkiksi pyytää ohjelmakoodia Pythonilla alkuun nopeaan testailuun ja lopulliseen versioon C-kielisenä toteutuksena sulautettuun ratkaisuun upotettavaksi.

Uudet älytyökalut ovat tuoneet jo esimerkkiohjelmoinnin (programming by example) käyttökelpoiseksi tavaksi tuottaa koodia. Se on tekniikka, jossa käyttäjät antavat esimerkkejä ohjelman syötteistä ja haluamistaan tuloksista ja järjestelmä luo koodin, joka toteuttaa halutut tulokset.

Taulukko 2. Tekoälypohjaisia koodausavustajia, jotka toimivat koodieditorina tai voidaan liittää koodieditoriin.  Artificial intelligence-based coding assistants that act as code editors or can be connected to a code editor.

Esimerkkiohjelmointia voi hyödyntää myös uusien käyttöliittymien suunnittelussa antamalla sille esimerkkikuva mille käyttöliittymän tulisi näyttää. AI-avusteinen esimerkkiohjelmointi tai tekstipohjaiseen toimintakuvaukseen pohjautuva ohjelmointi toimii erittäin hyvin lyhyiden helposti kuvattavien ohjelmakoodien funktioiden toteuttamisessa.

Ja muutenkin selkeästi määriteltäviin ja testattaviin asioihin koodin tuottaminen toimii parhaiten. Suuria ohjelmistoja on kuitenkin hankala toteuttaa samalla tavalla, koska riittävän kattavat kuvauksen tekeminen yhtä tarkasti on lähes mahdotonta sekä tekoälytyökalujen rajoitukset tulevat esille.

Tarjolla on kuitenkin joihinkin erityissovelluksiin optimoituja AI-koodigeneraattoreita, joista on apua myös laajempien toteutusten teossa. Esimerkiksi Siemensin Industrial Copilot on generatiivisen tekoälyn avulla toimiva ohjelmistotuote, joka pystyy tuottamaan ohjelmoitaville logiikkaohjaimille ohjauskielikoodia ja integroi sen osaksi laajempaa ohjelmistoympäristöön ja luo myös visualisen käyttöliittymän.

Tekoäly tulee koodieditoreihin

Uudet tekoälyllä ryyditetyt koodin täydennystyökalut (Code completion) työkalut ehdottavat jo reaaliajassa sopivia koodinosia suoraan koodieditorissa. Näin hyvin toimiva koodin täydennystyökalu voi parhaimmillaan auttaa nopeuttamaan koodaamista.

Koodausapuri on käytännössä tilannetajuinen automaattinen tekstinsyöttäjä, joka seuraa millaista koodia tai kommenttia ohjelmoija kirjoittaa, ja ehdottaa sen perusteella, kuinka koodia voisi jatkaa tai parantaa tai korjata. Koodaaja voi hyväksyä tai hylätä tarjotun sisällön. lisäksi tekoälyä voi käyttää myös ohjelman ajoaikana tuottamien virheenjäljitystulostusten ja lokitiedostojen analysointiin. Tekoälyä kannattaa kokeilla ohjelmakoodin analysointiin.

Taulukko 3. Sulautetun tekoälyn kehitystyökaluja. Embedded artificial intelligence development tools.

Tällä hetkellä suosituin koodausapuri on Microsoftin omistaman GitHubin Copilot, koska se on ollut saatavilla jo useita vuosia, integroituu helposti paljon käytettyyn monen kehitysympäristön kanssa toimivaan Visual Studio Code -editoriin. GitHubin Copilot ominaisuuksia voi kokeilla ilmaiseksi sekä se on helppo lisätä monen yrityksen olemassa olevaan GitHub-tilaukseen.

Qt Creator kehitysympäristö tukee GitHubin Copilot koodausavustajaa. Microchip on julkaissut MPLAB AI Coding Assistant -sovelluksen Microsoft Visual Studio® Code (VS Code) -laajennuksena.

MPLAB AI Coding Assistant on ilmainen sulautettujen järjestelmien kehittäjille suunnattu perusominaisuuksiltaan ilmainen työkalu, joka perustuu avoimen lähdekoodin Continue tekoälykoodiavustajaan.  AI Coding Assistant tarjoaa muun muassa automaattisen koodin täydentämisen, auttaa virheiden havaitsemisessa sekä siihen on integroitu helppo pääsy Microchipin tuotedokumentaatioon.

Tekoälyavusteista koodausapuria voi hyödyntää monin eri tavoin. Eräs yleinen tapa on kirjoittaa itse koodia ja hyväksyä jatkuvalla syötöllä ilmestyviä ehdotuksia tabulaattoria painamalla.

Tarpeen vaatiessa koodaaja voi jutella tekoälykoodigeneraattorin kanssa ja kopioida tarjottuja koodinpätkiä editoriin. Samoin kannattaa seurata koodausapurin mahdollisia kommentteja suorittamastaan koodianalyysistä, ja korjata sen mahdollisesti löytämät virheet.

GitHub Copilot on saanut useita kilpailijoita kuten Amazonin Code Whisperer, Googlen Gemini Code Assistant, Amazon Q Developer, Tabnine, Sourcegraph Cody, Anysphere Cursor sekä Codeium Windsurf. Cursor ja Windsurf kilpailevat tällä hetkellä parhaan koodausapurilla varustetun koodieditorin paikasta.

Apua koodin analysointiin ja testaamiseen

Tekoälyn käyttö voi säästää aikaa ja vaivaa selkeissä koodimuokkauksissa. Tekoälytyökaluja on mahdollista käyttää koodin kääntämiseen ohjelmointikieleltä toiselle. Tekoälyä voi käyttää dokumentoimaan koodia niin, että siitä tulee helpommin ymmärrettävää.

Koodin dokumentoinnin lisäksi tekoälyä voi käyttää myös ohjelman ajoaikana tuottamien virheenjäljitystulostusten ja lokitiedostojen analysointiin.  Tekoäly voi auttaa löytämään ja korjaamaan koodin virheitä nopeammin kuin manuaaliset menetelmät. Koodin tarkistustyökalut voivat analysoida koodia ja tunnistaa mahdollisia bugeja ja tietoturvahaavoittuvuuksia, mikä auttaa parantamaan ohjelmiston laatua.

Nykyisistä esimerkiksi GitHub Copilot analysoi koodaajan tekemää koodia reaaliajassa, kun koodia kirjoitetaan, ja se löytää myös yleisimmät virheet. Lisäksi DeepScan, Snyk DeepCode AI ja SonarCloud ovat muita palveluita, jotka tarjoavat tarkempaa koodin laadun analysointia. Uudet AI-testaustyökalut voivat auttaa sovellusten testauksen automatisoinnissa.

TestSigma ja Applitools ovat kaksi tunnetuinta generatiivista tekoälyä hyödyntävää ohjelmistotestaustyökalua. Myös ohjelmakoodin tuottamisessa paremmin tunnettu Github Copilot osaa auttaa ohjelmiston testaamisessa tarvittavan testikoodin tuottamisessa.

Tekoäly sulautetussa laitteessa

Tekoälyn käyttö sulautetuissa laitteissa on koko ajan yleisempää, kun niiden laskentakapasiteetti ja algoritmit kehittyvät. Lisäksi yhä useampi ainakin uudempi sovellus hyödyntää jo jonkinlaista tekoälyä, jossa koneoppiminen (machine learning) on keskeisessä osassa.

Tekoäly voidaan toteuttaa elektroniikkalaitteessa monella eri tavalla. Eräs ääripää on, että tekoälyprosessointi suoritetaan kokonaan pilvipalvelussa, ja laite ainoastaan välittää mittaustiedot pilvipalveluun sekä käsittelee pilvestä tulevat ohjauskomennot.

Kuva 2. Nvidian Jetson Orin Nano Super Developer Kit tarjoaa hyvin paljon tekoälylaskentatehoa pienessä koossa. Nvidia’s Jetson Orin Nano Super Developer Kit offers a lot of AI computing power in a small package. Source Nvidia.

Tämä lähestymistapa ei vaadi sulautetulta laitteelta erityisiä AI-ominaisuuksia, mutta miinuksia ovat, että kaiken tiedon välittäminen pilveen prosessoitavaksi, joka edellyttää riittävästi tietoliikennekapasiteettia sekä aiheuttaa käsittelyviiveitä sekä voi olla tietosuojariski.

Luotettava riittävän nopea verkko onkin välttämätön pohjan tällaisella ratkaisulle, jotta tieto voidaan toimittaa luotettavasti käsiteltäväksi. Markkinointipuheissa 5G verkko lupaa olla ratkaisu näihin haasteisiin, mutta käytännössä tarpeeksi hyvää 5G yhteyttä ei ole ehkä saatavissa kaikkialla ja kaiken aikaa.

Tekoälypäättelyn vieminen pilveen tuo tietoturva- ja luotettavuushaasteita, sillä pilveen saatetaan siirtää arkaluontoista tietoa ja jos tietoliikenneyhteydet ovat poikki tai pilvipalvelussa on toimintakatkoja. Kun halutaan toteuttaa hyvin nopeasti reaaliaikaisesti toimivia luotettavia järjestelmiä, ei voida läheskään aika tukeutua pilvikeskeiseen malliin.

Toisen ääripään lähestymistapa on että tekoälytoiminnot suoritetaan kokonaan laitteen sisällä. Kun tarvitaan nopeaa taattua vasteaikaa tai sovelluksen pitää toimia myös ilman verkkoyhteyttä, tekoälylaskenta on pakko tehdä itse laitteen sisällä. Paikallista käsittelyä puoltaa myös se, että kuluttajat ovat nykyisin paljon kriittisempiä sille, kuinka paljon ja millaista dataa heidän käyttäytymisestään syötetään pilveen. Mahdollisesti arkaluontoisen tiedon käsittelystä voidaan käsittelystä tehdä tietoturvallisempaan, kun arkaluontoista dataa ei siirretä laitteesta eteenpäin.

Tekoälyä entistä pienempiin laitteisiin

Tulevaisuus on viemässä kännyköiden lisäksi koneoppimista ja tekoälyä yhä pienempiin sulautettuihin laitteisiin tai jopa antureiden sisään. Vielä ongelmana on se, että sulautettujen laitteiden resurssit ovat rajalliset sekä monimutkaiset tekoälyalgoritmit kuluttavat paljon virtaa. Kehitys kuitenkin kehittyy ja tekoäly tulee osaksi sulautettua piirivalmistajat lisäävät piireihinsä tekoälykäsittelyä tehostavia toimintoja ja kehittävät tehokkaampia algoritmeja.

Kuva 3. Micro:bit v2 kortti sopii AI-tekniikoihin tutustumiseen. Selainpohjaisen Create AI työkalulla voi helposti kokeilla AI-mallin kouluttamista tunnistamaan erilaisia kiihtyvyysanturin mittaamia liikeratoja. The Micro:bit v2 educational board can be easily programmed with browser-based Create AI tool to perform AI-analysis of accelerometer data. Source: Micro:bit Kuvalähteet: kuvakaappaus ja Micro:bit

Tällä hetkellä järkevin ratkaisu on kuitenkin kohdelaitteissa toimivan tekoälyn ja pilvipalvelun yhdistelmä. Tällöin välttämättömät toiminnot toteutetaan laitteessa ja pilveä käytetään vain lisäominaisuuksien tuottamiseen.

Hyvä esimerkiksi on uusimmat tekoälypohjaiset älykaiuttimet, joissa kaiuttimen sisällä toimiva tekoäly pystyy tunnistamaan yksinkertaiset aktivointi- ja ohjauskomennot, mutta monimutkaisemmat äänikomennot välitetään ääninäytteenä pilven käsiteltäviksi.

Tai reunalaskentaan perustuvissa IoT-järjestelmissä, joissa mittausdatan käsittely suoritetaan lähellä datan lähdettä tekoälyn automatisoima. Sen prosessori on energiatehokkuuden näkökulmasta hyvä asia, koska sen avulla voidaan välttää turhaa tehoa kuluttavaa tietoliikennettä.

Silti tekoäly ei ole vain yksi teknologia, vaan nimikkeen alle kuuluu laaja joukko erilaisia menetelmiä, tekniikoita ja sovelluksia. Ja silti joudutaan aina tekemään kompromisseja erilaisten ominaisuuksien kesken. Ja valitsemaan kokeilua varten sopivin algoritmi.

Kun tekoälyä sovelletaan rajoitetussa ympäristössä, täytyy ymmärtää tarkasti, mitä on tekemässä ja mitkä ovat sen toteuttamiseen oikeat työkalut sekä ohjelmiston että laitteiston osalta. Tekoälyn (AI) ja erityisesti syvän oppimisen (DL) toteuttaminen vaati yleensä tehokkaasti siihen tehtävään varten optimoitua laitteistoja ja ohjelmistoa.

Koneoppimisen hyödyntämisessä on kaksi oleellista vaihetta, jotka ovat hermoverkkomallin muodostaminen ja mallin käyttäminen. Mallin muodostamisessa tarvitaan hyvin paljon laskentaan, kun mallia opetetaan suuren esimerkkidatamäärän avulla.

Kun malli on muodostettu ja optimoitu esimerkiksi pilvipalvelussa, voidaan sitä käyttää monessa erilaisessa ympäristössä.   Valmiin neuroverkkomallin käyttäminen (esimerkiksi kuvan luokittelu) vaatii selvästi vähemmän suoritintehoa, kun kokonaan uuden mallin opettaminen. Pienikokoisia hyvin optimoituja tekoälymalleja on mahdollista käyttöön todella pienessä ja energiatehokkaassa laitteessa.

Usein ajatellaan, että syväneuroverkon opettaminen ja suorittaminen vaativat aina palvelinfarmeittain laskentatehoa, mutta tilanne on ainakin sulautetuissa sovelluksissa hiljalleen muuttumassa.  Aiemmin sulautettu laitteisto nähtiin jopa liian keveinä kyetäkseen ajamaan syväneuroverkkojen (DNN, deep neural network) -algoritmeja, mutta nyt tarjolle on tullut näihin sovelluksiin optimoituja piiriratkaisuita sekä neuroverkkolaskentamalleja osataan yksinkertaistaa.

Millä tekoälyä pyöritetään?

Internetin kautta käytettävät kuluttajien käyttämät tekoälypalvelut pyörivät yleensä suurissa datakeskuksissa sijaitsevissa tarkoitusta varten suunnitelluissa palvelintietokoneissa.  Paikallinen tekoälyn suorittaminen voidaan toteuttaa esimerkiksi tehokkaalla GPU-yksiköllä tai sitä varten voi olla oma avustava tekoälykiihdytin eli -prosessori. Google ja Nvidia ovat käyttäneet tekoälykiihdyttimestä termiä tensorisuoritin (engl. tensor processing unit, TPU), kun useat muuta valmistajat (Microsoft, Intel, AMD) käyttävät termiä neuraalisuoritin (engl. Neural Processing Unit, NPU).

Kuva 4. Congatecin conga-SMX95 SMARC moduulissa oleva i.MX 95 sisältää useita ARM Cortex-A55-ytimen ja ’eIQ Neutron’ tekoälykiihdyttimen.  Congatec’s conga-SMX95 SMARC module includes i.MX 95 processor that has multiple ARM Cortex-A55 cores and an ’eIQ Neutron’ AI accelerator. Source: Congatec.

Tekoälyn vaatimaa laskentaa voidaan tehdä sulautetuissa ratkaisuissa keskusprosessorilla, signaaliprosessoreilla (DSP), grafiikkasuorittimella (GPU) tai erityisillä ML-kiihdyttimillä. ML-kiihdytin voi olla järjestelmäpiiriin sisään rakennettuna tai sitä erillinen GPU-, ASIC- tai FPGA-piiri. AI-sovelluksiin markkinoidut korttitietokoneet koostuvat tyypillisesti yleiskäyttöisestä keskusyksiköstä, muistista, tehonhallinasta sekä yhdestä tai useammasta neuroverkkolaskentaan sopivasta laskentakiihdyttimestä.

Kun käytössä on suorituskykyinen tekoälykiihdyttimellä varustettu suoritusalusta, käytetään yleisesti Googlen TensorFlow-malleja. Sillä tyypillinen työnkulku sisältää mallin harjoittamisen ja päätelmien suorittamisen kohdelaitteessa erityisten kirjastojen avulla. Edgeimpulse yrityksen Edge Impulse- ja Googlen TensorFlow Lite for Microcontrollers -alustat ovat helpottaneet tekoälymallien käyttöönotolle sulautetuissa laitteissa.

Niistä Edge Impulse on tekoälyalusta tietojen keräämiseen, harjoitusmallien keräämiseen ja niiden käyttöönottamiseksi reunatietokoneissa. Edge Impulse on päästä päähän -sovelluskehys, joka tarjoaa toimintojen automatisointia ja matalan koodin kehitystyökalut edistyneen tekoälyn kehittämistä reunalaitteille varten.

Edge Impulse Studio on verkkopohjainen työkalu, jossa on graafinen käyttöliittymä, jonka avulla voit kerätä tietoja, rakentaa tekoälymallin ja ottaa sen käyttöön päätelaitteessa. Edge Impulse Studio sovelluskehitysympäristö tukee monia erilaisia mikro-ohjainalustoja.

Googlen TensorFlow Lite (nykyisin LiteRT) on monialustainen avoimen lähdekoodin syväoppimiskehys, joka pystyy muuntamana valmiiksi koulutetun TensorFlow-mallin muotoon, joka voidaan sitten optimoida nopeuden ja muistin mukaan. TensorFlow-malli voidaan ottaa käyttöön sulautetuissa laitteissa, jotka perustuvat eri käyttöjärjestelmiin ja eri tehoisiin prosessoreihin, kuten Android, iOS, Linux tai Raspberry Pi, ja mikro-ohjaimet paikallisten päättelyjen suorittamiseksi.

Työkaluja sulautetun tekoälyn ohjelmointiin

Google AI Edge tekoälytyökalun avulla on mahdollista tehdä sulautetuissa laitteissa toimivia LiteRT tekoälymalleja, jotka perustuvat TensorFlow-, PyTorch-, JAX- ja Keras-tekoälymalleihin. LiteRT tunnettiin aikaisemmin nimellä TensorFlow Lite (TFLite). Sulautettuihin järjestelmiin sopivia tinyML tekoälymalleja on mahdollista kehittää myös Mathworksin MATLAB ja Simulink ohjelmistoilla.

Ruotsalainen IAR Embedded Workbench kehitysympäristö on laajennettavissa tukemaan tekoäly- ja ML-kehitysprojekteja sekä yhdistettävissä Visual Studio Code editorin tekoälyavustajaan. DEEPCRAFT Studio (aiemmin Imagimob Studio) on IAR Embedded Workbenchin kanssa integroitavissa oleva tekoälytyökalu, joka pystyy lukemaan sisään Tensorflow-tekoälymalleja, optimoimaan niitä pienille prosessoreille sopivaan tinyML muotoon sekä muuntamaan ne C/C++ -lähdekoodiksi.

STM32 mikro-ohjaimille AI-kehitystyökaluiksi TensorFlow Liten lisäksi tarjolla ST:n omat STM32CubeAI ja X-CUBE-AI. X-CUBE-AI pystyy luomaan TFlite Micro Runtime ajoympäristön tekoälysovelluksesta STM32 projektin suosituille sulautettujen järjestelmien kehitysympäristöille STM32CubeIDE, Keil ja IAR.

Kehityskortilla voi kokeilla helposti

Brittiläisen BBC Micro:Bit v2 on opetuskäyttöön kehitetty mikro-ohjainkortti, joka sisältää Nordic Semiconductorin nRF52833 järjestelmäpiirin, kiihtyvyysanturin ja mikrofonin. Korttia varten on tehty ilmainen verkkopohjainen Micro:bit CreateAI -kehitysympäristö, jolla voi hyvin nopeasti kokeilla liikkeiden tunnistamista tekoälyn avulla.

Kuva 5. Sonyn CMOS-kameralla varustettu STM32N6 Discovery Kit sopii henkilöiden tai liikkeiden tunnistamiseen videokuvasta. The STM32N6 Discovery Kit with a CMOS camera is suitable for recognizing people or their movements in video images. Source: STM

ESP32-CAM on kameran ja ESP32-ohjaimen sisältävä edullinen kehityskortti, joka tukee yksinkertaista kohteiden tunnistusta käyttäen OpenCV kirjastoa. Seeed Studio XIAO ESP32S3 Sense on siitä tehokkaampi versio. RP2040 Arducam Pico4ML TinyML on RP2040 mikro-ohjaimeen perustuva kameran, mikrofonin ja pienen näytön sisältävä kehitysalusta.

Google Coral Dev Board Micro on mikro-ohjainpohjainen tekoälytekniikan soveltamiseen kehitetty kehityskortti, joka sisältää NXP i.MX RT1176 mikro-ohjaimen, Coral Edge TPU (tensor Processing Unit) -tekoälyprosessorin, kameran sekä mikrofonin. G950-01455-01 Coral Dev Board sisältää IMX8M sovellusprosessorin sekä Coral Edge TPU. USB Accelerator on Coral Edge TPU AI-kiihdytin pakattuna USB-tikkuun.

Tekoälykiihdytys tuli mikro-ohjaimiin

ARM esitteli tekoälytekniikoiden hyödyntämistä mikro-ohjaimilla jo vuonna 2019, jolloin käsin kirjoitettujen numeroiden tunnistaminen onnistui reaaliajassa DSP-yksiköllä varustetulla ARM Cortex M4 prosessoriytimellä.

Vuosi 2024 tullaan muistamaan siitä, että ensimmäiset tehokkaat tekoälykiihdyttimet tulivat mikro-ohjaimiin. Tekoälykiihdytin mahdollistaa tekoälymallien toimimisen nopeasti ja energiatehokkaasti kuormittamatta liikaa pääprosessoriydintä. Reaaliaikaisella paikallisella tiedon prosessoinnilla voidaan vähentää pilvipalveluihin liittyviä viiveitä, energiankulutusta sekä tietoturvariskejä.

Texas Instruments kutsuu NPU-tekoälykiihdyttimellä varustettuja uusia C2000-mikro-ohjainpiirejään reaaliaikaisiksi mikro-ohjaimiksi. Ne sopivat reaaliaikaiseen vian havaitsemiseen ja kunnon valvontaan. Infineon on myös sisällyttänyt kuvien prosessointiin pystyvän NNlite-hermoverkkokiihdyttimen PSOC-tuoteperheeseensä uusimpiin PSoC 6 AI malleihin.

Suosittu Raspberry Pi tekoälyratkaisuin

Raspberry Pi korttitietokonetta voi käyttää sulautetun tekoälyratkaisun pohjana. Jo useita vuosia vanhalla Raspberry Pi 4 kortilla on mahdollista ajaa TensorFlow-hermoverkkomalleja tai esimerkiksi MobileNet- ja OpenCV-kuvantunnistusta.

Kuva 6. Korttivalmistaja Kontronin BL Pi-Tron CM5 perustuu Raspberry Piin uusimpaan Compute Module 5:een.  Kontron’s BL Pi-Tron CM5 is a Raspberry Pi 5 industrial board based on latest Raspberry Compute Module 5. Source: Kontron.

Pi 5 -korttitietokone ja Raspberry Pi 5 Compute Module tarjoavat lisätehoa neliytimisen 64-bittisen Cortex-A76 ARM -suorittimen (BCM2712 SoC) ja VideoCore VII -grafiikkaprosessorin avulla. Muutamat kehittäjät ovat teknisenä taidonnäytteenä sovittaneet avoimen lähdekoodin DeepSeek R1 tekoälymallin optimoidun version toimimaan Pi 5 -kortilla.

Raspberry Pi myy myös erityisesti konenäkösovelluksiin ja älykamerasovelluksia varten suunniteltuja lisätarvikkeita korteilleen. Raspberry Pi AI Kit -laajennuskorttimallit sisältävät kuvan käsittelyyn optimoidun Hailo-8L tai Hailo-8 AI kiihdytinpiirin, joka voi nopeuttaa AI-mallien suoritusta yli satakertaiseksi verrattuna pelkkään Pi 5 korttiin.

Raspberryn Pi AI Camera perustuu Sonyn älykameratekniikkaan, jonka sisällä oleva ohjelmoitava FPGA-osassa pystyy itsenäisesti tunnistamaan videokuvasta haluttuja kohteita. Raspberry Pi 5 kortin on mahdollista yhdistää myös muita tekoälykiihdyttimiä, kuten Coral USB, Coral PCI-e tai Intel Movidius Neural Compute Stick.

Tehokkaimmat kortit perustuvat Nvidian tekniikkaan

Grafiikkaohjaimista esille noussut Nvidia on nykyisin alansa tunnetuin tekoälypiirejä valmistava yritys, joka tunnetaan parhaiten jo AI-datakeskuksien palvelimen tekoälykiihdyttimistä. Tarjolla on myös pienempää osuutta eli Jetson Nano, jolla voidaan toteuttaa helposti  hermoverkkoihin perustuvia tekoälyratkaisuja.

Kuva 7. Taiwanilaisen Aaeonin Boxer-8658 AI pohjautuu Nvidian Jetson Orin NX -tekoälylaskentakortti. Aaeon’s Boxer-8658 AI car computer is based on Nvidia’s Jetson Orin NX AI board. Source: Aaeon.

Nvidian Jetson Nano pystyy ajamaan Linux-käyttöjärjestelmää, ja tukee muun muassa TensorFlow-, PyTorch- ja CUDA-tekniikoita. Tuoteperheen tehokkain jäsen on viime vuoden lopulla julkaistu tehokkaan Jetson Orin Nano Super Developer Kit kortti.

Useat teollisuustietokonevalmistajat myyvät koteloituja Jetson Nano kortteihin perustuvia tietokonetuotteita. Jos Jetson Nano -tuotteiden teho ei riitä, Nvidian Jetson tuotteiden valikoimasta löytyy myös tehokkaampia AI-moduuleita. Nvidia julkaisi CES 2025 messuilla myös uuden pöytäkoteloon pakatun Nvidia Project Digits-tietokoneen, jolla voidaan ajaa  Nvidian uusinta GB10 Grace Blackwell Superchip AI-GPU-kiihdytinpiirin ja 128 gigatavun muistin avulla monia isoja tekoälymalleja paikallisesti.

Muutkin tietokonemoduulit apuun

Tekoälylaskentaa voi suorittaa myös perinteisillä PC prosessoreilla ja niihin integroiduilla GPU-ominaisuuksilla.  Moniin AMD:n ja Intelin prosessoreihin on nykyään integroitu näytönohjain sisältää GPU-yksikön, joka soveltuu ainakin rajoitettuun AI-laskentaan.

GPU-ominaisuuksilla varustettuja Intelin ja AMD:n prosessoreja on saatavissa COM-HPC-, COM-HPC Mini- ja COM  Express moduulimuodoissa, jotka tarjoavat hyvin samanlaisen ohjelmien ajoympäristön kuin normaali PC, mutta fyysisesti pienemmässä koossa.

Artikkelin kirjoittaja Tomi Engdahl toimii espoolaisen CVG Convergens Oy ohjelmistoinsinöörinä. Hänellä on pitkä kokemus sulautettujen ja IoT-ratkaisujen kehittämisestä ja tietoturvaratkaisuista.

https://www.uusiteknologia.fi/linkkipankki/Uusiteknologia.fi:n linkkilistalla on joukko sulautetun järjestelmän kehittämisessä tarvittavia generatiivisen tekoälyn ratkaisuja ja erikoistyökaluja. Listassa on ohjelmistokehitykseen sopivia generatiivisia tekoälytyökaluja, koodausavustajia ja sulautettujen tekoälysovellusten kehitystyökaluja. Näiden lisäksi listasta löytyy linkkejä tekoälyominaisuuksilla varustettuihin piireihin ja korttitietokoneisiin sekä aiempiin aluetta käsitelleisiin juttusarjan artikkeleihin.

Huomioitavaa tekoälyn käyttämisessä koodauksen apuna

  • Tekoälyn käyttämisessä koodauksen apuna kannattaa pitää mielessä tekoälykoodauksen rajoitukset ja turvallisuusasiat. Kannattaa olla tarkkana mitä tietoja tekoälytyökalulle syöttää. Monet tekoälytyökalut tallentavat sinne syötetyn datan, joten on olemassa riski, että kaikki sinne syötetyt tiedot eivät pysy salaisina kaikissa palveluissa. Etenkin tekoälypalveluiden ilmaisversioissa käyttäjien syötteitä voidaan käyttää palvelun kehittämiseen.
  • Ennen kuin lähetät mitään yrityksen arvokasta koodia mihinkään ulkopuoliseen palveluun, tulee selvittää, mitkä ovat yrityksen hyväksymät palvelut ja mitä tietoja niihin saa lähettää. Jos tietoturva huolettaa, kannattaa harkita käyttää ratkaisuita, joissa tekoälykäsittely tehdään kokonaan omalla tietokoneella tai palvelimella.
  • Koodausapureita käytettäessä kannatta huomioida, että monessa työkalussa koodin analysointi tapahtuu ainakin osittain pilvessä olevassa tekoälypalvelussa, eli osa muokkaamastasi koodista voi päätyä lähes huomaamatta tietokoneesi ulkopuolisen palvelun analysoitavaksi.
  • Tekoälyllä ladatusta koodista puuttuu usein taitavien ohjelmistokehittäjien intuitio ja kontekstuaalinen tietoisuus. AI-koodausavustajat ovat alttiita virheille, kuten syntaksivirheille, logiikkavirheille, tietoturvavirheille ja kirjastojen tai sovellusliittymien väärälle käytölle. Tekoälyn tuottaman koodin laatu tulee varmistaa ennen sen käyttöönottoa tarpeellisilla testeillä ja koodikatselmuksella.

ENGLISH SUMMARY: AI is Revolutionizing Embedded Systems Development

This article explores how AI is being used in electronics design and the development of new features in embedded systems.  Over the past few years, generative AI, utilizing large language models (LLMs), has become a common tool for developers working on electronics and embedded devices. AI is already automating various tasks in software development, from initial design to coding and testing. AI chatbots like OpenAI’s ChatGPT, Google Gemini, Microsoft Copilot, and others can generate code in multiple programming languages based on descriptions. They support languages used in embedded systems development, such as C, C++, Python, and JavaScript, as well as less common languages like Ada, Rust, and Assembly.

New tools have also made ”programming by example” practical. In this approach, users provide examples of inputs and desired outputs, and the system generates the code to meet those needs. This method works often quite well for writing short, simple code snippets. AI code completion tools now suggest relevant code snippets in real time within code editors, significantly speeding up development.

The most popular code assistant is GitHub Copilot, integrated with Visual Studio Code, which can suggest and improve code based on what the developer is writing. It is available for free and can be easily added to existing GitHub subscriptions, supporting environments like Qt Creator and Visual Studio Code. There are AI-powered code generators optimized for specific applications, such as Siemens’ Industrial Copilot, which can generate control logic for programmable logic controllers (PLCs).

This is part of a six-part series on modern electronics design, focusing on the development of IoT-type devices from circuits to prototype boards and programming tools. It also provides links to the latest AI tools, development boards, and hardware solutions for embedded microcontroller systems.