Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:dbrigalda:position-tracking [2021/05/02 22:20]
horia_vlad.onofrei adaugare buton export PDF
pm:prj2021:dbrigalda:position-tracking [2021/06/04 11:48] (current)
horia_vlad.onofrei [Software Design]
Line 7: Line 7:
   * 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 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ă ===== ===== Descriere generală =====
-Butonul de start face o ciclare intre starea de preluare date, idle, tranzitiva ​si trimitere date la calculator.+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. Niciun LED nu e aprins.+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 ​tranzitiva. +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.
- +
-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. 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 MicroSDprin 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.+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. Astfelexista 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.
  
-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.  +Datele de pe cardul SD pot fi apoi accesate ​de pe calculator, cel mai probabil printr-un script pythondeoarece datele sunt doar pe un fisier csv.
-Se asteapta ​un raspuns de la calculator. Dupa astase 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, ​dupa fiecare minut trecut. 
- +{{:​pm:​prj2021:​dbrigalda:​tracking_de_pozitie.jpeg|}} 
-Atunci cand are loc preluarea datelor de la senzor, un buzzer va face un sunet scurt, ​in fiecare minut trecut. +{{:​pm:​prj2021:​dbrigalda:​schema_bloc_trpos2.png|}}
- +
-{{:​pm:​prj2021:​dbrigalda:​schema_bloc_trpos1.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]] [[pm:​prj2021:​dbrigalda:​position-tracking?​do=export_pdf|Export to PDF]]
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