Termometrul clasei, pe M5GO
Câte grade sunt acum în clasă? Nu din ochi — măsurat. Azi M5GO primește senzorul de mediu ENV și devine termometrul oficial al clasei: temperatura pe ecran, actualizată la fiecare 2 secunde, și bara de LED-uri albastră când e frig, verde când e bine, roșie când e prea cald. Pragurile — decizia voastră. La finalul laboratorului vei avea programul de termometru compus de echipa ta și un rând completat în tabelul de măsurători al clasei.
Ce îți trebuie
- flow.m5stack.com — UIFlow, fără dispozitiv pentru compunere; documentația senzorilor la docs.m5stack.com.
- Stația demo: singurul M5GO al școlii + unitatea ENV (senzorul de temperatură și umiditate) conectată de profesor la mufa Grove — cablul alb cu clips, intră doar în sensul corect, fără forță.
- Laboratorul 5 făcut: știi deja stația, rotația, salvarea
.m5f. - Timp: 45 de minute — 20 pentru program la calculatorul echipei, 20 pentru rotații de măsurare, 5 pentru tabelul clasei.
Organizarea: o oră, un termometru, toată clasa
Rotația de azi are un scop de date, nu doar de demo. Pe tablă, profesorul desenează tabelul clasei:
| Echipa | Locul măsurării | Temperatura (°C) | Umiditatea (%) |
|---|---|---|---|
| 1 | lângă fereastră | ||
| 2 | lângă calorifer | ||
| 3 | mijlocul clasei | ||
| 4 | pe hol (cu profesorul) |
Fiecare echipă rulează la stație propriul program, măsoară în locul repartizat (dispozitivul are baterie, se poate deplasa scurt, cu grijă) și completează rândul ei. La final, tabelul spune ceva ce niciun elev singur n-ar fi aflat: harta termică a clasei.
Pasul 1: programul, la calculatorul echipei
- Deschide flow.m5stack.com, dispozitiv M5GO, fără conectare.
- Adaugă unitatea în proiect: în zona cu conturul dispozitivului, caută butonul cu + (Units) și alege ENV — pe portul indicat de profesor (de regulă portul A). Din acest moment, în paletă apare categoria Units → ENV cu blocurile senzorului.
- Pune pe ecran două Label-uri: unul sus pentru titlu (
Termometrul clasei), unul mare pe mijloc pentru valoare. - Construiește programul:
- blocul Loop (repetă la infinit), iar în el:
- setează textul Label-ului din mijloc la blocul ENV → temperature (tragi blocul rotund al senzorului direct în fereastra blocului de setare a textului);
- un bloc wait de
2secunde.
- Salvează ca
echipaN-termometru.m5f.
De ce bucla? Pentru că temperatura nu e o valoare, e un flux: senzorul trebuie recitit mereu, altfel afișezi pentru totdeauna temperatura de la prima secundă. Exact bucla din lecția „Repetă până când", cu un motiv real de a exista.
Pasul 2: pragurile și culorile
Ține minte pragul de la laboratorul cu fotorezistorul? Același raționament, alt senzor. Decideți în echipă două praguri — de exemplu 20 și 25 — și adăugați în buclă, după citire:
- dacă temperatura <
20→ bara RGB albastră; - altfel dacă temperatura <
25→ bara RGB verde; - altfel → bara RGB roșie.
Blocurile dacă/altfel sunt în categoria Logic (blocul if se extinde cu rotița lui ca să capete ramuri else if și else), compararea în Math, iar blocul de temperatură al senzorului se trage în locașurile comparației. Scrieți pragurile alese pe caiet, cu justificare într-o propoziție — „sub 20 e frig pentru scris" e o justificare; „așa a zis Vlad" nu prea.
Măsurarea, la stație
- Încarcă fișierul echipei la stație și apasă Run.
- Prima citire e a locului unde stă dispozitivul. Las-o 20–30 de secunde să se așeze — senzorul abia scos din mâna cuiva arată temperatura mâinii, nu a aerului.
- Du dispozitivul (pe baterie) în locul repartizat echipei, așteaptă să se stabilizeze valoarea, citește temperatura și culoarea barei.
- Completează rândul echipei în tabelul de pe tablă și adaugă și umiditatea: blocul ENV → humidity — dacă l-ați pus în program de la calculator, aveți amândouă valorile dintr-un drum.
- Înapoi la stație, dispozitivul la încărcat, echipa următoare.
Dacă nu merge
- Pe ecran scrie o eroare cu „env" sau valoarea lipsește. Unitatea ENV nu e adăugată în proiect (butonul + / Units) sau e adăugată pe alt port decât cel fizic real. Portul din program și mufa în care e cablul trebuie să coincidă.
- Temperatura arată 28 de grade și toți simt că e frig. Senzorul a stat lângă dispozitivul cald sau în soare direct pe pervaz. Măsurați în aer, nu pe surse de căldură, și dați-i timp.
- Valoarea se afișează o singură dată și îngheață. Citirea e în Setup, nu în Loop. Mut-o în buclă.
- Culoarea LED nu se schimbă niciodată din albastru. Ramurile condiției sunt în ordine greșită sau compară invers (
>în loc de<). Refă testul pe hârtie: 18, 22, 31. - Numărul are prea multe zecimale și nu încape. Afișează valoarea rotunjită: blocul round din categoria Math, pus în jurul blocului de temperatură.
Misiunea ta
Nivel de bază (obligatoriu): termometrul funcțional — temperatură pe ecran, actualizare în buclă, trei culori după pragurile echipei — și rândul completat în tabelul clasei.
Extindere: afișează și umiditatea pe un al treilea Label și adaugă în tabelul clasei coloana completată. Care loc din clasă e cel mai umed? Aveți o ipoteză de ce?
Provocare: termometru cu memorie — două variabile, minim și maxim, actualizate în buclă (dacă citirea curentă e mai mică decât minim, ea devine noul minim; la fel invers pentru maxim), afișate în colțurile ecranului. Apăsarea butonului A le resetează la valoarea curentă. Cu asta, dispozitivul lăsat 5 minute pe calorifer și 5 la geam își amintește extremele singur.
Ai terminat când:
- programul echipei a rulat pe M5GO și a produs o măsurătoare reală, trecută în tabel;
- puteți justifica pragurile alese și culoarea văzută la locul vostru de măsurare;
- tabelul clasei e complet și ați formulat împreună o concluzie de un rând (unde e cel mai cald, unde cel mai frig, diferența în grade).