Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: Pavetic_BuzzerLib Pavetic_MusicLib
Diff: README.md
- Revision:
- 0:e9d0eb34d345
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.md Sun Nov 27 13:01:54 2022 +0000 @@ -0,0 +1,66 @@ +Program koji simulira božični ugođaj reprodukcijom +zvučnih signala na temelju odabira putem tipkala. + +# Komponente +## Hardware na proto board-u +- Gumb - Mijenja melodiju na klik (1...n) - Hardware interrupt +- Potenciometar - Mjerenje vrijednosti na ulazu (0.0-1.0) - Potrebno za mjerenje vremena promjene pjesme +- Zvučnik - Reprodukcija melodije +- Zuta LED - Signalizacija da traje melodija jingle bells +- Crvena LED - Signalizacija da traje melodija We wish you a merry christmas +- Zelena LED - Signalizacija da traje melodija Silent night + +## Interni hardware +- Ticker - Automatsko mijenjanje melodije u vremenu ovisnom o potenciometru (samo u modu `MODE_AUTO`) + - *0V = 5s* + - *1V = 25s* + - *`f(x) = 5 + 20*x [s]`* - Skaliranje funkcije pomaknute za 5s (min = 5s, max = 25s) +- Timer #1 - Mjerenje vremena trajanja melodije +- Timer #2 - Debounce efekt za gumb + +## Software +### Melodije + +Postoje 3 melodije: +- Jingle bells +- We wish you +- Silent night. +Ovisno o trenutnoj melodiji, svijetli pripadajuca LEDica. + +### Modovi rada +Postoje 3 moda rada: +- `MODE_OFF` - Sustav je ugašen - Buzzer ugašen kao i sve LEDice +- `MODE_SONG` - Repetetivno ponavljanje odabrane melodije - Buzzer svira, te svijetli jedna od pripadajucih LEDica za trenutnu melodiju +- `MODE_AUTO` - Automatsko mijenjanje melodije u vremenskom razmaku odabranom putem potenciometra - Buzzer svira, te svijetli jedna od pripadajucih LEDica za trenutnu melodiju + +### Buzzer i reprodukcija +Reprodukcija zvukova izvedena je kroz [Buzzer library](https://os.mbed.com/teams/TVZ2022/code/Pavetic_BuzzerLib/) koji sadrži programski kod potreban za inicijalizaciju PWM izlaza za buzzer i slanje pripadajucih signala na navedeni izlaz. + +### Pjesme +Inicijalizacija zvukova i sama struktura nota (pwm period + delay) napravljena je kroz [Music library](https://os.mbed.com/teams/TVZ2022/code/Pavetic_MusicLib/). + +# Opis rada programa: +Na početku programa postavljen je mod `MODE_OFF` te je sustav ugašen. +Pritiskom na gumb u modu `MODE_OFF` (prvi pritisak gumba), mijenja se mod u +`MODE_SONG` te počinje svirati prva od ponudenih melodija. Nakon sto melodija +zavrsi, ukoliko nije došlo do promjene melodije ili prekida, ponovno se +započinje sa reprodukcijom iste melodije. Ukoliko tijekom reprodukcije dođe +do promjene moda ili melodije, trenutna melodija prekida sa reprodukcijom te +počinje reprodukcija sljedeće melodije, ili se sustav gasi ukoliko je došlo +do promjene moda u `MODE_OFF`. + +Program je u modu `MODE_SONG` te svira prva pjesma i upaljena je zuta LEDica. +Drugim pritiskom gumba, mode ostaje isti, no mijenja se melodija te svira +druga melodija i svijetli crvena LEDica. Trećim pritiskom gumba, mod i dalje +ostaje isti i svira treca melodija uz upaljenu zelenu LEDicu. + +Cetvrtim pritiskom gumba mijenja se mod u `MODE_OFF` te se resetira ciklus +melodija i započinje reprodukcija prve melodije. Melodija se reproducira +ovisno o vremenu izračunatom iz vrijednosti na potenciometru prema određenoj +formuli koja je navedena na vrhu. Nakon isteka vremena, mijenja se melodija i +započinje reprodukcija sljedeće melodije, te tako u krug sa svim melodijama. + - Vrijednost potenciometra očitava se cijelo vrijeme na zasebnom Threadu. + - Vrijeme reprodukcije melodije u modu `MODE_OFF` izračunava se kod dolaska u taj mode. + +Petim pritiskom gumba, prekida se reprodukcija melodije te se mod mijenja u +`MODE_OFF` i program nastavlja ispočetka. \ No newline at end of file