This shows you the differences between two versions of the page.
pm:prj2021:avaduva:aparat-de-numarat-genoflexiuni [2021/06/02 09:50] felix_vlad.sarboiu |
pm:prj2021:avaduva:aparat-de-numarat-genoflexiuni [2021/06/02 10:45] (current) felix_vlad.sarboiu [Download] |
||
---|---|---|---|
Line 14: | Line 14: | ||
==== Descriere generala ==== | ==== Descriere generala ==== | ||
+ | {{:pm:prj2021:avaduva:diagrama.jpg?200|}} | ||
- | {{:pm:prj2021:avaduva:diagrama.png?200|}} | ||
{{:pm:prj2021:avaduva:schema_electrica_felix.jpeg?200|}} | {{:pm:prj2021:avaduva:schema_electrica_felix.jpeg?200|}} | ||
- | {{:pm:prj2021:avaduva:placuta_felix.jpeg?200|}} | + | |
- | {{:pm:prj2021:avaduva:senzor_si_display_tip_ceas.jpeg?200|}} | + | |
==== Hardware Design ==== | ==== Hardware Design ==== | ||
Lista de piese: | Lista de piese: | ||
* Arduino Uno R3 | * Arduino Uno R3 | ||
- | * Senzor Ultrasonic HC-SR04 | + | * Senzor Ultrasonic HC-SR04 (pini: ECHO legat la D2, TRIG legat la D3, VCC la 5V, GND la GND) |
- | * Display LED tip ceas TM1637 | + | * Display LED tip ceas TM1637 (pini: CLK legat la D4, DIO legat la D5, VCC la 5V, GND la GND) |
==== Software Design ==== | ==== Software Design ==== | ||
Line 32: | Line 31: | ||
* Librarii: TM1637.h | * Librarii: TM1637.h | ||
* Codul de baza: https://create.arduino.cc | * Codul de baza: https://create.arduino.cc | ||
+ | * 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: | ||
+ | - 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. | ||
+ | - 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. | ||
+ | - 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 ==== | ==== Preview ==== | ||
[[https://youtu.be/VbRLgyynBdw|Preview]] | [[https://youtu.be/VbRLgyynBdw|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. | ||
+ | |||
+ | {{:pm:prj2021:avaduva:placuta_felix.jpeg?200|}} | ||
+ | |||
+ | {{:pm:prj2021:avaduva:senzor_si_display_tip_ceas.jpeg?200|}} | ||
==== Download ==== | ==== Download ==== | ||
- | [[https://ocw.cs.pub.ro/courses/pm/prj2021/avaduva/aparat-de-numarat-genoflexiuni?do=export_pdf| PDF]] | + | {{:pm:prj2021:avaduva:aparat_de_numarat_genoflexiuni_1_.pdf| Aparat de numarat genoflexiuni}} |
+ | |||
+ | {{:pm:prj2021:avaduva:aparat_de_numarat_genoflexiuni.zip| Cod sursa}} | ||
- | {{:pm:prj2021:avaduva:aparat_de_numarat_genoflexiuni.zip|}} | + | ==== Bibliografie ==== |
+ | [[https://create.arduino.cc/projecthub/abdularbi17/ultrasonic-sensor-hc-sr04-with-arduino-tutorial-327ff6|HC-SR04 senzor ultrasonic distanta]] | ||
+ | [[https://create.arduino.cc/projecthub/ryanchan/tm1637-digit-display-arduino-quick-tutorial-ca8a93|TM1637 Display LED de tip ceas]] |