ARM-kurssi Season 2 ennakkoilmoitus

Heikki pitää Arduinon alkeet-kurssia vielä muutaman kerran jonnekin arviolta maaliskuun puoleenväliin tms, ehkä. Sen jälkeen olin ajatellut jatkaa viime vuonna tauolle jätettyä ARM-kurssia ja edetä kohti uusia seikkailuja. Mikäli haluatte mukaan kurssille, niin ilmoittakaa halukkuutenne vastaamalla tähän viestiin.
Kurssin aloitus ja kurssipäivä kiinnitetään myöhemmin, mutta alustavasti kurssipäivä on torstai klo 18-21. Aloitus määräytyy Arduino-kurssin päättymisen mukaan.

Jos on aiheesta kiinnostuneita jotka eivät osallistuneet edelliseen sesonkiin, niin tämän kurssin aihepiiri on nimensä mukaisesti ottaa haltuun omien projektien toteuttaminen käyttäen 32-bittisiä ARM-arkkitehtuuria noudattavia mikrokontrollereita. ARM on siis aineeton arkkitehtuuri jota lisensoi samanniminen putka, ja piivalmistajat toteuttavat siitä omia mikropiirejään joita saa sitten ostaa kaupasta. Lisenssivalmistajia on vaikka kuinka monta, tällä kurssilla käytetään ST Microelectronicsin piirejä ja valmiita kehityslautoja, tarkemmin ST Nucleo-F303 jolla majailee ARM-Cortex M4 -arkkitehtuurin mukainen piiri STM32F303RE.

Ekalla esityskaudella käytiin läpi kehitysympäristön pystyttäminen, projektin perustaminen ja tutustuttiin itse pääosan esittäjään eli 32-bittiseen ARM-mikrokontrolleriin. Muutaman ledinvätkytys-tyyppisen demon jälkeen otettiin haltuun prosessorin sulautettuja oheislaitteita kuten GPIO-pinnit, I2C, SPI- ja UART-sarjaväyltä ja mitä näitä oli. Sen jälkeen tutustuttiin oikeaan pieneen reaaliaikakäyttöjärjestelmään nimeltä FreeRTOS jolla tehtiin joukko sen ominaisuuksia hyödyntäviä projekteja.
Demoprojektien yhteydessä käytettiin eri lähteistä haalittuja kokeilupiirilevyä joissa oli juttuja alkaen sajra-rinnan-sarja -muuntimista pieneen tekstipohjaiseen LCD-näyttöön. Kaikki saatiin suurinpiirtein toimimaan ja toivottavasti opittiin kokonaisuuksien rakentamista osista.
Harjoituksissa käytettiin C ja C++ -kieliä jotka on Arduino-maailmastakin jollain tavalla tuttua. Tällä kurssilla käytetty ohjelmankehitysympäristö on kuitenkin “pro” eli tarkoitettu ihan oikean kaupallisen koodin tuottamiseen. Kielessä sinänsä ei ole mitään eroa, ja ohjelmistokin on ilmainen mutta ei ihan niin aloittelijaystävällinen kuin Arduino. Vastineeksi saa sitten ihan toisella tavalla ominaisuuksia ja mahdollisuuksia.
Edellisen kauden aineistoa löytyy tallennettuna täältä: Kirjoitusalusta.fi: hacklab-kurssi-stm32intro

(*** kts kommentti lopussa ***)

Meille jäi yksi rästitehtävä eli Bosch Sensortechin BMP280 -ilmanpaine/lämpötila-anturiin liittyminen ja säätietojen keruu. Kurssilaisille hommattiin silloin kyseistä piiriä käyttäviä koelautoja joita saa tavanomaisilta epäillyiltä, mm eBaysta vaikka tämmöinen saksalainen versio joka tulee ilman tullia: https://www.ebay.com/itm/ESP8266-BMP280-Luftdruck-Barometric-Temp-I2C-Sensor-Modul-Arduino-high-precision/284122608477?hash=item422706f35d:g:M9EAAOSwDiZf4K~g

Yleisön pyynnöstä sen jälkeen käydään läpi ARM-prosessorin virransäästötilat jolla on mielenkiintoa niille jotka kyhäävät paristokäyttöisiä tai muuten energiapihejä sovelluksia. Tehdään siitä joku yksinkertainen demoprojekti jolla asia selviää. Tämäkin saadaan yhden illan aikana käsiteltyä hyvin.

Sen jälkeen aloitetaan uusi lukukausi kunnolla ja ruvetaan käymään läpi tässä ylempänäkin jo alustavasti puitua aihepiiriä, eli mekaanisen systeemin liikkeenohjaus pienen (DC) sähkömoottorin avulla. Siinä meillä menee loppuvuosi joutuisasti, katsotaan kuinka syvälle päästään ennen kuin on pakko tulla pintaan haukkaamaan happea. Käytännön harjoitusten lisäksi tässä tulee väistämättä teoriaa ihan jonkun verrankin, koska ilman sitä me ei päästä puusta pitkään. Koitetaan kumminkin pitää ote sillä tavalla intuitiivisena, ettei hommasta tehdä mitään laskuharjoitusta, eikä aleta läpikäymään puisevia johdantoja, vaan keskitytään olennaiseen.

()
Jos kurssille haluaa ilmoittautua mukaan sellaisia, jotka ei osallistuneet ekalle kaudelle, niin voin järjestää valmisteluistuntoja muutaman kerran ennen varsinaisen jatkokurssin aloitusta. Näin sellaisetkin jotka aloittavat alusta pääsevät kohtuudella mukaan.
(
)

Sille ei voi mitään, että tätä kurssia ei ole mahdollista vetää käyttämättä C- ja C++ kieliä siten kuin niitä on tarkoitettu käytettävän. Muu ei yksinkertaisesti ole mahdollista. Sen takia jotta kurssista saa hyötyä, on vähintään välttävä noiden kielten tuntemus tarpeen. Emme käytä mitään C++ -kielen kehittyneimpiä ominaisuuksia koska niitä ei muutenkaan käytetä sulautettujen järjestelmien koodauksessa. Mitään tasovaatimuksia kurssille ei ole, eli kuka vaan on tervetullut osaamisesta riippumatta, mutta tällä kurssilla ei opeteta ohjelmoinnin alkeita.

Kurssin ohjelmankehityslauta: Nucleo-F303

Ohjelmankehtysympäristö: STM32CubeIDE

Kurssilla käytetään viitematskuna tätä netistä ilmaiseksi ladattavaa e-kirjaa: The Fundamentals of Control Theory.

Kiinnostaa. En osallistunut ensimmäiselle kaudelle, Heikin Arduino-kurssille osallistuin.

Hei - ilmottaudun mukaan.

Mukana ollaan

Mukana ollaan kun tarkempi ajankohta selviää.

Mukana ollaan!

Tottakai mukana

tottakai mukaan tullaan…

-eero-

Voisin koittaa jatkaa kurssin mukana.

Mukana.

Mukana.

Mukana!! Tietysti!!!

Hienoa, tosi kiinnostavaa eli mukana. En osallistunut ekalle kaudelle, pieni kertaus olisi kiva. Mainittu lauta ja anturi tilattu.

Tulen mukaan. Mielelläni osallistuihin myös esivalmistelujaksolle.

T. Hans

Mukana

ARM-kurssi season 2 ennakkonäytökset alkaa ensi viikon torstaina 4.3 klo 18. Käytämme google Meetia ja ilmoitan linkin täällä ja slackissa vähän ennen tapahtuman alkua.
Kaikki ilmoitautuneet ovat tervetulleita, mutta erityisesti paikalle toivotaan niitä, joille ST:n kehitystyökalut ja ympäristö ei ole ennestään tuttu. Kurssilla käytämme siis SMt32CubeIDE-kehitintä ja nucleo-f303 lautaa jota ei tarvitse olla vielä tässä alkuvaiheessa. Pelkkä PC riittää.
Ennakkovalmisteluna itse kukin käyköön ST:n sivuilla lataamassa CubeIDE-paketin osoitteesta https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-ides/stm32cubeide.html
Luokaa itsellenne tunnarit jotka helpottavat myös myöhempää asiointia ST:n sivustoilla.
Ennakkonäytös saattaa käsittää pari-kolme istuntoa riippuen kuinka nopeasti saadaan hommat hoidettua. Tavoite on asentaa kehitysympäristö, luoda muutama leluprojekti ja saada ne toimimaan. Siinä vaiheessa tietty tarvitaan se kehityslauta jotta on alusta millä ajaa koodia.
Sen jälkeen alkaa varsinainen kurssiohjelma ja jatketaan suunnilleen siitä mihin viimeksi päädytiin.

Mukana, isompi mahdollisuus saada hankittu lauta käyttöön. Valmistelu-/lyhyt kertaus olisi kyllä paikallaan, ei taida vaan enää ehtiä?

Tässä vielä linkki kurssin dokumentointisivustolle: https://kirjoitusalusta.fi/hacklab-kurssi-stm32intro-2021

Kremmen, mitä Nucleo ohjelmakehitysalustaa suosittelet? Mouserilla on myynnissä useita erilaisia ja varsin kohtuulliseen hintaan. Tuo mainitsemasi Nucleo-F303 maksaa 9,11 EUR. Kannattaako kuitenkin ostaa joku parempi versio (enemmän muistia tms.)?

No se on tietty aina oma kysymyksensä mikä kannattaa. Kurssin tarpeisiin tuo F303RE riittää loistavasti, onhan siinä 512k flashia ja 64k + 16k rammia. Tuo 16k on vielä extranopeaa suoraan coreen kytkettyä jolla saa lisäpotkua juttuihin. Kellotaajuuttakin on kohtuulliset 72MHz joten ihan eri laitteista puhutaan kuin vaikka Ardu Uno.
Mutta jos haluat vaikka pelata Ethernetin kanssa tai tehdä jotain muuta kiireellistä ja muistisyöppöä niin on noita Nucleo-lautoja paljon järeämpiäkin kuten vaikka nucleo-F767ZI. Siinä on 216MHz Cortex M7, 2M flashia ja 512k rammia ja sisäänrakennettu Ethernet-PHY. Sillä ehtii yhtä ja toista, mutta kurssin tarpeisiin se on aivan overkilliä.
Yksi uudemman pään MCU on STM32G4x4-sarja johon Heikki ehkä viittasi viime kerralla ardukurssilla. Siitä löytyy nucleo-G474RE joka on aika kivan tuntuinen paketti. Saman kokoinen levy kuin kurssilauta,
512k flashia, 128k rammia ja 170MHz kellotaauus, että vauhtia piisaa. Juuri tuossa on ne Heikin mainitsemat 7 D/A-muunninta millä pystyy vaikka tuottamaan melkoista surround-audiota jos semmoinen kiinnostaa. Veikkaan että tuo sopii hyvin kurssilaudaksikin koska ei me käytetä mitään F303:n sellaisia ominaisuuksia joita ei voisi tällä toistaa tai ainakin jäljitellä.