Proiectul isi propune detectarea si numararea flotarilor pe care le va face utilizatorul. Acesta va putea seta un target de pe telefonul propriu, iar dispozitivul il va anunta treptat, atat la fiecare flotare efectuata cat si in momentul in care atinge target-ul ales.
Utilizatorul are posibilitatea de a seta de pe telefon un numar de flotari, comunciarea dintre telefon si placa Arduino realizandu-se printr-un modul bluetooth. Pe placa vor exista 5 LED-uri care se vor aprinde treptat la fiecare flotare realizata (Ex: Daca target-ul setat este 10, atunci la fiecare flotare un LED se va aprinde la jumatate din intensitatea sa). De asemenea la fiecare flotare realizata, un buzzer va scoate un sunet specific, iar dupa ce target-ul a fost atins, buzzer-ul va emite un sunet care va avea o durata mai mare. Utilizatorul va avea posibilitatea de “reset”, apasand pe un buton care se va afla tot pe placa.
Lista de componente:
Am scris codul necesar dezvoltarii proiectului in Arduino IDE. Pentru a comunica cu placa Arduino UNO am avut nevoie de biblioteca Wire.h. De asemenea pentru a utiliza accelerometrul am folosit bibliotecile <Adafruit_Sensor.h> si <Adafruit_ADXL345_U.h>. Am folosit variabila de tip Adafruit_ADXL345_Unified accel pentru a accesa valorile de pe axa OZ pe care le indica accelerometru pentru a detecta o schimbare a vitezei in momentul in care se realizeaza miscarea de ridicare de la sol, astfel ajutandu-ma la numararea flotarilor. Pentru fiecare componenta de pe placa am atribuit un nume pin-ului corespunzator: buttonPin, led1Pin, led2Pin, led3Pin, led4Pin, led5Pin, buzzer. De asemenea mi-am definit cateva note muzicale reprezentate de sunete pentru buzzer la diferite frecvente. Variabila count_value a fost incrementata la fiecare accelerare in sus pe axa OZ. Variabila prestate a fost folosita pentru a detecta starea precedenta momentului accelerarii. Variabila command, de tip string reprezinta fie un numar (care va declansa startul numaratorii si care reprezinta targetul de flotari), fie "restart" (care are rolul de a restarta numaratoarea, mai exact de a stinge LED-urile si de a reseta la 0 valoarea variabilei count_value). LED-urile si buzzer-ul au fost setate ca OUTPUT. Pentru a monitoriza valorile aratate de accelerometru am folosit si o variabila event de tip sensors_event_t.
Rezultatele obtinute sunt cele dorite. Programul incepe atunci cand se introduce de pe telefonul mobil
conectat prin bluetooth la placuta un numar reprezentand targetul de flotari.
La fiecare flotare efectuata se aude un sunet facut de buzzer urmand ca la final, daca toate flotarile
au fost efectuate sa se auda un mini-cantec. De asemenea, la fiecare cincime din target se va aprinde un LED reprezentand progresul.
Un videoclip cu rezultatele finale ale proiectului se poate gasi la urmatorul link: https://www.youtube.com/watch?v=qxXCgdom7Lk&ab_channel=EduardTudor https://youtu.be/NIfdkVYjORU
Realizarea proiectului a reprezentat o experienta noua si foarte interesanta in care s-au imbinat perfect scrierea de cod si montarea anumitor componente pe o placuta de tip Arduino UNO.
Documentatia in format PDF: ocw_cs_pub_ro_courses_pm_prj2021_dbrigalda_pushup_counter.pdf Am folosit documentatii si am urmarit tutoriale in special pentru componentele cu care nu am lucrat la laborator: accelerometru si modul bluetooth.
https://ocw.cs.pub.ro/courses/pm/prj2021/dbrigalda/pushup_counter