This is an old revision of the document!
Autor: Adrian Mihalcea
Proiectul va folosi un modul cu giroscop conectat la un Arduino pentru a indeplini functia unui boloboc: verificarea inclinarii unei suprafete.
Culegerea datelor despre inclinare va fi realizata folosind un modul cu giroscop. Acesta va fi legat I2C la placuta, iar masuratorile acestuia vor fi afisate pe un display LCD (unghiul curent in grade). Se va folosi unghiul de referinta (ce inseamna o suprafata plana) ca fiind cel de la pornirea Arduino-ului si voi folosi si un buzzer care va indica cand suprafata pe care este plasat bolobocul este orizontala (0 +- marja de eroare de 2 grade).
Componente utilizate:
Librarii folosite: Wire.h, SevSeg.h (linked mai jos)
Codul meu a fost dezvoltat folosind Arduino IDE. Integreaza Arduino-ul cu placuta cu giroscop, display-ul si buzzer-ul.
Functia setup trezeste placuta cu giroscop si initializeaza setarile displayul cu 4 cifre. Optional, afiseaza erorile gasite pe giroscop ca medie intre 200 de masuratori (presupunand ca este pe o suprafata plana), folosind functia print_errors.
In loop, la fiecare iteratie improspatez display-ul, comunic prin I2C cu MPU 6150 si primesc cele 6 registre corespunzand masuratorilor pentru 3 axe. Folosind masuratorile pentru axa oX calculez, conform datasheet-ului, diferenta de unghi fata de ultima masuratoare si updatez unghiul curent. Acesta este afisat pe display folosind functia setNumber din library-ul pentru control de 7-segment display. Daca intervalul de toleranta este respectat, scoate zgomot si buzzer-ul.