Step Tracker

Introducere

Proiectul consta intr-un pedometru ce va afisa numarul de pasi parcursi pe un dispozitiv mobil.

Descriere generala

Dispozitivul mobil ales se va conecta la modulul Bluetooth al proiectului, iar la o durata de timp selectata, se va calcula numarul total de pasi, utilizand un accelerometru, care va fi afisat pe ecranul telefonului. Mai multe detalii legate de utilizare se gasesc sub sectiunea Software Design.

Exista si optiunea de hard RESET pe placuta.

Hardware Design

Schema bloc

Lista de piese

  • PCB PM2019
  • Microcontroller ATMega324
  • Componente de baza
  • Modul Bluetooth HC-05
  • Accelerometru ADXL345
  • Fire mama-mama
  • USB B

Schema electrica

Software Design

Cum functioneaza

La nivel de utilizator, programul functioneaza astfel: initial, asteapta sa primeasca valoarea '1' pentru a incepe activitatea. Dupa care va afisa mesajele urmatoare si va incepe contorizarea numarului de pasi

Numarul de pasi esti contorizat in functie de miscarea mainii, fiind considerati 2 pasi prin miscarile urmatoare:

Implementare

Am observat ca la nivelul mainii, valorile accelerometrului penduleaza intr-un interval aproximativ constant

De aceea am ales sa calculez o valoare medie, iar oricand aceasta este depasita, sa fie adaugat un pas. Valoarea medie este calculata luand USED_VAL valori (#define in cod) si facand media pentru axele Y si Z, Y fiind axa sus-jos, iar Z fata-spate. Dupa calculul mediei, se adauga un pas de fiecare data cand media este depasita plus un OFFSET(#define in cod).

Am folosit si o variabila took_step care poate fi modificata in caz ca este nevoie de o mai buna acuratete astfel: variabila va fi setata la 1 cand mana a fost miscata in fata/spate si va fi resetata la 0 doar cand este in intervalul [avg - OFFSET/2, avg + OFFSET/2] pe axa Z. Utilizarea variabilei poate fi schimbata prin setarea valorii STEP(#define in cod) la 0 pentru a nu fi folosit sau la 1, altfel.

Rezultate obtinute

Proiectul final arata astfel:

Am observat urmatoarele aspecte in timpul realizarii:

  1. datorita logicii din spatele programului, nu poate exista 100% acuratete deoarece o miscare simpla a mainii poate fi considerata un pas, iar un pas in timp ce mana nu este miscata, nu va fi adaugat la suma totala
  2. pentru mine, cea mai mare acuratete o primesc utilizand setarile din codul actual
  3. nu se schimba valorile medii pentru Y si Z in cazul in care este schimbat nivelul (ex. urcat/ coborat pe scari, pozitionarea la un alt etaj, etc.), ceea ce m-a facut sa pastrez aceasta implementare
  4. prin eliminarea variabilei Y din conditiile de incrementare a pasilor, poate fi fixat la brau sau piept(personal, mi se pare mai greu de tinut nemiscat), ceea ce va elimina o buna parte a problemelor punctului 1

Concluzie

  • Initial, am crezut ca partea hardware va fi cea dificila (Man, was I wrong m( )
  • Partea software a fost destul de interesanta, nu a fost foarte simplu sa gasesc ceva functional si usor de adaptat
  • O buna parte a necesitat “trial and error”
  • Proiectul este functional, iar codul poate fi modificat foarte simplu pentru o acuratete cat mai buna in functie de utilizator

Download

Jurnal

20/04/2019 - Crearea paginii wiki

21/04/2019 - Adaugarea schemei bloc

05/05/2019 - Adaugarea schemei electrice

06/05/2019 - Lipirea componentelor de baza

19/05/2019 - Realizare partii hardware

21/05/2019 - 23/05/2019 - Testarea componentelor si gasirea codului necesar

24/05/2019 - Finalizarea partii software

Bibliografie/Resurse

Documentatie

pm/prj2019/dionita/step-tracker.txt · Last modified: 2021/04/14 17:07 (external edit)
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