View All

Facebook Timeline

Programmer un robot sans Ordinateur: Un jeu d'enfant!

Posted On: avril 24, 2022

Seen by: 961

Categories: ROBOTS

Author: Christian Joseph

Dans ce tutoriel, vous allez pouvoir programmer votre bras robot 6 axes sans ordinateur avec les 3 nouvelles cartes et l'application Android Made by Eagle Robotics! 

Eh oui les amis, après moult sollicitations et encouragements de la part de nos clients, nous l'avons enfin fait: créer un système pour programmer votre bras robot ou tout autre projet robotique sans ordinateur, sans codage, bref sans prise de tête. Bienvenue dans l'univers de la cobotique.

SOMMAIRE:

  1. INTRODUCTION

  2. Présentation des cartes

    • La Carte Shield Joystick V3.0

    • La Carte Shield EAGLE V2.0

    • La Carte Shield STEPSER V1.0

  3. L'application ANDROID

  4. Les Programmes Arduino

    • Enregistrement des données dans la Carte Micro-SD

    • Lecture des données dans la Carte Micro-SD

    • Le Programme Arduino JOYSTICK V3.0

    • Le Programme Arduino EAGLE V2.0

    • Le Programme Arduino STEPSER V1.0

    • ASSISTANCE

1 - INTRODUCTION

Dans La vidéo suivante, les bras robots ont été transformés en marionnettes et ont été programmés sans ordinateur, ni codage: PROGRAMMER SANS ORDINATEUR, UN JEU D'ENFANT.

Et voici la vidéo du MAKING OF: KOKO et BORA, LE MAKING OF.

Tout est parti d'une idée de mon fils William qui m'a mis au défi de transformer les bras robots en marionnettes. Et comme chez Eagle Robotics on ne recule pas devant un défi...

Le nom des marionnettes est un clin d'oeil à l'agence qui s'occupe de notre communication visuelle @Kobora.

Nous avons donc développé 3 cartes shield pour la carte Arduino UNO + 1 application ANDROID:

  • COTE COMMANDE: 1 carte Shield Joystick V3.0  ou l' application Android Made by Eagle Robotics pour piloter le robot à distance, lancer l'enregistrement des mouvements moteurs et de délais d'attente, et lancer l'exécution des séquences enregistrées.

  • COTE ROBOT: 2 cartes au choix lesquelles en fonction des commandes reçues de la carte Joystick vont gérer les mouvements des servomoteurs et des steppers du robot, et à partir de la carte Micro-SD (insérée dans le connecteur prévu à cet effet),  enregistrer les mouvements des moteurs, enregistrer les délais d'attentes, et exécuter les séquences de mouvements et de délais d'attente. Je vous présente les cartes SHIELD EAGLE V2.0 et STEPSER V1.0

2 - PRESENTATION DES CARTES

Les cartes sont accessibles  séparément mais sont également incluses dans les kits Bras robot 6 axes Arduino BluetoothBras robot 6 axes + Joystick Bluetooth Arduino et Bras robot Stepser + joystick Arduino

2.1 - LA CARTE SHIELD JOYSTICK 3.0

La Carte Shield Joystick 3.0 est une évolution de la 2.0 avec un nouveau design et une couleur disons noir mate (la précédente carte était blanche maculée).

Cette carte est dotée comme l'ancienne version de 2 Joysticks avec bouton poussoir intégré, 4 boutons poussoirs, d'un connecteur pour module Bluetooth HC05 (synchronisé avec le module Bluetooth de la carte shield côté robot pour l'échange de données), d'un connecteur pour accéléromètre et gyroscope MPU6500 /MPU6050/MPU9250. La nouveauté réside dans le fait que la carte peut non seulement gérer un écran OLED 0.96 pouces (comme la version précédente), mais aussi un écran OLED 1.3 pouces.

Nous avons développé (ouf je sais l'écrire maintenant sans faire de fautes...) un menu de sorte à sélectionner le moteur que l'on souhaite bouger, effectuer le mouvement du moteur, enregistrer ce mouvement, puis l'exécuter. Il est tout à fait possible de faire bouger plusieurs servomoteurs à la fois.Et pour finir, vous avez aussi la possibilité d'ajouter des "Temps d'attente" ou délais (delay in English please!) entre 2 mouvements de moteurs de 1 s à 3600 secondes max (1h). Vous aurez en effet besoin que votre robot effectue par exemple une pause de 10 secondes entre 2 séquences avant de reprendre sa tâche. C'est la raison pour laquelle il nous semblait important de rajouter cette fonctionnalité au projet.

Les données seront enregistrées dans la carte micro-SD située sur le shield côté robot au format .Txt (fichier texte que l'on peut ouvrir avec Bloc-notes). Nous y reviendrons plus tard dans la section programmation.

Joystick Arduino Commands

ON SELECTIONNE LE MOTEUR DE NOTRE CHOIX: SERVOMOTEUR...

Joystick -selection -servo 1

Joystick selection servo 4

OU MOTEUR PAS-A-PAS (pour la carte STEPSER)

Joystick choix du stepper

ON BOUGE LE MOTEUR A NOTRE CONVENANCE

Joystick rotation du servomoteur

ON ENREGISTRE LA DONNEE DANS LA CARTE MICRO-SD DU ROBOT

Joystick enregistrement de la donnée

ON AJOUTE UN DELAI D'ATTENTE (ICI 6 SECONDES)

Joystick -elaboration délai

ON ENVOI LE TEMPS AU ROBOT POUR ENREGISTREMENT DANS LA CARTE MICRO-SD.

Joystick - Envoi délai attente au robot

ON ENVOI L'ORDRE AU ROBOT D'EXECUTER LE CONTENU DE SA CARTE MICRO-SD

Joystick Execution sequence

2.2 - CARTE SHIELD EAGLE SERVOS V2.0

La carte Shield Eagle SERVOS V2.0 est une évolution de la précédente carte Eagle SERVOS V1.0 et peut gérer jusqu'à 12 servomoteurs. Elle dispose aussi d'un connecteur pour module Bluetooth HC05, HC06 (synchronisé avec le module Bluetooth de la carte Joystick 3.0), un connecteur pour LIDAR et modules ultrasons HC-SR04 version 2020 fonctionnant en I2C, et un connecteur pour modules accéléromètres et gyroscopes MPU6500 /MPU6050/MPU9250. La carte dispose aussi d'un régulateur de tension 5V 3A et d'un connecteur pour cartes Micro-SD. Ouf on y est arrivé!

Le principe de ce shield est de vous permettre d'une part d'enregistrer les mouvements des servomoteurs et les temps d'attentes dans la carte Micro-SD au format texte, et d'autre part d'exécuter ces informations. C'est ce que nous verrons dans la partie programmation.

Shield Arduino servo 2.0 Eagle

Shield Eagle V2 Arduino Uno

BRANCHEMENT DU BRAS ROBOT

Shield Eagle V2 Wiring

GESTION DU REGULATEUR DE TENSION

Le régulateur de tension 5V 3A est surtout utile si vous utilisez des servomoteurs de petit gabarit comme les SG90 et pour des robots comme les Spiderbots et Hexapode R12, et le Bras robot 4 axes. Il arrive aussi à gérer aisément 3 à 4 servomoteurs MG995 ou MG996, et même 6 servomoteurs. Mais compte tenu de l'effort demandé à un bras robot, et donc un besoin de puissance supplémentaire, le régulateur risque de ne pas fournir suffisamment d'énergie aux servomoteurs ce qui conduirait à l'éffondrement du Bras Robot. C'est la raison pour laquelle vous avez la possibilité via des cavaliers d'alimenter les servomoteurs via la régulateur de tension ou non, en fonction du comportement de votre robot.

Régulateur Activé: La tension de sortie et donc d'alimentation des servomoteurs est de 5V.

Shield Eagle V2 Regulateur ON

Régulateur Désactivé: Les servomoteurs sont alimentés en direct via le coupleur de piles 18650. La tension de sortie théorique est de 7.4V, mais on n'est plus autour de 6.8V, ce qui est largement suffisant pour les Servomoteur, tout en leur fournissant toutes la puissance nécessaire en terme d'ampérage.

Shield Eagle V2 Regulateur OFF

2.3 - CARTE SHIELD STEPSER V1.0

Comme vous l'aurez sûrement deviné, STEPSER vient de la contraction entre STEPper (plus communément appelé dans la langue de molière de moteur pas-à-pas) et SERvomoteur. Donc comme vous voyez on a pas cherché bien loin pour nommer cette carte.

Et comme son nom l'indique, la carte STEPSER V1.0 peut gérer jusqu'à 10 servomoteurs et 2 moteurs pas-à-pas. Elle dispose aussi d'un connecteur pour un module Bluetooth (synchronisé avec le module Bluetooth de la carte Joystick 3.0)

Shield STEPSER Arduino

Shield STEPSER Arduino UNO

BRANCHEMENT DU BRAS ROBOT

Shield STEPSER Wiring

N.B: Dans ce tutoriel, nous n'utilisons qu'un Stepper branché sur le connecteur du Haut.

GESTION DU REGULATEUR DE TENSION

Sur cette carte vous avez la possibilité d'utiliser une seule alimentation ou batterie pour alimenter vos servomoteurs (via le régulateur) et vos steppers. En effet les steppers demandent une tension d'au moins 14V jusqu'à 20V en moyenne, et les servomoteurs sont plus sur du 6.8V max. Le régulateur peut accepter de 7.5V à 20V max en entrée et délivre 5V 3A max en sortie. Le régulateur est activé ou désactivé via le jeu de cavaliers.

Régulateur ON:

Lorsque le régulateur est actif, les servomoteurs et les Steppers ont la même alimentation via la broche d'alimentation des Steppers.

Shield STEPSER Régulateur ON

Régulateur OFF:

Lorsque le régulateur est désactivé, les servomoteurs et les steppers sont alimentés séparément.

Shield STEPSER Regulateur OFF

3 - L'APPLICATION ANDROID ROBOTICARM_V2

L'application Android ROBOTICARM_V2 disponible sur notre site permet de faire tout ce que le shield Joystick V3.0 fait à savoir utiliser le bras robot en direct, enregistrer les mouvements, et exécuter la séquence enregistrée

Application Android robotic learning

4 - LES PROGRAMMES ARDUINO

4.1 ENREGISTREMENT DES DONNEES DANS LA CARTE MICRO-SD

Nous allons aborder l'enregistrement des données entre le shield Joystick V3.0 et le shield Eagle V2.0 et voir comment la séquence exécutée par le bras robot est enregistrée dans la carte Micro-SD. Je vous présente l'opération "Rangement de chambre" initiée par mon fils dans la " vidéo du Making Of"

Considérez l'une des 2 images ci-dessous au choix, où le but est de faire passer l'objet A vers B:

IMAGE 1

bras robot cobotique

OU IMAGE 2

Bras robot cobotique OM

Supposons que nous voulions déplacer l'objet A dans B. Pour ce faire, nous allons devoir décomposer les mouvements du bras robot par séquences:

  1. Je sélectionne le servomoteur S2 sur l'écran du shield Joystick

  2. Je bouge le servomoteur vers le Bas

  3. J'appuie sur le bouton pour enregistrer le mouvement dans la carte micro-SD

  4. Je sélectionne le servomoteur S6 (pince) sur l'écran du shield Joystick

  5. Je bouge le servomoteur pour fermer la pince et saisir l'objet A

  6. J'appuie sur le bouton pour enregistrer le mouvement dans la carte micro-SD

  7. Je sélectionne le Temps sur l'écran du shield Joystick

  8. J'ajoute 3 secondes de délai (histoire de laisser le temps à la pince de saisir l'objet)

  9. J'appuie sur le bouton pour enregistrer le délai de 3 secondes dans la carte micro-SD

  10. Je sélectionne le servomoteur S2 sur l'écran du shield Joystick

  11. Je bouge le servomoteur vers le Haut

  12. Je sélectionne le servomoteur S3 sur l'écran du shield Joystick

  13. Je bouge le servomoteur vers le Haut

  14. J'appuie sur le bouton pour enregistrer le mouvement des 2 servomoteurs dans la carte micro-SD (lors de l'exécution, les 2 servomoteurs bougeront en même temps)

  15. Je sélectionne le servomoteur S1 sur l'écran du shield Joystick

  16. Je bouge le servomoteur vers la droite

  17. J'appuie sur le bouton pour enregistrer le mouvement du servomoteur dans la carte micro-SD

  18. Je sélectionne le servomoteur S2 sur l'écran du shield Joystick

  19. Je bouge le servomoteur vers le Bas

  20. Je sélectionne le servomoteur S3 sur l'écran du shield Joystick

  21. Je bouge le servomoteur vers le Bas

  22. J'appuie sur le bouton pour enregistrer le mouvement des 2 servomoteurs dans la carte micro-SD (lors de l'exécution, les 2 servomoteurs bougeront en même temps)

  23. Je sélectionne le servomoteur S6 (Pince) sur l'écran du shield Joystick

  24. Je bouge le servomoteur pour ouvrir la pince

  25. J'appuie sur le bouton pour enregistrer le mouvement du servomoteur

Et voilà! nous avons crée notre séquence en utilisant le shield Joystick V3.0 et le shield Eagle Servos V2.0. Si vous utilisez la carte Shield STEPSER, la procédure est la même, mais vous pouvez aussi sélectionner les Steppers (moteurs pas-à-pas) sur l'écran du shield Joystick, effectuer le déplacement  du Stepper, et ensuite enregistrer le mouvement dans la carte micro-SD en appuyant sur le bouton affecté à cette fonction sur la carte shield Joystick V3.0

Pour exécuter la séquence, il vous suffit d'appuyer sur le bouton prévu à cet effet sur le shield Joystick, et le robot se remettra automatiquement dans sa position de départ (position qu'il avait juste avant l'étape 1)  et exécutera toutes les étapes de 1 à 25.

Une fois toute la séquence exécutée, vous pouvez continuer à programmer le robot et ajouter des étapes supplémentaires.

4.2 LECTURE DES DONNEES DE LA CARTE MICRO-SD

Prenons par exemple le fichier pour faire parler notre robot Koko (voir vidéo)

Fichier texte bras robot

Notre fichier s'appelle Robot.txt et est crée automatiquement par le programme Arduino côté shield Robot. Mais libre à vous de l'appeler comme vous le souhaitez.

Bien! maintenant analysons le contenu du fichier. prenons par exemple la ligne 1:

1, 90,90,2,90,90,3,90,90,4,90,90,5,90,90,120,44

ceci signifie: Servo S1, position de départ S1, position d'arrivée S1, Servo S2, position de départ S2, position d'arrivée S2, Servo S3, position de départ S3, position d'arrivée S3, Servo S4, position de départ S4, position d'arrivée S4, Servo S5, position de départ S5, position d'arrivée S5, Servo S6, position de départ S6, position d'arrivée S6.

Comme vous pouvez le constater, il n'y a que le servomoteur S6 qui bouge vu que sa position de départ est différente de sa position d'arrivée.

Notre programme Arduino côté Robot va lire le fichier Ligne par Ligne et ainsi interpréter et exécuter les instructions reçues.

Nous allons ensuite nous intéresser à l'information suivante: T,4000

Lorsque le programme Arduino arrive sur ce type d'instruction et identifie la lettre T, il sait que les prochaines données qu'il va recevoir vont concerner un délai d'attente et mettra ainsi le système en pause (ici pendant 4 secondes).

Et pour finir nous nous intéressons à cette information qui n'est valable que pour la carte Shield STEPSER: M,0,2,0,0

qui signifie Mode Stepper, Position de départ Stepper P1, position d'arrivée Stepper P1,  Position de départ Stepper P2, position d'arrivée Stepper P2.

Ici le stepper P1 bouge de la position 0 vers la position 2, en clair, l'axe du stepper effectue 2 tours complets. Selon la longueur de l'axe sur lequel votre robot pourra se déplacer, l'axe du stepper pourra effectuer plus ou moins de tours. Dans notre vidéo, le stepper pouvait réaliser jusqu'à 7 tours. Le Bras robot Stepser + joystick Arduino dispose aussi de 2 capteurs de fin de course.

 capteur fin de course stepser

4.6 ASSISTANCE

Pour toute demande d'assistance, vous pouvez nous contacter sur PROJET@EAGLE-ROBOTICS.COM sans oublier la phrase magique: "SVP OH GRAND MAÎTRE DE LA ROBOTIQUE..." puis formulez votre requête, ajoutez-y quelques flatteries et superlatifs, sinon votre requête ne sera pas traitée...Je plaisante (ou pas! A vous de voir...)