Program namijenjen zabavi, a omogućuje korisniku ovisno o donacijama njegova tri prijatelja pustiti određenu pjesmu s Jukebox-a pošto svaka pjesma ima svoju cijenu.

Dependencies:   mbed TextLCD

1. ZADATAK

Program se sastoji od:

  • 3x LED-ice namijenjene za prikaz određenih uzoraka svijetljenja dok svira pjesma na zvučniku
  • 1x Integrirano tipkalo za Hardwareski interrupt
  • 1x Piezzo buzzer koji služi za reproduciranje određene pjesme
  • 1x NUCLEO-F072RB pločica mikroupravljača
  • Serial Terminal za ispis određenih poruka tokom izvršenja programa, te za odabir određene pjesme od ponuđenih
  • 1x LCD zaslon s dva retka po 16 znakova za prikaz

U uvodu programa definirane su varijable koje se koriste u programu, od kojih su one ili osnovnog tipa (integer, float, char) ili su tipa objekta kojim se pzivaju za izvršavanje zadane rednja s definiranim pinom na koji su spojeni.

Program započinje uvodom i upoznavanjem s glavnim korisnikom programa nazvanim Mate. Radnja se odvija u pred-COVID razdoblje dok se još moglo nesmetano boraviti u kafićima.

Dakle, Mate želi pustiti pjesmu preko Jukebox-a. No, igrom slučaja, zabravio je ponijeti novčanik sa sobom. U ovoj situaciji moli svoja tri prijatelja da mu posude određenu svotu novca (oni su definirani kao varijable x, y i z) te smo ograničili da mu mogu dati iznos u rasponu od 0 do 50 kuna. Nakon toga, program pozivom naredbe x=(rand() %51) (isto vrijedi i za varijable y i z) pridodaje varijabli x određenu proizvoljnu vrijednost iz tog raspona brojeva. Program nam na taj način ispiše koliko mu je svaki od prijatelja dao novca (paralelno na zaslonu računala i na LCD zaslonu), te nakon toga ispisuje se koliko Mate ukupno ima novaca nakon donacija od prijatelja.

Nakon toga, Mate se upućuje k Jukebox-u na kojemu se ispisuje trenutni novčani status Matin i ponuda pjesama. Kako se radi o pametnom Jukebox-u, nakon što obradi koliko Mate posjeduje novaca, sukladno tome mu izbacuje koje sve pjesme može pustiti. Caka je u tome što svaka pjesma ima određenu cijenu pa se sukladno tome i iznosu koji Mate posjeduje može i određena pjesma pustiti.

Ovdje se uvjeti ispituju pomoću if petlje pri kojemu se Matin trenutni novčani status uspoređuje s cijenama pjesama i sukladno tome mu Jukebox nudi izbor koje su mu pjesme na raspolaganju. Nakon toga, ako postoji izbor pjesama, mora se unijeti slovo pored pjesme koju se želi pustiti, te se nakon toga pjesma pušta preko piezo zvučnika.

Svaka pjesma je definirana s dva niza pri kojemu jedan niz sadrži frekvencije svake note, dok drugi niz sadrži duljinu trajanja pojedine note. Izvođenje pjesme ostvaruje se kroz for petlju koja kad naiđe na zadnji član niza završava, te sukladno tome završava i pjesma. Nakon završetka željene pjesme, ispisuje se poruka na zaslonu računala i na LCD zaslonu, te se prikaže koliko je dugo izvršenje programa trajalo upotrebom Timer-a.

Program sadrži i integrirani hardverski interrupt koji predstavlja ometača, odnosno prijatelja koji se ubaci i inzistira puštanje pjesme po njegovom izboru, pa se pritiskom prekidača svira definirana pjesma funkcijom ometac.

2. SHEMA SPOJA

https://os.mbed.com/media/uploads/mmilinovi/jukebox_-_shema_spoja.jpg

Revision:
0:837b9834f505
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Ledice.lib	Thu Nov 26 01:26:24 2020 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mmilinovi/code/Ledice/#ee5abb98c5a6