This shows you the differences between two versions of the page.
pm:prj2021:dbrigalda:position-tracking [2021/05/02 21:04] horia_vlad.onofrei Detaliere |
pm:prj2021:dbrigalda:position-tracking [2021/06/04 11:48] (current) horia_vlad.onofrei [Software Design] |
||
---|---|---|---|
Line 5: | Line 5: | ||
* 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. | * 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. | ||
- | * Am inceput de la ideea unui mic aparat care poate urmari o parte a corpului, insa nu suna destul de complex. Am trecut apoi la ideea de tracking de pozitie 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. |
- | + | ||
- | * Acest proiect mi-ar fi util in caz ca vreau sa ajung sa fac vreun echipament VR care sa necesite un tracking 3D foarte precis, sau alte idei care implica tracking. | + | |
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | Butonul de start face microcontroller-ul sa inceapa sa ia date de la modulul MPU9250 si sa le puna pe cardul microSD. Daca e apasat iar, se opreste. | + | Butonul de start face o ciclare intre starea de preluare date si cea idle. |
- | Datele sunt transmise spre cardul MicroSD. | + | Initial, sistemul e idle, si se asteapta schimbarea starii, adica nu preia sau trimite date. Este aprins un LED albastru. |
- | {{:pm:prj2021:dbrigalda:schema_bloc_trpos.png|}} | + | 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. | ||
+ | {{:pm:prj2021:dbrigalda:tracking_de_pozitie.jpeg|}} | ||
+ | {{:pm:prj2021:dbrigalda:schema_bloc_trpos2.png|}} | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Lista de piese: | Lista de piese: | ||
* Placa Arduino compatibila ATmega328 | * Placa Arduino compatibila ATmega328 | ||
* Breadboard | * Breadboard | ||
- | * Card MicroSD | + | * Modul card MicroSD |
* Modul MPU9250 | * Modul MPU9250 | ||
- | * Baterii | ||
* Modul buzzer activ | * Modul buzzer activ | ||
* Butoane, LED-uri, fire, rezistente | * Butoane, LED-uri, fire, rezistente | ||
===== Software Design ===== | ===== 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 ===== | ===== 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 ===== | ===== Concluzii ===== | ||
===== Download ===== | ===== Download ===== | ||
+ | {{:pm:prj2021:dbrigalda:onofrei_horia_vlad_335cb_project_pm.zip|}} | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
+ | [[pm:prj2021:dbrigalda:position-tracking?do=export_pdf|Export to PDF]] |