This shows you the differences between two versions of the page.
pm:prj2021:abirlica:miniclaptrap [2021/05/18 16:08] cornelia.marculescu |
pm:prj2021:abirlica:miniclaptrap [2021/06/04 13:06] (current) cornelia.marculescu |
||
---|---|---|---|
Line 6: | Line 6: | ||
Scopul proiectului este pur de entertainment, intrucat inspiratia vine dintr-un joc de care sunt pasionata. | Scopul proiectului este pur de entertainment, intrucat inspiratia vine dintr-un joc de care sunt pasionata. | ||
- | **Conceptul initial** | ||
- | {{ :pm:prj2021:abirlica:project.png?direct&300 |}} | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
**Schema Bloc** | **Schema Bloc** | ||
- | {{ :pm:prj2021:abirlica:miniclaptrap.png?direct&300 |}} | + | {{ :pm:prj2021:abirlica:miniclaptrap2.png?direct&300 |}} |
In primul rand, vom avea un buton care porneste robotul. Odata pornit, acestuia ii se va aprinde led-ul si va zice un voiceline din MP3 Player. | In primul rand, vom avea un buton care porneste robotul. Odata pornit, acestuia ii se va aprinde led-ul si va zice un voiceline din MP3 Player. | ||
Line 22: | Line 20: | ||
* Arduino UNO | * Arduino UNO | ||
* Led RGB | * Led RGB | ||
- | * Buton | + | * Switch |
* Caseta de baterii 18650 2 buc | * Caseta de baterii 18650 2 buc | ||
* Modul MP3 player DFPlayer Mini | * Modul MP3 player DFPlayer Mini | ||
Line 33: | Line 31: | ||
**Schema electrica** | **Schema electrica** | ||
- | {{ :pm:prj2021:abirlica:claptrap_schematics.png?direct&300 |}} | + | {{ :pm:prj2021:abirlica:claptrap_schematics_final.png?direct&300 |}} |
**Scheme ale componentelor si Specificatii** | **Scheme ale componentelor si Specificatii** | ||
Line 113: | Line 111: | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | TBA | + | **Diagrama de activitate** |
+ | {{ :pm:prj2021:abirlica:claptrapactivitydiagram.png?direct&300 |}} | ||
+ | |||
+ | **Explicatii** | ||
+ | |||
+ | In setup initializez comunicarea seriala cu DFPlayerul si configurez valorile de baza pentru led, motor, respectiv sonorul de la DFPlayer si, desigur, pinii pe care ii voi folosi si pentru ce. | ||
+ | |||
+ | Pentru a masura valoarea obtinuta de senzorul de miscare am creat o functie TP_init care detecteaza pentru cat timp valoarea returnata de senzor este pe HIGH. Am ales abordarea aceasta pentru a evita ca robotul sa reactioneze la cea mai mica atingere. | ||
+ | |||
+ | Alta functie pe care o folosesc este playTrack pentru a da reda voiceline-urile cu ajutorul DFPlayerului. Functia se asigura in primul rand ca DFPlayerul nu s-a agatat si ca indexul track-ului pe care incearca sa il redea este acelasi cu cel dat, din moment ce am descoperit lucrand cu el ca aceasta agatare se poate intampla. In DFPlayer am 10 track-uri de lungumi diferite, de aceea, in functia playTrack am adaugat si delay-ul specific fiecarui track pentru a-l lasa sa se deruleze fara intreruperi. | ||
+ | |||
+ | In logica de baza, dupa ce setup-ul este facut, Claptrap va anunta ca traieste dupa care va astepta input de la mediul extern. In primul rand verific masuratoarea de la senzorul de vibratii, deoarece la o lovitura se sesizeaza si senzorul PIR. Daca masuratoarea este suficient de mare, atunci Claptrap va spune OW dupa care isi va stinge led-ul, motorul se porneste pentru o vreme dupa care se aprinde led-ul la loc. Am adaugat un mic delay pentru a-l lasa sa se linisteasca. Dupa aceea, se verifica daca senzorul PIR detecteaza miscare. Daca da, atunci va spune unul din cele 10 voice line-uri stocate pe cardul SD, in afara de cel dedicat reactiei la lovituri si cel in care anunta ca traieste. Din nou, am adaugat un delay pentru a-l lasa sa se linisteasca putin. | ||
+ | |||
+ | **Biblioteci folosite** | ||
+ | * Arduino.h | ||
+ | * SoftwareSerial.h | ||
+ | * DFRobotDFPlayerMini.h | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | TBA | + | [[https://www.youtube.com/watch?v=zleJfsDu_Gw&list=PL_mm1PwRMHbljVkXjofzx91vZDOJoD1_z&index=1|Link to Playlist]] |
+ | |||
+ | {{ :pm:prj2021:abirlica:clappy5.jpg?direct&300 |}} | ||
+ | {{ :pm:prj2021:abirlica:clappy7.jpg?direct&300 |}} | ||
+ | {{ :pm:prj2021:abirlica:clappy6.jpg?direct&300 |}} | ||
+ | {{ :pm:prj2021:abirlica:clappy4.jpg?direct&300 |}} | ||
+ | |||
+ | //Proof of work// | ||
+ | {{ :pm:prj2021:abirlica:proofofwork.jpg?direct&300 |}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | TBA | + | * Nu este o idee buna sa acopar senzorul PIR cu o lentila improvizata in casa |
+ | * Senzorul PIR este foarte sensibil si nu ar fi o idee buna sa-l folosesc in spatii stramte pe unde se umbla des | ||
+ | * Valorile obtinute de la senzorul de vibratie nu sunt cele mai exact deci nu garanteaza mereu reactia de OW de la Claptrap | ||
+ | * Atata timp cat se respecta specificatiile si schemele electrice, totul merge conform planului | ||
+ | * DFPlayerul are neaparat nevoie de o rezistenta la una din intrari pentru a evita poluarea cu zgomot | ||
+ | * DFPlayerul este sensibil la felul in care sunt stocate track-urile pe cardul SD si trebuie sa ma asigur ca nu exista indexi extra care sa fie considerati alte track-uri | ||
+ | * Am reusit sa creez un robotel foarte enervant | ||
+ | |||
+ | * Am renuntat la partea cu butonul pentru ca am realizat tarziu ca as fi avut nevoie de un switch si nu am avut unul. | ||
===== Download ===== | ===== Download ===== | ||
- | TBA | + | Codul final poate fi gasit [[https://github.com/cornelia8/GitforClaptrap/blob/main/discountClaptrap.ino|aici]]. |
+ | |||
+ | [[https://ocw.cs.pub.ro/courses/pm/prj2021/abirlica/miniclaptrap/?do=export_pdf|Export to PDF]] | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== |