Table des matières:

Bras robotique avec modules Zio Partie 2 : 11 étapes
Bras robotique avec modules Zio Partie 2 : 11 étapes

Vidéo: Bras robotique avec modules Zio Partie 2 : 11 étapes

Vidéo: Bras robotique avec modules Zio Partie 2 : 11 étapes
Vidéo: Comment fabriquer un robot - part 2 | Arduino #10 2024, Novembre
Anonim
Bras robotique avec modules Zio Partie 2
Bras robotique avec modules Zio Partie 2

Dans le didacticiel d'aujourd'hui, nous utiliserons les 4 servos et une manette sans fil PS2 pour contrôler le bras robotique.

Cet article de blog fait partie de la série Zio Robotics.

introduction

Dans notre blog précédent, nous avons publié le didacticiel de la partie 1 sur la façon de contrôler un bras robotique à l'aide des modules Zio. La partie 1 s'est principalement concentrée sur le contrôle automatique de l'ouverture et de la fermeture de la griffe de votre bras robotique.

Dans le didacticiel d'aujourd'hui, nous allons l'améliorer un peu en incluant une manette sans fil PS2 pour contrôler le bras robotique. Pour ce projet, nous utiliserons 4 servos.

Étape 1: Présentation du projet

Niveau de difficulté:

Zio Padawan

Ressources utiles:

Vous devez avoir une compréhension de base de l'installation des cartes de développement Zio. Dans ce tutoriel, nous supposons que votre carte de développement est déjà configurée et prête à être configurée. Si vous n'avez pas encore configuré votre carte, consultez notre tutoriel Zio Qwiic Start Guide ci-dessous pour commencer:

Guide de démarrage Zio Zuino M UNO Qwiic

Étape 2: Schémas

Schémas
Schémas

Voici les schémas de câblage du projet de bras robotique partie 2 ainsi que le schéma du contrôleur PS2 nécessaire pour comprendre votre partie de codage.

Étape 3: Schéma du contrôleur PS2

Schéma du contrôleur PS2
Schéma du contrôleur PS2

Étape 4: Configuration de la connexion des modules Zio

Ci-dessous la connexion de nos modules Zio à mettre en place avec le Bras Robotique. Connecter tous les modules ensemble est assez facile et ne prendra pas plus de 10 minutes à configurer.

Étape 5: connectez le servo du bras robotique au servo-contrôleur Zio 16

Connectez le servo du bras robotique au servo-contrôleur Zio 16
Connectez le servo du bras robotique au servo-contrôleur Zio 16

Étape 6: connectez votre servo 16 au booster DC/DC et réglez-le sur 6,0 V

Connectez votre servo 16 au booster DC/DC et réglez-le à 6,0 V
Connectez votre servo 16 au booster DC/DC et réglez-le à 6,0 V

Nous utilisons un booster DC/DC pour augmenter et ajuster la tension d'alimentation de la batterie à 6,0.

Utilisez le potentiomètre du DC Booster pour ajuster la tension jusqu'à ce que vous obteniez 6,0. Appuyez sur le bouton In/Out jusqu'à ce que l'écran affiche 6.0. Vous devez d'abord alimenter (batterie 3,7 V) votre Booster DC/DC afin d'ajuster la tension.

Étape 7: connectez le Zuino M Uno au servo-contrôleur Zio 16

Connectez le Zuino M Uno au servo-contrôleur Zio 16
Connectez le Zuino M Uno au servo-contrôleur Zio 16

Qwiic connecte Zuino M Uno au contrôleur Zio Servo avec un câble qwiic.

Étape 8: Connecter Uno au récepteur PS2

Connecter Uno au récepteur PS2
Connecter Uno au récepteur PS2

Voici un schéma des broches des connexions. Vous avez besoin de 5 fils de connexion mâle à femelle pour cette partie.

Étape 9: Code pour le bras robotique

Nous utiliserons la bibliothèque PS2 Arduino pour coder notre contrôleur sans fil PS2 afin qu'il fonctionne avec notre bras robotique. Vous pouvez trouver et télécharger le code source de ce projet Robotic Arm Part 2 sur notre page Github.

Téléchargez et installez les bibliothèques suivantes et enregistrez-les dans votre dossier de bibliothèques locales Arduino IDE:

  • Bibliothèque de pilotes de servomoteurs Adafruit PWM
  • Bibliothèque Arduino PS2

Pour installer les bibliothèques, ouvrez votre IDE Arduino, accédez à l'onglet Esquisse, sélectionnez Inclure la bibliothèque -> Add. Zip Library. Sélectionnez les bibliothèques ci-dessus à inclure dans votre IDE.

Arduino a un guide pratique sur la façon d'installer des bibliothèques sur votre IDE Arduino. Découvrez-les ici !

Étape 10: Exécutez votre code

Exécutez votre code
Exécutez votre code

Ouvrez l'IDE Arduino. Sous Fichiers > Exemples > PS2_Arduino_Library, sélectionnez PS2X_Servo

Remarque: avant de pouvoir contrôler votre bras robotique avec la manette PS2, vérifiez les étapes suivantes: Allumez votre manette PS2. Vérifiez que la LED Mode s'allume. Si ce n'est pas le cas, appuyez sur le bouton Mode de votre manette. Après avoir fait ce qui précède, vous devez appuyer sur le bouton de réinitialisation de votre Zuino M Uno pour qu'il lise les paramètres de votre contrôleur. Vous devez appuyer sur L1 et le joystick pour déplacer votre bras robotique.

  • Le joystick gauche contrôle la flexion du bras vers le haut ou vers le bas
  • Le joystick droit contrôle l'ouverture ou la fermeture de la griffe et la rotation de la griffe vers la gauche ou la droite.

Étape 11: Explication du code

L'utilisation de la bibliothèque PS2X Arduino est simple, ne nécessitant qu'une initialisation, une configuration, puis une commande de lecture.

Pour définir la connexion de votre manette PS2 avec votre Uno, voici les broches que vous devez définir dans votre code:

/****************************************************** ******************* * set de pins connecté à la manette PS2: * - 1e colonne: original * - 2e colmun: Stef ? * remplacez les numéros de broche par ceux que vous utilisez****************************************** **********************/#define PS2_DAT 13 //14 #define PS2_CMD 11 //15#define PS2_SEL 10 //16#define PS2_CLK 12 // 17

Nous avons remplacé les broches par celles que nous utilisons pour nous connecter à notre Uno, comme indiqué sur le schéma des broches ci-dessus.

/****************************************************** **************** sélectionnez les modes de la manette PS2: * - pressions = lecture analogique des boutons poussoirs * - grondement = grondement du moteur * décommentez 1 des lignes pour chaque sélection de mode** ************************************************** ************/ //#define pressions true#define pressions false //#define rumble true#define rumble false

Ici, nous avons défini le mode PS2 pour les pressions et le grondement comme faux. Nous avons commenté ceux que nous n'utilisons pas.

Nous n'utiliserons que la commande du joystick du contrôleur et L1 pour contrôler le mouvement de notre bras robotique.

void loop() {/* Vous devez lire la manette de jeu pour obtenir de nouvelles valeurs et définir des valeurs de vibration ps2x.read_gamepad (petit moteur allumé/éteint, plus grande force du moteur de 0 à 255) si vous n'activez pas le grondement, utilisez ps2x.read_gamepad (); sans valeur Vous devriez l'appeler au moins une fois par seconde*/ if(error == 1) // ignore la boucle si aucun contrôleur n'a été trouvé return; else { // Contrôleur DualShock ps2x.read_gamepad(false, vibrate); //lire le contrôleur et régler le gros moteur pour qu'il tourne à la vitesse de « vibration » si (ps2x. Button(PSB_START))//sera TRUE tant que le bouton est enfoncé Serial.println("Start est maintenu"); if(ps2x. Button(PSB_SELECT)) Serial.println("La sélection est maintenue"); vibrer = ps2x. Analog(PSAB_CROSS); // cela définira la grande vitesse de vibration du moteur en fonction de la force avec laquelle vous appuyez sur le bouton bleu (X) if(ps2x. Button(PSB_L1) || ps2x. Button(PSB_R1)) { //imprimer les valeurs du bâton si l'un ou l'autre est VRAI RY_Value =ps2x. Analog(PSS_RY); RX_Value=ps2x. Analog(PSS_RX); LY_Value=ps2x. Analog(PSS_LY); LX_Value=ps2x. Analog(PSS_LX);Serial.print("Stick Values:"); Serial.print(RX_Value); Serial.print(" "); Serial.print(RY_Value); Serial.print(" "); Serial.print(LY_Value); Serial.print(" "); Serial.println(LX_Value);

Le code ci-dessous est l'endroit où nous codons nos servos qui contrôlent notre bras robotique que nous incluons dans l'appel de fonction sous ps2x.button(PSB_L1)|| ps2x.bouton(PSB_R1).

Vous devez appuyer sur le bouton L1 ou R1 avec le joystick pour contrôler votre bras robotique.

Le joystick gauche contrôle les servos 2 et 3 pour la partie bras - contrôlent respectivement la flexion vers le haut et vers le bas du bras, tandis que le joystick droit contrôle les servos 0 et 1 de la griffe du bras robotique pour ouvrir ou fermer, et pour tourner à gauche ou à droite.

SERVO 0, 1 - Griffe SERVO 2, 3 - Bras

Vous pouvez modifier les valeurs de cette section pour contrôler le degré d'angle de votre bras robotique:

pulselen0=map(RY_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen1=map(RX_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen2=map(LY_Value, 0, 127, SERVOMIN2, SERVOMAX2); pulselen3=map(LX_Value, 0, 255, SERVOMIN3, SERVOMAX3);

Conseillé: