Tech Ćakula #6 -“Izazovi kod programiranja mikrokontrolera”| IT zajednica Rijeka
Autor: Deborah Brakus Kršul
🔊 TEMA: Izazovi kod programiranja mikrokontrolera
🧑 GOST – MARKO KOŠAK
Danas nam je bio gost još jedan uspješan mladi Riječanin sa zavidnom karijerom i vlastitom tvrtkom.
Marko je od 2015 godine je radio u Rimac / Greyp kao Embedded Engineer, od nedavno radi za domaće i strane kompanije na nizu projekata. Ima veliko iskustvo u radu na razvoju proizvoda i testiranju i stvarnim uvjetima. Također radi kao edukator dugi niz godina u https://www.immersa.hr/ Razvija u C++ u Linux okruženju software mikrokontrolere.
👨💻 VODITELJ – RENE BRAKUS partner u 46ELKS (https://46elks.com) tvrtka koja nudi laku integraciju SMS, MMS i VOICE usluga. Strastven oko stvaranja preduvjeta za dijeljenje znanja i jačanja povezanosti unutar IT zajednice u Rijeci.
Ako ste slučajno propustili live, razgovor možete pogledati na linku:
Immersa je tečaj iz embedded područja s naglaskom na programiranje mikrokontrolera. Embedded programiranje postaje u svijetu sve traženije kao struka, a veliki razvoj se primjećuje kod automobilske industrije, ali i u području povezanosti svih uređaja s internetom (“Internet of Things“).
U Hrvatskoj je velika potražnja za ovim kadrom jer postoji premalo osoba koje imaju dovoljnu razinu znanja za rad na takvim projektima, od programiranja IoT uređaja do industrije električnih sportskih automobila.
Cilj tečaja je da polaznici na metodičan način s puno vježbi i prakse steknu praktično znanje, a da pritom shvate i teoretski dio iza svega toga, naročito što se tiče programskog dijela. Ovo nije tečaj/radionica gdje se na temelju uputa izrađuje neki “pametni” uređaj, već se ide s pristupom gdje se u detalje objašnjava kako uređaji funkcioniraju s ciljem da nakon završene edukacije polaznici mogu primijeniti svoje znanje na raznim senzorima i elektroničkim modulima kako bi ih upogonili.
Na edukaciji se polaznici susreću s puno različitih senzora svaki sa svojom problematikom, ali i različitim mikrokontrolerima pa čak i software-ima za programiranje kako bi stekli veću širinu znanja. Očekuje se od polaznika da nakon završetka edukacije zna čitati i razumjeti datasheet uređaja te povezati različite elektroničke module međusobno s ciljem stvaranja vlastitog uređaja. Detaljan program rada može pogledati na linku po vrlo pristupačnim cijenama.
TKO JE MARKO I KAKO SE ODLUČIO POSVETITI MIKROKONTROLERIMA ?
Studirao u Rijeci na Tehničkom fakultetu preddiplomski studij smjer Elektrotehnika. Tijekom studiranja započinje s upoznavanjem mikrokontrolera na drugoj godini studija te njihovom primjenom u praksi. Iz tog razloga svoje daljnje školovanje odlučuje nastaviti u Zagrebu. Nakon završene 3 godine studija nastavlja školovanje na diplomskom studiju u Zagrebu na Fakultetu Elektrotehnike i Računarstva, smjer Elektroničko i računalno inženjerstvo.
Za svoj diplomski rad “Mjerni čvor meteorološke stanice” i prototipni uređaj osvaja prvu nagradu na DIRA-i (Diplomska radionica FER-ovog zavoda) gdje gospodarstvenici, direktori, članovi uprava, voditelji razvoja i inženjeri iz istaknutih poduzeća odabiru najbolji rad. Radio je na raznim IoT platformama tijekom studija, ali i kasnije u struci.
Nakon završetka fakulteta radi na razvoju M2M uređaja koji se ugrađuju u automate za prodaju kave i hrane. Ubrzo se pridružuje Rimac Automobilima gdje radi na razvoju Greyp modela bicikla G12S i G12H. U sklopu toga radi na razvoju i dizajnu elektronike i PCB-a te naknadno i na razvoju firmware‑a za mikrokontroler koji upravlja svim procesima Greyp-a G12S. U narednom razdoblju se opredjeljuje više prema razvoju software-a i embedded Linux-u te kao dio tima radi na razvoju CIM-a na G6 biciklu.
Prije tri godine je osnovao tvrtku Immersa u koja se bavi držanjem tečajeva iz embedded područja s naglaskom na programiranje mikrokontrolera.
KOJA JE ZAPRAVO RAZLIKA IZMEĐU RASPBERRY PI I ARDUINA ?
Arduino i Raspberry Pi su možda na prvi pogled vrlo slični, no namjena im je potpuno drukčija. Arduino je mikro kontroler koji se zasniva na 8-bitnom ATmega čipu i ima 2-8 kB memorije, dok se RPi zasniva na mikroprocesoru radnog takta 700 MHz, te ima 256/512 MB RAM memorije.
Arduino je mikrokontroler, a zapravo nije mini-računalo. Mikrokontroler je samo mali dio onoga što čini cijelo računalo. Arduino pruža samo podskup funkcionalnosti Raspberry Pi.
Postoje razne vrste Arduino ploča kao što su Arduino Uno, Mega, Nano. Najčešća Arduino ploča koja je Arduino Uno ima dva mikrokontrolera. Korisnik programira ATmega328. ATmega16U2 je već unaprijed programiran i koristi se za USB komunikaciju. IO igle koriste se za povezivanje s vanjskim svijetom. Postoje digitalne igle i analogne igle.
Zbog toga je Arduino najbolje koristiti za projekte poput izgradnje svjetla za buđenje, alarma detektora pokreta ili čak i malog robota. Također ćete čuti kako ljudi govore o “prototipovima” s Arduinom, što je proces brzog stvaranja prototipa elektroničkog uređaja. Ako je prototip uspješan i uređaj radi, može se izraditi u većim razmjerima s tiskanim pločicama.
Raspberry Pi, s druge strane, nije mikrokontroler i nije napravljen za kontrolu senzora i sličnih stvari. Raspberry Pi dolazi opremljen potpuno funkcionalnim operativnim sustavom koji se zove Raspbian. Ovaj OS temelji se na Debian Linuxu i izrađen je posebno za Pi. Postoji više drugih operativnih sustava koje možete koristiti s pločom, od kojih je većina bazirana na Linuxu, ali Android također može biti instaliran.
Postoje različite verzije poput Raspberry pi A, B, B +. Raspberry Pi B + sadrži Broadcom BCM 2836 System on Chip (SoC).
Raspberry Pi dolazi spreman za spajanje na internet; ima izgrađen-in Ethernet port.
Tu je i priključak za CSI kameru. HDMI priključak pomaže u povezivanju uređaja s monitorom. DSI je sučelje za monitor za zaslone. Alternativa je HDMI-u. Micro SD kartica nalazi se unutar utora za micro SD. Na stražnjoj je strani ploče.
I Arduino i Raspberry Pi su vrlo sposobni mali strojevi koji vam mogu pomoći da naučite i učinite puno stvari, ali u nekom trenutku vjerojatno ćete željeti pomaknuti izvan osnova i pokušati nešto malo naprednije.
OPERACIJSKI SUSTAV ZA MIKROKONTROLERE
Operacijski sustavi u realnom vremenu igraju veliku ulogu u današnjoj tehnologiji. Premda je ovo tehnologija koja postoji godinama, mnogi problemi koji su postojali prije postoje i danas te ne postoji nužno jedno najbolje rješenje za svaki problem.
Operativni sustavi mikrokontrolera je operativni sustav u stvarnom vremenu i obično se dijele na RTOS (dizajnirao ga je Jean J. Labrosse 1991.) i embedded Linux.
To su operacijski sustavi koji se koriste za specijalizirane aplikacije koje zahtijevaju odziv koji je što je moguće bliže stvarnom vremenu. Standardni operacijski sustavi usredotočeni su na činjenicu što više izračuna u najkraćem vremenskom razdoblju, dok RTOS naglašava da ima predvidljivo vrijeme odziva.
Operacijski sustavi u realnom vremenu ili RTOS (Real-time operating system), su operacijski sustavi koji posjeduju sljedeće karakteristike:
Odlučnost – predstavlja svojstvo sustava da obavlja posao u određeno vrijeme, ili u određenom rasponu vremena
Odzivnost – predstavlja koliko dugo vremena treba sustavu nakon prihvaćanja prekida za obavljanje zahtijevanog prekida
Korisnička kontrola – predstavlja količinu kontrole s kojom korisnik raspolaže. Za razliku od standardnih operativnih sustava, RTOS mora pružati znatno veću kontrolu nad sustavom.
Pouzdanost – je uobičajeno puno važnija za RTOS. Dok u slučaju većine sustava kvarovi mogu rezultirati ne ugodnostima koje mogu biti popravljene ponovnim pokretanjem, u slučaju da RTOS zakaže prilikom rada s poslovima u realnom vremenu posljedice mogu biti kritične pa čak i snositi životne opasnosti.
Fail-soft rad – je svojstvo sustava da prilikom zakazivanja sustav zakaže tako da zadrži što veću mogućnost rada i što veću količinu podataka.
Embedded Linux je korištenje jezgre Linuxa za razvijanje operacijskog sustava. On se često ne koristi u istim slučajevima kao i standardni sustavi već češće za kompleksnije sustave koji koriste mikroprocesore.
S vremenom se razvio veliki broj operacijskih sustava temeljenim na Linux jezgri za ugrađene sustave kao i alati za implementaciju embedded Linuxa.
Neki od Embedded Linux operacijskih sustava koje možemo naći na tržištu danas su Android i OpenWrt, kojeg možemo pronaći na usmjerivačima.
Iz prakse Marko smatra da kod pisanja čak i nema nekakvih razlika između njih, veći je problem kod testiranja i istraživanja bugova. Često se događa da se pojavi i hardverski program i da jednostavno nekakva komponenta na pločici na radi ili je neka žica prekinuta.
PLANIRANJE POSLOVA OPERACIJSKIH SUSTAVA MIKROKONTROLERA
Kako nam je Marko objasnio za rad s više procesa operacijski sustavi imaju mehanizam koji se zove planer poslova
(scheduler). Planer odlučuje redoslijed kojim se poslovi obavljaju te koliko ti procesi mogu trajati. Postavlja stanje u kojem se posao trenutno nalazi, to mogu biti čekanje, rad i pauzirano stanje.
Prioritetno planiranje, ili planiranje s prekidima, definira hijerarhiju između poslova pri čemu važniji posao ima prednost nad poslom s manjim prioritetom. Tako da ako se pojavi posao s većim prioritetom može se pozvati prekid ukoliko posao koji se obavlja ima manji prioritet od posla koji je pozvan.
DA LI VEĆE TVRTKE RAZVIJAJU SAME SVOJ OS ZA MIKROKONTROLERE ?
Postoje npr. sustavi koji se specijaliziraju u području za mrežne alate dok neki drugi mogu biti specijalizirani
u području ulazni i izlaznih sučelja. Ti određeni sustavi dolaze s alatima potrebnim za obavljanje potrebnog posla te mogu skratiti vrijeme razvoja sustava. Naravno ako situacija nalaže, moguće je napraviti i vlastiti RTOS.
U slučaju samostalne izrade RTOS-a moramo uzeti u obzir specifikacije mikrokontrolera. Moramo znati koji su priključci namijenjeni kojoj svrsi te adrese u memoriji koje smijemo zauzimati.
Primjer situacije u kojoj je potrebno razviti vlastiti RTOS je ako koristimo vlastite mikrokontrolere, budući da komercijalni RTOS su napravljeni za poznate proizvođače mikrokontrolera.
Marko napominje da je potrebno naravno vrijeme, ljude koji će ga imati vremena razvijati i potrebne resurse, ali kako bi rekao jedan njegov profesor s FER-a ” uvijek kupi ako možeš da uštediš vrijeme”.
AUTOMOBILI POSTAJU PAMETNI TELEFONI NA KOTAČIMA
Rene: živimo u novoj eri gdje ažuriramo i automobile čime ćemo im moći poboljšati sigurnost, inteligenciju i učinkovitost. Trenutno je najpopularniji i u tome najuspješniji Tesla.
Elon Musk nedavno je rekao: “Tesla nije automobil, već računalo na kotačima”. Od tada je sustav s daljinskim ažuriranjima prebačen na druge proizvođače i u bliskoj će budućnosti pokriti sva vozila.
Više elektronike, više funkcija, više softvera: automobil postaje pametni telefon na kotačima. Održavanje softvera u automobilu ažurnim stoga postaje sve važnije.
Nove funkcije mogu osigurati dodatnu praktičnost, čak i nakon kupnje automobila. Bežično ažuriranje softvera stoga će uskoro postati standardna značajka.
IT ZAJEDNICA RIJEKA RADI NA RAZVOJU PROGRAMA AKADEMIJA
Odlučili smo raditi na razvoju zajednice u Rijeci kroz program Akademija kojoj je cilj da sve IT tvrtke iz PGŽ-a i pojedinci financiraju obučavanje pojedinaca u CTK Rijeka kroz edukacije.
To neće bit namijenjeno samo osobama koje su informatičari nego svima koji će nakon toga postati juniori i imati veće mogućnosti zapošljavanja u istim tvrtkama i samim time će zajednica rasti i jačati.
Hvala Vam što ste odvojili svoje vrijeme za nas i ako ste zainteresirani za suradnju javite nam se na linkove:
🔗 IT ZAJEDNICA RIJEKA:
🔗 MARKO KOŠAK:
LinkedIn ➡️ https://www.linkedin.com/in/marko-kosak/