Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/LocalSettings.php on line 193

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/LocalSettings.php on line 197

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338
[ Wikidébrouillard ] Bras Robotisé piloté par nunchuk arduino

Bras Robotisé piloté par nunchuk arduino

De Wikidebrouillard.

(Cablage sur le nunchuk)
Ligne 123 : Ligne 123 :
==Liens avec d'autres projets arduino==
==Liens avec d'autres projets arduino==
chercher ici : http://wikidebrouillard.org/index.php/Catégorie:Arduino
chercher ici : http://wikidebrouillard.org/index.php/Catégorie:Arduino
-
 
-
==Pour aller plus loin==
 
==Liens avec le quotidien==
==Liens avec le quotidien==
-
  quelles peuvent être les applications technologique de ce montage, ou est-ce qu'on retrouve des programme qui y ressemble ?
+
  On pourrait controler plein de chose avec le nunchuk comme google earth ou encore le curseur de votre ordinateur.
[[Catégorie:Arduino]]
[[Catégorie:Arduino]]

Version du 15 janvier 2014 à 15:55

Article incomplet en cours de rédaction
Modèle:Vidéo

Sommaire

Présentation du projet Arduino

Contrôle d'un bras robotisé par un nunchuk.

On contrôle deux servomoteurs avec un nunchuk, tout cela piloté par la carte arduino.

Liste du matériel

réalisation du projet

Explication

Principe de fonctionnement

Quand on bouge la nunchuk de haut en bas (avec le poignet), le servomoteur qui est collé à la paille se met en action. Quand on bouge la nunchuk sur le même axe (avec le poignet, comme si on vissait), le servomoteur à la base se met à pivoter.

Cablage sur le nunchuk

La photo qui suit nous montre à quoi correspond chaque broche du câble Nunchuck Wii.

Schéma Fritzing

Code

#include <Servo.h>;
#include <Wire.h>;

// Doit être ajusté en fonction de chaque nunchuck
#define ZEROX 530  
#define ZEROY 530
#define ZEROZ 530

// adresse I2C du nunchuck
#define WII_NUNCHUK_I2C_ADDRESS 0x52

// définition d'une variable Servo
Servo servomoteur1, servomoteur2;

// définition d'une variable counter
int counter;
int pos = 0;
// définition d'un tableau de données
uint8_t data[6];

void setup() 
{ 
  // on attache le servomoteur à la pin 11 (PWM)
  servomoteur1.attach(9);
  servomoteur2.attach(8);


  // initialisation du nunchuck
  Wire.begin();

  Wire.beginTransmission(WII_NUNCHUK_I2C_ADDRESS);
  Wire.write(0xF0);
  Wire.write(0x55);
  Wire.endTransmission();

  Wire.beginTransmission(WII_NUNCHUK_I2C_ADDRESS);
  Wire.write(0xFB);
  Wire.write(0x00);
  Wire.endTransmission();
}


void loop() 
{ 
    // on demande 6 octets au nunchuck
    Wire.requestFrom(WII_NUNCHUK_I2C_ADDRESS, 6);
    

    counter = 0;
    // tant qu'il y a des données
    while(Wire.available())
   {
      // on récupère les données
      data[counter++] = Wire.read();
   }
    // on réinitialise le nunchuck pour la prochaine demande
    Wire.beginTransmission(WII_NUNCHUK_I2C_ADDRESS);
    Wire.write(0x00);
    Wire.endTransmission();

    if(counter >= 5)
    {
      // on extrait les données
      // dans mon exemple j'utilise uniquement les données d'accélération sur l'axe Y
      double accelX = ((data[2] << 2) + ((data[5] >> 2) & 0x03) - ZEROX);
      double accelY = ((data[3] << 2) + ((data[5] >> 4) & 0x03) - ZEROY);

      // on limite la valeur entre -180 et 180
      int value = constrain(accelY, -180, 180);  
      // on mappe cette valeur pour le servomoteur soit entre 0 et 180
      value = map(value, -180, 180, 0, 180);
      
      // on limite la valeur entre -180 et 180
      int value2 = constrain(accelX, -180, 180);
      // on mappe cette valeur pour le servomoteur soit entre 0 et 180
      value2 = map(value2, -180, 180, 0, 180);
      
      
      // on écrit sur le servomoteur la valeur
      servomoteur1.write(value);          // controle le servomoteur avec l'axe Y
      servomoteur2.write(value2);         // controle le servomoteur avec l'axe X
      
      // un petit delai pour pas saturer le servomoteur
      delay(100);
    }
}

Liens avec d'autres projets arduino

chercher ici : http://wikidebrouillard.org/index.php/Catégorie:Arduino

Liens avec le quotidien

On pourrait controler plein de chose avec le nunchuk comme google earth ou encore le curseur de votre ordinateur.
Portail des ExplorateursWikidébrouillardLéon DitFLOGPhoto mystèreJ'ai FaitPortraits
AR
CO

Bras Robotisé piloté par nunchuk arduino

Rechercher

Page Discussion Historique
Powered by MediaWiki
Creative Commons - Paternite Partage a l

© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique