Table des matières

Utiliser IMU BNO08x

Introduction

Versions 5 et 6 de AgOpenGps

Sur les versions 5 et 6, les BNO080 et BNO085 sont des IMU prévus de base. Ils fonctionnent avec les fichiers INO correspondants à la version.

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 :

Brochage

Adafruit BNO085 :

Connectez votre carte BNO085 à votre PCB AgOpenGPS comme suit :

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:

Conseil d'orientation

La flèche rouge doit être vers l'avant(sens de marche du tracteur ou autre) le module doit être bien a plat a l'horizontale sur le tracteur et bien fixé, ceci pour éviter toute modification du cap pendant le travail.

Étalonnage


Pensez à bien vérifier que le devers indiqué correspond au sens de la pente (Cf image). Sinon cliquez sur Invert Roll pour inverser le sens du devers.



Version 4.3.10 : Configuration et téléchargement d'Autosteer_USB_4.3.10_BN08x

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é :

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