Module Pmodnav - IMU 9 axes + Baromètre LSM9DS1 / LPS25HB

Conçu pour être piloté par un arduino via une liaison SPI, ce module Pmod intègre un capteur IMU 9 axes de type LSM9DS1 (accéléromètre 3 axes, gyroscope 3 axes, magnétomètre 3 axes) associé à un baromètre numérique LPS25HB. 

Prix : 37,25 €
TTC
31,04 € HT
Dont 0,01 € d'eco-participation
Product availability: Rupture de stock
Code PMODNAV

Reprise 1 pour 1         Frais de port à partir de 9 €   infos

Fonction du moduleInterface du moduleConnectique du module


Doté d'un connecteur mâle 1 x 6 broches, ce module pourra être déporté via des cordons optionnels (voir modèles en bas de page).
 
Ce module est soumis au contrôle de la réglementation américaine relative à l’exportation (15 CFR Part 730 et. seq.). 
  
 
Exemple d'application avec un arduino™
  
/************************************************************************
*
* Test du module Pmod IMU 9 axes + Baromètre (basé sur le programme de Jim Lindblom)
*
*************************************************************************
* Description: Pmod_NAV
* Toutes les données (accéléromètre, gyroscope, magnétomètre) sont affichées
* dans le moniteur série
*
* Matériel
* 1. Arduino Uno
* 2. Module Pmod NAV (télécharger la bibliothèque
* https://github.com/sparkfun/SparkFun_LSM9DS1_Arduino_Library)
* Licence Beerware
*
* Câblage
* Module<----------> Arduino
* J1 broche 6 3.3V
* J1 broche 5 GND
* J1 broche 4 A5
* J1 broche 2 A4
*
*
* Schéma publié sous licence CC Attribution-ShareALike (réalisé avec Fritzing)
*
* N'importez pas le programme par un copier/coller dans l'IDE de l'arduino.
* Utilisez le lien ci-dessous pour télécharger le code source.

* Code source téléchargeable ici:

************************************************************************/
// Appel des bibliothèques
#include <Wire.h>
#include <SparkFunLSM9DS1.h>

// Déclaration des adresses du module
#define LSM9DS1_M 0x1E
#define LSM9DS1_AG 0x6B

LSM9DS1 imu; // création de l'objet imu

// Configuration du module
#define PRINT_CALCULATED
#define PRINT_SPEED 250
static unsigned long lastPrint = 0;

// Le champ magnétique terrestre varie en fonction de sa localisation.
// Il faut ajouter ou soustraire une constante pour obtenir la bonne valeur
// du champ magnétique à l'aide du site suivant
// http://www.ngdc.noaa.gov/geomag-web/#declination
#define DECLINATION -0.33 // déclinaison (en degrés) pour Paris.

void setup(void)
{
Serial.begin(115200); // initialisation de la liaison série
imu.settings.device.commInterface = IMU_MODE_I2C; // initialisation du module
imu.settings.device.mAddress = LSM9DS1_M;
imu.settings.device.agAddress = LSM9DS1_AG;
if (!imu.begin())
{
Serial.println("Probleme de communication avec le LSM9DS1.");
while (1);
}
}

void loop()
{

if ( imu.gyroAvailable() )
{
imu.readGyro(); // acquisition des données du gyroscope
}
if ( imu.accelAvailable() )
{
imu.readAccel(); // acquisition des données de l'accéléromètre
}
if ( imu.magAvailable() )
{
imu.readMag(); // acquisition du magnétomètre
}

if ((lastPrint + PRINT_SPEED) < millis())
{
printGyro(); // Print "G: gx, gy, gz"
printAccel(); // Print "A: ax, ay, az"
printMag(); // Print "M: mx, my, mz"
printAttitude(imu.ax, imu.ay, imu.az,-imu.my, -imu.mx, imu.mz);
Serial.println();

lastPrint = millis();
}
}

void printGyro()
{
Serial.print("G: ");
#ifdef PRINT_CALCULATED
Serial.print(imu.calcGyro(imu.gx), 2);
Serial.print(", ");
Serial.print(imu.calcGyro(imu.gy), 2);
Serial.print(", ");
Serial.print(imu.calcGyro(imu.gz), 2);
Serial.println(" deg/s");
#elif defined PRINT_RAW
Serial.print(imu.gx);
Serial.print(", ");
Serial.print(imu.gy);
Serial.print(", ");
Serial.println(imu.gz);
#endif
}

void printAccel()
{
Serial.print("A: ");
#ifdef PRINT_CALCULATED
Serial.print(imu.calcAccel(imu.ax), 2);
Serial.print(", ");
Serial.print(imu.calcAccel(imu.ay), 2);
Serial.print(", ");
Serial.print(imu.calcAccel(imu.az), 2);
Serial.println(" g");
#elif defined PRINT_RAW
Serial.print(imu.ax);
Serial.print(", ");
Serial.print(imu.ay);
Serial.print(", ");
Serial.println(imu.az);
#endif

}

void printMag()
{
Serial.print("M: ");
#ifdef PRINT_CALCULATED
Serial.print(imu.calcMag(imu.mx), 2);
Serial.print(", ");
Serial.print(imu.calcMag(imu.my), 2);
Serial.print(", ");
Serial.print(imu.calcMag(imu.mz), 2);
Serial.println(" gauss");
#elif defined PRINT_RAW
Serial.print(imu.mx);
Serial.print(", ");
Serial.print(imu.my);
Serial.print(", ");
Serial.println(imu.mz);
#endif
}

void printAttitude(float ax, float ay, float az, float mx, float my, float mz)
{
float roll = atan2(ay, az);
float pitch = atan2(-ax, sqrt(ay * ay + az * az));
float heading;
if (my == 0)
heading = (mx < 0) ? PI : 0;
else
heading = atan2(mx, my);
heading -= DECLINATION * PI / 180;
if (heading > PI) heading -= (2 * PI);
else if (heading < -PI) heading += (2 * PI);
else if (heading < 0) heading += 2 * PI;
heading *= 180.0 / PI;
pitch *= 180.0 / PI;
roll *= 180.0 / PI;
Serial.print("Pitch, Roll: ");
Serial.print(pitch, 2);
Serial.print(", ");
Serial.println(roll, 2);
Serial.print("Heading: "); Serial.println(heading, 2);

  

 
Notes d'applications pour modules Pmod 
 
La note d'application ci-dessus a retenu votre attention ? Téléchargez toutes les autres notes d'applications concernant l'utilisation des modules Pmod™ avec un arduino™ Uno. 
  • Site du fabricant
    Télécharger
  • Datasheet du module
    Télécharger

Produits associés

Carte Arduino® UNO Rev 3 officielle A000066
A000066 23,00 €

La carte Arduino UNO Rev 3 A000066 est très certainement le plus modèle le plus populaire et le plus utilisé de la gamme Arduino. Conçue sur la base d'un microcontrôleur ATmega328 avec bootloader intégré, cette version est le modèle officiel fabriqué en Italie.

Carte de développement FPGA Digilent Basys 3 Artix-7
TRENZ-26083 180,00 €

Architecturée sur la base d'un puissant FPGA Xilinx™ Artix-7™, cette platine de développement est idéale pour l'apprentissage rapide des techniques de conception numérique moderne.  

Cordon Pmod 2 x 6 Pin Cable
TRENZ-24450 5,40 €

Doté de 2 connecteurs femelles 2 x 6 points (au pas de 2,54 mm) à chaque extrémité, ce cordon de longueur 15 cm est tout indiqué pour être utilisé avec les modules pmod™ dotés de 2 rangées de 6 connecteurs.

Cordon Pmod 2x6 Pin to Dual 6 Pin Cable
TRENZ-24451 5,76 €

Doté d'un connecteur femelle 2 x 6 points (au pas de 2,54 mm) et de 2 sorties avec connecteur 6 points aux autres extrémités, ce cordon de longueur 15 cm est tout indiqué pour être utilisé avec les modules pmod™.

Cordon Pmod 6 Pin Cable Connector 12"
TRENZ-25250 8,16 €

Doté de 2 connecteurs femelle 6 points (au pas de 2,54 mm) à chaque extrémité, ce cordon de longueur 30 cm est tout indiqué pour être utilisé avec les modules Pmod™.

Cordon Pmod 6 Pin Cable Connector 18"
TRENZ-24459 8,16 €

Doté de 2 connecteurs femelle 6 points (au pas de 2,54 mm) à chaque extrémité, ce cordon de longueur 45 cm est tout indiqué pour être utilisé avec les modules pmod™.

Cordon Pmod 6 Pin Cable Connector 6"
6PINCC6 7,80 €

Doté de 2 connecteurs femelles 6 points (au pas de 2,54 mm) à chaque extrémité, ce cordon de longueur 15 cm est tout indiqué pour être utilisé avec les modules Pmod™.

Jeu de 20 straps flexibles Mâle/Femelle (15 cm)
PRT-12794 2,80 €

Jeu de 20 straps souples (15 cm) de différentes couleurs avec embouts mâle/femelle sous la forme d'une nappe de 20 fils (pouvant être désolidarisés). Idéal pour prototypage sur Arduino® et Raspberry.

Chargement...
Retour en haut