M5GO, faci cunoștință: primul program pe blocuri
În cutia aia mică portocalie de pe catedră stă un calculator întreg: ecran, butoane, LED-uri, difuzor, senzor de mișcare, Wi-Fi. Azi îl cunoști pe M5GO și scrii primul program care rulează pe el — un salut pe ecran și bara de LED-uri în culoarea echipei tale. La finalul laboratorului vei avea un program UIFlow compus de echipa ta, salvat ca fișier, și rulat pe dispozitivul real la stația demo.
Ce îți trebuie
- flow.m5stack.com — UIFlow, mediul de programare pe blocuri; merge din browser, fără dispozitiv, pentru toată partea de compunere. Documentația e la docs.m5stack.com.
- Un singur M5GO pe toată clasa — de aceea lucrăm cu stație demonstrativă (mai jos scrie exact cum).
- Echipe de 3–4 elevi, fiecare echipă la un calculator.
- Timp: 45 de minute — 10 pentru turul dispozitivului, 20 pentru program, 15 pentru rotația la stație.
Cum lucrăm cu un singur dispozitiv
Regula stației demo, valabilă azi și la toate laboratoarele M5GO:
- M5GO stă conectat la calculatorul de la catedră (stația demo), pregătit de profesor înainte de oră.
- Fiecare echipă își compune programul la propriul calculator, în UIFlow — fără dispozitiv. Vezi tot ce construiești pe previzualizarea ecranului din stânga paginii UIFlow.
- Când o echipă are programul gata și verificat, își salvează fișierul și trece la stație. Maximum 5 minute de echipă: deschide fișierul, rulează, vede rezultatul pe dispozitivul real, fotografiază dacă vrea, predă locul.
- Cine așteaptă nu stă: completează fișa dispozitivului (Pasul 1) și pregătește extinderea de la misiune.
- Ordinea echipelor o stabilește profesorul de la început — nu se negociază la coadă.
Pasul 1: turul dispozitivului (fără să-l atingi încă)
Prima rotație la stație e doar de observat, 2 minute de echipă, cât profesorul îl ține în mână și îl arată. Între timp și după, completează pe caiet fișa dispozitivului — un tabel cu două coloane, componenta și la ce crezi că folosește:
- Ecranul color de 2 inchi — fața dispozitivului.
- Trei butoane sub ecran: A, B, C.
- Bara de 10 LED-uri pe cele două laturi — poate lua orice culoare.
- Difuzorul — da, poate face gălăgie; nu, nu la ora asta.
- Senzorul de mișcare (accelerometru + giroscop) — simte înclinarea și scuturarea, ca telefonul.
- Microfonul, portul USB-C (alimentare și programare) și mufele Grove de pe laterale — acolo se leagă senzori externi, cum va fi cel de temperatură data viitoare.
Pasul 2: programul în UIFlow, la calculatorul echipei
- Deschide flow.m5stack.com. Dacă apare alegerea versiunii, folosește versiunea indicată de profesor (cea instalată pe dispozitivul școlii — de regulă UIFlow 1.0 pentru M5GO).
- La primul ecran ți se cere tipul dispozitivului: alege M5GO (sau Core). Fereastra de conectare prin cheie API o poți închide — compui fără dispozitiv.
- În stânga vezi conturul dispozitivului cu ecranul lui. Din bara de deasupra ecranului, trage un element Label pe mijlocul ecranului.
- Dă clic pe Label și scrie textul echipei:
Salut, suntem echipa 3!— sau ce vă reprezintă (fără capodopere, aveți 5 minute la stație, nu 50). - Acum blocurile, ca în Scratch: în categoria RGB găsești blocul care setează culoarea barei de LED-uri (Set RGB bar color). Trage-l sub blocul de start (Setup) și alege culoarea echipei din paletă.
- Tot din RGB, mai adaugă un bloc de culoare, iar între ele un bloc wait de
2secunde din categoria Timer/Event — bara își va schimba culoarea după 2 secunde. - Salvează: butonul de salvare descarcă un fișier
.m5f. Numiți-l cu numărul echipei:echipa3.m5f. Pe el îl duceți la stație (stick sau folderul comun al clasei, cum stabilește profesorul).
Rularea la stația demo
- La stație, deschide UIFlow, încarcă fișierul echipei (butonul de deschidere fișier
.m5f). - Verifică în colț conexiunea cu dispozitivul (punctul verde / connected — profesorul a pregătit-o).
- Apasă Run. Programul pleacă spre M5GO prin cablu sau Wi-Fi și rulează imediat: mesajul pe ecran, LED-urile în culoarea voastră, schimbarea după 2 secunde.
- Nu merge din prima? Ai trei minute de depanare — folosește lista de mai jos. Nu s-a rezolvat? Notează simptomul exact, predă stația echipei următoare și revino la finalul rotației.
Dacă nu merge
- Butonul Run nu face nimic / eroare de conexiune. Dispozitivul a pierdut legătura. Spune profesorului — reconectarea (cablu scos-pus, cheie API retastată) e treaba stației, nu a programului tău. Programul tău e bun, dovadă previzualizarea.
- Textul apare tăiat pe ecranul real. Ecranul are 320×240 puncte, iar textul tău e prea lung sau prea aproape de margine. Înapoi la calculator: mută Label-ul mai la stânga sau scurtează textul.
- LED-urile nu se aprind deloc. Blocul RGB nu e legat sub Setup, sau culoarea aleasă e negru (negru = stins, tehnic corect, vizual dezamăgitor).
- A doua culoare nu se vede. Lipsește blocul wait dintre cele două blocuri RGB — schimbarea se face atât de repede încât prima culoare nici nu apucă să apară.
- Fișierul echipei nu se deschide la stație. Ați salvat în alt format sau alt loc. Fișierul corect are extensia
.m5f; refaceți salvarea la calculatorul echipei, e mai rapid decât căutatul.
Misiunea ta
Nivel de bază (obligatoriu): programul echipei — mesaj pe ecran + două culori pe bara LED cu pauză între ele — rulat cu succes pe dispozitivul real la stație.
Extindere: adaugă reacție la butoane: din categoria Event, blocul „când se apasă butonul A" schimbă textul Label-ului (folosește blocul de setare a textului din UI → Label). Butonul B — altă culoare pe LED-uri. Testați pe previzualizare, apoi la a doua rotație.
Provocare: semafor complet pe bara de LED-uri: roșu 3 secunde → galben 1 secundă → verde 3 secunde, în buclă infinită (categoria Loop). Întrebarea de pus înainte de stație: cum vei opri un program care rulează la infinit, ca echipa următoare să poată rula al ei? (Răspunsul se află la stație — butonul de reset al dispozitivului.)
Ai terminat când:
- fișa dispozitivului e completă, cu 6+ componente;
- programul echipei a rulat pe M5GO real, iar toți membrii echipei pot spune ce face fiecare bloc din el;
- echipa a respectat cele 5 minute la stație — și asta e o competență.