This is an old revision of the document!


Tracking de pozitie

Introducere

  • Proiectul consta intr-un dispozitiv care preia informatii din senzorul de miscare si le salveaza periodic pe un MicroSD. Pentru inceperea si oprirea preluarii informatiilor din senzor, se foloseste un buton. Pentru observarea starii sistemului, sunt mai multe LED-uri care indica ce se intampla, inclusiv un buzzer cu acelasi scop.
  • Scopul este determinarea traseului luat prin observarea datelor din senzorul de miscare. Aceste date de pe MicroSD pot fi apoi luate si folosite pe un calculator pentru plotting 3D.
  • Acest proiect ar fi util in cadrul unui sistem de realitate virtuala mai complex, in care e nevoie de tracking 3D precis, cu colectarea si procesarea datelor din senzori de miscare.

Descriere generală

Butonul de start face o ciclare intre starea de preluare date, idle, tranzitiva si trimitere date la calculator.

Initial, sistemul e idle, si se asteapta schimbarea starii, adica nu preia sau trimite date. Niciun LED nu e aprins.

Cand e apasat prima oara, se trece in starea de preluare date, prin care un LED rosu e aprins. Daca e apasat iar, sau nu mai are spatiu MicroSD-ul, se trece in starea tranzitiva.

In starea tranzitiva, un LED albastru e aprins. Asta indica faptul ca starea urmatoare e cea de trimitere date.

Daca e apasat iar, se trece in starea de trimitere date spre calculator, prin care un LED verde e aprins.

La urmatoarea apasare, se reia ciclul, in starea idle.

Datele de la MPU9250 sunt comunicate prin protocolul I2C. Acestea ajung sa fie stocate intr-un buffer de 1KB din memorie care se umple constant si apoi sunt transmise catre MicroSD, prin protocolul SPI. Datele sunt adaugate in cadrul unui singur fisier, pana ce se schimba starea sau MicroSD-ul e plin. Are loc in starea de preluare date.

Pentru trimiterea datelor de pe placa spre calculator, se conecteaza calculatorul la placa si datele sunt luate prin protocolul UART. Python ar merge cel mai bine pentru asta, datorita functiilor seriale. Se asteapta un raspuns de la calculator. Dupa asta, se incarca un buffer din memorie de 1KB, cu date de pe MicroSD si apoi sunt transmise spre calculator. Se reumple buffer-ul pana ce toate datele au fost transmise. La terminarea transmiterii, se sterg datele vechi. Are loc in starea de trimitere date.

Prin Python, pot scrie pe seriala mesajul care porneste trimiterea, si pot citi date, pana ce fisierul de pe MicroSD e parcurs complet de microcontroller. Dupa asta, acesta trimite pe seriala un mesaj 'NO DATA', indicand ca nu mai sunt date de trimis. Se trece automat la modul idle iarasi.

Atunci cand are loc preluarea datelor de la senzor, un buzzer va face un sunet scurt, in fiecare minut trecut.

Hardware Design

Lista de piese:

  • Placa Arduino compatibila ATmega328
  • Breadboard
  • Card MicroSD
  • Modul MPU9250
  • Baterii
  • Modul buzzer activ
  • Butoane, LED-uri, fire, rezistente

Software Design

Rezultate Obţinute

Concluzii

Download

Jurnal

Bibliografie/Resurse

pm/prj2021/dbrigalda/position-tracking.1619983233.txt.gz · Last modified: 2021/05/02 22:20 by horia_vlad.onofrei
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