8 minute read

BBC micro:bit [25

KODIRANJE

Poštovani čitatelji, u prošlom je nastavku predloženo nekoliko ideja za samostalan rad s osjetilom vlažnosti i temperature zraka DHT11, odnosno s modulom VMA311. Predloženo je sljedeće: 1. Pošaljite vrijednosti do LCD-a preko I2C. 2. Dodajte dvije tipke. Kod tipkanja prve tipke neka se na LCD-u prikazuje temperatura zraka, a kod tipkanja druge tipke neka se na LCD-u prikazuje vlažnost zraka. 3. Kod tipkanja bilo koje tipke neka se upali i neka 5 sekundi svijetli pozadinsko osvjetljenje LCD-a. Nakon isteka zadanog vremena neka se pozadinsko osvjetljenje ugasi. Za rješavanje zahtjevnijih zadataka poput ovoga morate se prisjetiti prethodnih tema kako biste najprije svu potrebnu elektroniku spojili kako valja. Bilo bi dobro kad biste nacrtali potrebnu elektroničku shemu prema člancima iz ABC tehnike s posebnim osvrtom na brojeve 640., 647. i 650. Na Slici 25.1. možete vidjeti elektroničku shemu nacrtanu u aplikaciji KiCad. Vi ju naravno možete nacrtati i olovkom na običnom papiru, ali svakako razmislite o mogućnosti upotrebe nekog od programa za crtanje na računalu jer kad jednom naučite koristiti određenu aplikaciju, nećete požaliti. Na web-stranici https:// cikesgroup.wordpress.com/elektronika/ možete pronaći osnovne upute za navedenu aplikaciju pod naslovom KiCad, odličan program za crtanje u elektronici – Uvod u KiCad. Nakon crtanja elektroničke sheme mogli biste nacrtati i montažnu shemu spajanja. Za to je pogodna bilo koja aplikacija poput Fritzinga. Kratke upute za početnike možete pronaći na navedenoj web-stranici pod naslovom Fritzing, program za crtanje u elektronici – Elektronika svima na dohvat. Na Slici 25.2. možete proučiti gotovu montažnu shemu. Ovdje valja napomenuti da ukoliko umjesto modula VMA311 koristite golo osjetilo DHT11, i to u neposrednoj blizini BBC micro:bita tada trebate dodati pull-up otpornik od 10 kΩ (ABC tehnike broj 650.).

Advertisement

Slika 25.2. Montažna shema zadatka crtana u Fritzingu

Slika 25.1. Elektronička shema zadatka crtana u aplikaciji KiCad. Primijetite dva pull-up otpornika od 10 kΩ (ABC tehnike broj 640.) i vanjsku bateriju od 4,5 V (ABC tehnike broj 647.)

Slika 25.3. Fotografija gotovog sklopa

Sada ste spremni za fizičko spajanje predloženog sklopa. Na Slici 25.3. možete vidjeti kako to izgleda u stvarnosti.

Kodiranje

Pokrenite novi projekt te ga imenujte. U novom projektu učitajte dvije ekstenzije, I2C_ LCD1602 i DHT11/DHT22. Nakon toga do “on start” dovucite blokove koji će odrediti potrebne početne uvjete, Slika 25.4.

Slika 25.4. Iako u zadatku nije traženo, ubačen je izbornik koji na LCD-u prikazuje funkcije dviju tipki, SW1 i SW2 Slika 25.5. U ovom se kodu odvijaju radnje koje će na LCD-u prikazati temperaturu svaki put kada se pritisne tipka SW1

Slika 25.6. U ovom se kodu odvijaju radnje koje će na LCD-u prikazati vlažnost zraka svaki put kada se pritisne tipka SW2

Premda je program moguće riješiti na više načina izabran je ovaj koji zahtijeva minimum koda. Prema Slici 25.5. i Slici 25.6. dovucite potrebne blokove. Blokovi “on pin P1 pressed” i “on pin P2 pressed” pokreću radnje kada se do izvoda P1 i P2 pločice BBC micro:bita preko tipki dovede zajednička masa, odnosno GND u trajanju od najdulje jedne sekunde. Drugim riječima, dovoljno je kratkotrajno pritisnuti jednu od dviju tipki da bi se na LCD-u prikazala tražena vrijednost.

Kako je vidljivo, udovoljen je i zahtjev da LCD bude osvijetljen 5 sekundi. Nadalje, iako u zadatku nije traženo, dobivene vrijednosti su zaokružene, ali ako vas zanimaju decimalne vrijednosti onda uklonite blokove “round”, no imajte na umu da osjetilo nije toliko precizno pa je samim tim upitna svrsishodnost decimalnih vrijednosti. Nakon što ste riješili ovaj zadatak sigurno ste se upitali kako uradak iskoristiti, a da pritom ne morate nadzirati i čitati podatke kroz dulje vrijeme?

Datalogger

S BBC micro:bitom moguće je napraviti nešto što se u elektronici naziva “datalogger” (snimatelj podataka). Što je to? Datalogger je mjerni instrument koji omogućava pospremanje podataka neke izmjere te njihovo čitanje kada vi to poželite. Vrlo je koristan kada treba prikupiti razna mjerenja tijekom vremena. Jedan takav slučaj upravo je praćenje temperature zraka i količine vlage u zraku tijekom dužeg vremenskog razdoblja, nekoliko dana ili tjedana. Kako djeluje? Podaci za temperaturu i vlagu mjere se analognim osjetilima te se pomoću analogno-digitalnog pretvarača (ADC - Analogic to Digital Converter) mijenjaju u digitalni format kako bi bili dostupni digitalnom snimaču. Snimač uzorkuje, odnosno hvata podatke u pravilnim vremenskim intervalima. Te podatke obrađuje procesor i potom ih pohranjuje u memoriju. Na kraju razdoblja praćenja korisnik preuzima podatke iz memorije i prenosi ih na računalo radi obrade. Kako to izvesti s BBC micro:bitom? Uz pomoć bloka arrays.

Arrays (nizovi)

U MakeCode Editoru postoje blokovi za stvaranje nizova podataka ‒ “Arrays”. To su, u stvari, sortirani popisi podataka istog tipa, odnosno brojevi, binarne vrijednosti ili stringe. U takvom uređenom popisu, svaki je podatak određen indeksom koji utvrđuje njegov položaj unutar popisa.

Index (indeks)

Prvi indeks je 0 (nula), a n-ti podatak na popisu ima indeks n-1. Svaki put kada se na kraju niza dodaje podatak, duljina niza se poveća za 1, a isto se događa kada se unosi podatak bilo gdje unutar niza. Važi i obrnuto, svaki put kad se podatak izbriše, duljina niza se smanjuje za 1. U oba slučaja, svi postojeći podaci koji se nalaze iza umetnutog ili izbrisanog podatka tada mijenjaju indeks.

Length (duljina) Svaki niz ima duljinu koja se može produljiti ili skratiti. Podaci se, vidjeli ste maloprije, mogu umetati ili brisati čime se nizu mijenja duljina. Prije nije rečeno, ali važno je znati da se podaci mogu i izmijeniti, a ne samo umetati ili brisati, no tada duljina ostaje nepromijenjena. Uz primjer će sve biti jasnije. Za to trebate samo pločicu BBC micro:bita. U MC E prepišite program sa Slike 25.7.

Niz morate najprije imenovati. To je, u stvari, promjenljiva pa ga imenujte kod Variables (u ovom je primjeru uzeto predodređeno ime promjenljive “text list”). Niz mora sadržavati neki podatak (broj, binarnu vrijednost ili stringu) po kojem će se automatski odrediti tip. U ovom primjeru upisano je slovo M što ukazuje da će biti korištene stringe. Sve su to početni uvjeti pa ih valja unijeti u bloku “on start”. Kako biste vidjeli upravo stvoreni niz, dodan je blok “on shake” koji će nakon potresanja pločice BBC micro:bita

Slika 25.7. Stvaranje niza

Slika 25.8. Dodavanje više podataka u nizu

na displeju pokazati sadržaj koji je u memoriji spremljen pod indeksom 0. Drugim riječima, nakon potresanja pokreće se čitanje podatka prvog indeksa u nizu “text list” s “get value at 0”. Na displeju se ispisuje slovo M. Drugi primjer. Napišite program koji će stvoriti niz u koji će se upisivati slova a i b, već prema redoslijedu pritiskanja tipki A i B. Pokraj početnih uvjeta “on start” pridružite i blokove sa Slike 25.8. Ovaj kôd služi za ubacivanje više podataka, jednog za drugim. Kod kratkotrajnog pritiska tipke A ubacuje se podatak “a”, a kod kratkotrajnog pritiska tipke B ubacuje se podatak “b”. Što se tu dešava? Prilikom tipkanja tipke A najprije se na kraju liste podatak upisuje, a potom se duljina (lenght) automatski poveća za jedan. Isto važi i za tipku B. Primjera radi tipkajte redom A, B, B, A. Niz “text list” sada sadrži četiri podatka koji su izabrani tipkanjem, plus podatak unesen u trenutku stvaranja niza (stringa M). Ovaj niz zauzima pet ćelija memorije, odnosno ima duljinu 5. Redom su to (indeks/podatak): 0/M, 1/A, 2/B, 3/B, 4/A. Čitanje bilo kojeg podatka iz niza moguće je samo ako je ćelija prethodno pravovaljano popunjena, mora imati indeks i mora sadržavati neki podatak. Želite li saznati postoji li određena ćelija onda je potrebno saznati duljinu niza. Prema Slici 25.9. prepravite postojeći blok “on shake” i dodajte potrebne blokove koji će pročitati duljinu niza.

Za čitanje podataka, jednog za drugim, treba analizirati cijelu duljinu niza, odnosno treba čitati jedan po jedan podatak onoliko puta kolika je duljina niza. Postojećem programu dodajte blokove koji to omogućavaju, Slika 25.10. Program isprobajte. Najprije po tipkama A i B tipkajte koliko god puta želite. Potom pločicu BBC micro:bita potresite, na displeju će se pojaviti broj koji ukazuje na duljinu niza. Nakon toga istovremeno pritisnite tipke A i B. Pojavljivat će se slova: M, a, b... redom kojim ste ih tipkali. Sad kad znate osnove možete izvesti eksperiment. Modul VMA311 spojite na BBC micro:bit: (S) na P0, (+) na 3V i (–) na 0V, (Slika 24.6. ABC tehnike broj 650.). U ovom ćete eksperimentu upoznati fizikalne pojave vezane za toplinu i temperaturu. Trebate program koji će omogućiti mjerenje temperature prilagodbe prilikom prelaska iz prostorije u hladnjak. Neka se izvrši 10 mjerenja. Neka između svakog mjerenje prođe 25 sekundi. Na Slici 25.11. ponuđeno je rješenje. Program svakako isprobajte. Dobivene temperature zapišite pa nacrtajte graf. Radi usporedbe, autor ovih redaka je prema dobivenim podacima u Excelu nacrtao graf koji možete vidjeti na Slici 25.12. U nastavku slijedi prijedlog zadatka za samostalan rad. Proširite postojeći program tako da dobijete datalogger temperature i vlage koji će uzorkovati svakih sat vremena. Bit će dovoljna 24 uzorka. Nakon probnog rada pustite neka sklop mjeri 24 sata pa preuzmite i analizirajte dobivene podatke.

Slika 25.9. Potresanjem pločice ispisat će se duljina niza na displeju BBC micro:bita Slika 25.10. Istovremenim pritiskom tipki A i B pokreće se čitanje i prikazivanje podataka iz niza “text list”

Slika 25.11. Programski kôd dataloggera temperature

Slika 25.12. S više uzorkovanja graf bi svakako trebao izgledati bolje Za ove ste vježbe trebali: - BBC micro:bit, - USB-kabel, - baterije za BBC micro:bit, - rubni priključak za BBC micro:bit, - spojne žice u raznim bojama, - eksperimentalnu pločicu na ubadanje, - dva otpornika od 10 kΩ (SMEĐA-CRNA-NARANČASTA-ZLATNA), - bateriju od 4,5 V, - LCD + I2C modul, - modul VMA311 ili osjetilo DHT11, - dvije tipke.

Marino Čikeš, prof.

This article is from: