étude du MPU6050 avec mon ARDUINO Uno
2 participants
Page 1 sur 1
étude du MPU6050 avec mon ARDUINO Uno
Bonjour
Déjà ce capteur (accélération triaxes, vitesse rotation triaxes, température) demande ces librairies
Wire.h (www.arduino.cc/en/reference/wire)
Adafruit_MPU6050.h (github.com/adafruit/Adafruit_MPU6050)
Adafruit_Sensor.h (github.com/adafruit/Adafruit_Sensor)
et enfin github.com/adafruit/Adafruit_BusIO
Les instructions de départ sont :
resultat = mpu.begin(0x68); 0x69 avant
mpu.setAccelerometerRange(MPU6050_RANGE_16_G);
mpu.setGyroRange(MPU6050_RANGE_250_DEG);
mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
Celles de lecture sont :
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp); 3.5 ms
Serial.print(a.acceleration.x);
Serial.print(a.acceleration.y);
Serial.print(a.acceleration.z);
Serial.print(g.gyro.x);
Serial.print(g.gyro.y);
Serial.print(g.gyro.z);
Serial.print(temp.temperature);
Ce temps a été mesuré à l'oscilloscope et avec les instructions
const int ledPin = 13; LED connected to digital pin 13
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW); turn the LED off by making the voltage LOW
digitalWrite(ledPin, HIGH);
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp); 3.5 ms
digitalWrite(ledPin, LOW);
Cordialement
Déjà ce capteur (accélération triaxes, vitesse rotation triaxes, température) demande ces librairies
Wire.h (www.arduino.cc/en/reference/wire)
Adafruit_MPU6050.h (github.com/adafruit/Adafruit_MPU6050)
Adafruit_Sensor.h (github.com/adafruit/Adafruit_Sensor)
et enfin github.com/adafruit/Adafruit_BusIO
Les instructions de départ sont :
resultat = mpu.begin(0x68); 0x69 avant
mpu.setAccelerometerRange(MPU6050_RANGE_16_G);
mpu.setGyroRange(MPU6050_RANGE_250_DEG);
mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
Celles de lecture sont :
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp); 3.5 ms
Serial.print(a.acceleration.x);
Serial.print(a.acceleration.y);
Serial.print(a.acceleration.z);
Serial.print(g.gyro.x);
Serial.print(g.gyro.y);
Serial.print(g.gyro.z);
Serial.print(temp.temperature);
Ce temps a été mesuré à l'oscilloscope et avec les instructions
const int ledPin = 13; LED connected to digital pin 13
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW); turn the LED off by making the voltage LOW
digitalWrite(ledPin, HIGH);
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp); 3.5 ms
digitalWrite(ledPin, LOW);
Cordialement
lem75pat- Messages : 784
Date d'inscription : 08/04/2016
Localisation : Paris
Re: étude du MPU6050 avec mon ARDUINO Uno
programme MPU6050
www.aranacorp.com/fr/utilisation-dun-module-mpu6050-avec-arduino/
SDA à la broche A4
SCL à la broche A5
VCC à la broche 5V
GND à la broche GND
exemple programme MPU6050
Libraries
Wire.h www.arduino.cc/en/reference/wire
Adafruit_MPU6050.h github.com/adafruit/Adafruit_MPU6050
Adafruit_Sensor.h github.com/adafruit/Adafruit_Sensor
github.com/adafruit/Adafruit_BusIO
Objects
Adafruit_MPU6050 mpu;
int resultat;
void setup()
{
Init Serial USB
Serial.begin(9600);
Serial.println(F("Initialize System"));
resultat = mpu.begin(0x68); 0x69 avant
if (!resultat)
{ Change address if needed
Serial.print("Failed to find MPU6050 chip status = ");
Serial.println(resultat);
while (1) {
delay(100); 10
}
}
Serial.println(resultat);
delay(2000);
mpu.setAccelerometerRange(MPU6050_RANGE_16_G);
mpu.setGyroRange(MPU6050_RANGE_250_DEG);
mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
}
void readMPU( )
{
function readMPU
Read acceleromter data
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
Print out the values
Serial.print("Acceleration X: ");
Serial.print(a.acceleration.x);
Serial.print(", Y: ");
Serial.print(a.acceleration.y);
Serial.print(", Z: ");
Serial.print(a.acceleration.z);
Serial.println(" m/s^2");
Serial.print("Rotation X: ");
Serial.print(g.gyro.x);
Serial.print(", Y: ");
Serial.print(g.gyro.y);
Serial.print(", Z: ");
Serial.print(g.gyro.z);
Serial.println(" rad/s");
Serial.print("Temperature: ");
Serial.print(temp.temperature);
Serial.println("°C");
}
void loop()
{
readMPU();
delay(500); 100
}
www.aranacorp.com/fr/utilisation-dun-module-mpu6050-avec-arduino/
SDA à la broche A4
SCL à la broche A5
VCC à la broche 5V
GND à la broche GND
exemple programme MPU6050
Libraries
Wire.h www.arduino.cc/en/reference/wire
Adafruit_MPU6050.h github.com/adafruit/Adafruit_MPU6050
Adafruit_Sensor.h github.com/adafruit/Adafruit_Sensor
github.com/adafruit/Adafruit_BusIO
Objects
Adafruit_MPU6050 mpu;
int resultat;
void setup()
{
Init Serial USB
Serial.begin(9600);
Serial.println(F("Initialize System"));
resultat = mpu.begin(0x68); 0x69 avant
if (!resultat)
{ Change address if needed
Serial.print("Failed to find MPU6050 chip status = ");
Serial.println(resultat);
while (1) {
delay(100); 10
}
}
Serial.println(resultat);
delay(2000);
mpu.setAccelerometerRange(MPU6050_RANGE_16_G);
mpu.setGyroRange(MPU6050_RANGE_250_DEG);
mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
}
void readMPU( )
{
function readMPU
Read acceleromter data
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
Print out the values
Serial.print("Acceleration X: ");
Serial.print(a.acceleration.x);
Serial.print(", Y: ");
Serial.print(a.acceleration.y);
Serial.print(", Z: ");
Serial.print(a.acceleration.z);
Serial.println(" m/s^2");
Serial.print("Rotation X: ");
Serial.print(g.gyro.x);
Serial.print(", Y: ");
Serial.print(g.gyro.y);
Serial.print(", Z: ");
Serial.print(g.gyro.z);
Serial.println(" rad/s");
Serial.print("Temperature: ");
Serial.print(temp.temperature);
Serial.println("°C");
}
void loop()
{
readMPU();
delay(500); 100
}
lem75pat- Messages : 784
Date d'inscription : 08/04/2016
Localisation : Paris
Re: étude du MPU6050 avec mon ARDUINO Uno
c'est celui que j'utilise dans la premiere version de mon gimbal. Cependant depuis j'ai touvé le BNo080 qui est becoup plus facile à utiliser
Re: étude du MPU6050 avec mon ARDUINO Uno
Reçu je m'en souviens parfaitement
Pour l'instant je suis ce que Saint Quentin Radio vend
Pour l'instant je suis ce que Saint Quentin Radio vend
lem75pat- Messages : 784
Date d'inscription : 08/04/2016
Localisation : Paris
Re: étude du MPU6050 avec mon ARDUINO Uno
Bonjour
Aujourd'hui j'ai avançé sur mon capteur MPU6050
Commençons par posé sur la table, côté composants au dessus, les bornes vers l'avant
Il est affiché pratiquement X=0 Y=0 Z=+G (G = 9.81 m/s²)
Je le mets debout côté composants sur la gauche
Cela donne X=0 Y=+G Z=0
Je continue côté composants sur la droite
Cela donne X=0 Y=-G Z=0
Côté composants vers l'avant
X=-G Y=0 Z=0
Côté composants vers l'arrière
X=+G Y=0 Z=0
Et enfin retourné
X=0 Y=0 Z=-G
Je le tourne posé sur la table, la vitesse de rotation selon axe Z devient non nulle
Aujourd'hui j'ai avançé sur mon capteur MPU6050
Commençons par posé sur la table, côté composants au dessus, les bornes vers l'avant
Il est affiché pratiquement X=0 Y=0 Z=+G (G = 9.81 m/s²)
Je le mets debout côté composants sur la gauche
Cela donne X=0 Y=+G Z=0
Je continue côté composants sur la droite
Cela donne X=0 Y=-G Z=0
Côté composants vers l'avant
X=-G Y=0 Z=0
Côté composants vers l'arrière
X=+G Y=0 Z=0
Et enfin retourné
X=0 Y=0 Z=-G
Je le tourne posé sur la table, la vitesse de rotation selon axe Z devient non nulle
lem75pat- Messages : 784
Date d'inscription : 08/04/2016
Localisation : Paris
Re: étude du MPU6050 avec mon ARDUINO Uno
Patrick
Je pense qu'il faut que tu montres les photos du capteur pour que tous comprennent bien. Il y a egalement un petit dessin dessus qui permet de montrer les axes.
C'est le premier capteur que j'ai utilisé dans mon gimbole et c'est celui dont je me sert pour faire l'enregistrement de mes vols de maniere à faire ensuite un replay. C'est un capteur courement utilisé dans les drones pour avoir leur position dans l'espace.
C'est cool que tu t'y mettes bientot tu pourras modeliser et debugger mon gimbal
Je pense qu'il faut que tu montres les photos du capteur pour que tous comprennent bien. Il y a egalement un petit dessin dessus qui permet de montrer les axes.
C'est le premier capteur que j'ai utilisé dans mon gimbole et c'est celui dont je me sert pour faire l'enregistrement de mes vols de maniere à faire ensuite un replay. C'est un capteur courement utilisé dans les drones pour avoir leur position dans l'espace.
C'est cool que tu t'y mettes bientot tu pourras modeliser et debugger mon gimbal
Antoine aime ce message
Re: étude du MPU6050 avec mon ARDUINO Uno
Oui tout à fait il faut un dessin/photo
mais je ne peux pas en rajouter là sur le forum, ça coince pour moi (plastic bertrand ?)
Ton gimbal/gimbole oui on va faire
Je suis pas mal pris, entre autres par le mpu6050
Dans le datasheet correspondant, il y a un dessin pour se repérer/référencer
Mais déjà, imaginons que l'on joue aux cartes
et que moi assis à une table, je pose l'as de pique sur la table
De ce fait je vois cette carte posée ainsi que l'as de pique
C'est la première qui donne Z = +G
Je la reléve et l'as de pique regarde vers la droite (ou est visible de la droite)
Y = -G
Idem mais l'as de pique regarde vers la gauche
Y = +G
L'as de pique regarde vers l'arrière (ou plutot me regarde, et inversement)
X = +G
L'as de pique regarde vers l'avant (ou vers mon voisin d'en face)
X = -G
L'as de pique contre la table (ou si on précise, contre la surface de la table)
Z = -G
Les indications sur X Y Z, je les ai eus avec mon ARDUINO Uno qui interroge cycliquement le MPU6050
mais je ne peux pas en rajouter là sur le forum, ça coince pour moi (plastic bertrand ?)
Ton gimbal/gimbole oui on va faire
Je suis pas mal pris, entre autres par le mpu6050
Dans le datasheet correspondant, il y a un dessin pour se repérer/référencer
Mais déjà, imaginons que l'on joue aux cartes
et que moi assis à une table, je pose l'as de pique sur la table
De ce fait je vois cette carte posée ainsi que l'as de pique
C'est la première qui donne Z = +G
Je la reléve et l'as de pique regarde vers la droite (ou est visible de la droite)
Y = -G
Idem mais l'as de pique regarde vers la gauche
Y = +G
L'as de pique regarde vers l'arrière (ou plutot me regarde, et inversement)
X = +G
L'as de pique regarde vers l'avant (ou vers mon voisin d'en face)
X = -G
L'as de pique contre la table (ou si on précise, contre la surface de la table)
Z = -G
Les indications sur X Y Z, je les ai eus avec mon ARDUINO Uno qui interroge cycliquement le MPU6050
lem75pat- Messages : 784
Date d'inscription : 08/04/2016
Localisation : Paris
Re: étude du MPU6050 avec mon ARDUINO Uno
Bonsoir
Déjà au sujet de 'côté composants' et 'as de pique', il y a un rectificatif
Quand l'as de pique regarde vers l'avant (ou vers mon voisin d'en face)
nous avons en fait X = +G
Quand l'as de pique regarde vers l'arrière (ou plutot me regarde, et inversement)
nous avons X = -G
Il y a eu inversion avant arrière et c'est vrai que c'est mieux de parler avec des cartes
Oui sur le capteur, il est précisé les directions de X et Y
Cet après midi, avec le plateau tournant au sol du magasin réception dans la société
j'ai pu faire des manipulations avec ARDUINO & MPU6050 & SDcard
Je précise que ce plateau de diamètre 150cm effectue un tour tous les six secondes, donnant :
1.047 rd/s (que je retrouve bien sur l'axe rotation Z avec accélération Z = G)
0.412 m/s² (demi rayon) et 0.822 m/s² (rayon) que je retrouve bien en accélération Y
La formule pour l'accélération centripète (centrifuge) est égale à rayon * oméga²
J'ai aussi constaté que ce capteur triaxes est sensible
Déjà au sujet de 'côté composants' et 'as de pique', il y a un rectificatif
Quand l'as de pique regarde vers l'avant (ou vers mon voisin d'en face)
nous avons en fait X = +G
Quand l'as de pique regarde vers l'arrière (ou plutot me regarde, et inversement)
nous avons X = -G
Il y a eu inversion avant arrière et c'est vrai que c'est mieux de parler avec des cartes
Oui sur le capteur, il est précisé les directions de X et Y
Cet après midi, avec le plateau tournant au sol du magasin réception dans la société
j'ai pu faire des manipulations avec ARDUINO & MPU6050 & SDcard
Je précise que ce plateau de diamètre 150cm effectue un tour tous les six secondes, donnant :
1.047 rd/s (que je retrouve bien sur l'axe rotation Z avec accélération Z = G)
0.412 m/s² (demi rayon) et 0.822 m/s² (rayon) que je retrouve bien en accélération Y
La formule pour l'accélération centripète (centrifuge) est égale à rayon * oméga²
J'ai aussi constaté que ce capteur triaxes est sensible
lem75pat- Messages : 784
Date d'inscription : 08/04/2016
Localisation : Paris
Re: étude du MPU6050 avec mon ARDUINO Uno
Bonjour
Par 'sensible' je veux dire que l'on se 'retrouve' vite avec une partie de notre pesanteur sur les axes X et Y
en accélération
La pesanteur est sur l'axe Z
Il faut le capteur bien 'à plat' ce qui n'est pas évident
lem75pat- Messages : 784
Date d'inscription : 08/04/2016
Localisation : Paris
Re: étude du MPU6050 avec mon ARDUINO Uno
Ah oui, les manipulations avec le plateau tournant ont intéressés les camarades de la société
Je les en ai remerciés
Je les en ai remerciés
lem75pat- Messages : 784
Date d'inscription : 08/04/2016
Localisation : Paris
Re: étude du MPU6050 avec mon ARDUINO Uno
Bonjour
Pour mon capteur MPU6050, que j'ai posé bien à plat fixe sur la table, j'ai ceci :
accélérations X Y Z 0.4 -0.02 9.9
vitesse de rotation X Y Z -0.11 0.02 0.02
Hormis la pesanteur sur Z, il y a (je vois) des offsets
J'ai aussi la configuration par défaut utilisée par les fonctions
range16G (choix possibles : 2G 4G 8G 16G, avec G = 9.81 m/s²)
range250DEG (choix possibles : 250 500 1000 2000 degrés/seconde)
band21Hz (choix possibles : 5 10 21 44 94 184 260 Hz)
Avec aussi choix possibles : 1.25 5 20 40 Hz pour le Cycle Rate
lem75pat- Messages : 784
Date d'inscription : 08/04/2016
Localisation : Paris
Re: étude du MPU6050 avec mon ARDUINO Uno
Bonjour
J'ai adapté mon programme ARDUINO UNo avec MPU6050 et interface SDCard pour qu'il fasse
des enregistrements dans fichiers toutes les minutes, à raison de 0.1" par séries de mesures
Soit 600 séries enregistrées par fichier
J'ai aussi rajouté le calcul des moyennes par minute et passé de x1000 à x10000
en ne retenant que la partie entière des valeurs dans les fichiers
Je plaque le capteur contre la table
J'obtiens au bout d'un quart d'heure (15 files) des moyennes pratiquement stables mais
avec accélérationX accélérationY qui varient beaucoup
J'ai adapté mon programme ARDUINO UNo avec MPU6050 et interface SDCard pour qu'il fasse
des enregistrements dans fichiers toutes les minutes, à raison de 0.1" par séries de mesures
Soit 600 séries enregistrées par fichier
J'ai aussi rajouté le calcul des moyennes par minute et passé de x1000 à x10000
en ne retenant que la partie entière des valeurs dans les fichiers
Je plaque le capteur contre la table
J'obtiens au bout d'un quart d'heure (15 files) des moyennes pratiquement stables mais
avec accélérationX accélérationY qui varient beaucoup
lem75pat- Messages : 784
Date d'inscription : 08/04/2016
Localisation : Paris
BENJAMIN59 aime ce message
Re: étude du MPU6050 avec mon ARDUINO Uno
C'est pour ça que je suis passé au bno055 qui est beaucoup plus stablelem75pat a écrit:Bonjour
J'ai adapté mon programme ARDUINO UNo avec MPU6050 et interface SDCard pour qu'il fasse
des enregistrements dans fichiers toutes les minutes, à raison de 0.1" par séries de mesures
Soit 600 séries enregistrées par fichier
J'ai aussi rajouté le calcul des moyennes par minute et passé de x1000 à x10000
en ne retenant que la partie entière des valeurs dans les fichiers
Je plaque le capteur contre la table
J'obtiens au bout d'un quart d'heure (15 files) des moyennes pratiquement stables mais
avec accélérationX accélérationY qui varient beaucoup
Re: étude du MPU6050 avec mon ARDUINO Uno
Bonjour
Avec mon ARDUINO Uno et un programmme faisant 6000 mesures sur MPU6050
(chaque mesure tous les 10ms donnant une minute au total)
j'ai pu déterminer moyenne et écart type
Mon programme fait aussi les calculs de statistiques requis (espérance ordres 1 & 2)
Les moyennes en X Y Z donnent :
0.22 -0.15 9.89 m/s²
et -0.11 0.018 0.017 rd/s
et pour les écarts types :
0.053 0.020 0.054 m/s²
et 0.0004 0.0005 0.0004 rd/s
Les variations observées s'étalent sur +-3 écart type autour des moyennes
Cela me donne donc les valeurs au repos,
qui devront être mémorisées pour être soustraites lors des mesures suivantes
Avec mon ARDUINO Uno et un programmme faisant 6000 mesures sur MPU6050
(chaque mesure tous les 10ms donnant une minute au total)
j'ai pu déterminer moyenne et écart type
Mon programme fait aussi les calculs de statistiques requis (espérance ordres 1 & 2)
Les moyennes en X Y Z donnent :
0.22 -0.15 9.89 m/s²
et -0.11 0.018 0.017 rd/s
et pour les écarts types :
0.053 0.020 0.054 m/s²
et 0.0004 0.0005 0.0004 rd/s
Les variations observées s'étalent sur +-3 écart type autour des moyennes
Cela me donne donc les valeurs au repos,
qui devront être mémorisées pour être soustraites lors des mesures suivantes
lem75pat- Messages : 784
Date d'inscription : 08/04/2016
Localisation : Paris
Sujets similaires
» étude du DHT11 avec mon ARDUINO Uno
» étude du PCF8591 avec mon ARDUINO Uno
» étude du DS3231 avec mon ARDUINO Uno
» étude du BMP180 avec mon ARDUINO Uno
» étude du SG90 avec mon ARDUINO Uno
» étude du PCF8591 avec mon ARDUINO Uno
» étude du DS3231 avec mon ARDUINO Uno
» étude du BMP180 avec mon ARDUINO Uno
» étude du SG90 avec mon ARDUINO Uno
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|