This shows you the differences between two versions of the page.
pm:prj2025:ajipa:bogdan.trifan2412 [2025/05/02 09:12] bogdan.trifan2412 |
pm:prj2025:ajipa:bogdan.trifan2412 [2025/05/05 14:30] (current) bogdan.trifan2412 |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Gym Assistant ====== | ====== Gym Assistant ====== | ||
+ | |||
===== Introducere ===== | ===== Introducere ===== | ||
- | In acest proiect imi propun sa dezvolt un sistem de "supervizare" | + | În acest proiect îmi propun să dezvolt un sistem de "supervizare" |
- | pentru [[https://musclewiki.com/machine/male/triceps/machine-chest-press/|**Machine Chest Press**]]. | + | pentru [[https://musclewiki.com/machine/male/triceps/machine-chest-press/|Machine Chest Press]]. |
- | <!-- Ce face si care este scopul lui: --> | + | Dispozitivul meu va avea următoarele funcționalități: |
- | Dispozitivul meu va avea urmatoarele functionalitati: | + | - Numără repetările/pauzele făcute la acest aparat, alături de durata lor |
- | - Numara repetarile/pauzele facute la acest aparat, | + | - Redă muzică în timpul antrenamentului |
- | alaturi de durata lor | + | - Motivează utilizatorii în momente de inactivitate, prin redarea unor mesaje audio inspiraționale (ex. **David Goggins**) |
- | - Reda muzica in timpul antrenamentului | + | - Stimulează utilizatorii să facă măcar 3 seturi de 8 repetări, cu pauze maxim 45 de secunde |
- | - Motiveaza utilizatorii in momente de inactivitatea, | + | - Simulează accesul la o sală de fitness pe bază de cartelă |
- | prin redarea unor mesake audio inspirationale (ex. **David Goggins**) | + | |
- | - Stimuleaza utilizatorii sa faca macar 3 seturi de 8 repetari, | + | |
- | cu pauze maxim 45 de secunde | + | |
- | - Simuleaza accesul la o sala de fitness pe baza unei cartele | + | |
- | <!-- Ideea de la care am pornit: --> | + | Am găsit inspirație pentru acest proiect la sală. |
- | Am gasit inspiratie pentru acest proiect la sala. | + | Aici, cel mai important e să te concentrezi pe exercițiul efectiv, nu să stai să-ți numeri repetările. |
- | Aici, cel mai important e sa te concentrezi pe exercitiul efectiv, | + | |
- | nu sa stai sa-ti numeri repetarile. | + | |
- | <!-- De ce cred ca este util pentru altii si pentru mine: --> | + | Deși pare un task simplu, să ai pe cineva (sau **ceva**) care să facă asta pentru tine este o mare diferență. |
- | Desi pare un task simplu, | + | |
- | sa ai pe cineva (sau **ceva**) care sa faca asta pentru tine este o mare diferenta. | + | |
- | Mai ales daca iti impinge limitele la maxim prin mesaje motivationale precum | + | Mai ales dacă îți împinge limitele la maxim prin mesaje motivaționale precum |
- | *"mai poti inca 3"*, *"hai inca una"*, sau clasicul *"Who's gonna carry the boats?"*. | + | ''mai poți încă 3'', ''hai încă una'', sau clasicul ''Who's gonna carry the boats?''. |
- | Aduce energia care te face sa nu renunti. | + | Aduce energia care te face să nu renunți. |
- | Consider ca dispozitivul meu este ideal pentru persoanele care vin singure | + | Consider că dispozitivul meu este ideal pentru persoanele care vin singure |
- | la sala si nu au pe nimeni care sa faca asta pentru ei. | + | la sală și nu au pe nimeni care să facă asta pentru ei. |
+ | <note tip> | ||
+ | Având în vedere poziționarea senzorilor, | ||
+ | proiectul meu poate monitoriza DOAR exercițiul de [[https://musclewiki.com/machine/male/triceps/machine-chest-press/|Machine Chest Press]], | ||
+ | un exercițiu simplu în care doar trebuie să împingi o bară în față. | ||
+ | </note> | ||
- | > Avand in vederea pozitionarea senzorilor, | ||
- | > proiectul meu poate monitoriza DOAR exercitiul de [**Machine Chest Press**](https://musclewiki.com/machine/male/triceps/machine-chest-press/), | ||
- | > un exercitiu simplu in care doar trebuie sa impingi o bara in fata. | ||
- | |||
- | |||
- | |||
- | |||
- | ===== Descriere generala ===== | ||
+ | ===== Descriere generală ===== | ||
==== Schema bloc ==== | ==== Schema bloc ==== | ||
- |  | + | {{:pm:prj2025:ajipa:gym_assistant_PM-Project-schema-bloc.jpg?600}} |
- | > Diagrama a fost realizata in [draw.io](https://app.diagrams.net/). | + | Diagrama a fost realizată în [[https://app.diagrams.net/|draw.io]]. |
==== Audio Files ==== | ==== Audio Files ==== | ||
- | Pentru a descarca melodii de pe YouTube drept fisiere **MP3**, am fosolosit: | + | Pentru a descărca melodii de pe YouTube drept fișiere **MP3**, am folosit: |
- | * <https://y2mate.nu/en-CVeZ/> | + | * https://y2mate.nu/en-CVeZ/ |
- | Pentru a transforma **MP3**-urile in fisiere **WAV**, am folosit: | + | <note tip> |
- | * <https://audio.online-convert.com/convert-to-wav> | + | Pentru a transforma **MP3**-urile în fișiere **WAV**, am folosit: |
+ | * https://audio.online-convert.com/convert-to-wav | ||
+ | </note> | ||
+ | Opțiunile folosite la convertirea **MP3 -> WAV**: | ||
+ | * Bit resolution: **8 bit** | ||
+ | * Audio frequency: **16 kHz** | ||
+ | * Audio channels: **Mono** | ||
- | Optiunile folosite la convertirea **MP3 -> WAV**: | + | Înainte de a pune fișierele audio pe microSD, |
- | * Bit resolution: **8 bit** | + | am formatat cardul în modul **FAT32** |
- | * Audio frequency: **16 kHz** | + | și am denumit fișierele corespunzător. |
- | * Audio channels: **Mono** | + | |
- | + | <note warning> | |
- | Inainte de a pune fisierele audio pe microSD, | + | **⚠️ Atenție!** Sistemele de fișiere **FAT** folosesc convenția [[https://en.wikipedia.org/wiki/8.3_filename|8.3 filename]], |
- | am formatat cardul in modul **FAT32** | + | ceea ce înseamnă că denumirea fișierelor: |
- | si am denumit fisierele corespunzator. | + | * nu poate avea mai mult de **8** caractere înainte de punct |
- | + | * maxim **3** caractere pentru extensie | |
- | ⚠️ Atentie! Sistemele de fisiere **FAT** folosesc conventia [8.3 filename](https://en.wikipedia.org/wiki/8.3_filename) | + | </note> |
- | (*also called a **short filename** or **SFN***), | + | |
- | ceea ce inseamna ca denumirea fisierelor: | + | |
- | * nu poate avea mai mult de **8** caractere inainte de punct | + | |
- | * maxim **3** caractere pentru extensie | + | |
==== Conectarea butoanelor ==== | ==== Conectarea butoanelor ==== | ||
- | * Data Sheet Push-Buttons: <https://wiki-content.arduino.cc/documents/datasheets/Button.pdf> | + | * [[https://wiki-content.arduino.cc/documents/datasheets/Button.pdf|Data Sheet Push-Buttons]] |
- | * <https://components101.com/switches/push-button> | + | * [[https://components101.com/switches/push-button|Push-button info]] |
- | <img src="https://components101.com/sites/default/files/component_pin/Push-button-Pinout.gif" height=250px width=auto> | + | {{https://components101.com/sites/default/files/component_pin/Push-button-Pinout.gif?250x}} |
+ | <note tip> | ||
+ | Picioarele care formează o linie sunt **direct conectate**. | ||
+ | </note> | ||
- | > Picioursele care formeaza o line sunt **direct conectate**. | + | Înainte de a face cablajul între butoanele de pe cutie și breadboard, |
+ | am făcut următoarele *"simulări"* în TinkerCAD. | ||
+ | Așa trebuie să arate conexiunea cu un push-button: | ||
- | Inainte de a face cablajul intre butoanele de pe cutie si breadboard, | + | {{:Images:vertical-button.png?250x}} |
- | am facut urmatoarele *"simulari"* in TinkerCAD. | + | {{:Images:horizontal-button.png?250x}} |
- | Asa trebuie sa arate conexiunea cu un push-buton: | + | |
- | <img src="./Images/vertical-button.png" height=250px width=auto> | + | Exemplu cod (basic) pentru a detecta apăsarea butonului: |
- | <img src="./Images/horizontal-button.png" height=250px width=auto> | + | |
- | + | <code cpp> | |
- | Exemplu cod (basic) pentru a detecta apasarea butonului: | + | |
- | + | ||
- | + | ||
- | ```cpp | + | |
#define PIN_BUTTON 3 | #define PIN_BUTTON 3 | ||
Line 110: | Line 100: | ||
{ | { | ||
if (digitalRead(PIN_BUTTON) == LOW) { | if (digitalRead(PIN_BUTTON) == LOW) { | ||
- | Serial.println("butonul a fost apasat!"); | + | Serial.println("butonul a fost apasat!"); |
} | } | ||
delay(100); | delay(100); | ||
} | } | ||
- | ``` | + | </code> |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
- | |||
- | |||
==== Lista piese ==== | ==== Lista piese ==== | ||
- | - Arduino UNO R3 | + | * Arduino UNO |
- | - 4 x [push-buttons](https://ardushop.ro/ro/butoane--switch-uri/713-buton-mic-push-button-trough-hole-6427854009050.html) | + | * 4 x [[https://ardushop.ro/ro/butoane--switch-uri/713-buton-mic-push-button-trough-hole-6427854009050.html|push-buttons]] |
- | - Ecran LCD 16x2 cu modul I2C | + | * Ecran LCD 16x2 cu modul I2C |
- | - Rezistente 220Ω | + | * Rezistențe 220Ω |
- | - [MicroSD Module](https://ardushop.ro/ro/module/1553-groundstudio-microsd-module-6427854023056.html?gad_source=1&gbraid=0AAAAADlKU-7r0Viay1-t361QlB21iOgs0&gclid=Cj0KCQjwqv2_BhC0ARIsAFb5Ac84XfsbeL3-M0mj8zEMxlvniXkfdQ1SGlEzoFS0otF-lMW6SyWNGnUaAvFmEALw_wcB) | + | * [[https://ardushop.ro/ro/module/1553-groundstudio-microsd-module-6427854023056.html|MicroSD Module]] |
- | - [Card MicroSD 16 GB](https://www.optimusdigital.ro/ro/memorii/8678-card-microsd-original-de-16-gb-cu-noobs-compatibil-cu-raspberry-pi-4-model-b-varianta-bulk.html?search_query=%090104110000057297%09&results=1) | + | * [[https://www.optimusdigital.ro/ro/memorii/8678-card-microsd-original-de-16-gb-cu-noobs-compatibil-cu-raspberry-pi-4-model-b-varianta-bulk.html|Card MicroSD 16 GB]] |
- | - Nu am gasit un card mai mic 🙁 | + | * Nu am găsit un card mai mic 🙁 |
- | - [Speaker for Micro:bit](https://www.emag.ro/modul-difuzor-waveshare-36-52x43-44-mm-compatibil-cu-micro-bit-arduino-speakerformicro-bitwaveshare14542/pd/D785XQMBM/?ref=history-shopping_418333718_138738_1) | + | * [[https://www.emag.ro/modul-difuzor-waveshare-36-52x43-44-mm-compatibil-cu-micro-bit-arduino-speakerformicro-bitwaveshare14542/pd/D785XQMBM|Speaker for Micro:bit]] |
- | - Cred ca erau si alte optiuni mult mai ieftine 🙂 | + | * Cred că erau și alte opțiuni mult mai ieftine 🙂 |
- | - [Stabilizator de 3.3 V](https://www.optimusdigital.ro/ro/electronica-de-putere-stabilizatoare-liniare/168-modul-cu-sursa-de-alimentare-de-33-v.html?search_query=0104110000000521&results=1) (pentru Vin al Speaker-ului) | + | * [[https://www.optimusdigital.ro/ro/electronica-de-putere-stabilizatoare-liniare/168-modul-cu-sursa-de-alimentare-de-33-v.html|Stabilizator de 3.3 V]] (pentru Vin al Speaker-ului) |
- | - 2 x [Senzor ultrasonic HC-SR04](https://www.optimusdigital.ro/ro/senzori-senzori-ultrasonici/9-senzor-ultrasonic-hc-sr04-.html?search_query=0104110000000866&results=1) | + | * 2 x [[https://www.optimusdigital.ro/ro/senzori-senzori-ultrasonici/9-senzor-ultrasonic-hc-sr04-.html|Senzor ultrasonic HC-SR04]] |
- | - [Breadboard 830 puncte](https://www.optimusdigital.ro/ro/prototipare-breadboard-uri/8-breadboard-830-points.html?search_query=breadboard+830&results=15) | + | * [[https://www.optimusdigital.ro/ro/prototipare-breadboard-uri/8-breadboard-830-points.html|Breadboard 830 puncte]] |
- | - [Fire Colorate Mamă-Tată](https://www.optimusdigital.ro/ro/fire-fire-mufate/878-set-fire-mama-tata-40p-30-cm.html?search_query=Fire+Colorate&results=49) | + | * [[https://www.optimusdigital.ro/ro/fire-fire-mufate/878-set-fire-mama-tata-40p-30-cm.html|Fire Colorate Mamă-Tată]] |
- | - [Fire Colorate Tată-Tată](https://www.optimusdigital.ro/ro/fire-fire-mufate/890-set-fire-tata-tata-40p-30-cm.html?search_query=Fire+Colorate&results=49) | + | * [[https://www.optimusdigital.ro/ro/fire-fire-mufate/890-set-fire-tata-tata-40p-30-cm.html|Fire Colorate Tată-Tată]] |
- | - [Modul RFID RC522](https://www.optimusdigital.ro/ro/wireless-rfid/67-modul-cititor-rfid-mfrc522.html?search_query=rfid&results=37) | + | * [[https://www.optimusdigital.ro/ro/wireless-rfid/67-modul-cititor-rfid-mfrc522.html|Modul RFID RC522]] |
- | + | ||
==== Schema circuit ==== | ==== Schema circuit ==== | ||
- |  | + | {{:pm:prj2025:ajipa:gym_assistant_circuit_design.png?600}} |
- | > Schema a fost realizata in [Cirkit Designer IDE](https://app.cirkitdesigner.com/). | + | <note tip> |
+ | Schema a fost realizată în [[https://app.cirkitdesigner.com/|Cirkit Designer IDE]]. | ||
+ | </note> | ||