Voir la source de Accéléromètre MMA7361
De Wiki Arobose
Aller à :
Navigation
,
rechercher
Un accéléromètre est un capteur qui permet de mesurer l'accélération linéaire d'un objet mobile. C'est un capteur utile pour un robot. Il va pouvoir par exemple détecter les chocs ou une pente. Couplé à un gyroscope (mesure de la vitesse angulaire), il devient un composant de la centrale inertielle qui permet de localiser le robot. == Accéléromètre 3 axes MMA7361 == Ce module est basé sur l'accéléromètre 3 axes MMA7361 de Freescale. Il est possible de régler la précision entre 2 valeurs. En effet, un interrupteur permet de choisir une précision de 1,5g (800mV/g) ou de 6g (206mV/g). Ce capteur ratiométrique retourne une tension analogique proportionnelle à l'accélération et à la tension d'alimentation Vcc. La tension retournée est comprise entre 0 et 3,3V (alimentation du MMA7361). Elle est centrée sur 1,65V qui correspond à 0g théorique. Cette valeur peut légèrement changer selon le capteur. Il est donc préférable de mesurer cette valeur. == Tests == Nous avons tester ce capteur avec la [[Carte Romeo]] en utilisant le convertisseur analogique / numérique 10 bits (1024) avec une tension de référence Vcc (5V). Le principe et les fonctions du convertisseur sont expliqués [[Carte Romeo |ici]] L'axe X est branché sur A5 (ADC0), Y sur A4 (ADC1) et Z sur A3 (ADC4). Nous choisissons une précision de 1,5g (800mV/g). '''Attention''' : le cable fournit avec le capteur ne correspond pas au brochage de la ROMEO. Il faut inverser la masse (noir) et alimentation (rouge) sur le connecteur noir allant sur la carte. === Exemple de code === ==== Langage Arduino ==== Un exemple avec le langage ARDUINO est expliqué [http://www.dfrobot.com/wiki/index.php/Triple_Axis_Accelerometer_MMA7361_%28SKU:_DFR0143%29 |ici] ==== Langage C ==== Dans un premier temps, nous allons lire la valeur sur l'entrée analogique. Puis nous allons définir l'accélération pour chaque axe en tenant compte de la précision et de la valeur du 0. <syntaxhighlight lang="c"> #define VALUE_ZERO_G 1.7 #define SENSIBILITY 0.8 void setup(void) { adc_setup(); } int main(void) { int adc_x, adc_y, adc_z; double acc_x, acc_y, acc_z; setup(); while (1) { /* X-axe */ adc_x = adc_read(0); acc_x = (double) (adc_x * 5) / 1023; acc_x -= VALUE_ZERO_G; acc_x /= SENSIBILITY; /* Y-axe */ adc_y = adc_read(1); acc_y = (double) (adc_y * 5) / 1023; acc_y -= VALUE_ZERO_G; acc_y /= SENSIBILITY; /* Z-axe */ adc_z = adc_read(4); acc_z = (double) (adc_z * 5) / 1023; acc_z -= VALUE_ZERO_G; acc_z /= SENSIBILITY; } return 0; } </syntaxhighlight> [[Category:Produits]]
Revenir à la page
Accéléromètre MMA7361
.
Affichages
Page
Discussion
Voir le texte source
Historique
Outils personnels
Connexion
Navigation
Accueil
Communauté
Actualités
Modifications récentes
Page au hasard
Aide
Rechercher
Boîte à outils
Pages liées
Suivi des pages liées
Pages spéciales
Catégories
[
×
]
Produits
[
×
]
Tutoriels