Najtopliji trenutak u satu

U ovom projektu napravite sustav za mjerenje temperature svaku minutu unutar sat vremena.

Postavite jedan micro:bit uz prozor, a drugi spojite na računalo. Micro:bit na prozoru će mjeriti temperaturu svaku punu minutu. Dakle, unutar sat vremena izvršit će 60 mjerenja i izmjerenu vrijednost javiti drugom micro:bitu. Drugi micro:bit će pohranjivati zaprimljene vrijednosti i na kraju mjerenja izračunati u kojem je trenutku temperatura bila najveća.

Upute za izradu programa

1. korak

Izradite program najprije za micro:bit koji će mjeriti temperaturu. Mjerenje se događa svaku minutu unutar sat vremena.

Na početku programa mjerenje se još ne odvija te se na zaslonu micro:bita prikazuje uspavano lice. Postavite u on start blok varijablu Mjerenje i postavite je na nulu. To je znak da mjerenje još nije počelo. Dodajte i radio grupu unutar koje će micro:bitovi komunicirati.

2. korak

Pritiskom na tipkalo A počinje mjerenje. Na zaslonu neka se prikaže kvačica kao znak da je mjerenje u tijeku. U for petlju postavite uvjet kojim će se izvršavati mjerenje 60 puta.

3. korak

Za mjerenje i slanje poruke svaku minutu postavite naredbu pause (ms) u trajanju od jedne minute (60000 sekundi). Nakon toga je potrebno povećati varijablu Mjerenje za jedan (change Mjerenje by 1) i zatim poslati izmjerenu vrijednost naredbom za slanje (radio send name value = 0).

Rješenje za prvi micro:bit

Kad prođe cijeli sat, neka micro:bit ponovno uđe u sleep mode.

4. korak

Drugi micro:bit na početku također mora imati radio grupu koja je postavljena prvom micro:bitu.

Ovaj micro:bit mora pohranjivati podatke koje prima svaku minutu te na kraju utvrditi u kojoj minuti je dobio informaciju o najvišoj temperaturi. Potrebno je dakle kreirati varijable Temperatura i Vrijeme. Obje varijable ćete pretvoriti u prazne liste (u kategoriji Arrays pronađite naredbu empty array).

5. korak

Dodatno, kreirajte još 3 varijable potrebne za program: Minuta (pohranjivat će vrijednost svake minute), NajtoplijiMin (pohranit će onu minutu u kojoj je izmjerena najviša temperatura), NajtoplijiTemp (pohranit će najvišu temperaturu).

6. korak

Svaki put kad micro:bit primi poruku neka primljenu vrijednost prikaže preko Show console Device.

7. korak

Zatim neka se poveća vrijednost varijable Minuta za jedan i postavi se kao nova vrijednost te varijable. Tako će i ovaj micro:bit preko varijable Minuta pratiti prolazak vremena.

8. korak

Svaku primljenu vrijednost micro:bit treba pohraniti u listu Temperatura, a svaku minutu u listu Vrijeme. Za to upotrijebite naredbu list add value to end iz kategorije Arrays.

9. korak

Sada je potrebno dodati dio kôda koji će u listi Temperatura pronaći najveću vrijednost i zabilježiti minutu u kojoj je ta vrijednost izmjerena.

Petljom for iz kategorije Loops pretražujete vrijednosti u listi Temperatura. Svaku vrijednost usporedite s varijablom NajtoplijiTemp (koja je trenutno nula) te je pohranite u tu varijablu ako je veća od nje u trenutku usporedbe. Nakon toga u varijablu NajtoplijiMin pohranite i vrijednost minute u kojoj je najtopliji trenutak do sad izmjeren.

Rješenje za drugi micro:bit

Dodajte još naredbe za prikaz MinutaNajtoplijiTemp i NajtoplijiMin pritiskom na tipke kako je prikazano na slici.