Bras robotique Arduino: 13 étapes

Bras robotique Arduino: 13 étapes

Table des matières:

Anonim

Dans cet instructurable je vais vous montrer comment faire un bras robotique simple contrôlé par 4 servos, 2 manettes de jeu analogiques et un Arduino UNO. Il est très similaire à mon "2 Servos + Thumbstick" instructurable. Ce tutoriel est notamment destiné à aider un autre utilisateur d’Arduino; "RobotZee".

Je vais vous guider étape par étape en utilisant des pièces de construction simples. N'oubliez pas que ce didacticiel a pour but de vous aider et de vous donner une idée de la fabrication de votre propre bras robotique, en prenant celui-ci à titre d'exemple. Et comme mes autres Arduinos Instructurables, toutes les pièces électroniques ont été achetées @ RADIOSHACK, à l’exception des micro-servos. Ils ont été achetés sur Ebay.

REMARQUE: La construction de ce bras robotique n’est donnée qu’à titre d’exemple. J'ai utilisé des matériaux simples et bon marché pour ce projet.

Et ce tutoriel est destiné à aider les autres utilisateurs d’Arduino dans leurs projets personnels. Aucune critique ne sera prise personnelle ni à cause de la construction et des matériaux utilisés pour le bras robotique. En d’autres termes, utilisez ce tutoriel pour construire votre propre bras robotique. Merci à vous tous … BI () ME (H75

Prendre plaisir;)

Provisions:

Étape 1: Matériel et logiciel

Voici la liste, sans ordre particulier, des composants, outils et logiciels nécessaires à ce projet.

Les pièces:

1. Arduino UNO REV3

2. (2) planches à pain

3. (2) servos de parallaxe

4. (2) micro servos Ebay

5. (2) manettes analogiques Parllax

6. Câbles de saut de planche à pain

7. Ruban à masquer

8. panneau de mousse

9. Couteau, ciseaux.

10. PATIENCE (beaucoup)

Logiciel:

Logiciel Arduino 0023

NOTE: J'utilise plutôt cette version parce que la plus récente me donne beaucoup de maux de tête et de problèmes.

Étape 2: Couper et assembler la partie 1

Il n'y a pas grand chose à expliquer dans cette étape. Il suffit de couper le panneau de mousse comme bon vous semble: 6,5 x 1,5 pouces et l’autre de 4,5 x 1,5 pouces. tout ce que vous devez faire est de couper et faire des trous pour adapter les servos. N'oubliez pas que l'objectif principal de ce didacticiel est de déplacer les servos avec les joysticks.

NOTE: Avant de tout couper et de tout assembler, vous devez tester le mouvement des servos et les disposer au bon endroit, pour le bras robotique et ses mouvements. (après les étapes 5 à 8 sont terminées)

Étape 3: Couper et assembler la partie 2

J'ai utilisé du ruban adhésif pour tenir tout en place. La base est faite de morceaux de bois recyclés trouvés dans le garage. Remarquez comment le servo avant pour la rotation des griffes est placé.

Étape 4: Couper et assembler la partie 3

Pas grand chose à expliquer ici, il suffit de tout mettre en place. Et je vais faire référence à chaque connexion et servos avec un numéro pour votre compréhension.

EX: Servo 1 base (rotation du corps)

Servo 2 bras_1 (haut / bas)

Servo 3 arm_2 (haut / bas)

Servo 4 Claw (rotation des griffes)

REMARQUE: Les connexions sont très confuses et ne sont PAS claires, mais je les expliquerai dans les étapes suivantes.

Étape 5: Connexions des servos 1 et 2

Ici, je vais montrer comment les connexions pour les servos 1 et 2.

SERVO 1 est le servo standard pour la rotation de la base.

SERVO 2 est un autre servo standard pour les mouvements de va-et-vient de ce que j'appelle ARM_1.

Connexions Servo 1: Fil rouge: Arduino 5V

Fil noir: Arduino GND

Fil jaune: Arduino Digital PWM 10

Connexions Servo 2: Fil rouge: Arduino 5V

Fil noir: Arduino GND

Fil jaune: Arduino Digital PWM 11

Étape 6: Connexions des servos 3 et 4

Ici, je vais montrer comment les connexions pour les servos 3 et 4.

SERVO 3 est un micro servo pour les mouvements de va-et-vient de ce que j'appelle ARM_2.

SERVO 4 est un autre micro servo pour la rotation de la griffe.

Connexions Servo 3: Fil rouge: Arduino 5V

Fil noir: Arduino GND

Fil jaune: Arduino Digital PWM 3

Connexions Servo 4: Fil rouge: Arduino 5V

Fil noir: Arduino GND

Fil jaune: Arduino Digital PWM 4

Étape 7: Connexions du joystick (Joy_1) GAUCHE

Voici les connexions pour Joy_1 ou le LA GAUCHE manette. Le joystick Parallax a 2 motifs et ils doivent être connectés. Pour toutes ces connexions, vous avez besoin de 2 planches à pain pour chaque manette de jeu. (ou un gros) Mais je me sens moins déroutant quand j'utilise pour chaque manette une petite planche à pain. Faites attention à toutes les connexions et vérifiez-les.

L / R + et U / R + est la connexion Arduino 5V (alimentation)

GND et GND est pour la terre sur l'arduino

L / R et L / R vont à la connexion Arduino ANALOG A2

U / D et U / D vont à la connexion Arduino ANALOG A5

Étape 8: Connexions du joystick (Joy_2)

Voici les connexions pour Joy_2 ou le joystick RGHT. Le joystick Parallax a 2 motifs et ils doivent être connectés. Pour toutes ces connexions, vous avez besoin de 2 planches à pain pour chaque manette de jeu. (ou un gros) Mais je me sens moins déroutant quand j'utilise pour chaque manette une petite planche à pain. Faites attention à toutes les connexions et vérifiez-les.

L / R + et U / R + est la connexion Arduino 5V (alimentation)

GND et GND est pour la terre sur l'arduino

L / R et L / R vont à la connexion Arduino ANALOG A4

U / D et U / D vont à la connexion Arduino ANALOG A3

Étape 9: Test des servos

Il est temps de tester les servos et toutes les connexions. DOUBLE VÉRIFIER toutes les connexions.

Il est recommandé d’utiliser une pile de 2 piles AA comme source d’alimentation, au moins dans l’un des paniers à pain.

Étape 10: Produit de finition

Faites un autre test avec tous les servos en place. Connexions DOUBLE CHECK.

Étape 11: le code

LE CODE: (TOUJOURS TESTER LE CODE AVANT DE TÉLÉCHARGER À L'ARDUIN)

#comprendre

const int servo1 = 3; // premier servo

const int servo2 = 10; // second servo

const int servo3 = 5; // troisième servo

const int servo4 = 11; // quatrième servo

const int joyH = 2; // L / R Parallax Thumbstick

const int joyV = 3; // U / D Parallax Thumbstick

const int joyX = 4; // L / R Parallax Thumbstick

const int joyP = 5; // U / D Parallax Thumbstick

int servoVal; // variable pour lire la valeur de la broche analogique

Servo myservo1; // crée un objet servo pour contrôler un servo

Servo myservo2; // crée un objet servo pour contrôler un servo

Servo myservo3; // crée un objet servo pour contrôler un servo

Servo myservo4; // crée un objet servo pour contrôler un servo

void setup() {

// Servo

myservo1.attach (servo1); // attache le servo

myservo2.attach (servo2); // attache le servo

myservo3.attach (servo3); // attache le servo

myservo4.attach (servo4); // attache le servo

// Inizialize Serial

Serial.begin (9600);

}

boucle vide () {

// Affiche les valeurs du joystick à l'aide du moniteur série

outputJoystick ();

// Lire la valeur du joystick horizontal (valeur entre 0 et 1023)

servoVal = analogRead (joyH);

servoVal = map (servoVal, 0, 1023, 0, 180); // redimensionne-le pour l'utiliser avec le servo (résultat entre 0 et 180)

myservo2.write (servoVal); // définit la position du servo en fonction de la valeur mise à l'échelle

// Lire la valeur du joystick horizontal (valeur entre 0 et 1023)

servoVal = analogRead (joyV);

servoVal = map (servoVal, 0, 1023, 70, 180); // le redimensionne pour l'utiliser avec le servo (résultat entre 70 et 180)

myservo1.write (servoVal); // définit la position du servo en fonction de la valeur mise à l'échelle

délai (15); // attend le servo pour y arriver

// Lire la valeur du joystick horizontal (valeur entre 0 et 1023)

servoVal = analogRead (joyP);

servoVal = map (servoVal, 0, 1023, 70, 180); // le redimensionne pour l'utiliser avec le servo (résultat entre 70 et 180)

myservo4.write (servoVal); // définit la position du servo en fonction de la valeur mise à l'échelle

délai (15); // attend le servo pour y arriver

// Lire la valeur du joystick horizontal (valeur entre 0 et 1023)

servoVal = analogRead (joyX);

servoVal = map (servoVal, 0, 1023, 70, 180); // le redimensionne pour l'utiliser avec le servo (résultat entre 70 et 180)

myservo3.write (servoVal); // définit la position du servo en fonction de la valeur mise à l'échelle

délai (15); // attend le servo pour y arriver

}

/**

* Afficher les valeurs du joystick

*/

void outputJoystick () {

Serial.print (analogRead (joyH));

Serial.print ("---");

Serial.print (analogRead (joyV));

Serial.println ("----------------");

Serial.print (analogRead (joyP));

Serial.println ("----------------");

Serial.print (analogRead (joyX));

Serial.println ("----------------");

}

Étape 12: NOUVEAU CODE !!!!

Voici le nouveau code pour ce bras robotique. J'ai ajouté 1 servo supplémentaire pour l'ouverture et la fermeture de la CLAW avec un potentiomètre! Cela vous aidera au cas où vous voudriez gérer la pression sur la griffe PROFITEZ !!!!;

CODE:

#comprendre

const int servo1 = 3; // premier servo

const int servo2 = 10; // second servo

const int servo3 = 5; // troisième servo

const int servo4 = 11; // quatrième servo

const int servo5 = 9; // cinquième servo

const int joyH = 2; // L / R Parallax Thumbstick

const int joyV = 3; // U / D Parallax Thumbstick

const int joyX = 4; // L / R Parallax Thumbstick

const int joyP = 5; // U / D Parallax Thumbstick

const int potpin = 0; // potentiomètre O / C

int servoVal; // variable pour lire la valeur de la broche analogique

Servo myservo1; // crée un objet servo pour contrôler un servo

Servo myservo2; // crée un objet servo pour contrôler un servo

Servo myservo3; // crée un objet servo pour contrôler un servo

Servo myservo4; // crée un objet servo pour contrôler un servo

Servo myservo5; // crée un objet servo pour contrôler un servo

void setup() {

// Servo

myservo1.attach (servo1); // attache le servo

myservo2.attach (servo2); // attache le servo

myservo3.attach (servo3); // attache le servo

myservo4.attach (servo4); // attache le servo

myservo5.attach (servo5); // attache le servo

// Inizialize Serial

Serial.begin (9600);

}

boucle vide () {

servoVal = analogRead (broche);

servoVal = map (servoVal, 0, 1023, 0, 179);

myservo5.write (servoVal);

délai (15);

// Affiche les valeurs du joystick à l'aide du moniteur série

outputJoystick ();

// Lire la valeur du joystick horizontal (valeur entre 0 et 1023)

servoVal = analogRead (joyH);

servoVal = map (servoVal, 0, 1023, 0, 180); // redimensionne-le pour l'utiliser avec le servo (résultat entre 0 et 180)

myservo2.write (servoVal); // définit la position du servo en fonction de la valeur mise à l'échelle

// Lire la valeur du joystick horizontal (valeur entre 0 et 1023)

servoVal = analogRead (joyV);

servoVal = map (servoVal, 0, 1023, 70, 180); // le redimensionne pour l'utiliser avec le servo (résultat entre 70 et 180)

myservo1.write (servoVal); // définit la position du servo en fonction de la valeur mise à l'échelle

délai (15); // attend le servo pour y arriver

// Lire la valeur du joystick horizontal (valeur entre 0 et 1023)

servoVal = analogRead (joyP);

servoVal = map (servoVal, 0, 1023, 70, 180); // le redimensionne pour l'utiliser avec le servo (résultat entre 70 et 180)

myservo4.write (servoVal); // définit la position du servo en fonction de la valeur mise à l'échelle

délai (15); // attend le servo pour y arriver

// Lire la valeur du joystick horizontal (valeur entre 0 et 1023)

servoVal = analogRead (joyX);

servoVal = map (servoVal, 0, 1023, 70, 180); // le redimensionne pour l'utiliser avec le servo (résultat entre 70 et 180)

myservo3.write (servoVal); // définit la position du servo en fonction de la valeur mise à l'échelle

délai (15); // attend le servo pour y arriver

}

/**

* Afficher les valeurs du joystick

*/

void outputJoystick () {

Serial.print (analogRead (joyH));

Serial.print ("---");

Serial.print (analogRead (joyV));

Serial.println ("----------------");

Serial.print (analogRead (joyP));

Serial.println ("----------------");

Serial.print (analogRead (joyX));

Serial.println ("----------------");

}

Étape 13: Dépannage

1. Les servos ne bougeront pas.

A. Vérifiez les connexions. Rappelez-vous que dans ce tutoriel, nous utilisons des broches PWM pour les servos et des broches analogiques pour les manettes de jeu.

2. Lorsque je télécharge le code sur le tableau des servos, ils commencent à vibrer.

A. Cela signifie que U / D + ou L / R + ne sont pas correctement connectés. Vérifiez vos connexions. Vous devez déconnecter le port USB de la carte pour vérifier les connexions, essayez de vérifier les connexions aux étapes 5 à 8.

3. Je vérifie deux fois les connexions et les servos ne bougeront pas.

A. Sortez le joystick et reconnectez-le à la planche à pain en appuyant dessus pour vous assurer qu'il est connecté. Les connexions doivent être serrées du joystick à la planche à pain.

4. Il y a une vibration de l'un des servos.

Cela est dû à la combinaison de micro-servos et de servos standard. (J'ai fait ce projet avec 4 servos standard de Parallax sans aucun problème de vibration). Les micro-servos utilisés ici sont les moins chers d’Ebay. Ils sont bons à des fins de test cependant.

Toute autre aide ou question que vous avez, n'hésitez pas à me le faire savoir et je me ferai un plaisir de vous aider tous.;)