
Disponible sur Tindie
Pedro Robot est un bras robotisé Open Source entièrement imprimé en 3D. Idéal pour l’apprentissage et l’enseignement le robot Pedro permet aux enseignants, élèves ou étudiants de s’initier à la robotique et à la programmation.
Une fois les pièces du robot imprimées, son assemblage est très simple et nécessite très peu d’outils les étapes à suivre avec images détaillées sont décrites à la suite de cet article.
Équipé d’une carte embarquée avec un microcontrôleur Atmega328 programmable Arduino, le robot Pedro peut être piloté manuellement ou via une interface sur PC par liaison USB. Une interface développée en Python qui utilise des librairies graphiques comme Gtk ou Tkinter. L’avantage du langage Python pour ce type d’application est sa portabilité et sa compatibilité avec différents systèmes d’exploitation. Le même code source sera donc compatible à la fois sur Windows, Linux et OS X.
A la suite de cet article nous verrons différentes applications réalisables avec le robot Pedro comme l’enregistrement et l’exécution de séquences programmées, la gestion de la mémoire ou la programmation de boutons d’action.




Impression 3D
Les fichiers .STL pour l’impression 3D du robot sont disponibles : ici

Assemblage
Outil requis, 1 tournevis

Connexion et Mapping Arduino
Pedro Robot est équipé d’une carte embarquée programmable équipée d’un micro-controlleur Atmega328 alimenté en 5V. Quatre potentiomètre permettant de commander les 4 servomoteurs sont connectés aux ports analogiques A5, A4, A3 et A2 en entrée (INPUT) de l’Atmega328. Une liaison USB TTL permet au robot de recevoir des commandes par ordinateur via une interface développée en Python

Pedro Robot et mapping Arduino :
- [Pedro Robot] <=> [Arduino]
- Button 1 <=> digital pin 12
- Button 2 <=> digital pin 13
- Led 1 <=> digital pin 9
- Led 2 <=> digital pin 10
- Servo 1 <=> digital pin 3
- Servo 2 <=> digital pin 5
- Servo 3 <=> digital pin 6
- Servo 4 <=> digital pin 11
- Potentiometer 1 <=> analog pin 5
- Potentiometer 2 <=> analog pin 4
- Potentiometer 3 <=> analog pin 3
- Potentiometer 4 <=> analog pin 2

Connexion module USB-TTL
- [Pedro Robot] <=> [module USB-TTL]
- D <=> DTR
- R <=> Rx
- T <=> Tx
- V <=> Vcc
- G <=> GND

Logiciel et Installation
Logiciel Arduino : ici
Driver module USB-TTL CP2102
Système d’exploitation compatible : Windows, Linux et OS X
Programmation Arduino
Ce programme très simple est le programme de base du robot Pedro. Il permet de :
- commander le robot via les 4 potentiomètres.
- allumer/éteindre les LEDs grâce aux boutons ou au bouton switch
Ces LEDs peuvent être utilisées comme témoins lors de l’exécution de fonctions (ex: enregistrement de séquences)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | #include <Servo.h> Servo servo1; Servo servo2; Servo servo3; Servo servo4; int msg[5]; int val1 = 0; int val2 = 0; int val3 = 0; int val4 = 0; void setup() { Serial.begin(9600); pinMode (9,OUTPUT); digitalWrite (9, HIGH); pinMode (10,OUTPUT); digitalWrite (10, LOW); pinMode (7,INPUT); pinMode (8,INPUT); servo1.attach(3); servo2.attach(5); servo3.attach(6); servo4.attach(11); delay(1000); } void loop () { analog_Write(); if (digitalRead(7) == true) { digitalWrite (9, HIGH); } else if (digitalRead(7) == false) { digitalWrite (9, LOW); } if (digitalRead(8) == true) { digitalWrite (10, HIGH); } else if (digitalRead(8) == false) { digitalWrite (10, LOW); } } void analog_Read() { val1 = analogRead(5); val1 = map(val1, 0, 1023, 0, 180); val2 = analogRead(4); val2 = map(val2, 0, 1023, 0, 180); val3 = analogRead(3); val3 = map(val3, 0, 1023, 0, 180); val4 = analogRead(2); val4 = map(val4, 0, 1023, 0, 180); msg[1] = val1; msg[2] = val2; msg[3] = val3; msg[4] = val4; } void analog_Write() { analog_Read(); servo1.write (msg[1]); servo2.write (msg[2]); servo3.write (msg[3]); servo4.write (msg[4]); } ` |