Licence CC BY-NC

[DIY] Pedro Robot

Bras robotisé imprimé en 3D programmable Arduino

Dernière mise à jour :
Auteur :
Catégories :
Temps de lecture estimé : 3 minutes
Pedro Robot

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.

PRobot Pedro
Pedro Robot
Pedro Robot
Pedro Robot
Pedro Robot

Impression 3D

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

Pièces 3D

Assemblage

Outil requis, 1 tournevis :)

Assemblage

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
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
Pedro Robot
Connexion module USB-TTL
  • [Pedro Robot] <=> [module USB-TTL]
  • D <=> DTR
  • R <=> Rx
  • T <=> Tx
  • V <=> Vcc
  • G <=> GND
Module USB-TTL

Logiciel et Installation

Logiciel Arduino : ici

Driver module USB-TTL CP2102

Système d’exploitation compatible : Windows, Linux et OS X

Pedro Robot Interface Python

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]);
} 

`


4 commentaires

Ça a l’air génial. J’aurais un intérêt à essayer de faire ça chez moi rien que pour le côté mécanique (je n’y connais absolument rien). D’ailleurs, est-ce qu’on peut qualifier ce projet de "mécatronique" ? Car tu as l’air de combiner mécanique, électronique et informatique. C’est assez la classe quand même.

Pour ceux qui voudraient voir le robot en action, j’ai retrouvé la vidéo sur Youtube qui va bien :

Tu as tout à fait raison ce projet regroupe ces 3 aspects mécanique pour la partie design et impression 3D des différentes pièces du robot, électronique pour sa carte embarquée programmable et informatique pour la partie programmation arduino du robot et programmation python pour l’interface avec PC. En ce qui concerne sa conception, elle est très simple même pour un débutant, n’hésite pas si tu souhaites avoir des informations.

Voici une autre vidéo du robot programmé pour réaliser des actions répétées de manière autonome.

Pedro Robot
+5 -0

Du coup, avec le mapping, pas besoin du circuit imprimé ? On peut recréer le circuit chez soit en DIY ?

Projet très classe et très rigolo :3
Je m’y intéresserais certainement pendant l’été.

ache.one                                                            🦊

+1 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte