Différences entre versions de « Pololu-Zumo-Shield-Arduino-seneur-inertiel »
(9 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
{{Pololu-Zumo-Shield-Arduino-NAV}} | {{Pololu-Zumo-Shield-Arduino-NAV}} | ||
− | + | == Introduction == | |
+ | Le shield Zumo inclus des senseurs inertiels sur la carte. Ces senseurs peuvent être utilisés pour des applications avancées comme détecter des collisions et déterminer sa propre orientation. | ||
− | == | + | Tous les versin du shield Zumo comporte une boussole qui combine un accéléromètre 3 axes et un magnétomètre 3 axes dans une seule puce interfacée sur le bus I2C. Cette puce est le LSM303D {{polpl|2127}} sur un shield v1.2 ou un LSM303DLHC {{polpl|2124}} on the sur le shield Zumo original. |
− | + | ||
+ | La '''version v1.2''' inclus également un gyroscope 3 axes L3GD20H {{polpl|2129}} également interfacé sur le bus I2C. | ||
+ | |||
+ | Pololu recommande la lecture de la [https://www.pololu.com/file/download/LSM303D.pdf?file_id=0J703 Fiche technique LSM303D] (''1MB pdf, pololu''), [https://www.pololu.com/file/download/L3GD20H.pdf?file_id=0J731 Fiche technique L3GD20H] (''3MB pdf, pololu''), et/ou [https://www.pololu.com/file/download/LSM303DLHC.pdf?file_id=0J564 fiche technique LSM303DLHC] (''629k pdf, pololu'') pour comprendre comment fonctionne les senseurs afin de savoir comment les utiliser. | ||
+ | |||
+ | == Utiliser les senseurs == | ||
+ | Le shield inclus également des convertisseurs de niveau logique (dit ''level sshifter'' en anglais) qui permettent de connecter les senseurs inertiels 3.3v sur un Arduino utilisant des niveau logiques en 5V. Les senseurs, convertisseurs de niveau logique (''level shifters'') et résistances pull-up du bus I2C sont connectés, par défaut, sur les broches SCL et SDA du shield Zumo. Il est possible de les déconnecter en coupant les traces entre les paires de trou SDA et SCL, ce qui permet d'attribuer une autre fonction à ces broches SDA et SCL de votre Arduino. Notez que dans le cas d'un ancien Arduino (inférieur à R3), il sera nécessaire de faire quelques connexions additionnels pour utiliser les senseurs inertiels du shield Zumo car les anciens Arduino ne disposent pas broches SCL et SDA séparées; Reportez vous à la [[Pololu-Zumo-Shield-Arduino-configuration-cavalier|Section 3.c]] pour plus d'information concernant les connexions de la boussole. | ||
− | + | Pololu à écrit une [https://github.com/pololu/lsm303-arduino bibliothèque LSM303 pour Arduino] et une [https://github.com/pololu/l3g-arduino bibliothèque L3G pour Arduino] qui facilite l'interfaçage avec les senseurs depuis votre Arduino. Comme le démontre ce [[Pololu-Zumo-Shield-Arduino-labyrinthe|projet d'exemple]], il est possible d'utiliser le magnétomètre pour aider le Zumo à évaluer l'amplitude de ses rotations. | |
− | + | De surcroît, la combinaison de l'accéléromètre, du magnétomètre et du gyroscope de la version v1.2 du shield Zumo est suffisant pour implémenter une unité de mesure inertielle (un IMU: inertial measurement unit); | |
+ | Les senseurs utilisés sont identiques à ceux utilisé sur le MinIMU-9 v3 de Pololu. Par conséquent, vos codes Arduino écrit pour le MinIMU-9 {{polpl|2468}} (tel que l'[https://github.com/pololu/minimu-9-ahrs-arduino exemple AHRS de Pololu]) peuvent être adaptés pour fonctionner le Zumo Robot équipé d'un Shield Zumo V1.2 (contrôlé par Arduino). | ||
− | + | == Notes sur le magnétomètre == | |
+ | Notez que le magnétomètre LSM303 est affecté par les courants circulant dans les moteur et le buzzer lorsque ces derniers fonctionnent. Les lectures sont facilement influencées par les distorsions magnétiques dans l'environnement du Zumo (comme les armatures des bétons armés). Il en résulte qu'il est très difficile de déterminer la direction du Zumo avec précision en se basant sur les données du magnétomètre. Cependant, durant les tests de Pololu, le magnétomètre se révèle être très utile pour détecter des changements d'orientation relatif; par exemple, une fois les lectures du champs magnétique compensée pour un environnement particulier, ces données peuvent être utilisées pour aider le Zumo à tourner à gauche ou à droite d'un angle donné (au lieu de faire tourner les moteurs pendant un temps donné pour atteindre approximativement l'angle souhaité). | ||
− | = | + | {{ambox|text=Durant ces tests, Pololu à noté que que les piles, les moteur et le courant des moteurs affecte l'axe Z du magnétomètre plus sévèrement que les axes x et y. Par conséquent, vous souhaiterez probablement ignorer les lectures de l'axe Z. Il est généralement possible de déterminer la direction avec des résultats corrects à partir de la lecture des axes x et y du magnétomètre. Par ailleurs, vous pourriez avoir besoin d'ajuster la sensibilité du magnétomètre; si le magnétomètre retourne une valeur de '''-4096''', cela indique une sensibilité trop faible pour votre environnement.}} |
− | |||
{{Pololu-Zumo-Shield-Arduino-TRAILER}} | {{Pololu-Zumo-Shield-Arduino-TRAILER}} |
Version actuelle datée du 11 avril 2017 à 20:00
Introduction
Le shield Zumo inclus des senseurs inertiels sur la carte. Ces senseurs peuvent être utilisés pour des applications avancées comme détecter des collisions et déterminer sa propre orientation.
Tous les versin du shield Zumo comporte une boussole qui combine un accéléromètre 3 axes et un magnétomètre 3 axes dans une seule puce interfacée sur le bus I2C. Cette puce est le LSM303D lien pololu sur un shield v1.2 ou un LSM303DLHC lien pololu on the sur le shield Zumo original.
La version v1.2 inclus également un gyroscope 3 axes L3GD20H lien pololu également interfacé sur le bus I2C.
Pololu recommande la lecture de la Fiche technique LSM303D (1MB pdf, pololu), Fiche technique L3GD20H (3MB pdf, pololu), et/ou fiche technique LSM303DLHC (629k pdf, pololu) pour comprendre comment fonctionne les senseurs afin de savoir comment les utiliser.
Utiliser les senseurs
Le shield inclus également des convertisseurs de niveau logique (dit level sshifter en anglais) qui permettent de connecter les senseurs inertiels 3.3v sur un Arduino utilisant des niveau logiques en 5V. Les senseurs, convertisseurs de niveau logique (level shifters) et résistances pull-up du bus I2C sont connectés, par défaut, sur les broches SCL et SDA du shield Zumo. Il est possible de les déconnecter en coupant les traces entre les paires de trou SDA et SCL, ce qui permet d'attribuer une autre fonction à ces broches SDA et SCL de votre Arduino. Notez que dans le cas d'un ancien Arduino (inférieur à R3), il sera nécessaire de faire quelques connexions additionnels pour utiliser les senseurs inertiels du shield Zumo car les anciens Arduino ne disposent pas broches SCL et SDA séparées; Reportez vous à la Section 3.c pour plus d'information concernant les connexions de la boussole.
Pololu à écrit une bibliothèque LSM303 pour Arduino et une bibliothèque L3G pour Arduino qui facilite l'interfaçage avec les senseurs depuis votre Arduino. Comme le démontre ce projet d'exemple, il est possible d'utiliser le magnétomètre pour aider le Zumo à évaluer l'amplitude de ses rotations.
De surcroît, la combinaison de l'accéléromètre, du magnétomètre et du gyroscope de la version v1.2 du shield Zumo est suffisant pour implémenter une unité de mesure inertielle (un IMU: inertial measurement unit); Les senseurs utilisés sont identiques à ceux utilisé sur le MinIMU-9 v3 de Pololu. Par conséquent, vos codes Arduino écrit pour le MinIMU-9 lien pololu (tel que l'exemple AHRS de Pololu) peuvent être adaptés pour fonctionner le Zumo Robot équipé d'un Shield Zumo V1.2 (contrôlé par Arduino).
Notes sur le magnétomètre
Notez que le magnétomètre LSM303 est affecté par les courants circulant dans les moteur et le buzzer lorsque ces derniers fonctionnent. Les lectures sont facilement influencées par les distorsions magnétiques dans l'environnement du Zumo (comme les armatures des bétons armés). Il en résulte qu'il est très difficile de déterminer la direction du Zumo avec précision en se basant sur les données du magnétomètre. Cependant, durant les tests de Pololu, le magnétomètre se révèle être très utile pour détecter des changements d'orientation relatif; par exemple, une fois les lectures du champs magnétique compensée pour un environnement particulier, ces données peuvent être utilisées pour aider le Zumo à tourner à gauche ou à droite d'un angle donné (au lieu de faire tourner les moteurs pendant un temps donné pour atteindre approximativement l'angle souhaité).
Durant ces tests, Pololu à noté que que les piles, les moteur et le courant des moteurs affecte l'axe Z du magnétomètre plus sévèrement que les axes x et y. Par conséquent, vous souhaiterez probablement ignorer les lectures de l'axe Z. Il est généralement possible de déterminer la direction avec des résultats corrects à partir de la lecture des axes x et y du magnétomètre. Par ailleurs, vous pourriez avoir besoin d'ajuster la sensibilité du magnétomètre; si le magnétomètre retourne une valeur de -4096, cela indique une sensibilité trop faible pour votre environnement. |
Basé sur "Zumo Shield for Arduino" de Pololu (www.pololu.com/docs/0J57) - Traduit en Français par shop.mchobby.be CC-BY-SA pour la traduction
Toute copie doit contenir ce crédit, lien vers cette page et la section "crédit de traduction". Traduit avec l'autorisation expresse de Pololu (www.pololu.com)
Based on "Zumo Shield for Arduino" from Pololu (www.pololu.com/docs/0J57) - Translated to French by shop.mchobby.be CC-BY-SA for the translation
Copies must includes this credit, link to this page and the section "crédit de traduction" (translation credit). Translated with the Pololu's authorization (www.pololu.com)