pilotage d'un servo avec un accéléromètre

Modérateur : Anim'Elec

Répondre
Avatar du membre
lapin29
Conducteur retraité ou la belle vie
Conducteur retraité ou la belle vie
Messages : 5403
Enregistré le : 23 août 2010, 20:19
Numéro de département : 56
Pays : F
Localisation : Lanester, dans le sud... Bretagne évidemment !
A remercié : 2 fois
A été remercié : 23 fois
Contact :

pilotage d'un servo avec un accéléromètre

Message par lapin29 »

j'avais une petite idée avec l'arduino... piloter un servo avec un gyroscope
en fait l'idée initiale est simuler un niveau laser sur un bull, de façon à garder la lame droite lorsque le bull bouge.
au départ je voulais utiliser un gyro d'hélicoptère mais je n'étais pas sur de mon coup.
les gyros qu'on trouve pour l'arduino ne sont vraiment pas cher.
voici un exemple sur ebay ;
http://www.ebay.fr/itm/Accelerometre-3- ... 418ebda457

première étape : piloter le servo avec le gyro
la librairie pour le MMA7455:
https://code.google.com/p/mma-7455-ardu ... loads/list

étape réussi, voici le code :

Code : Tout sélectionner

/***********************************************************
 * (c) Octobre 2015 - david@rabbitzone.info
 * Programme permettant de piloter un servo avec un
 * gyroscope MMA7455
 * CONNECTIONS:
 * +5V et Masse connecté à l'Arduino (le module a un régulateur 3.3V)
 * SCL - à l'Arduino A5
 * SDA - à l'Arduino A4
 ***********************************************************/
 
/*-----( Import des librairies nécessaires )-----*/
#include <Wire.h> 
#include <MMA_7455.h>
#include <Servo.h>

/*-----( Declare objects )-----*/
MMA_7455 mySensor = MMA_7455(); //Pour activer le gyro
Servo myservo; //déclare le servo

/*-----( Declare Variables )-----*/
char xVal; //Variables pour les valeurs de l'axe X du gyro
int Sval; //Variable pour le calcul de la position du servo

void setup()   /****** SETUP: RUNS ONCE ******/
{
  myservo.attach(9); //Le servo est sur la PIN Digitale 9
  myservo.write(90); //Le servo est positionné au neutre
  Serial.begin(9600);
  delay(100);
  Serial.println("Pilote servo");
  // Paramètrer la sensibilité du gyro
  // 2 = 2g, 4 = 4g, 8 = 8g
  mySensor.initSensitivity(2); // suffisant pour notre cas
/* Calibration du gyro */
   mySensor.calibrateOffset(-10.0, 13.0, -25.0);

} //--(end setup )---

void loop()   /****** LOOP: RUNS CONSTANTLY ******/
{
  xVal = mySensor.readAxis('x'); //récupérer la valeur X du gyro
  Sval = map(xVal, -57, 63, 0, 180); //calcul de la valeur du servo par rapport au limite du gyro (-57 et 63)
  myservo.write(Sval); //postionne le servo suivant la valeur calculé
  /*  les lignes suivantes permettent de voir les valeurs X du gyro et 
   *   les valeurs appliquées au servo  */
  Serial.print("X = ");
  Serial.print(xVal, DEC);
  Serial.print("   S = ");
  Serial.println(Sval, DEC);
  delay(20);
  /* ce delay permet de régler la sensibilité du mouvement du servo
     plus il est élevé, plus le servo bougera en saccade */
} //--(end main loop )---

/*-----( Declare User-written Functions )-----*/

//*********( THE END )***********
prochaine étape : piloter le servo avec le gyro et la radio

étape suivante :
- tester sur un système hydraulique
- corriger
- valider

à suivre...
Modifié en dernier par lapin29 le 10 oct. 2015, 18:24, modifié 1 fois.
ImageImage

Pour : les piliers de bars !!
Contre : les piles de ponts !!
Avatar du membre
Bartste
Conducteur retraité ou la belle vie
Conducteur retraité ou la belle vie
Messages : 2271
Enregistré le : 15 août 2014, 18:22
Numéro de département : 0
Pays : CH
A remercié : 58 fois
A été remercié : 230 fois

Re: pilotage d'un servo avec un gyroscope

Message par Bartste »

Super intéressant !

J'espère, que tu pourra régler correctement ta régulation !
Sur un distributeurs hydraulique, il y a une importante zone morte au centre et pas mal de retards dans la commande, mais c'est une question de réglage... Ca devrais le faire !

Hâte de voir tes premiers tests :up:
Avatar du membre
lapin29
Conducteur retraité ou la belle vie
Conducteur retraité ou la belle vie
Messages : 5403
Enregistré le : 23 août 2010, 20:19
Numéro de département : 56
Pays : F
Localisation : Lanester, dans le sud... Bretagne évidemment !
A remercié : 2 fois
A été remercié : 23 fois
Contact :

Re: pilotage d'un servo avec un gyroscope

Message par lapin29 »

en effet avec ce programme le servo est super sensible et réagi à chaque mouvement du gyro.

j'essayerais de monter une maquette pour affiner ça, ça sera plus pratique :up:
ImageImage

Pour : les piliers de bars !!
Contre : les piles de ponts !!
Avatar du membre
mecatron37
Conducteur d'engins spéciaux
Conducteur d'engins spéciaux
Messages : 1504
Enregistré le : 29 juil. 2007, 10:44
Numéro de département : 59
Pays : F
Localisation : Lille
A remercié : 7 fois
A été remercié : 41 fois
Contact :

Re: pilotage d'un servo avec un gyroscope

Message par mecatron37 »

Génial ça, en revanche c'est un accéléromètre et non un gyroscope car c'est plus simple de traité une acceleration (et donc une position par rapport a notre planete Terre) que une accélération absolue.

Super idée, j’adore ça. bientôt nos miniroutes seront planes... cool.

A+ bonne continuation
Cliquez sur les images :
Kit Feux pour Camion
Image Image
http://www.kotronik.com
Avatar du membre
lapin29
Conducteur retraité ou la belle vie
Conducteur retraité ou la belle vie
Messages : 5403
Enregistré le : 23 août 2010, 20:19
Numéro de département : 56
Pays : F
Localisation : Lanester, dans le sud... Bretagne évidemment !
A remercié : 2 fois
A été remercié : 23 fois
Contact :

Re: pilotage d'un servo avec un accéléromètre

Message par lapin29 »

merci mecatron :up:

au temps pour moi : accéléromètre pas gyroscope :respect:

je le note et je m'applique à corriger le post, du moins le titre :lol:
ImageImage

Pour : les piliers de bars !!
Contre : les piles de ponts !!
Répondre

Retourner vers « le fabuleux destin de l'Arduino »