21
Jan
2020
1

M5GO: IoT igračka za neodrasle i one druge

Neka dobra duša koja me dobro poznaje i zna što volim kupila mi je za Božić M5GO igračkicu. Izvrstan izbor, bravo nepoznati dobročinitelju! [tapša se po ramenu]

Osobama koje nisu geekovi ili hardversko-računalno nastrojeni vjerojatno nije lako pojmiti taj osjećaj kad kup… dobijete neku sitnicu, a čini sevelika poput kuće. To su baš ti lijepo pogođeni pokloni, kao kad ljubitelju književnosti kupite knjigu poezije, a njemu se knjiga posebno svidi, ili kad frendu koji brije na Novi val poklonite longplejku s potpisima članova benda, iako on već ima istu takvu, samo bez potpisa. Za nekog nezainteresiranog tko gleda sa strane – pretjerivanje; za one “in the know” – wow. 

M5GO je proizvod relativno mlade tvrtke: M5Stack je osnovao izvjesni Jingming Lai 2015. godine, a tvrtka je fokusirana na izradu lijepo upakiranih IoT rješenja baziranih na ESP32 SoC-u. 

Što je ESP32, a što je SoC, vjerojatno se pitate? 

System on a Chip (SoC) je, jednostavnim riječima objašnjeno, ono kad proizvođač na samo jedan čip utrpa gotovo kompletno malo računalo. Za razliku od tradicionalnih računala, SoC integrira mnoge (ali ne sve!) dijelove klasičnog računala u jedan jedini čip, što omogućuje izradu fizički vrlo malih računala koja su zbog visoke integracije logike često i vrlo simpatično jeftina: cijene SoC rješenja počinju već od par dolara, a dižu se do i dalje ne preskupih nekoliko desetaka dolara. Industrijska rješenja, naravno, imaju i veće cijene, no zadržimo se ipak u domeni hobista i obrazovanja. 

Valja znati da SoC rješenja nisu minijaturizirane kopije “pravih” stolnih računala, jer su značajno ograničenih resursa: ovdje navedeni ESP32, primjerice, radi na 240MHz (moderna računala vrte se oko 3000MHz), posjeduje naizgled beznačajnih 520KB RAM memorije (moderna računala kreću od 4.194.304KB memorije u najslabijim modelima). Nemaju video izlaz, niti ulaz za tipkovnicu i miša: te stvari moraju se riješiti dodatnom elektronikom. Kako je njihova najčešća primjena u IoT i embedded uređajima skrivenim daleko od očiju korisnika, zapravo i ne trebaju te mogućnosti, već su opskrbljeni velikim brojem ulazno-izlaznih linija i širokoj javnosti manje poznatim komunikacijskim standardima poput I2C, SPI i sličnim. SoC rješenja imaju široki raspon mogućnosti i potrošnje energije: od vrlo jednostavnih uređaja koji troše vrlo malo energije i koji su pogodni za neke jednostavne i dugotrajne poslove, do relativno kompleksnih poput ESP32 koji su “na korak” od “punokrvnog” računala. SoC čipovi nalaze se u mnogim STEM uređajima, a da je riječ o ozbiljnim igračima svjedoči Raspberry Pi 4, kojeg pogoni Broadcom BCM2711, procesor s četiri jezgre koji trči na 1.5GHz, a omogućuje rad na Raspberry Pi uređaju identičan onome na “pravom” računalu (zapravo, nešto sporiji, ali i dalje relativno ugodan rad) uz korištenje do 4GB RAM memorije. 

ESP32 nije toliko moćan SoC kao onaj kojeg vrti RPi, ali je i dalje svojim karakteristikama impresivan, pogotovo usporedimo li ga s njegovim starijim bratom, ESP8266, omiljenom igračkom DIY elektroničara: posjeduje dvije jezgre (postoji i jeftinija varijacija sa samo jednom jezgrom), internu FLASH memoriju za spremanje programa kojeg treba izvršavati, malu ali u praksi uglavnom dovoljnu količinu RAM memorije, te možda i najzanimljivije: WiFi i Bluetooth povezivanje za razmjenu podataka. Obje jezgre su 32-bitne, a sam SoC može raditi na (za IoT uređaje) pristojnim brzinama od 160 ili 240MHz. Svaki ESP32 ima ugrađenu podršku za WiFi i Bluetooth povezivanje. 

Možda vam se sve ovo učini ne naročito spektakularnim, no ipak ne možemo ovakve male i jeftine uređaje uspoređivati s računalima, pa ni s tabletima: ipak je riječ o poluspecijaliziranim uređajima koji su prvenstveno zamišljeni za obavljanje jednog relativno jednostavnog posla, nikako kao zamjena za pravo računalo. No, tehnološki napredak posljednjih godina doveo je do toga da su postali itekako upotrebljivi u svijetu obrazovanja: njihova ograničenost (u odnosu na “prava” računala) i napredak alata i jezika za programiranje istih čini ih idealnim pomagačima u STEM edukaciji. Iako na prvi pogled zvuči paradoksalno, ograničenost ovih uređaja forsira savladavanje temeljnih IT znanja i vještina (poput pisanja štedljivog koda zbog ograničenosti resursa). 

M5Stack uređaji isprva su zamišljeni za brzu izradu prototipova koji bi se kasnije pretvarali u konkretne industrijske aplikacije. Izvrsna ideja, no čini se da su autori ubrzo postali svjesni velikog potencijala u edukaciji, pa su dodatno pojednostavili svoje rješenje i zapravo ga prilagodili školama. Otvorimo M5GO kutiju. 

Sadržaj kutije pun je veselja za male elektroničare i njihove roditelje: osim samog uređaja, tu je i mala zbirka senzora, potrebno kablovlje, kratke i jednostavne upute, te set LEGO kompatibilnih konektora kojima je moguće pričvrstiti uređaj ili senzore na LEGO kreaciju, pa čak i njome upravljati uz pomoć odgovarajućih dodataka. 

ESP32 mozak ugrađen je u kutijicu koja komotno stane na dlan – uređaj je zbilja malen – a unutra se osim samog SoC-a kriju još i ove stvari: 

  • zaslon u boji, razlučivosti 320×240 (ILI 9341);
  • ispod zaslona tri gumba koji su, naravno, programski dostupni;
  • čitač TF kartica (do 16GB), kako bismo mogli na karticu spremati podatke sa senzora ili što nam već padne na pamet; 
  • konektore za povezivanje senzora i drugih stvari standardnim protokolima: I2C, SPI, UART, ali isto tako i direktan pristup ESP32 pinovima u drugim konfiguracijama (M5GO kit ima skrivene pinove); 
  • Zvučnik (1W-0928) i mikrofon (BSE3729);  
  • dvije RGB LED trakice (2×5 SK6812 3535) ;
  • ugrađeni senzor pokreta (MPU-9250A); 
  • bateriju od 550mAh koja omogućuje relativno skromnu autonomiju od skoro sat vremena. 

Od senzora, u paketu dobijemo: 

PIR senzor koji reagira na pokret živih bića (točnije, svega što emitira infracrveno zračenje)
Angle senzor (potenciometar)
senzor vremenskih uvjeta (temperatura, vlažnost, tlak zraka);

 

IR primopredajnik (infracrveni daljinski upravljač)

 

Grove hub
RGB LED (3x SK 6812)

 

 

Sve to moguće je kupiti online za oko 50€: odličan omjer cijene i mogućnosti.  

S hardverske strane, cijeli je kit lijepo zamišljen i dobro izrađen: mozak sustava nalazi se u kutiji koja ima mali i čitljiv ekrančić, zvučnik i mikrofon, deset šarenih LE dioda sa strane i magnetiće kojim ga možete lako pričvrstiti na metalnu površinu. 

Senzori i druge komponente spajaju se priloženi kratkim kablovima, a svaki senzor kodiran je bojom i sve na što treba pripaziti je da konektor na senzoru spojite s konektorom iste takve boje na uređaju. To spajanje senzora pretvara u pravu dječju igru. Naravno, ozbiljniji korisnici nisu ograničeni samo na senzore koje prodaje tvrtka: ESP32 je Arduino friendly, pa je moguće spojiti bilo koji senzor za Arduino platformu (odnosno, 3.3V). Pri tome treba biti mrvicu oprezan: iako je moguće spojiti praktično sve, najlakše će biti raditi s I2C i Grove senzorima; za ostale je ipak potrebno znati malo elektronike i imati iskustva s lemilicom. Također, programiranje je nešto kompliciranije za uređaje koje spajate na GPIO, no to su već stvari kojima pomalo izlazimo iz STEM područja i ulazimo u ozbiljne vode. 

Osim ovdje prikazanih komponenti koje dobijete u M5GO kitu, na stranicama proizvođača pronaći ćete lijep izbor raznoraznih zanimljivih igrački poput GPS modula, čitača otiska prsta, mjerača pulsa, termalne kamere… ali i ništa manje zanimljiv M5StickC, minijaturiziranu verziju uređaja, kao i Faces kit koji ovu igračku pretvara u malo prijenosno računalo:

Ako vam ni to nije dosta, moguće je pronaći i druge projekte tvrke i raznorazne ideje koje su entuzijasti proveli u djelo (svakako ih pogledajte sve, a pogledajte i što može i maleni M5StickC).

Lakoća programiranja bitan je činitelj uspješnosti STEM igrački: i klinci i entuzijasti vole rješenja koja nisu komplicirana i koja im ne stoje na putu. Rješenje koje nudi M5 zbilja je jednostavno: iako je, naravno, moguće koristiti Arduino IDE sa svim njegovim velikim prednostima za one koji znaju što rade, vjerojatno će većina korisnika ove sprave ipak biti sretnija s UIFlow rješenjem, koje je pojednostavljeni online IDE za razvoj aplikacija. 

Kad kažemo on-line, to znači da je M5 potrebno spojiti na Internet da bismo ga programirali, ili, ako nam to nije poželjna mogućnost, USB kablom na računalo. Prva opcija praktičnija je iz razloga što uređaj možemo ostaviti negdje (važno je samo da je u dosegu WiFi signala), a iz udobnosti kauča na tabletu polako razvijati program. Vrlo zgodno ako vaš uređaj, primjerice, mjeri vanjske klimatske uvjete. 

Ovdje valja podsjetiti na neka ograničenja SoC platforme: ovo nije “pravo” računalo, pa su neka ograničenja ipak prisutna: moguće je imati aktivnu samo jednu WiFi točku, i moguće je izvršavati samo jedan program. 

Pridruživanje na bežičnu mrežu nije posebno komplicirano: potrebno je spojiti se mobilnim telefonom ili tabletom na pristupnu točku koju kreira sam M5 uređaj. Nakon toga valja skenirati QR kod kojeg uređaj ponudi ili otvoriti web adresu (http://192.168.1.4) i tamo jednostavno upisati podatke kućne WiFi mreže, ili koju već planirate koristiti. Nakon toga, uređaj će se ponovo pokrenuti i automatski spojiti na kućnu mrežu, i tako postati dostupan svim uređajima na kućnoj mreži. Jednostavno skenirajte QR kod ili otvorite browser i spojite se na adresu navedenu na zaslonu uređaja, unesite API ključ (što je jedina, ne pretjerano sigurna zaštita od neovlaštenog pristupa uređaju – stoga budite oprezni) i povezat ćete računalo/tablet/telefon s vašim malim IoT uređajem.

Pridruživanje na bežičnu mrežu moguće je obaviti i pomoću CardKB mini tipkovnice koja se priključuje na uređaj, no povezivanje pomoću mobilnog uređaja toliko je trivijalno i brzo da se kupnjom tipkovnice ne trebate zamarati, osim ako je planirate u svojim kreacijama koristiti za unos podataka. 

Jednom spojen na mrežu, uređaj će se prijaviti na poslužitelj u oblaku i bit će dostupan bilo gdje s Interneta. 

Ako vas to plaši (a IoT nudi mnogobrojne razloge zašto bi vas tako nešto trebalo plašiti), identičnu funkcionalnost možete imati i offline, u kojem slučaju ćete morati na vaše računalo skinuti arhivu s alatima za programiranje uređaja, a M5 spojiti s računalom pomoću priloženog prekratkog USB C kabla, kojim možete i puniti bateriju uređaja. 

Mana ove opcije je što ne možete, primjerice, otići na godišnji odmor i od tamo raditi izmjene u softveru sustava za nadzor staklenika ili hranilice za zlatne ribice, već uređaj morate donijeti do računala i fizički ih spojiti; s druge strane, arhiva na računalu sadrži sve što vam treba za rad s uređajem (IDE za programiranje i aplikaciju za mijenjanje ili instaliranje firmware nadogradnji za sam M5), osim dokumentacije, za prikaz koje je potrebno imati pristup Internetu s vašeg računala (ne i uređaja). Isto tako, trebat ćete povremeno provjeriti je li dostupna novija verzija softvera, s novim mogućnostima i podrškom za nove stvari, što u slučaju rješenja u oblaku nije potrebno.  

Kad pričamo o instalaciji softvera, trebamo se prisjetiti još jednog ograničenja ESP32: mogućnost pokretanja samo jednog programa. Tradicionlani pristup ovakvim uređajima odvijao se ovako: programer bi programirao program, kompajler bi kompajlirao program, računalo bi zatim taj program kopiralo na uređaj, pa bi uređaj izvršavao taj jedan program jer za drugo ne bi znao. 

Korištenjem zgodnih trikova s boot loaderom (tj. programom koji se pokreće prilikom pokretanja uređaja) moguće je izabrati jedan od više programa spremljenih na uređaj (ali je i dalje moguće izvršavati samo jedan program). Na taj način možete na samom uređaju pospremiti više programa različite namjene, i prilikom pokretanja izabrati kojeg od njih želite koristiti. Uz M5GO dolazi već instalirani demo program koji demonstrira mogućnosti uređaja i senzora koje dobijete u paketu (ne zaboravite priključiti senzor kad dođete do prikaza njegovih mogućnosti). Ako prilikom pokretanja uređaja ne izaberete neki drugi program, izvršit će se zadnji pogonjeni: vrlo zgodno za slučajeve nestanka struje. 

Kako ćete sami složiti neki program? Iskusnim starim liscima na raspolaganju je Arduino IDE, no što je s manje iskusnim entuzijastima i dječicom željnom STEM znanja? 

Za njih je UIFlow – jednostavno i za svoje namjene dostatno rješenje koje objedinjuje dva popularna načina programiranja STEM igračkica: slaganje logičkih blokova (Blockly) i MicroPython. 

Svatko tko se do sad igrao sa STEM igračkicama vjerojatno je upoznat s logičkim blokovima: to je skup blokića koji imaju svaki svoju namjenu, i koji se jednostavno mišem pomiču na radnu površinu i uklapaju jedan u drugi poput slagalice, čineći tako skup naredbi programskog koda. 

Postoje logički blokovi koji usmjeravaju izvršavanje koda i kontroliraju ga, blokovi za unos i prikaz podataka, blokovi za rad sa senzorima… ovo je klincima možda najintuitivniji način ulaska u svijet programiranja: blokovi apstrahiraju programski jezik, pa se djeca (i odrasli) mogu posvetiti bitnim stvarima: podacima i logici ponašanja programa. Programi izrađeni pomoću Blockly blokova mogu biti i začuđujuće kompleksni (uključujući i podršku za MQTT), no u nekom trenutku vjerojatno ćete odlučiti krenuti dalje, u smjeru “pravog” programiranja.

UIFlow sučelje osim slaganja kockica nudi i jednostavno, ali funkcionalno sučelje za programiranje u MicroPython programskom jeziku. Python je jedan od najpopularnijih programskih jezika današnjice, a MicroPython je verzija prepravljena tako da se izvršava na ipak značajno ograničenom hardveru malih IoT uređaja: od “pravog” Pythona razlikuje se po manjem broju biblioteka i gdjegdje pojednostavljenim funkcijama, a to je otprilike sve što će početnik i entuzijast primjetiti. Razlika ima još, no o njima ne trebate brinuti sve dok se ozbiljno ne uhvatite programiranja. 

Simpatična mogućnost UIFlow sučelja je što se u njemu možete glatko prebacivati iz prikaza koda u blokovima u prikaz koda u MicroPythonu. U obrnutom smjeru, nažalost, zasad ne ide. Na gornjim slikama je identičan program za upravljanje PIR senzorom prikazan u blokovima i u MicroPythonu.

MicroPython IDE posjeduje onu osnovnu funkcionalnost: bojanje koda, automatsko uvlačenje i automatsko dopunjavanje koda. Otprilike sve osnovno što je potrebno za jednostavan i ugodan rad. 

U slučaju nedoumice i problema, na raspolaganju su online dokumentacija i gumb u samom sučelju koji otvara M5Stack forum, mjesto gdje možete puno naučiti, ali i postavljati pitanja. 

Pokretanje programa uistinu je jednostavno: vašoj kreaciji trebate dati ime i klikom na jedan gumb prenijeti istu na uređaj, koji će se zatim resetirati i automatski pokrenuti preuzeti program. 

Dosta velika mana ovog (podsjetimo se, ograničenog) sustava je nepostojanje debuggera, što iskorjenjivanje pogrešaka čini relativno mukotrpnim poslom jer svaku ispravku treba isponova poslati na uređaj i zatim provjeriti funkcionalnost.  

Za kraj, usporedimo ovu igračku s popularnim Micro:BIT-om. Riječ je o uređajima identične namjene i slične cijene, ali dosta različitih specifikacija: 

Uređaj M5GO Micro:BIT
CPU ESP32 nRF51822
Radni takt 240MHz 16MHz
RAM 520KB 16KB
prostor za podatke 4MB, TF kartica (do 16MB) 256KB
Zaslon LCD 320×240 LED 5×5
Povezivanje WiFi, Bluetooth, USB WiFi, Bluetooth, USB
I/O I2C, SPI, Grove, GPIO I2C, SPI, GPIO
Portovi http://bit.ly/30LLalW http://bit.ly/2TPsaBo
Cijena M5GO kit: oko 350kn
samo M5: oko 180kn
oko 150kn

 

Omjer cijene i mogućnosti debelo je na strani M5Stack rješenja, no to nije neobično: Micro:BIT je rješenje razvijeno 2015. godine, a razvoj IoT uređaja nevjerojatno je brz, pa cijene brzo padaju, a mogućnosti rastu. S druge strane, Micro:BIT je fleksibilniji za programiranje jer omogućuje programiranje i u drugim programskim jezicima poput Javascripta. 

Ako planirate ući u svijet IoT uređaja ili se samo malo STEM poigrati, toplo preporučujem M5GO, baš zato što je to “ključ u ruke” rješenje; posebno je dobro što kućište ima mali LCD ekrančić na kojem je moguće jasno i detaljno prikazati informacije. Izbor senzora je dobar i omogućuje vrlo brzu praktičnu primjenu ove simpatične igračkice. 

Želite li kupiti kit, najjeftinije ćete proći kupnjom “od poznatog Kineza”: Banggood ili AliExpress imaju povoljne cijene, ali je čekanje na dostavu dugo, i po par mjeseci. Ako ne želite toliko čekati, možete pokušati s nešto skupljim, ali bržim domaćim trgovcima poput Mikrotrona

1

Hits: 317