Accéléromètre & Gyro tutoriel (1 / 3 étapes)

Étape 1: L’accéléromètre

De comprendre cette unité, nous allons commencer avec l’accéléromètre. Lorsque vous pensez à des accéléromètres, il est souvent utile d’une boîte en forme d’un cube avec une boule à l’intérieur de l’image. Vous pouvez l’imaginer autre chose comme un cookie ou un beignet, mais je vais imaginer une boule :

Si nous prenons cette boîte dans un endroit avec aucun champ de gravitation, ni d’ailleurs avec aucun autre champ pouvant affecter la position de la balle - la balle flotte simplement au milieu de la boîte. Vous pouvez imaginer la boîte est dans l’espace extra-atmosphérique loin-loin, loin de tout corps cosmiques, ou si un tel endroit est difficile à trouver au moins un vaisseau spatial en orbite autour de la planète où tout est en état d’apesanteur État l’imaginer. Sur la photo ci-dessus vous pouvez voir que nous attribuons à chaque axe une paire de murs (nous avons supprimé le mur Y +, alors nous pouvons regarder à l’intérieur de la boîte). Imaginez que chaque mur est sensible à la pression. Si nous nous dirigeons tout à coup la boîte vers la gauche (nous l’accélérer avec accélération 1g = 9,8 m/s ^ 2), le ballon va frapper le mur X-. Nous avons ensuite mesurer la force de pression que la balle s’applique au mur et générer une valeur de-1 g sur l’axe des X.

Veuillez noter que l’accéléromètre détecte effectivement une force qui est dirigée dans la direction opposée du vecteur d’accélération. Cette force est souvent appelée la Force inertielle ou Force fictive . Une chose vous devriez apprendre de cela est qu’un accéléromètre mesure accélération indirectement par une force qui est appliquée à l’un de ses murs (selon notre modèle, il pourrait être un ressort ou autre chose dans les accéléromètres de la vraie vie). Cette force peut être causée par l’accélération, mais comme nous le verrons dans le prochain exemple il n’est pas toujours causée par l’accélération.

Si nous prenons notre modèle et il a mis sur terre la boule va tomber sur le Z-mur et appliquera une force de 1g sur le mur du fond, comme le montre l’image ci-dessous :

Dans ce cas, la boîte n’est pas déplacer, mais nous obtenons toujours une lecture de g-1 sur l’axe Z. La pression que la balle a appliqué sur le mur a été causée par une force de gravitation. En théorie il pourrait être un autre type de force - par exemple, si vous imaginez que notre boule est métallique, plaçant un aimant en regard de la zone pourrait déplacer la balle alors il frappe un autre mur. Cela a été dit juste pour prouver que les mesures de l’accéléromètre forcent essentiellement pas d’accélération. Il se trouve que l’accélération provoque une force d’inertie qui est capturée par le mécanisme de détection de force de l’accéléromètre.

Bien que ce modèle n’est pas exactement comment un capteur MEMS est construit il est souvent utile pour résoudre l’accéléromètre des problèmes connexes. Il y a des capteurs en fait similaires qui ont des boules métalliques à l’intérieur, ils sont appelés commutateurs d’inclinaison, mais ils sont plus primitifs et généralement, ils peuvent seulement dire si l’appareil est incliné au sein de certains gamme ou non, pas la mesure de l’inclinaison.

Jusqu'à présent, nous avons analysé l’accéléromètre sur un seul axe de sortie et c’est tout ce que vous obtiendrez avec un accéléromètres axe unique. La valeur réelle des accéléromètres triaxiaux vient du fait qu’ils peuvent détecter des forces d’inertie sur les trois axes. Revenons à notre modèle de boîte et nous allons tourner les case 45 de degrés vers la droite. Le ballon va toucher 2 murs maintenant: Z - et X-comme le montre l’image ci-dessous :

Les valeurs de 0,71 ne sont pas arbitraires, elles sont en fait une approximation pour SQRT(1/2). Cela deviendra plus clair que nous présentons notre prochain modèle pour l’accéléromètre.

Dans le modèle précédent, nous avons fixé la force de gravitation et tourné notre boîte imaginaire. Dans les 2 derniers exemples, nous avons analysé la sortie en 2 positions différentes de la boite, alors que le vecteur de force est restée constant. Alors que c’était utile pour comprendre comment l’accéléromètre interagit avec les forces extérieures, il est plus pratique d’effectuer des calculs si nous fixer le système de coordonnées pour les axes de l’accéléromètre et imaginez que le vecteur de force tourne autour de nous.

S’il vous plaît jeter un oeil au modèle ci-dessus, j’ai conservé les couleurs des axes que vous puissiez faire une transition mentale du modèle précédent vers le nouveau. Imaginez que chaque axe dans le nouveau modèle est perpendiculaire aux faces respectifs de la boîte dans le modèle précédent. Le vecteur R est le vecteur de force qui consiste à mesurer l’accéléromètre (ça pourrait être la force de gravitation ou la force d’inertie des exemples ci-dessus ou une combinaison des deux). RX, Ry, Rz sont la projection du vecteur R sur le X, Y, axes Z. Veuillez noter la relation suivante :

R ^ 2 = Rx ^ 2 + Ry ^ 2 + Rz ^ 2 (EQ. 1)

qui est essentiellement l’équivalent du théorème de Pythagore en 3D.

N’oubliez pas qu’un peu plus tôt je vous disais que les valeurs des SQRT(1/2) ~ 0,71 ne sont pas aléatoires. Si vous les Branchez la formule ci-dessus, après avoir rappelé que notre force de gravitation était 1 g nous pouvons vérifier que :

1 ^ 2 = (-SQRT(1/2)) ^ 2 + 0 ^ 2 + (-SQRT(1/2)) ^ 2

en substituant R = 1, Rx = - SQRT(1/2), Ry = 0, Rz =-SQRT(1/2) en EQ.1.):

Après un long préambule de théorie, nous obtenons plus près accéléromètres de la vie réelle. Les valeurs Rx, Ry, Rz sont effectivement linéairement reliés aux valeurs qui affichera votre accéléromètre réelles et que vous peuvent utiliser pour effectuer des calculs différents.

Avant d’en arriver là nous allons parler un peu de la manière accéléromètres fournira cette information pour nous. La plupart des accéléromètres tombera dans deux catégories : analogiques et numériques. Accéléromètres numériques vous donnera des informations à l’aide d’un protocole série I2C, SPI ou USART, tandis que les accéléromètres analogiques vont afficher un niveau de tension dans une plage prédéfinie que vous devez convertir une valeur numérique à l’aide d’un module ADC (convertisseur numérique analogique). Je n’irai pas dans les détails sur le fonctionnement ADC, en partie parce que c’est un sujet aussi vaste et en partie parce que c’est différent d’une plateforme à l’autre. Certains microcontrôleurs aura un modules ADC intégré certains d'entre eux devront composants externes afin d’effectuer les conversions de l’ADC. Peu importe le type d’ADC module vous utilisez vous retrouverez avec une valeur dans une certaine gamme. Pour exemple une 10-bit ADC module va afficher une valeur dans la plage de 0..1023, note que 1023 = 2 ^ 10 -1. Un module de 12-bit ADC va générer une valeur dans la plage de 0..4095, note que 4095 = 2 ^ 12-1.

Nous allons passer en examinant un exemple simple, supposons que notre module 10 bit ADC nous a donné les valeurs suivantes pour les trois canaux de l’accéléromètre (axes) :

AdcRx = 586
AdcRy = 630
AdcRz = 561

Chaque module ADC aura une tension de référence, supposons que dans notre exemple, c’est 3.3V. Pour convertir une valeur de 10 bit adc en tension, nous utilisons la formule suivante :

VoltsRx = AdcRx * Vréf / 1023

Un petit mot ici : pour 8 bit ADC le dernier diviseur serait 255 = 2 ^ 8-1 et pour le dernier diviseur de 12 bit ADC serait 4095 = 2 ^ 12 -1.

Appliquant cette formule à tous les 3 canaux, nous obtenons :

VoltsRx = 586 * 3.3V / 1023 = ~ 1.89V (nous rond tous les résultats à 2 décimales)
VoltsRy = 630 * 3.3V / 1023 = ~ 2.03V
VoltsRz = 561 * 3.3V / 1023 = ~ 1.81V

Chaque accéléromètre a un niveau de tension zéro-g, vous pouvez le trouver dans les specs, c’est la tension qui correspond à 0g. Pour obtenir une valeur de tension signé, que nous devons calculer le déplacement de ce niveau. Disons que notre niveau de tension de 0g est VzeroG = 1.65V. Nous calculons la tension passe de tension zéro-g comme suit::

DeltaVoltsRx = 1.89V - 1.65V = 0.24V
DeltaVoltsRy = 2.03V - 1.65V = 0.38V
DeltaVoltsRz = 1.81V - 1.65V = 0.16V

Nous avons maintenant nos lectures de l’accéléromètre en Volts, il n’est toujours pas en g (9,8 m/s ^ 2), pour faire la finale conversion nous appliquons la sensibilité de l’accéléromètre, généralement exprimée en mV/g. disons que notre sensibilité = 478.5mV / g = 0.4785V / g. les valeurs de sensibilité se trouvent dans les spécifications de l’accéléromètre. Pour obtenir les valeurs de force finale exprimées en g, nous utilisons la formule suivante :

RX = DeltaVoltsRx / sensibilité

RX = 0.24V / 0.4785V / g = ~ 0,5 g
Ry = 0.38V / 0.4785V / g = ~ 0,79 g
RZ = 0.16V / 0.4785V / g = ~ 0,33 g

Nous pourrions bien sûr combiner toutes les étapes en une seule formule, mais je suis passé par toutes les étapes afin d’indiquer clairement comment vous allez de lectures de l’ADC à une composante du vecteur force exprimée en g.

RX = (AdcRx * Vréf / 1023 - VzeroG) / sensibilité (EQ. 2)
Ry = (AdcRy * Vréf / 1023 - VzeroG) / sensibilité
RZ = (AdcRz * Vréf / 1023 - VzeroG) / sensibilité

Nous avons maintenant tous les 3 composantes qui définissent notre vecteur de force d’inertie, si l’appareil n’est pas assujettie à d’autres forces autres que la gravitation, on peut supposer que c’est le sens de notre vecteur de force de gravitation. Si vous voulez calculer l’inclinaison de l’appareil par rapport au sol, vous pouvez calculer l’angle entre ce vecteur et l’axe Z. Si vous êtes également intéressé à la direction par axe d’inclinaison, vous pouvez fractionner ce résultat en 2 composants : inclinaison de l’axe X et Y qui peut être calculée comme l’angle entre le vecteur de la gravitation et de X / Y axes. Calcul de ces angles, c’est plus simple que vous pourriez penser, maintenant que nous avons calculé les valeurs pour Rx, Ry et Rz. Revenons à notre dernier modèle de l’accéléromètre et faire quelques notes supplémentaires :

Les angles qui nous intéressent sont les angles entre X, Y, les axes Z et la force vector R. Nous allons définir ces angles Axr, Ayr, Azr. Vous pouvez remarquer de la triangle à angle droit formé par R, Rx qui :

COS(AXR) = Rx / R et de même :
COS(Ayr) = Ry / R
COS(AZR) = Rz / R

Nous pouvons déduire de EQ.1.): que R = SQRT (Rx ^ 2 + Ry ^ 2 + Rz ^ 2).

On retrouve maintenant nos angles à l’aide de arccos() (la fonction cos() inverse) :

AXR = arccos(Rx/R)
Ayr = arccos(Ry/R)
AZR = arccos(Rz/R)

Nous avons parcouru un long chemin pour expliquer le modèle de l’accéléromètre, juste pour en arriver à ces formules. Selon vos applications, vous pouvez utiliser les formules intermédiaires que nous avons dérivé. Nous présenterons également le modèle de gyroscope bientôt, et nous allons voir comment les données accéléromètre et gyroscope peuvent être combinées pour fournir des estimations plus précises d’inclinaison.

Mais avant de faire que nous allons faire quelques notations plus utiles :

cosX = cos(Axr) = Rx / R
cosY = cos(Ayr) = Ry / R
cosZ = cos(Azr) = Rz / R

Ce triplet est souvent appelé Cosinus , et il représente essentiellement le vecteur unitaire (vector avec longueur 1) qui a le même sens que notre vecteur R. Vous pouvez facilement vérifier que :

SQRT (cosX ^ 2 + cosY ^ 2 + cosZ ^ 2) = 1

Il s’agit d’une belle propriété puisqu’il nous dispense de la surveillance de la modulus(length) du vecteur R. Souvent si nous sommes seulement intéressés en direction de notre vecteur inertiel, il est logique de normaliser son module afin de simplifier les autres calculs.

Articles Liés

MPU6050 : Arduino 6 axes accéléromètre + Gyro - GY 521 Test & Simulation 3D

MPU6050 : Arduino 6 axes accéléromètre + Gyro - GY 521 Test & Simulation 3D

Sont vous qui cherchent à faire votre propre drone quadcopter ou RC avion avec Arduino, mais ne sais pas comment faire pour obtenir le travail de gyroscope ? Peut-être vous avez déjà acheté quelques modules de 6 axes MPU6050 (sur les conseils de brea
Arduino Nano - tutoriel accéléromètre numérique 3 axes 12 bits/8 bits MMA8452Q

Arduino Nano - tutoriel accéléromètre numérique 3 axes 12 bits/8 bits MMA8452Q

Le MMA8452Q est un accéléromètre intelligente, faible puissance, trois axes, capacitif, micro-usinés avec une résolution de 12 bits. Options programmables d'utilisateur flexible sont fournies avec l'aide des fonctions incorporées dans l'accéléromètre
Arduino / transformation - SIX axes GYRO & accéléromètre

Arduino / transformation - SIX axes GYRO & accéléromètre

Salut tout le monde! Aujourd'hui, je voulais essayer le module MPU 6050 de GY-521 accéléromètre a.k.a. Découvrez la vidéo et suivez l'étape suivante pour la liste de pièces, de Code et de schéma.Ce que vous avez besoin ?IDE Arduino (je suppose que vo
Exploration d’accéléromètre et magnétomètre LSM303DLHC

Exploration d’accéléromètre et magnétomètre LSM303DLHC

Le LSM303 combine les lectures de champ électromagnétique de la terre comme un magnétomètre avec des lectures de la force de gravitation de la terre comme un accéléromètre triple-axe. Cette information fait un système de navigation compact.Comme il e
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
Simple accéléromètre dans labVIEW

Simple accéléromètre dans labVIEW

Il s'agit d'un tutoriel de base sur la façon de se connecter l'un IC d'accéléromètre ADLX345 (trouvé sur le PmodACL) à labVIEW. Le but ici est de configurer un projet simple qui va lire les valeurs de l'accéléromètre et calibrer les entrées afin qu'i
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
Manette de jeu USB avec souris Tilt-accéléromètre

Manette de jeu USB avec souris Tilt-accéléromètre

Faire une manette de jeu avec un accéléromètre à l'intérieur!Ce tutoriel de projet va vous montrer comment vous pouvez convertir une manette de console de jeu dans un clavier souris USB pour jouer à des jeux sur votre PC. La manette de jeu USB peut ê
Guide de gyroscope et accéléromètre avec Arduino, y compris le filtrage de Kalman

Guide de gyroscope et accéléromètre avec Arduino, y compris le filtrage de Kalman

ce guide a été publié tout d'abord lors du forum de l'Arduino et peut être trouvé ici : http://arduino.cc/forum/index.php/topic, 58048.0.htmlJ'ai juste elle publiée, donc encore plus obtiendrez utilisation de celui-ci. Le code peut être trouvé ici :h
Projet Arduino : Gyroscope/accéléromètre MPU-6050 et Adafruit moteur pilote bouclier

Projet Arduino : Gyroscope/accéléromètre MPU-6050 et Adafruit moteur pilote bouclier

Bonjour les gars, si vous envisagez d'utiliser le module MPU 6050 gyroscope/accéléromètre ou L329D adafruit moter pilote pare-avec Arduino pour votre prochain projet puis vous sont sur le bon endroit, parce que dans l'article je partage une vidéo ave
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ô
* Préalable * SPI sur la facture pro forma : communication avec un accéléromètre 3 axes SPI à l’aide d’un Pi de framboise

* Préalable * SPI sur la facture pro forma : communication avec un accéléromètre 3 axes SPI à l’aide d’un Pi de framboise

guide étape par étape sur comment mettre en place des Raspbian et communiquer avec un périphérique SPI à l'aide de la bibliothèque de SPI bcm2835 (pas peu cogné!)C'est encore très préliminaire... J'ai besoin d'ajouter des meilleures photos de raccord
ACCÉLÉROMÈTRE & enregistreur + MAKE & utilisation

ACCÉLÉROMÈTRE & enregistreur + MAKE & utilisation

Contexte et butIl y a quelques semaines, un ami a brisé son avant-bras : elle était dans un autobus dont le chauffeur a violemment tiré les freins, et elle est tombée. Cela m'a rappelé les quelques fois où j'ai eu (poliment) rappelle le chauffeur de
Robot accéléromètre contrôlée (ramassage et lieu)

Robot accéléromètre contrôlée (ramassage et lieu)

La plupart des robots industriels est encore programmée en utilisant le processus d'enseignement typique, grâce à l'utilisation du robot enseignent pendentif. Dans le présent document propose un système pour contrôler un robot industriel à l'aide de