Slika 1 je zelo povedna. Thoony (Vir:02) je poskrbel za Micropython na ARMArduino modulčkih. Arduino modulčki uporabljajo ARM JEOS(Just enought operation system) čipe in ne več mikrokontrolerjev npr. Microchip. Razvojni jezik je postal Python( Vir:04), oz. Mikropython. Pred Pythonom smo imeli LUA jezik, ki se ne uporablja za nove projekte.
Avtor: Boštjan Šuhel
JEOS čipi so zelo poceni. Na trgu trenutno prevladujejo ESP32(c3) (Vir:5 in 6), ESP8266 (Vir:7) in RP2040 (Vir:8). Ti čipi so podprti s strani Thoony-ja (Vir:2). To je velika poenostavitev. Python uporabljamo na kartičnih računalnikih s SoC(System on Chip) in na JEOS modulčkih. Zato je Python najbolj uporaben razvojni jezik (Vir:9), takoj za JavoScript.
Na slovenski izdaji (Vir:1) imamo dodane primere za vse naštete JEOS čipe. Za šolo smo izbrali modul z ESP32c3, predvsem zaradi vgrajene BLT(Vir:10)n in WiFi(Vir:11) komunikacije. Na sliki je 8 modulov z ESP32c3 čipi. Na modulu imamo uporabniško tipko in RGB LED. Na modulu imamo 12 uporabniških GPIO (Vir:12) in 2 uporabna ADC10 vhoda. Napajanje in komunikacija sta rešena preko USB mikro konektorja. Na modulu je napetostni regulator za 3,6V. To je prva vertikalna tehnološka širitev. Zaradi poceni modulov bomo počasi imeli vse module, ki jih podpira Thonny. Vse mislim za vsa delovna mesta v učilnici nove mehatronike. Za demonstracijo in pisanje primerov smo založeni že danes
Ta vsebina je samo za naročnike
Raspberry PI 4 (2Gb)
Vzorčna učilnica nove mehatronike ima 8 delavnih in eno demonstracijsko mesto. Delavna mesta so opremljena zRaspberry PI 4 (2Mb) (Vir:13) kartičnimi računalniki. Na le-te je preko GPIO vtičnice priklopljen koračni motor s krmilnikom (Vir:15) in kapacitivne tipke (Vir:14). Začasna rešitev je Lata 5x5x40 na katero so moduli pritrjeni s pomočjo plastike in povezani z Arduino sistemom povezovanja.
Uporabljeni kartični računalnik ima 4 USB priklope. Po enega rabimo za miško, tipkovnico in web kamero z mikrofonom. Preostalo USB vtičnico uporabimo za ESP32c3 modul :). Monitorje imamo večinoma z zvočniki , diagonala je 45 cm in resolucija, ki jo večinoma uporabljamo 1680×1080.
Raspberry PI 400
Pri opremljanju demonstracijskega mesta smo preko donacije prejeli televizor diagonale 145cm. Uporabljen je računalnik v tipkovnici Raspberry PI 400 (Vir:16) z 4Gb delovnega spomina. Očitno ima dober hladilnik, ker stabilno deluje do CPU frekvence 2,1GHz in GPU frekvence 750MHz.
Demonstracijski računalnik ima sistemski pomnilni medij SSD priklopljen preko USB3 vtiča. Priklopiti moramo še miško in web kamero z mikrofonom. Raspberry PI 400 ima samo 3 USB vtičnice, zato moram, ko demonstriram module z JEOS čipi izklopiti web kamero. Rešitev je USB delilnik (spliter).
Demonstracije v praksi potekajo na velikem TV zaslonu in preko grafičnega daljinskega dostopa na velikem platnu v učilnici. Uporaba USB3 SSD medija za sistem je sprostilo zapisovalec SD kartic. Zapisujemo originalni OS in po le-tem narejeno slovensko izdajo. V izbiri programa imager (Vir:17) je še nekaj drugih operacijskih sistemov in orodij za nastavljanje načina zagona računalnika.
Obljubljeno
Med počitnicami sem se nameraval v glavnem ukvarjati z vodenjem robota s pomočjo tipala. Ni mi uspelo v glavnem sem pisal nove primere za Opencv in primere za vse s Thonny-jem podprte čipe. Glavnina dela, to je Opencv, naj bo napoved za naslednje nadaljevanje Pythona. Ker pokrivamo več in več vsebin in se le-te nenehno na novo pojavljajo sem prepričan, da dela ne bo zmanjkalo. Drugo je kaj in kako to znanje prenesti na mlade.
ROBOT
Robot je šolski projekt. Tako kot vse ostalo na slovenski izdaji napreduje počasi. Pri vožnjah s tipkovnico uporabljamo smerne tipke za ukaze robotu. Krmilni program je robot.py. Program robot.py poženemo z uporabo bližnjice. Od nas zahteva IP številko robota, ki mora biti povezan v isto lokalno Wi-Fi omrežje. Nato na robotu poženemo program enostavno.py ali regulator.py. Če želimo lahko katerega programov nastavimo, da se požene ob zagonu robota. To pride prav takrat, ko vozimo dvojno osmico med dvema stoloma. Sedaj imamo dva robota tako, da nas okvara enega ne prisili k prestavitvi tekmovanja. Založeni smo tudi z zadostnim številom akumulatorjev in hitrimi ter počasnimi polnilniki. Tehnologijo smo si sposodili iz sveta radijsko vodenih modelov. Uporabljamo dvo-celične LiPo celice kapacitete 1500mAh. RPi4 porabi nekako 0,5A, motorja potegneta nekako do 1A za oba, tako, da akumulator zdrži dobro uro. Prisiljeni smo bili zamenjati poceni DC/DC pretvornike s kvalitetnejšimi in dražjimi. Poceni varianta je namreč imela ob zagonu nevarne špice, ki so nam skurile eno RPi3 ploščo. DC/DC pretvorni, vzet iz dronov, pretvarja 7,2V v 5V, ki jih rabimo za napajanje RPi plošč. Standardne DC motorje z reduktorjem in kolesom priklopimo na H mostiče napajane direktno iz akumulatorja. DC motorji so 6V, ampak 7V jih naredi zelo živahne in hkrati ne odpovedujejo (v 4-ih letih ni odpovedal še noben) (Vir:21). Podvozje je modelirano na TinkerCad in tiskano s 3D tiskalniki. Enega so mi natisnili kolegi na šoli, drugega pa učenec 5. letnika avtoservisni tehnik.
Slika 5 prikazuje enostavno krmiljenje DC motorjev robota. Tu ukaz naprej ali nazaj pomeni večje ali manjše kroge v naključno smer. Zadostuje že mala razlika v čemer koli na krmilni verigi od DC motorjev, H mostička in imamo nehoteno zavijanje pri komandi naprej ali nazaj. To zelo moti gledalce in voznike. Gre seveda za enostaven krmilnik, kjer naši ukazi delujejo na vhod na krmilnika. Med zavoji ni takega problema, ker takrat tako ali tako zavijamo. V odprti klasi si učenci pišejo krmilne programe sami. Odprte klase so po rezultati boljše od standardnega programa, kar je logično. Vse programje, model podvozja, je del slovenske izdaje, oz. je to eden od šolskih projektov. Med šolskim letom si bomo v okviru praktičnih vaj izdelali še kakega robota.
Program regulacija.py uporablja Sense hat (Vir:22) razvojno ploščico za regulacijo usmeritve robota. Na Sense hat ploščici izkoriščamo hal in žiroskop tipala. V tem primeru naše komande delujejo na regulator, ki si ob pritisku naprej ali nazaj zapomni smer robota ob komandi in nato regulira smer glede na smer, ki jo ima v spominu. Gre za smerno referenco, ki jo določimo ob začetku pomika naprej ali nazaj. Regulirano veličino, torej smer, med vožnjo merimo in jo primerjamo z referenco. Robot vozi veliko bolj naravnost. Tu je veliko možnosti za popravo samega regulacijskega programa. Razmišljam, da bi vozili samo še odprto klaso v reguliranem in krmiljenem robotu. Ekipo bi tvoril voznik in programer. In takrat, ko se tekmuje, se napreduje. Poleg tega lahko šole, ki bodo imele učilnice nove mehatronike sodelujejo v medšolskih tekmovanjih. Do upokojitve imam še 3 šolska leta in to do konca. Me zanima ali nam bo to uspelo.
Naslednjič
Pogledati si moramo primere napisane za module, ki uporabljajo ESP8266, ESP32, ESP32c3 ali RP2040 čipe. Zelo je napredovala vsebina Opencv, torej računalniški vid. Le-to bomo pustili za naslednje številke. Povem naj, da že merimo razdaljo do žogice in znamo izmeriti odklon od linije pogleda kamere. Takoj pade ideja za robota, ki npr. sledi žogi. Tu je število idej precej veliko, da bi lahko sledili vsem. Dodati bo potrebno kriterij uporabnost med tekmovanji ali kaj podobnega. Opencv je tudi tema vredna posebnega predmeta, vsaj na srednji šoli. Gre za kombinacijo nevronskih mrež in metod, ki nam omogočajo razna prepoznavanj, meritve itd. Gre za lokalno orientacijo, ki skupaj z globalno navigacijo (GPS) tvori avtonomne objekte. Računalniški vid se ogromno uporablja v industriji. Ogromno je prostora za lasten razvoj, še posebej, ker so za enkrat izdelane rešitve zelo drage.
Začeli bomo z Arduino moduli, ki uporabljajo ARM čipe. Zato si nabavite računalnike, namestite si slovensko izdajo, da boste v korak s časom in pred njim…. :). So pa to teme povezane s priklopi na WiFi dostopne točke, BLT priklopi in nastavljanja, Niti, GPIO-ji, upravljanje porabe, časovniki itd., pač vse kar rabimo za razvoj naprave, ki ne rabi SiC čipa.
Viri:
https://suhel.happyforever.com/
https://thonny.org/
https://github.com/thonny/thonny/
https://www.python.org/
ESP32c3
ESP32
ESP8266
RP2040
Prvih 5 programskih jezikov
https://en.wikipedia.org/wiki/Bluetooth
https://en.wikipedia.org/wiki/Wi-Fi
https://en.wikipedia.org/wiki/General-purpose_input/output
RPi4(2Gb)
Kapacitivne tipke
Koračni motor s krmilnikom
Raspberry PI 400
https://www.raspberrypi.com/news/raspberry-pi-imager-imaging-utility/
https://suhel.happyforever.com/projekti/robot/tinkercad.php
https://suhel.happyforever.com/projekti/robot/php.php
https://suhel.happyforever.com/projekti/robot/python.php
https://suhel.happyforever.com/projekti/robot/tinkercad.php
https://www.raspberrypi.com/products/sense-hat/