Aparat de numarat genoflexiuni

Introducere

Prezentarea pe scurt a proiectului:

  • Numara genoflexiuni facute corect (inaltimea la care se afla giroscopul ⇐ o valoare pre-setata)
  • Ajuta sportivii sa tina un contor pentru genoflexiuni
  • M-am apucat recent de sport, m-am gandit ca are utilitate practica
  • Promoveaza un stil de viata sanatos

Descriere generala

Hardware Design

  Lista de piese:
    * Arduino Uno R3
    * Senzor Ultrasonic HC-SR04 (pini: ECHO legat la D2, TRIG legat la D3, VCC la 5V, GND la GND)
    * Display LED tip ceas TM1637 (pini: CLK legat la D4, DIO legat la D5, VCC la 5V, GND la GND)

Software Design

Descrierea codului aplicatiei (firmware):

  • Mediu de dezvoltare: Arduino IDE
  • Librarii: TM1637.h
  • Legare pini: ECHO - D2, TRIG - D3, CLK - D4, DIO - D5
  • Inaltimea superioara 135cm (#define superior 135)
  • Inaltimea inferioara 100cm (#define inferior 100)
  • Am folosit variabilele duration si distance pentru masurarea distantei folosind senzorul ultrasonic, variabila counter pentru numararea genoflexiunilor si variabila measure pentru a putea verifica atingerea pragurilor de inaltime: superior, respectiv inferior.
  • In setup am setat luminozitatea display-ului la 2, am setat modul de functionare pentru pinii senzorului ultrasonic, am pornit interfata seriala pentru afisaj de debug (inaltimi citite) si am initializat counter si measure la 0.
  • In loop, pentru citirea distantei folosesc senzorul ultrasonic pentru a trimite si primi unde sonore si fac calculul distantei folosind formula: “durata semnal * 0.034 / 2” (impartirea la 2 pentru tur-retur), apoi afisez la consola seriala distanta in cm.
  • Tot in loop are loc si mecanismul de verificat genoflexiuni, in felul urmator:
    1. daca distanta citita se afla sub pragul inferior si variabila measure este setata la 1, se incrementeaza contorul si se seteaza variabila measure la 0. Acest proces este urmat de un delay de 100ms.
    2. daca distanta citita este mai mare sau egala cu diferenta dintre pragul inferior si 3 (marja de eroare) si variabila measure este setata la 0, se seteaza variabila measure la 1 si se face delay de 100ms.
    3. la sfarsit se face afisarea contorului (counter) pe display-ul LED folosind functia displayNumber, implementata la sfarsit. Aceasta primeste ca input un numar intreg si ii afiseaza fiecare cifra la pozitia sa corespunzatoare pe display.

Preview

Rezultate Obtinute

Mod functionare:

Senzorul de distanta ultrasonic HC-SR04 este prins de o scandura de lemn dreapta, acesta prin 2 pioneze pe diagonala.
Display-ul LED de tip ceas TM1637 este prins prins de aceeasi scandura, prin 2 pioneze pe orizontala, superior.
Bara de lemn este tinuta de utilizator cu senzorul de distanta indreptat in jos si cu display-ul cu fata catre acesta, la nivel cu umerii.
In momentul in care utilizatorul face o genoflexiune completa (pentru mine am setat distanta de sus la 135cm si cea de jos la 100cm - pentru verificare), acesta trebuie sa tina bara orientata in acelasi fel, pentru a putea masura corect distantele.
Contorul incepe de la 0 si este incrementat cu fiecare genoflexiune facuta corect de catre utilizator.

Download

Bibliografie

pm/prj2021/avaduva/aparat-de-numarat-genoflexiuni.txt · Last modified: 2021/06/02 10:45 by felix_vlad.sarboiu
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