Gym Assistant

Introducere

În acest proiect îmi propun să dezvolt un sistem de “supervizare” pentru Machine Chest Press.

Dispozitivul meu va avea următoarele funcționalități:

  1. Numără repetările/pauzele făcute la acest aparat, alături de durata lor
  2. Redă muzică în timpul antrenamentului
  3. Motivează utilizatorii în momente de inactivitate, prin redarea unor mesaje audio inspiraționale (ex. David Goggins)
  4. Stimulează utilizatorii să facă măcar 3 seturi de 8 repetări, cu pauze maxim 45 de secunde
  5. Simulează accesul la o sală de fitness pe bază de cartelă

Am găsit inspirație pentru acest proiect la sală. Aici, cel mai important e să te concentrezi pe exercițiul efectiv, nu să stai să-ți numeri repetările.

Deși pare un task simplu, să ai pe cineva (sau ceva) care să facă asta pentru tine este o mare diferență.

Mai ales dacă îți împinge limitele la maxim prin mesaje motivaționale precum mai poți încă 3, hai încă una, sau clasicul Who's gonna carry the boats?. Aduce energia care te face să nu renunți.

Consider că dispozitivul meu este ideal pentru persoanele care vin singure la sală și nu au pe nimeni care să facă asta pentru ei.

Având în vedere poziționarea senzorilor, proiectul meu poate monitoriza DOAR exercițiul de Machine Chest Press, un exercițiu simplu în care doar trebuie să împingi o bară în față.

Descriere generală

Schema bloc

gym_assistant_pm-project-schema-bloc.jpg

Diagrama a fost realizată în draw.io.

Audio Files

Pentru a descărca melodii de pe YouTube drept fișiere MP3, am folosit:

Pentru a transforma MP3-urile în fișiere WAV, am folosit:

Opțiunile folosite la convertirea MP3 → WAV:

  • Bit resolution: 8 bit
  • Audio frequency: 16 kHz
  • Audio channels: Mono

Înainte de a pune fișierele audio pe microSD, am formatat cardul în modul FAT32 și am denumit fișierele corespunzător.

⚠️ Atenție! Sistemele de fișiere FAT folosesc convenția 8.3 filename, ceea ce înseamnă că denumirea fișierelor:

  • nu poate avea mai mult de 8 caractere înainte de punct
  • maxim 3 caractere pentru extensie

Conectarea butoanelor

Picioarele care formează o linie 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:

Exemplu cod (basic) pentru a detecta apăsarea butonului:

#define PIN_BUTTON 3
 
void setup()
{
  pinMode(PIN_BUTTON, INPUT);
  Serial.begin(9600);
}
 
void loop()
{
  if (digitalRead(PIN_BUTTON) == LOW) {
    Serial.println("butonul a fost apasat!");
  }
  delay(100);
}

Hardware Design

Lista piese

Schema circuit

Schema a fost realizată în Cirkit Designer IDE.

pm/prj2025/ajipa/bogdan.trifan2412.txt · Last modified: 2025/05/05 14:30 by bogdan.trifan2412
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0