This shows you the differences between two versions of the page.
pm:prj2023:fstancu:georgina [2023/05/29 17:25] georgina.poting [Download] |
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 =) === |