Non je n'ai pas boudé le site, bien au contraire...
Aujourd'hui, je suis face à une difficulté de "time".
je suis entrain de programmer un Module MPU6050 qui comprends 7 capteurs sur 6 axes:
- 3 pour l'acceleration [X-Y-Z]
- 3 pour le gyro [X-Y-Z]
Coté progammation et pic:
-MPLAB X v5.10
-Compliteur XC8 v2.31
-PIC18F4550 (avec oscill interne)
-I²C pour communiquer avec le Module
-UART pour afficher en liaison serie avec TeraTerm
1/Accel
les valeurs Brutes des 3 Axes Acc sont bien lues-->ok
je convertis ces valeurs et je calcul les angles en degres-->ok
2/Gyro
les valeurs Brutes des 3 Axes Gyro sont bien lues-->ok
je convertis ces valeurs et je calcul les offset sur les 3 axes gyro-->ok
je retranche bien ces offsets dans la suite du programme-->ok
je convertis bien ces valeurs en °/S pour obtenir des degres-->
3/Association des valeurs GYRO & Acc pour eliminer/compenser les perturbation:
Application du filtre Passe-Bas sur Acc-->ok
Application du filtre Passe-Haut sur Gyro->Nok
Biensur, vous l'aurez tous compris, je ne suis pas un génie et je n'ai pas réinventer la poudre (je me suis inspirer d'un programme Arduino)...
il existe une fonction qui permet de calculer un laps de temps ecouler entre 2 moments sans pour autant arreter le programme de fonctionnement: fonction milli();
cette fonction retourne un laps de temps entre 2 moments....
j'essaye de trouver une fonction similaire adapter sur nos PIC sans passer par les interruptions qui ferait une pause de sequence fatale pour le calcul.
j'avais pensé à une sorte d'interruption "vituelle", juste un flag de debordement en incrementant un compteur....
auriez vous une idée voir uen fonction toute faite???
evidemment n'etant pas egoiste, le projet terminé, je le proposerai en TUTO
Merci à vous..
franck


