archives

Utiliser IMU CMPS 14

Ne choisissez pas cette IMU pour des nouveaux montages! Elle ne sera plus pris en compte dans les futurs versions d'AOG. Préférez le BNO085

Versions 5 et 6

Sur les versions 5 et 6, le CMPS 14 est l'IMU prévu de base. Il fonctionne avec les fichiers INO fournis avec la version dans le dossier Support téléchargé.

version 4.3.10

Sur la version 4.3.10, l'utilisation de cet IMU nécessite le téléversement d'un fichier INO spécifique pour être pris en charge par AgOpenGPS.
Le fichier Autosteer_USB_cmps14.zip est téléchargeable sur le Forum AgOpenGPS officiel.
Il s'agit d'une version adaptée du code INO original AgOpenGPS Autosteer USB 4.3.10 (https://github.com/farmerbriantee/AgOpenGPS/), il est valable uniquement pour cette version.

  • Utiliser le CMPS 14 pour fournir le roulis à AgOpenGPS au lieu de MMA ou DOGS2
  • Utiliser le CMPS 14 pour fournir un cap à AgOpenGPS au lieu de BNO055
  • Utiliser le CMPS 14 pour fournir à la fois le cap et le roulis à AgOpenGPS


Emplacement : Contrairement au BNO08x, il n'est pas possible de désactiver le magnétomètre du CMPS 14, ce qui le rend très sensible à toutes les perturbation électro-magnétiques. Des tests ont montrés qu'il est déconseillé de l'installer dans le boitier contenant le PCB, sur des tracteurs récents il est même conseillé de le placer à l'extérieur de la cabine dans une boite étanche (voir exemple plus bas).

Le CMPS communique avec l'Arduino en liaison I2C, ce type de liaison ne peut pas dépasser quelques dizaines de centimètres sans subir de dégradation, nous allons donc voir comment augmenter la portée de cette liaison et ainsi pouvoir l'installer loin de toute source de perturbations.

Nous allons donc utiliser 2 convertisseur (comme celui-ci)qui vont convertir le signal I2C en quatre signaux différentiels, deux pour SCL et deux pour SDA reliés entre eux à l'aide d'un cable Ethernet blindé (catégorie 7/8 s/ftp).

Orientation : Le CMPS 14 doit être positionné PIN vers l'avant du tracteur et composants vers le haut.

Le CMPS 14 peut être connecté au PCB en 3.3v ou 5v (cependant de meilleurs résultats sont apparemment obtenus en 5v, à confirmer)

Connexion en 5v comme suit :

  • VIN → + 5V (l'une des broches + 5V disponibles sur le PCB)
  • GND → GND (une des broches GND disponible sur le PCB)
  • SCL → SCL (La broche SCL disponible entre l'ADS1115 et l'Arduino sur le PCBv2, borne prévue à l'origine pour le BNO055, voir schéma ci-dessous)
  • SDA → SDA (La broche SDA disponible entre l'ADS1115 et l'Arduino sur le PCBv2, borne prévue à l'origine pour le BNO055, voir schéma ci-dessous)

Connexion en 3.3v comme suit :

  • VIN → +3.3V (la broche 3.3v disponibles à l'emplacement du MMA, voir schéma ci-dessous)
  • GND → GND (la broche 3.3v disponibles à l'emplacement du MMA, voir schéma ci-dessous)
  • SCL → SCL (la broche 3.3v disponibles à l'emplacement du MMA, voir schéma ci-dessous)
  • SDA → SDA (la broche 3.3v disponibles à l'emplacement du MMA, voir schéma ci-dessous)


Cliquer sur l'image pour agrandir

Important : Ce montage permet de déporter l'IMU du PCB. Elle utilise pour ce fait un câble Ethernet qui permet une communication plus éloignée entre les éléments, mais ce montage ne permet en aucun cas de connecter votre IMU et/ou PCB en UDP à votre tablette!



Boîtier étanche IP68
Attention : le câble étant vers l'arrière du tracteur une fois monté (deuxième photo), le CMPS est monté à l'envers sur la première photo, les PIN doivent êtres vers l'avant du tracteur.




Installation du cmps14 en bluetooth


Big avertissement!!
ce tuto est déstiné à des utilisateurs avertis et avec un minimum de connaissances avec ide arduino.

Matériel requis : - CMPS14 - Wemos D1-R32 - Boitier étanche (un boitier à imprimer en 3D est disponible dans le fichier ZIP mentionné plus bas) - Câblage d’alimentation - Passe paroi alimentation

Attention, les esp32 ne sont compatibles qu'avec bluetooth 4.2 et moins. Un pc/tablette avec bluetooth 5 ou BLE 5 ne fonctionne pas . Si vous retenez la solution Bluetooth en ayant un bluetooth 5, il faudrait désactiver la carte intégrée et mettre un dongle USB

1) Câblage

Il vous suffira de réaliser 4 soudures, rien de plus simple : -Alimentation 3V3 du cmps sur une sortie 3V3 du Wemos -0v / GND du CMPS sur GND du Wemos -Pin SDA du CMPS sur SDA du Wemos -Pin SCL du CMPS … Photo ci-dessous pour les perdus .

2) Téléversement

Vous trouverez un ZIP dans les fichiers supports du site nommé «IMU_USB_v5_0_with_BT_serial » Dézippez le fichier vous trouverez un dossier nommé du même nom. Il faut SURTOUT ne pas déplacer les 3 fichiers et les laisser ensembles dans le dossier. Ouvrez le fichier .ino puis branchez le Wemos. Dans outils choisissez le bon port COM puis dans type de carte choisissez « WEMOS D1 MINI ESP 32 » puis cliquez sur téléverser.

3) Appairage

Rendez-vous simplement dans les réglages bluetooth de votre tablette vous devriez trouver le périphérique « IMU_ESP32_BT » Cliquez dessus il n’y a aucun code. Une fois l’appairage terminé dans « gestionnaire des périphériques » vous devriez trouver 2 nouveaux ports COM. Un des deux servira dans AgIO afin de connecter le CMPS comme s’il était en usb classique. Il ne vous reste plus qu’a l’alimenter en 12V directement sur un 12v après contact ou depuis la batterie car celui-ci accepte sans souci les 14V moteur tournant. Concernant le placement et l’orientation référez-vous aux autres rubriques IMU/CMPS14 ou tout y est expliqué Crédits : Stéphane Pailleau

AgOpenGPS

Pour certains, le BNO055 n’est pas reconnu dans le logiciel AgOpenGPS. Il y a plusieurs causes
et ce document ne traitera que de l’aspect “mauvaise configuration”.
Causes possibles :
- Mauvais branchements
- BNO défectueux
- Mauvaises soudures
- Mauvaise adresse I2C

Préparatifs

Arduino IDE
Pour commencer, ouvrez l'éditeur IDE Arduino.Ensuite, Croquis»inclure une bibliothèque
Cherchez Adafruit Unified Sensor et installez la dernière version

Ensuite, cherchez Adafruit bno055 et installez le aussi.
Ensuite, créez un nouveau sketch et collez ce code à l'intérieur

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BNO055.h>
#include <utility/imumaths.h>

Adafruit_BNO055 bno = Adafruit_BNO055(55);

void setup(void)
{
Serial.begin(9600);
Serial.println("Orientation Sensor Test"); Serial.println("");

/* Initialise the sensor */

if(!bno.begin())
{
/* There was a problem detecting the BNO055 ... check your connections */
Serial.print("Ooops, no BNO055 detected ... Check your wiring or I2C ADDR!");
while(1);
}

delay(1000);

bno.setExtCrystalUse(true);
}

void loop(void)
{
/* Get a new sensor event */
sensors_event_t event;
bno.getEvent(&event);

/* Display the floating point data */
Serial.print("X: ");
Serial.print(event.orientation.x, 4);
Serial.print("\tY: ");
Serial.print(event.orientation.y, 4);
Serial.print("\tZ: ");
Serial.print(event.orientation.z, 4);
Serial.println("");

delay(100);
}

Televersez le dans votre Nano et ouvrez le moniteur série avec une vitesse de 9600 bauds.
Si Ooops, no BNO055 detected … Check your wiring or I2C ADDR!
c’est qu’il vous faut trouvez la bonne adresse I2C.

Emmanuel COUVERCELLE 2021/01/19 20:18

Adresse I2C

Pour trouvez l’adresse I2C, vous allez televerser un scanner I2C dans le nano.
prennez le code,

// --------------------------------------
// i2c_scanner
//
// Version 1
//    This program (or code that looks like it)
//    can be found in many places.
//    For example on the Arduino.cc forum.
//    The original author is not know.
// Version 2, Juni 2012, Using Arduino 1.0.1
//     Adapted to be as simple as possible by Arduino.cc user Krodal
// Version 3, Feb 26  2013
//    V3 by louarnold
// Version 4, March 3, 2013, Using Arduino 1.0.3
//    by Arduino.cc user Krodal.
//    Changes by louarnold removed.
//    Scanning addresses changed from 0...127 to 1...119,
//    according to the i2c scanner by Nick Gammon
//    https://www.gammon.com.au/forum/?id=10896
// Version 5, March 28, 2013
//    As version 4, but address scans now to 127.
//    A sensor seems to use address 120.
// Version 6, November 27, 2015.
//    Added waiting for the Leonardo serial communication.
//
//
// This sketch tests the standard 7-bit addresses
// Devices with higher bit address might not be seen properly.
//
 
#include <Wire.h>
 
 
void setup()
{
  Wire.begin();
 
  Serial.begin(9600);
  while (!Serial);             // Leonardo: wait for serial monitor
  Serial.println("\nI2C Scanner");
}
 
 
void loop()
{
  byte error, address;
  int nDevices;
 
  Serial.println("Scanning...");
 
  nDevices = 0;
  for(address = 1; address < 127; address++ )
  {
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
 
    if (error == 0)
    {
      Serial.print("I2C device found at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.print(address,HEX);
      Serial.println("  !");
 
      nDevices++;
    }
    else if (error==4)
    {
      Serial.print("Unknown error at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.println(address,HEX);
    }    
  }
  if (nDevices == 0)
    Serial.println("No I2C devices found\n");
  else
    Serial.println("done\n");
 
  delay(5000);           // wait 5 seconds for next scan
}
téléversez le et ouvrez le moniteur série en 9600 bauds et vous devriez trouver 1 ou plusieurs périphériques I2C.
l’idéal est de ne laisser branché que le BNO pour ne trouver qu’une seule adresse

Modifications dans le code AgOpenGPS
Maintenant il suffit d’ouvrir le code de AgOpenGPS et modifier comme sur la photo l’adresse et la lettre puis de téléverser à nouveau dans le Nano. Maintenant AgOpenGPS devrait le reconnaître


Crédits : Manu COUVERCELLE

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
  • archives.txt
  • Dernière modification : 2024/02/25 12:35
  • de buched