Etape 4: Étalonnage de logiciel
Mise en garde : Mon PCB utilise un Atmega328 programmé avec Pro-MINI 8 MHZ 3, 3V bootloader. Si vous construisez ce PCB, vous devez programmer il avec le Pro-MINI 8 MHZ 3, 3V bootload et devez la sélectionner lors de l’utilisation de l’environnement Arduino. Le PCB est conçu pour utiliser un adaptateur USB-BUB, ou, je me sers, un équivalent de PL2303.
Pour le LSM303dlhc, j’ai utilisé cette bibliothèque de Pololu :
https://github.com/Pololu/lsm303-Arduino
Cela inclut une procédure pour calibrer le magnétomètre. J’ai modifié pour fonctionner avec mon Arduino et LCD5110. Il est attaché : Calibrate.zip
Calibrer : Ce programme est similaire à l’exemple de la série, mais au lieu d’imprimer les dernières lectures, il imprime un fonctionnement minimal et maximal des lectures de chaque axe du magnétomètre . Ces valeurs peuvent être utilisées pour étalonner les fonctions heading() et l’exemple de la rubrique après avoir déplacé le LSM303 à travers chaque orientation possible.
J’ai modifié afin que les minutes et la Maxs affichera sur le LCD5110. Exécution de croquis, lentement, tordre et tourner le module dans toutes les orientations. Enregistrez les minutes et la Maxs sur l’écran, puis branchez-les sur Esquisse SpotterLevel, remplaçant les valeurs dans les lignes suivantes :
Compass.m_min = (LSM303::vector) {-433, -600,-546} ;
Compass.m_max = (LSM303::vector) {570, 488, 579} ;
Cela devrait améliorer la boussole.
Pour cette application, la portion de l’accéléromètre est utilisée pour déterminer quand l’Assemblée est de niveau.
Théorie : Accéléromètre mesure accélération. La gravité est une forme d’accélération. Le module de LSM303dlhc mesure accélération dans les trois directions x, y et z (voir photo). Z est en fait de haut en bas. Dans cette application, car le LSM303 est le plus souvent fixes, l’accélération mesurée est la gravité. Donc si le LSM303 est de niveau, puis le x et y les accélérations serait 0 et z serais 1g (gravité standard). Maintenant le LSM303 est défini pour +/-2g donc 1g est environ 16384 chefs d’accusation. (Le Geek en moi dit que cela devrait être 32768!!!)
Maintenant si la LSM303 était à l’envers, la valeur de z serait-1 g, environ-16384.
Bien que probablement pas nécessaire, j’ai également écrit un programme de calibrage de l’accéléromètre, AccelCal.zip
Avis : Les photos de calibrage ont été prises avec ma première version de la portée de l’observateur. Pour obtenir la dernière version, j’ai assemblé l’Assemblée portée de spotter complet mais ne le ne pas fixer sur un trépied. Utilisez la même méthode que dans les photos.
Pour étalonner, j’ai monté mon champ d’application de l’observateur et chargés chacun des programmes.
Pour chaque programme prendre l’ensemble à l’extérieur, mettre sous tension l’Arduino. Lentement, déplacer autour dans toutes les orientations, niveau, tête en bas, portée vers le haut, portée bas, portée sur le côté droit, portée sur le côté gauche et un essorage lentement autour.
Enregistrez les valeurs min et max pour étalonner et AccelCal croquis. Ils serviront à l’étape suivante.