ACCÉLÉROMÈTRE & enregistreur + MAKE & utilisation (4 / 9 étapes)

Étape 4: Utilisez-le - étalonnage

Pourquoi avons-nous besoin de calibrer ?

Le capteur n’est pas déjà étalonné en usine ?
Voici les dix lectures consécutives (accélérations suivies des vitesses angulaires; x, y, z dans les deux cas) avec la GY521 au point mort, position verticale (axe + X vers le haut) :

  • 17088 208 5-1048-1-216
  • 17028 308-1320 4 3 -250
  • 16988 360 3 7-1212-236
  • 16876 376-1032 -13-36-218
  • 16972 244-1348 -13-25-226
  • 17060 316--1156 2-11-224
  • 16948 328 -31-1300-224 0
  • 17016 332-1124 1-1 -209
  • 17088 348-1088 -6-27 -238
  • 17072 284-1104 -13-24 -228

Si l’appareil était vraiment verticale, les lectures pour les accélérations doivent être (voir ci-dessous la raison): (16384, 0, 0) ; et si l’appareil était vraiment encore, les lectures pour le gyroscope devrait être: (0,0,0). Donc : les lectures auraient tous dû: [16384, 0, 0, 0, 0, 0]: quel est le problème ? Ou bien, est en fait quelque chose de mal ?

Trois choses sont passent sans doute :

  • l’appareil est toujours, au moins sans mouvement perceptible, mais c’est probablement pas parfaitement vertical,
  • Il y a signal bruit, et c’est probablement la cause de la fluctuation de la lecture instantanée,
  • les lectures sont brutes, ne pas calibré, c’est pourquoi ils sont « déviés », en moyenne.

Alors, allons-y étape par étape.

ADC de le MPU6050

Le MPU6050 a un intégré ADC (convertisseur analogique-numérique) qui renvoie chaque canal (accélérations et vitesses angulaires, chaque à x, y, z) en 16 bits. Donc 2 ^ 16 résultats différents sont possibles: 0 à 65535, ou -32768 à 32767. Cette gamme de lectures est mappée dans la configuration standard de + - 2g en accélérations et +-250 deg/s à des vitesses angulaires. Puis 1 g correspond à 16384 LSB (moins significatives Bit, ou des unités brutes numériques de lecture), et 1 deg/s correspond à 131 LSB.

Les deux gammes peuvent être changées dans les paramètres de configuration via le logiciel à travers le code de Jeff Rowberg (voir étape précédente). Les possibilités sont :

  • Gammes d’accélération: + - 2g, 4g, 8g, 16g
  • Gammes de gyroscopes: +-250, 500, 1000, 2000 deg/s.

Note que, en raison de la contrainte de l’ADC de 16 bits, étendre les gammes de mesures diminue les sensibilités : la gamme de + - 4 g mappée dans une distance de lecture de (-32768, 32767) donne 8192 LSB/g.

Ainsi, les lectures brutes peuvent être convertis en « physique » avec les sensibilités connues sont :

  • 1,042969 0,012695 - 0,063965 0,038168 - 0,007634 - 1,648855
  • 1,039307 0,018799 - 0,030534 0,080566 0,022901 - 1,908397
  • 1,036865 0,021973 - 0,053435 0,073975 0,022901 - 1,801527
  • 1,030029 0,022949 - 0,062988 - 0,099237 - 0,274809 - 1,664122
  • 1,035889 0,014893 - 0,082275 - 0,099237 - 0,190840 - 1,725191
  • 1,041260 0,019287 - 0,070557 - 0,015267 - 0,083969 - 1,709924
  • 1,034424 0,020020 - 0,079346 - 0,236641 0,000000 - 1,709924
  • 1,038574 0,020264 - 0,068604 0,007634 - 0,007634 - 1,595420
  • 1,042969 0,021240 - 0,066406 - 0,045802 - 0,206107 - 1,816794
  • 1,041992 0,017334 - 0,067383 - 0,099237 - 0,183206 - 1,740458
  • Unités: g et deg/s

Bon, mais... quel est le résultat réel ? Combien de décimales peuvent servir correctement ? J’ai choisi 6 décimales, mais pourquoi pas 10 ?

Manipulation des nombres

Ce que nous pouvons dire est que, avec un niveau de confiance de 95 % (basé sur tous les enregistrements de l’étalonnage, pas seulement les 10 ci-contre) la moyenne peut être calculée d’outils statistiques et de respect des règles de chiffres significatifs. Voir ici la feuille de calcul, dont les résultats sont :

  • AX = 17002 +-5 lb <> – 1.038 +-0,000 g
  • AY = 328 +-4 LBS <> – 0,020 g +-0,000
  • AZ =-1170 +-6 LBS <> –-0.071 +-0,000 g
  • GX = -1,9 +-0, 7 LBS <> – -0,014 +-0,005 º / s
  • GY = 0,6 +-1. 1 LBS <> – 0,004 +-0,008 º / s
  • GZ =-227 +-1 lb <> –-1.730 +-0,007 º / s

Clairement, il suffit de regarder les résultats : les lectures d’accélération semblent être « fiable » et Gy n’est pas. Mais même ces moyennes « statistiquement corrigées » ne sont toujours pas ce que l'on pourrait s’attendre ! L’accélération doit être de 1,000 ; et, en outre, on peut se demander pourquoi la moyenne de Gz est si élevée, si l’appareil n’était pas en mouvement.

Entrez donc, la calibration - enfin !

Étalonnage (de l’accéléromètre)

Première Remarque : étalonnage n’est pas destinée à corriger les résultats d’un capteur défectueux. Si d’après les résultats précédents, nous pensons que capteur Gz est probablement cassée ou miss-connecté, alors il n’y a probablement aucun étalonnage qui peut le fixer.

Deuxième remarque : un étalonnage compare lectures, ou des lectures avec des hypothèses. Extrapolation au-delà de ces lectures nécessite des soins.

La MPU6050 affiche une relation linéaire théorique entre les accélérations mesurées ou des vitesses angulaires et la sortie. (La fiche de spécification du produit mentionne une « non linéarité » de 0,5 % et 0,2 %, respectivement ; « axe transversal sensitivity", le montant de la modification introduite dans un axe par l’application d’accélération ou vitesse angulaire sur un autre axe, est de 2 %).

Alors, il pourrait être possible d’appliquer des corrections pour les équations de conversion. Dans le cas précédent, pour les accélérations, la correction de l’erreur de gain conduit à :

  • AX(g) = (Ax(LBS)) / (16384 + 618)

Déviations offset peuvent être également corrigées :

  • Ay(g) = (Ay(LBS) - 328) /(16384-328)
  • AZ(g) = (Az(LBS) +1170)/(16384+1170)

Cette procédure de compensation pourrait être correct IF nous sommes sûrs que l’accéléromètre était vraiment verticale (+ X vers le haut) lorsque les mesures d’étalonnage ont été prises - dans le cas contraire, il n’est pas correct. C’est peut-être que l’erreur ainsi introduite est petit, mais il n’est cependant pas correct. Et, malheureusement, il est difficile pour vous assurer de l’exactitude de la verticalité avec lequel le MPU6050 est placé au cours de l’étalonnage.

Une procédure d’étalonnage alternative (le "critère de six positions") serait de lire six fois l’accélération entraîne, avec l’appareil photo. Sur chacune de ces instances, la sonde devait être activée pour que chaque fois un autre axe est sur la "verticale" (+-x/y/z). Les lectures sur chaque poste pour tous les axes fournit suffisamment d’informations pour un étalonnage détaillé.

Une description simple de cette procédure peut être trouvée ici; info plus précise ici; plus grave ici.

Quelle que soit la position du capteur, s’il ne bouge pas, alors la norme ou le module de l’accélération vecteur devrait être 1 g (ou selon ce qui est l’accélération de la pesanteur dans votre emplacement). Cela permet également à des fins d’étalonnage dans n’importe quelle position du capteur.

Étalonnage (de l’accéléromètre) autrement qu’avec G

Deux tests simples de réglage supplémentaire semblent possibles, même si je n’ai pas développé leur :

  • Chute libre : un accéléromètre en chute libre devrait lire (0,0,0), quel que soit son orientation spatiale. Il sera probablement difficile de recueillir suffisamment de données avant d’appliquer un pare-étincelles (de mon 7ème étage il faudra le testeur à peine plus de 2 secondes pour atteindre la rue).
  • Pendule : Un pendule sur dont bob est le GY521 permettant de mesurer les accélérations et vitesses angulaires qui sont relativement faciles à calculer.

Étalonnage (du Gyroscope)

La procédure standard utilisée pour le calibrage de l’accéléromètre peut être utilisée pour le contrôle de décalage du gyroscope, mais il ne fournit aucune idée sur l’erreur de gain. Si l’erreur de gain doit être vérifié, je suppose qu’un pendule calibré peut être obligatoire.

Combien de temps pour l’échauffement ? Et pour l’étalonnage ?
Un graphique est attaché montrant les lectures enregistrées aussi rapidement que possible après la mise sous tension de l’Arduino. Aucune période d’échauffement n’est apparent - ou, s’il y en a, semble-t-il, c’est très court et sans effet pratique pour mes besoins.

La question de combien de temps est requise pour la lecture des données d’étalonnage peut être converti en un problème statistique : combien d’échantillons est nécessaires dans une population générale d’évaluer avec précision la moyenne ? La réponse est : autant que nécessaire pour obtenir des résultats stables. Il y a des expressions explicites pour le nombre d’échantillons, mais, en général, et lorsque c’est possible, il est préférable de faire autant d’hypothèses sur la population que possible. Un tableau ci-joint montre l’évolution de l’estimation de la hache avec la taille de l’échantillonnage. Après 10-15 secondes de lectures, les résultats sont assez stables, et ma recommandation serait de lire pour 20-25 s à une fréquence d’au moins 25 Hz.

Articles Liés

Accéléromètre-enregistreur avec mémoire carte SD

Accéléromètre-enregistreur avec mémoire carte SD

un appareil enregistreur pour mesurer les forces sur un roller coaster et des enregistrer sur une carte SD.Il est également possible de modifier le logiciel dans l'unité, alors il peut mesurer d'autres choses s'il peut être connecté à un bus i2c.Top
Mesure d’angle à l’aide de gyroscope, accéléromètre et Arduino

Mesure d’angle à l’aide de gyroscope, accéléromètre et Arduino

le dispositif est un prototype rugueux de ce qui finira par devenir un robot auto balance, il s'agit de la deuxième partie de la chose de trou (lu accéléromètre et commander un moteur à l'équilibre). La première partie avec seulement le gyroscope peu
Comment programmer un accéléromètre Arduino pour les molettes de contrôle

Comment programmer un accéléromètre Arduino pour les molettes de contrôle

Commande de mouvement est toujours quelque chose qui a atteint un sommet de mon intérêt. Il s'agit surtout si récemment quand j'ai découvert combien il est facile Arduino rend au programme. Une fois mis en place correctement, cela peut facilement dev
Intel Edison IoT - Servo contrôle utilisant l’accéléromètre

Intel Edison IoT - Servo contrôle utilisant l’accéléromètre

Bonjour à tous, je suis parmi les gars chanceux qui ont reçu une carte mère Edison Intel et le bosquet IoT Kit. J'ai passé beaucoup de temps pour en savoir plus sur ce nouveau Conseil d'Edison et Arduino impressionnant style de codage. Ils sont vraim
Utiliser un accéléromètre et un Gyroscope avec Arduino

Utiliser un accéléromètre et un Gyroscope avec Arduino

j'ai acheté récemment une combinaison 3 axes accéléromètre et le gyroscope 2 axes de Sparkfun et je voulais mettre du code j'ai utilisé pour le faire marche.  Je suis décidé de l'utiliser dans un Arduino base contrôleur MIDI que je vais poster bientô
Comment utiliser le RFduino avec un accéléromètre axe 6

Comment utiliser le RFduino avec un accéléromètre axe 6

Taille de Check-out bout de la RFduino du doigt, Arduino compatible, sans fil activé micro contrôleur :http://www.rfduino.com/Product/rfd90101-rfduino-2p...Cette instructable va vous montrer comment s'interfacent avec l'accéléromètre/gyroscope avec l
Connectez loger ouvert et accéléromètre

Connectez loger ouvert et accéléromètre

Je vous écris donc je me souviens comment faire ce dernier. Il s'agit d'un hack j'ai quelques années auparavant et justes tiré du placard d'utiliser à nouveau.BACKROUNDIl est fréquent que vous voulez enregistrer les données d'un accéléromètre, d'un d
Raspberry Pi - ADXL345 accéléromètre 3 axes Python Tutorial

Raspberry Pi - ADXL345 accéléromètre 3 axes Python Tutorial

Le ADXL345 est un petit, léger, ultra basse puissance, accéléromètre 3 axes avec mesure de (13 bits) de haute résolution à jusqu'à ±16 g. sortie numérique données sont au format 16-bit twos complément et sont accessible via l'interface numérique I2 C
GEO Data Logger : Arduino + GPS + SD + accéléromètre pour enregistrer, horodatage et les données des capteurs géo-tag

GEO Data Logger : Arduino + GPS + SD + accéléromètre pour enregistrer, horodatage et les données des capteurs géo-tag

mises à jour17 octobre 2013: J'ai publié un guide sur l'utilisation de votre téléphone Android pour accomplir une tâche similaire en s'appuyant sur votre Android appareil construit dans le GPS et les capteurs.6 février 2013: En vedette sur GeoAwesome
MSP430 accéléromètre microSD Datalogger

MSP430 accéléromètre microSD Datalogger

Ce projet a commencé comme un enregistreur de données EMG étudier la maladie de Parkinson de mon père, mais après quelques tests que j'ai déterminé portant les électrodes n'était pas pratique pour l'entrée de données à long terme que j'ai voulu faire
Servo commande via Bluetooth avec l’accéléromètre

Servo commande via Bluetooth avec l’accéléromètre

Dans notre projet, nous commandera un servomoteur via bluetooth. Nous le faisons avec les mesures de contrôle accéléromètre sensible aux mouvements.plus d'informations : http://Make.robimek.com/servo-control-over-Bluetooth-with-accelerometer/Étape 1:
Interaction avec un OLED et un accéléromètre

Interaction avec un OLED et un accéléromètre

Dans le tutoriel précédent, nous avons appris comment utiliser un écran OLED pour afficher différentes formes. Nous avons commencé par dessiner un pixel, et de là, nous étions capables de dessiner des lignes, des rectangles, carrés et cercles. Toutef
Contrôle analogique accéléromètre d’un Servo

Contrôle analogique accéléromètre d’un Servo

Il s'agit d'une méthode d'utilisation de la sortie d'impulsions carrées d'un accéléromètre deux axes de Memsic pour commander un servo. Cependant, contrairement à d'autres méthodes qui utilisent un dispositif microcontrôleur, je vais montrer vous com
Accéléromètre basé reconnaissance de gestes pour contrôler une LED

Accéléromètre basé reconnaissance de gestes pour contrôler une LED

Ces documents et les informations contenues dans cette instructable sont fournies par les étudiants inscrits au logiciel des lieux (www.softwareofplaces.com)Classe l'Université PUC-Rio. Le contenu représenté ici est le projet définitif de l'élève pou