Personal Trainer Pedometer

Introducere

Scopul proiectului este implementarea unui dispozitiv care contorizeaza numarul de pasi efectuati de o anumita persoana. Ca functionalitate suplimentara, se apeleaza la existenta unui antrenor personal. O data cu inceperea programului, userul va fi invitat sa aleaga din 3 limbi de expunere a mesajelor diferite: romana, engleza, franceza. Trainerul va ghida utilizatorul acestui pedometru pe parcursul antrenamentului sau.

Descriere generala

Schema bloc: Modul de funcționare al dispozitivului este urmatorul:

  • se porneste dispozitivul
  • acesta va dori sa primeasca input de la user reprezentand limba solicitata
  • in limba respecitva, userul va fi ghidat pana la efectuarea a 100 de pasi (dupa 10 pasi, dupa 50 de pasi, dupa 100 de pasi)
  • mai mult, in cazul in care cel ce foloseste dispozitivul se opreste inainte de timp, i se comunica un mesaj corespunzator.
  • comunicarea jack - microcontroller se realizeaza prin intermediul portului D al ATMega16
  • comunicarea accelerometru - microcontroller se realizeaza prin intermediul portului C al aceluiasi ATMega16
  • in caz de reset, programul de training reincepe

Hardware Design

Lista de componente:

  1. 1 accelerometru (LSM303DLHC)
  2. 2 diode 1N4004
  3. 3 rezistente de 1K8
  4. 3 rezistente de 3K3
  5. 1 slot de card SD
  6. conectori bareta SIL
  7. conectori mama
  8. 3 butoane
  9. 3 diode Zener de 3V3
  10. 2 rezistente de 10K
  11. 1 rezistenta de 1K
  12. 1 condensator de 100nF
  13. 1 condensator de 220nF
  14. 1 condensator de 4.7uF
  15. 1 jack de casti
  16. 1 condensator de 100 uF

Schema electrica:

  • Accelerometru si SD CARD

  • Butoane si difuzor

Implementare:

  • Sunt folositi pinii de pe portul C al microcontrollerului impreuna cu P5 de pe portul D
  • Ascultand la P5 (PORTD) se apasa anumite butoane → PORTC(uC) si se comanda P5 de pe PORTD
  • Accelerometrul poate la randul sau sa comande P5 dupa ce masoara un anumit numar de pasi
  • Mentionez ca am pornit de la implementarea laboratorului 4 pentru redarea de wav, am testat functionarea corecta a buzzerului pornind de la o implementare din laboratorul 1 si am incercat sa gandesc cod pentru accelerometru pornind de la laboratorul 6.

Software Design

Descrierea codului aplicatiei:

  • mediu de dezvoltare: Programmer's NotePad[WinAVR]
  • biblioteci: io.h, interrupt.h și util/delay.h
  • implementarea efectiva:
    • am incercat sa pornesc de la codul din laboratorul 4 pentru redarea meniului principal, realizand urmatoarele schimbari legate de cardul SD (deoarece modul de legare a cardului SD de pe placa de laborator difera de modul de legare a cardului SD de pe placa de baza):
    • Defines for SD card SPI access
      • #define SD_CS_PORT PORTB
      • #define SD_CS_DDR DDRB
      • #define SD_CS_PIN 4
    • pentru codul accelerometrului, intrucat nu se poate detecta cauza esecului functionarii SD cardului, am intentionat sa folosesc interfata seriala si intr-un while(1) sa afisez in consola ce se petrece intre doua miscari succesive pe axa Y. Din pacate, am pierdut mult prea mult timp cu debugging-ul sunetului pentru a trece la folosirea accelerometrului.

Rezultate Obtinute

Concluzii

Proiectul de PM a fost o provocare cel putin interesanta, provocare ce a reusit sa raspunda la intrebarea “De ce avem nevoie de ED?” din anul 2. Din pacate, nu am reusit sa finalizez acest proiect nu neaparat din lipsa de timp, dar si din lipsa de cod care sa functioneze corect din toate punctele de vedere. Ca o concluzie suplimentara, consider ca un astfel de proiect este atat time and money consuming si, poate cel mai important, testeaza rabdarea fiecaruia. Aparent eu nu am reusit sa trec acest test de rabdare.

Download

Mai jos, atasez cateva arhive relevante pentru proiect:


Bibliografie/Resurse

  1. Datasheet ATMega16 doc2466.pdf
  2. Datasheet accelerometru lsm303dlhc-accelerometer.pdf
pm/prj2012/amocanu/20.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