Nous vous proposons la réalisation d’un robot dessinateur. Nous l’avons conçu pour être le plus simple possible, entièrement open source et reproductible à moindre coût.
Sa spécificité est de pouvoir être contrôlé par une simple page Web fonctionnant sur mobile et tablette et ordinateur sans aucune installation préalable.
Ce petit robot va donc être piloté par des sons de différentes fréquences émis par votre smartphone. Il sait aussi reproduire les dessins en traits continus (les plus anciens reconnaîtront la source d’inspiration de ce projet dans le Thomson T07 et sa tortue pilotée avec le langage LOGO :-)).
Nous avons décomposé ce projet en 3 tutoriels :
1 – Construction du robot et test en mode dessin aléatoire, à ce stade vous aurez un jouet assez sympa.
2 – Etude du programme Web responsive permettant le pilotage et la conversion des dessins en une succession de sons contrôlant la trajectoire du robot.
3 –Programmation de la reconnaissance des sons avec le microcontrôleur Arduino pour le pilotage des servos (révisez vos cours sur les FFT).
TUTO 1/3 – La construction du Robot Dessinateur.
1 x carte microcontrôleur Arduino Uno (à partir de 3€ sur Aliexpress à 20€ sur le store officiel Arduino)
1 x coupleur 9V et fiche mâle 2,1 x 9,5 mm pour l’alimentation de l’Arduino
1 x pile 9V
2 x élastiques, chouchous ou mieux 2 joints toriques de diamètre extérieur 60 mm
2 x servomoteurs à rotation continue parallax chez RS-online (15€) ou bien servo moteur type MG996 à transformer (9€)
1 x bille (celles que vous utilisiez enfant iront très bien)
4 x pièces à imprimer en 3D PLA ou ABS. Pas besoin de support pour ces pièces. Télécharger les fichiers STL ci-dessous :
Histoire de ne pas réinventer la roue, nous nous sommes appuyés sur le projet du PROTOBOT de Avalero pour le châssis de notre robot (ProtoBot (avalero) / CC BY-SA 3.0)
Si vous avez déjà construit un prototbot, imprimez simplement le fichier addon-protobotv1.stl.
Pour les jantes, nous vous proposons un modèle. Il en existe de nombreux compatibles sur thingiverse.com, à choisir en fonction de vos goûts et de l’adaptateur fourni avec votre servomoteur.
Télécharger le projet complet chassietaddon5.FCStd sous FREECAD 0.15 logiciel de conception 3D open Source assez simple d’utilisation
Vous avez tout réuni et fini d’imprimer vos pièces ? alors c’est parti pour l’assemblage !
Si vous n’avez pas d’imprimante 3D, 2 CD, une roue folle récupérée sur un vieux meuble ou chaise de bureau et une plaque (bois ou polycarbonate alvéolaire) feront l’affaire (cf. photo ci-dessous de notre premier prototype).
ETAPE 1 – Assemblez les 2 servomoteurs sur la pièce addon-protobotv1.stl, attention à bien orienter l’axe de vos servomoteurs comme sur la photo. Le passage du crayon et les 2 axes moteurs doivent être alignés, ce qui permettra au crayon de conserver une position fixe lors de la rotation du robot. |
ETAPE 2 – Assemblage du châssis protobot.stl
Le châssis du protobot vient s’insérer à l’intérieur de notre pièce addon-protobotv1 , vous avez la place de ranger l’excédent de câble à l’intérieur, ne laissez dépasser que les 2 connecteurs.
Solidarisez l’ensemble avec 4 vis (2 pour chaque servo), c’est amplement suffisant.
ETAPE 3 – Fixez la carte Arduino avec 2 vis sur l’avant et insérez une bille. La carte Arduino se positionne en butée du support crayon.
Remarquez au passage ce superbe fond plat pour une meilleure tenue de route sur circuit 🙂
ETAPE 4 – Montage des jantes sur les servos
Nous avons opté pour l’utilisation des accessoires fournis avec les servomoteurs pour solidariser la jante à l’axe du servo.
Il existe aussi des modèles de roue intégrant le pignon cranté, attention dans ce cas votre impression doit être précise (http://www.thingiverse.com/thing:543267 )
Un élastique, un chouchou ou mieux un joint torique de diamètre extérieur 60 mm à insérer dans la gorge de la jante apportera un surplus d’adhérence à votre robot.
ETAPE 5 – Câblage
La batterie de 9V s’insère sous le robot, cette dernière fournit l’alimentation pour l’Arduino et les moteurs via la Pin 5V de l’Arduino.
La commande des moteurs (fil orange ou blanc) est reliée aux bornes 3 et 9. Vous pouvez utiliser les bornes 2 à 12 sans problème, pensez à modifier le code.
leftServo.attach(9); // attaches the servo on pin 9 to the servo object
rightServo.attach(3); // attaches the servo on pin 3 to the servo object
Si vos servomoteurs consomment plus que ne peut le supporter le convertisseur de l’Arduino, ce dernier rebootera. Dans ce cas changez la batterie ou optez pour une alimentation directe des servomoteurs sans omettre la masse commune.
Nous avons utilisé une batterie rechargeable 9v/ 170mAh (après avoir vidé la pile Duracell sur les photos :-))
ETAPE 6 – Chargement du code Arduino
Uploadez le code ci-dessous dans votre microcontrôleur Arduino , votre robot se déplacera de manière aléatoire effectuant des rotations droite/gauche et des marches avant/arrière.
Le code est simple et assez largement commenté, n’hésitez pas à le modifier. Il n’y a pas de librairie à ajouter. Seule la librairie servo.h incluse en standard est utilisée pour générer les signaux PWM de commande destinés aux servomoteurs.
ETAPE 7 – IMPORTANT : Dernier réglage avant départ …
Vos 2 servomoteurs doivent être à l’arrêt au lancement du véhicule, si ce n’est pas le cas, il vous faudra ajuster les potentiomètres. Si vous utilisez des parallax par exemple, ils sont accessibles via un orifice sur l’arrière (cf. photo de droite).
Nous avons aussi transformé 2 servomoteurs « classique », pour cette opération il existe de nombreux tutos sur le net.
Pour nos servos hackés, nous avons choisi de laisser à l’extérieur les potentiomètres (photo de gauche), cela donne un côté double échappements à notre robot 🙂
Ce premier tuto touche à sa fin, amusez-vous bien avec votre drawing bot, n’hésitez pas à nous faire parvenir des photos de vos réalisations et dessins aléatoires.
Voici une petite vidéo de démonstration pour finir.
Pour anticiper le tuto no 2 vous pouvez lancer la page de contrôle du robot : https://quai-lab.com/draw-bot/v2/
Remerciements pour leurs participations à ce projet made in QUAI-LAB à :
Kevin.D , Mickael. Sebastien.B , Didier.L, Mickael.B, Serge.B, Fabrice.B
Pour en savoir plus sur les servomoteurs:
Le Blog D’ESKIMON http://eskimon.fr/287-arduino-602-un-moteur-qui-de-la-tete-le-servo-moteur
Licence pour cette partie du projet : Creative Commons – Attribution – Non-Commercial license.