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 si cea idle.

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

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 idle iarasi.

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

Datele de la MPU9250 sunt comunicate prin protocolul I2C. Acestea apoi sunt puse sa fie scrise intr-un fisier csv, dar care initial ajung intr-un buffer, inainte de scriere. Buffer-ul acesta se goleste atunci cand devine plin sau se inchide fisierul. Astfel, exista o eficienta mare in scrierea datelor pe cardul SD. 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.

Datele de pe cardul SD pot fi apoi accesate de pe calculator, cel mai probabil printr-un script python, deoarece datele sunt doar pe un fisier csv.

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

Hardware Design

Lista de piese:

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

Software Design

Mediul de dezvoltare e Arduino Software (IDE) folosind programatorul AVRISP mkII. Am folosit 2 biblioteci externe, SdFat de la https://github.com/greiman/SdFat pentru lucrul cu cardurile microSD de dimensiuni mai mari de 2gb (si deci, de tip fat32) si MPU9250 de la https://github.com/hideakitai/MPU9250 pentru preluarea de date de la senzor.

In afara de handler-ele de intreruperi, am implementat si functia care scrie datele intr-un fisier csv.

Rezultate Obţinute

Un proiect aproape complet, cu interactiunea MPU9250 - Arduino - MicroSD realizata. Pe cardul SD se pun datele accelerometrului si unghiurile calculate, care apoi pot fi filtrate si folosite intr-un program de gestionare de date (ex: python3)

Concluzii

Download

Jurnal

Bibliografie/Resurse

pm/prj2021/dbrigalda/position-tracking.txt · Last modified: 2021/06/04 11:48 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