Pages: [1]   Go Down
Author Topic: Plateforme stabilisée avec un IMU 6 DoF  (Read 1981 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 27
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Je vous présente un petit sketch basé sur la centrale inertielle que j'avais présenté auparavant.
Le code de cette centrale inertielle consistait à voir les paramètres X,Y,Z ainsi que d'autres paramètres provenant de la centrale.
Vous pouvez voir le code ici: http://forum.arduino.cc/index.php?topic=181653.0

J'ai donc fait une petite vidéo que vous pouvez voir, qui illustre le fonctionnement de la plateforme:



Pour la partie code, elle se décompose en deux parties.

Le code principal, responsable du fonctionnement de la plateforme:

Code:
#include <FreeSixIMU.h>
#include <FIMU_ADXL345.h>
#include <FIMU_ITG3200.h>
#include <Wire.h>
#include <Servo.h>

float angles[3];

Servo servo_x;  
Servo servo_y;
Servo servo_z;

int pos_x = 0;  
int pos_y = 0;  
int pos_z = 0;

FreeSixIMU sixDOF = FreeSixIMU();

void setup()
{
  Serial.begin(9600);
  
  Wire.begin();
  
  servo_z.attach(10);
  servo_z.write(90);
  
  servo_x.attach(11);
  servo_y.attach(12);
  
  sixDOF.init();
  
  delay(5);
}

void loop()
{  
  sixDOF.getYawPitchRoll(angles);
  
  pos_x = (1570-angles[1]*9.55);
  servo_x.writeMicroseconds(pos_x);
 
  pos_y = (1400+angles[2]*9.55);
  servo_y.writeMicroseconds(pos_y);
 
  //pos_z = (1500+angles[0]*9.55);
  //servo_z.writeMicroseconds(pos_z);
  
  //printData();
}

Et le second, lié à l'affichage des paramètre des servos, afin de pouvoir les étalonner que j'ai nommé "printData"

Code:
void printData()
{
  Serial.print("X:");
  Serial.print(angles[1]);
  Serial.print("   ");
  
  Serial.print("Pos_X:");
  Serial.print(pos_x);
  Serial.print(" ||  ");
  
  Serial.print("Y:");
  Serial.print(angles[2]);
  Serial.print("   ");
  
  Serial.print("Pos_Y:");
  Serial.print(pos_y);
  Serial.print(" ||  ");
  
  Serial.print("Z:");
  Serial.print(angles[0]);
  Serial.print("   ");
  
  Serial.print("Pos_Z:");
  Serial.print(pos_z);
  Serial.print("   ");
  
  Serial.println("   ");
  delay(5);
}

Je vous conseil donc de désactiver la partie "printData" durant le fonctionnement de la plateforme, c'est beaucoup plus fluide.

Amitiés,
« Last Edit: August 15, 2013, 01:07:38 pm by Jean-François » Logged

50% homme + 50% machine = 100% linux

Offline Offline
Faraday Member
**
Karma: 19
Posts: 4155
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Je vous présente un petit sketch basé sur la centrale inertielle que j'avais présenté auparavant.
Le code de cette centrale inertielle consistait à voir les paramètres X,Y,Z ainsi que d'autres paramètres provenant de la centrale.
Vous pouvez voir le code ici: http://forum.arduino.cc/index.php?topic=181653.0

J'ai donc fait une petite vidéo que vous pouvez voir, qui illustre le fonctionnement de la plateforme:

https://www.youtube.com/watch?v=EgdUB15jqTY

bonsoir
jolie réalisation
tu tiens la stabilisation jusqu'à quel facteur de g ?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 27
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour Artouste,

Merci pour le compliment, ca fait plaisir !

Concernant le fonctionnement à la valeur maximale d’accélération, je ne peux pas te répondre puisque je n'ai pas de quoi mesurer avec précision.
De plus, le système fonctionne par valeur angulaire et non pas par la mesure de l'accélération directe, donc difficile de te répondre.

Amitiés,
Logged

50% homme + 50% machine = 100% linux

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 24
Posts: 3170
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Et avec un verre d'eau ça donne quoi ?   smiley-lol
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Offline Offline
Newbie
*
Karma: 0
Posts: 27
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour Jean-François,

Maintenant que j'ai un peu bidouillé l'algo, la stabilité est meilleure et non seulement ca marche avec un verre d'eau, mais encore plus fort, dans une flute de champagne !
Plus de problème de vibration due aux bruits de l'accel. Le filtrage est optimale.
Je vais remettre une vidéo avec la flute de champagne et le nouvel algo dès que possible.

Amitiés,
Logged

50% homme + 50% machine = 100% linux

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 24
Posts: 3170
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

En fait ce qui m'intéresse c'est de voir la surface de l'eau, c'est ce qui permet de démontrer si la stabilité est "uniforme" et "linéaire".
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Offline Offline
Newbie
*
Karma: 0
Posts: 27
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Uniforme, oui, linéaire...j'en doute !

La stabilité est une sorte d'équilibre, et l'équilibre peut-être passif ou dynamique  smiley-wink
Dans notre cas, l'équilibre est dynamique et ne suis pas une réponse linéaire puisque les mouvements sont dits stochastiques (Pseudo aléatoires).

Amitiés,
Logged

50% homme + 50% machine = 100% linux

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 24
Posts: 3170
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ce que je voulais exprimer est la "platitude" de la surface de l'eau... si elle reste stable en formant une petite onde régulière ou si de temps en temps elle produit une vague.... ou reste t-elle parfaitement plate (sans les bulles  smiley-lol ).
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Offline Offline
Newbie
*
Karma: 0
Posts: 27
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

AAAhhhhhhh...les bubulles...que du bonheur !  smiley-grin

En fait, ca bouge à la surface libre...même pas mal, mais le verre lui ne bouge pas (trop).

Je vais également changer les servos pour des plus puissants, car l'ensemble pèse assez lourd.
Donc, une fois les modifications dans l'Arduino et le changement des servos fait, je ferai une petite vidéo pour que tu puisses voir par toi même la surface libre bouger alors qu'en dessous, je le bouge dans tous les sens.

Amitiés,
Logged

50% homme + 50% machine = 100% linux

Offline Offline
Newbie
*
Karma: 0
Posts: 27
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut Jean-François,

Si la robotique t'intéresse, jette un oeil à mes vidéos (Pas forcément ce qu'il y a de mieux, je l'admets volontiers)...ca peut t'inspirer pour tes futurs projets.

https://www.youtube.com/my_videos?o=U

Amitiés,
Logged

50% homme + 50% machine = 100% linux

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 24
Posts: 3170
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Tu n'as pas mis le bon lien pour consulter ta chaine  smiley-mr-green

Avec ce lien je tombe sur la mienne   smiley-lol
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Offline Offline
Newbie
*
Karma: 0
Posts: 27
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Waooooo...tu as raison, je suis fatigué !  smiley-red

Ok, j'essaye de rectifier le tir: https://www.youtube.com/user/heraultc/videos?view_as=public

Dis moi si cela fonctionne stp.

Amitiés,
Logged

50% homme + 50% machine = 100% linux

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 24
Posts: 3170
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Cette fois ça fonctionne  smiley-wink
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Pages: [1]   Go Up
Jump to: