This shows you the differences between two versions of the page.
pm:prj2023:fstancu:georgina [2023/05/29 13:14] georgina.poting [Concluzii] |
pm:prj2023:fstancu:georgina [2023/05/29 23:40] (current) georgina.poting [Software Design] |
||
---|---|---|---|
Line 55: | Line 55: | ||
{{ :pm:prj2023:fstancu:circuit_terminat_ca_mine.jpg?700 |}} | {{ :pm:prj2023:fstancu:circuit_terminat_ca_mine.jpg?700 |}} | ||
+ | |||
+ | ===== 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 ====== | ||
=== Cutia interioara =) === | === Cutia interioara =) === | ||
{{ :pm:prj2023:fstancu:haosul_interior.jpg?400 |}} | {{ :pm:prj2023:fstancu:haosul_interior.jpg?400 |}} | ||
=== Cutia exterioara 8-o === | === Cutia exterioara 8-o === | ||
{{ :pm:prj2023:fstancu:haos_exterior1.jpg?400 |}} | {{ :pm:prj2023:fstancu:haos_exterior1.jpg?400 |}} | ||
- | ===== Software Design ===== | ||
- | |||
- | <note tip> | ||
- | TBD | ||
- | </note> | ||
===== Jurnalul proiectului: ===== | ===== Jurnalul proiectului: ===== | ||
Line 84: | Line 107: | ||
Am petrecut mult timp pe partea de debugging în cod și am căutat soluții pentru probleme de genul: Arduino nu lucreaza bine pe stringuri, are memorie foarte limitată RAM. | Am petrecut mult timp pe partea de debugging în cod și am căutat soluții pentru probleme de genul: Arduino nu lucreaza bine pe stringuri, are memorie foarte limitată RAM. | ||
- | ===== Download ===== | ||
- | <note warning> | + | ===== Download ===== |
- | TBA | + | <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> | </note> | ||
- | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | + | |