07 ruj Mjerač zvuka
Opis projekta
U ovom projektu koristit ćete senzor zvuka koji je analogni ulazni modul. Pomoću tog senzora možete detektirati glasnoću zvukova u prostoru. Izradite mjerač zvučnog zagađenja prostora uz pomoć servo motora koji će na skali prikazati koliko je glasna okolina u kojoj se nalazite. Neka postoje dvije razine glasnoće – tiho i glasno. Testirajte program i postavite graničnu vrijednost prema glasnoći u vašem prostoru.
Možete učiniti i korak dalje te uz pomoć istih modula začiniti rođendansku zabavu na kojoj ćete glasnim pjevanjem otvoriti pretinac iz kojeg će ispasti slatkiši.
Iz kreativnog kutka odaberite model dijagrama za određivanje razine zvuka.
Potrebni moduli
- Pločica za spajanje elektroničkih modula
- USB kabel za napajanje
- 1 kabel za spajanje modula
- senzor za zvuk
- servo motor
Spajanje modula
Senzor za zvuk je analogni ulazni modul koji se može spojiti samo na izvode P0, P1 ili P2. U ovom primjeru, on je spojen na izvodu P0, a servo motor na izvodu P1. Prema prikazu spajanja kabelima povežite module na izvode upravljačke pločice. Možete ih rasporediti i na druga mjesta ako vam tako bolje odgovara kad ćete spoj implementirati u svoj kreativni rad. Pripazite pri tome da i u programskome kôdu budu postavljeni odgovarajući izvodi jer u suprotnome se program neće izvršavati.
Napomena: USB kabel će nakon prijenosa programa biti potrebno spojiti na VIN USB priključak koji omogućava napajanje modula kojima je potrebno više električne energije za rad.
1. korak
Za početak u forever petlju postavite logičku naredbu if then else.
U logičkoj naredbi ćete definirati u kojem položaju mora biti servo motor ovisno o tome koju granicu glasnoće zvuka postavite. Najprije testirajte senzor prema postavljenoj granici i uvjetima u kojima se nalazite tako da se na zaslonu micro:bita ispiše broj 1 ako je glasnoća ispod granice, odnosno 2 ako je glasnoća iznad granice. Za ispis brojeva koristite show number naredbu iz kategorije Basic. Za postavljanje logičkog uvjeta upotrijebite naredbu za usporedbu manje iz kategorije Logic te postavite naredbu analog read pin P0 s lijeve strane znaka manje od, a s desne strane upišite vrijednost 100.
Prebacite program na micro:bit i testirajte ga mijenjajući glasnoću u prostoru te pratite promjene i uočite povezanost između glasnoće zvuka i brojeva koji se prikazuju. Ako ste zadovoljni možete ostaviti granicu na 100, a ako vam bolje odgovara neka druga vrijednost, upišite nju.
2. korak
Sada ćete definirati položaj u koji se mora zaokrenuti servo motor ovisno o glasnoći zvuka. Kad je glasnoća manja od postavljene granice, servo motor neka bude u jednom položaju (primjerice lijevo), a kad je glasnoća prijeđe granicu, neka se servo motor zakrene udesno u drugi položaj.
Za pokretanje servo motora upotrijebite naredbu servo write pin P0 te promijenite parametar P0 u P1 jer je servo motor spojen na izvodu P1. Naredbu duplicirajte (desni klik na naredbu i pritisnite na Duplicate). Jednu smjestite u then dio naredbe ispod ispisa broja, a drugu u else dio. Upišite vrijednosti za zakretanje servo motora u obje naredbe. U prvoj neka vrijednost bude 30, a u drugoj 150. Možete unijeti i neke druge vrijednosti ako vam tako bolje odgovara radi kreativnih dodataka u spoju (pogledajte naš primjer i prema njemu izradite svoj).
Završili ste program za mjerač zvuka. U kreativnom kutku ovog projekta potražite dodatak kojim ćete personalizirati svoj spoj modula.
Podsjetnik: USB kabel će nakon prijenosa programa biti potrebno spojiti na VIN USB priključak koji omogućava napajanje modula kojima je potrebno više električne energije za rad.
Nastavite zabavu sa senzorom za zvuk i servo motorom. Za rođendansku proslavu možete osmisliti i izraditi projekt kojim će servo motor pomaknuti polugicu i otvoriti pretinac iz kojeg će ispasti slatkiši ako s prijateljima budete pjevali dovoljno glasno.
U forever petlju postavite if then else naredbu iz kategorije Logic. Kao uvjet definirajte ako je analogna vrijednost izvoda na kojem je spojen senzor zvuka veća od 700 neka se servo motor pomakne, a na zaslonu micro:bita prikaže iznenađeno lice. Inače neka servo motor bude u položaju kojime je pretinac sa slatkišima zatvoren, a micro:bit neka spava.