This shows you the differences between two versions of the page.
|
pm:prj2023:fstancu:georgina [2023/05/29 17:24] georgina.poting |
pm:prj2023:fstancu:georgina [2023/05/29 23:40] (current) georgina.poting [Software Design] |
||
|---|---|---|---|
| Line 58: | Line 58: | ||
| ===== Software Design ===== | ===== Software Design ===== | ||
| + | Dezvoltarea codului am realizat-o in Arduino IDE (care ar putea fi mult mai imbunatatit) | ||
| + | |||
| + | Pe partea de software am folosit bibliotecile: | ||
| + | - LiquidCrystal_I2c.h | ||
| + | - Servo.h | ||
| + | - Wire.h | ||
| + | |||
| + | Pentru generarea categoriilor am creat un array bidimensional numit categories[][], in care primul element e marimea sirului de caractere. | ||
| + | |||
| + | Pentru fiecare categorie am creat alte tabele, urmand exemplul celui de mai sus. | ||
| + | |||
| + | Am setat ca pini de input butoanele, iar ca output Servomotorul si LCD-ul. | ||
| + | |||
| + | Deoarece am avut nevoie de mai multe generari de numere random, am cautat o metoda de a crea aceste numere cu un seed de asemenea random: conectand la pinul analog A0 un fir lasat in aer -> iar valoarea aceasta sa fie folosita pentru randomSeed(). | ||
| + | |||
| + | Functia randomFunction() ia ca parametru un int de la 1 la 3 (pentru cele 3 cazuri de butoane) si in cadrul switchului returneaza valori pentru toate butoanele. De exemplu: daca vreau sa se invarta servomotorul pentru un timp random (de la 1 la 3 secunde), functia returneaza un numar de la 1 la 5. Daca apas butonul de generare de categorii -> se returneaza un numar de la 1 la 5. | ||
| + | |||
| + | Aceste rezultate sunt ulterior tratate in loop pentru delay-ul servomotorului si indexul intrebarilor. | ||
| + | |||
| + | Pentru afisarea intrebarilor a trebuit sa mai fac o functie, [b]chooseQuestion(int category, int questionIndex)[/b], care leaga practic indexul categoriei cu categoria de intrebari in sine si printeaza la LCD intrebarea. | ||
| + | |||
| + | In afara de fuctionarea principala, am adaugat niste tonuri (la fel, random) in loop. Sunetul porneste la un interval intre 1 si 3 minute: semnal pentru jucatori sa dea un shot :) | ||
| + | |||
| + | Functiile folosite in cod: | ||
| ===== Rezultate obtinute ====== | ===== Rezultate obtinute ====== | ||
| === Cutia interioara =) === | === Cutia interioara =) === | ||
| Line 85: | Line 109: | ||
| ===== Download ===== | ===== Download ===== | ||
| + | <note> | ||
| + | Codul cutiei magice: {{:pm:prj2023:fstancu:codginapmzip.zip|}} | ||
| + | PDF: <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||
| + | </note> | ||
| + | |||
| - | {{:pm:prj2023:fstancu:codginapmzip.zip|}} | ||
| - | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||