imu_bno08x

Utiliser IMU BNO08x

Versions 5 de AgOpenGps

Sur les versions 5, les BNO080 et BNO085 sont des IMU prévus de base. Ils fonctionnent avec les fichiers INO fournis avec la version dans le dossier Support téléchargé.

Version 4.3.10 de AgOpenGps

L'utilisation de cet IMU nécessite le téléversement d'un fichier INO spécifique pour être pris en charge par AgOpenGPS version 4.3.10.
Ce fichier est téléchargeable sur ce Github.

Il s'agit d'une version adaptée du code INO original AgOpenGPS Autosteer USB 4.3.10 ( https://github.com/farmerbriantee/AgOpenGPS/ ) pour utiliser BNO08x au lieu de MMA / Dogs2 (pour le roulis) et / ou BNO055 (pour le cap) . BNO08x est une unité de mesure inertielle qui utilise un accéléromètre à 3 axes, un gyroscope à 3 axes et (éventuellement) un magnétomètre à 3 axes pour fournir les angles de lacet, de tangage et de roulis. Ce code est compatible avec la carte Adafruit BNO085 ou Sparkfun BNO080. Le code est basé sur la bibliothèque Sparkfun BNO080, avec une amélioration spécifique de la bibliothèque pour les besoins d'AgOpenGPS. Avec ce code, vous pouvez choisir de :

  • Utilisez BNO08x pour fournir le roulis à AgOpenGPS au lieu de MMA ou DOGS2
  • Utilisez BNO08x pour fournir un cap à AgOpenGPS au lieu de BNO055
  • Utilisez BNO08x pour fournir à la fois le cap et le roulis à AgOpenGPS

Adafruit BNO085 :

Connectez votre carte BNO085 à votre PCB AgOpenGPS comme suit :

  • Carte BNO085 → PCB AOG
  • VIN → + 5V (l'une des broches + 5V disponibles sur le PCB): la carte comprend un régulateur de tension pour l'abaisser à 3,3V
  • GND → GND (une des broches GND disponible sur le PCB)
  • SCL → SCL (une des broches SCL disponibles sur le PCB)
  • SDA → SDA (une des broches SDA disponibles sur le PCB)

Il est possible d'utiliser un câble de référence “JST SH 4-PIN CABLE” pour le brancher directement sur la prise du BNO085 (les branchements avec ce connecteur se trouvent sur la partie SupportFiles>Schematics téléchargé à partir de Github)

Notez que la broche 3,3 V de la carte de dérivation BNO085 est la sortie du régulateur de tension intégré.

Sparkfun BNO080 :

Connectez votre carte BNO080 à votre PCB AgOpenGPS comme suit:

  • Carte BNO080 → PCB AOG
  • 3V3 → + 3.3V: pour PCBv2, le seul disponible est celui où le MMA est normalement connecté. Pour un PCB personnalisé, reportez-vous à cette disposition de PCB
  • GND → GND (une des broches GND disponible sur le PCB)
  • SCL → SCL (une des broches SCL disponibles sur le PCB)
  • SDA → SDA (une des broches SDA disponibles sur le PCB)

A suivre…

A suivre…

Le fichier “Autosteer_USB_4.3.10_BN08x.ino” doit être placé dans le dossier … \ Support_Files \ ArduinoCode \ Autosteer_USB_4.3.10 au lieu du fichier original “Autosteer_USB_4.3.10.ino”. Les fichiers «BNO08x_AOG.cpp» et «BNO08x_AOG.h» doivent également être placés dans le dossier … \ Support_Files \ ArduinoCode \ Autosteer_USB_4.3.10 (ce sont des fichiers supplémentaires qui ne remplacent aucun autre fichier du dossier).

Ensuite, vous pouvez ouvrir le “Autosteer_USB_4.3.10_BN08x.ino” avec Arduino IDE.

Au début de l'esquisse, vous trouverez quelques lignes de configuration :

Pour “utilisateur non avancé”, laissez les lignes de configuration avec “utilisateur avancé” avec les valeurs par défaut.

BNO08x_ADRESS : adresse du BNO, choisissez 0x4A pour la carte Adafruit BNO085, 0x4B pour la carte Sparkfun BNO080

USE_BNO08X_ROLL : mis à 1, cela forcera le .INO à utiliser le BNO08x pour rouler au lieu de MMA / DOGS2 (quel que soit l'inclinomètre que vous avez choisi dans la page de configuration du module AOG)

USE_BNO08X_HEADING : mis à 1, cela forcera le .INO à utiliser le BNO08x pour l'en-tête au lieu de BNO055 (peu importe si BNO est sélectionné ou non dans la page de configuration du module AOG)

USE_GAME_ROTATION : pour les utilisateurs avancés, utilisez le rapport vectoriel de rotation du jeu (BNO08x n'utilise que le gyroscope et l'accéléromètre pour fournir les valeurs de lacet, de tangage et de roulis) lorsqu'il est réglé sur 1 (dans ce mode, le cap n'est pas référencé au nord). S'il est défini sur 0, utilisez le rapport vectoriel de rotation (BNO08x utilisera un magnétomètre, un gyroscope et un accéléromètre pour fournir les valeurs de lacet, de tangage et de roulis). En mode Rotation Vector, le cap est normalement référencé au nord, mais pour ce faire, il est nécessaire d'étalonner le magnétomètre (voir le chapitre d'étalonnage ci-dessus).

REPORT_INTERVAL : pour les utilisateurs avancés, si vous souhaitez modifier l'intervalle de rapport du rapport de vecteur de rotation (ou de rotation de jeu)

ENABLE_GYRO_CAL : pour utilisateur avancé :

  • Réglez sur 1 si vous souhaitez activer l'étalonnage d'arrière-plan du gyroscope (non activé par défaut)
  • Réglez sur 2 si vous souhaitez désactiver l'étalonnage d'arrière-plan pour tous les capteurs. Par défaut, dans Vecteur de rotation, l'étalonnage d'arrière-plan est activé pour le magnétomètre et l'accéléromètre. Dans Game Rotation Vector, l'étalonnage d'arrière-plan n'est activé que pour l'accéléromètre.

Ensuite, vous pouvez télécharger le croquis sur votre Arduino Nano.

Même si vous choisissez d'utiliser BNO08x pour le roulis, dans la page de configuration du module AOG vous pouvez toujours choisir l'axe d'inclinomètre: le menu de sélection “Axe MMA”, changera l'axe BNO08x utilisé pour le roulis. Si vous avez besoin d'inverser la valeur de roulis pour BNO08x, il vous suffit d'activer «invert roll» dans la page de configuration du module AOG.



Crédits : Mathieu Santin

Ce site web utilise des cookies. En utilisant le site Web, vous acceptez le stockage de cookies sur votre ordinateur. Vous reconnaissez également que vous avez lu et compris notre politique de confidentialité. Si vous n'êtes pas d'accord, quittez le site.En savoir plus
  • imu_bno08x.txt
  • Dernière modification: 2022/07/28 18:43
  • de phaurigot