Robot vacances¶
Ce projet sera décrit en français et a pour objectif de pouvoir par la suite créer un petit robot octogonal en MDF découpé au laser, le programmer, créer l'application Android... Il s'agit de la partie détaillée de la page présentée lors de l'atelier (disponible ici).
- Contenu
- Robot vacances
Mécanique¶
Ici est décrit comment dessiner, découper et assembler les parties "mécaniques" du robot.
Liste des pièces¶
Il y a deux types de pièces à fabriquer, les pièces à découper en MDF qui feront office de châssis du robot, et les roues à imprimer en 3D (en PLA).Les pièces à découper sont personnalisables pour ajouter des gravures ou d'autres découpes.
Pièces à découper | ensemble.svg | Châssis du véhicule, en quatre pièces (petite version) |
Pièces à découper | Flanc_Moteur2.svg Plaq_Dessous.svg plaque_dessus.svg | Châssis du véhicule, en quatre pièces (version allongée) |
Pièce à imprimer | Jante_40.FCStd | Jantes du véhicule, à entourer d'un joint en caoutchouc |
Assemblage du chassis¶
Une fois les pièces découpées et imprimées, on peut tout assembler.
Mise en place des entretoises pour fixer les cartes¶
Avant toute chose on va venir fixer les entretoises qui serviront ensuite de support pour les cartes électroniques. Pour cela on place les entretoises femelle/femelle qu'on vient fixer à l'aide de vis M3. On place les entretoises à ces emplacements :
METTRE UNE IMAGE POUR MONTRER LES POSITIONS
Moteurs¶
On peut ensuite prendre les 2 plaques "flanc moteur" et y fixer à l'aide de vis et d'écrous les moteurs. Il faut faire attention à placer l'arbre de sortie du moteur à l’extérieur du robot et les fils à l'intérieur.
Assemblage¶
En utilisant de la colle à bois, on peut maintenant fixer chaque partie du robot ensemble et laisser sécher une nuit entière.
Électronique et programmation.¶
Avant de continuer l'assemblage du robot, on va s'occuper de l'électronique de puissance pour alimenter le robot et de la programmation pour le contrôler.
Électronique¶
Pour alimenter le robot, on utilise 6x piles AA de 1.5V soit au total une alimentation de 9V. La carte ESP32 accepte une tension de 5V et les moteurs fonctionnent sous 5V. On va donc créer un circuit permettant de convertir les 9V en 5V en y ajoutant un interrupteur. On met une diode pour protéger le sens du courant ainsi qu'une capacité pour filtrer la tension. Le circuit ressemble à ceci :
Programme du robot¶
Le robot est doté d'un ESP32 que l'on code en C++ avec l'IDE Arduino. Le robot est contrôlé par Wifi en utilisant des requêtes HTTP. On utilise un serveur web asynchrone qui reçoit les requêtes (GET) en continu et utilise un système de drapeaux pour le pilotage. Le code est disponible ici : commande_telephone.zip.Il faut penser à installer les librairies Arduino suivantes :
- Arduino_ESP32_OTA (by Arduino)
- AsyncTCP (by dvarrell)
- ESPAsyncWebServer (by lacamera)
Pour contrôler le robot on peut le faire soit avec une application android codée sur le site App Inventor, soit avec une Web App codée en HTML/JavaScript pour contrôler le robot avec les flèches du clavier de l'ordinateur.
Sur le site App Inventor, on peut importer des projets en ".aia", le projet est disponible ici : attachment:robot_control(1).aia. Il y a deux onglets, un pour l'interface graphique ("designer") et l'autre pour le code ("blocks"). La programmation se fait sous forme de blocs (programmation type Scratch). Le principe est simple : quand un bouton est activé (avancer de 10cm par exemple), l'application envoie une requête GET au site "http:// ADRESSE IP /get?command= forward &value= 10 et le robot interprète cette requête.
De la même manière, la Web App index.html envoie le même type de requêtes lors de l'appuie sur les touches du clavier.
Assemblage final¶
On place le support des piles à l'étage inférieur entre les moteurs et on fait remonter les fils (+) et (-) vers la breadboard pour transformer la tension de 9v vers 5v. La sortie de la breadboard se branche sur la carte ESP32 en +Vcc et GND. En regardant le code Arduino, on effectue les branchements entre l'ESP32 et les différents moteurs présents.
Amélioration à effectuer¶
Plusieurs améliorations sont à effectuer sur le robot après les retours de l'atelier.
Assemblage¶
La partie du dessus a parfois été assemblée à l'envers, ajouter des détrompeurs dans le modèle pour plus de sécurité.
Autonomie¶
L'utilisation de 6 piles AA (Amazon basics) s'est révélé être compliqué au niveau autonomie. Au bout d'une journée, la plus part des robots se sont retrouvés HS. L'utilisation de batteries rechargeables serait plus écologique et finalement plus économique.
Électronique¶
Les fils utilisés lors de l'atelier n'étaient pas forcément bien adaptés à la breadboard et on a eu quelques soucis de faux contacts.
Conception et fonctionnalités¶
Le robot était complètement aveugle, la programmation était tout d'abord faite pour que le robot soit contrôlé à distance mais lors de la programmation en mode "drone", les seules fonctionnalités étaient "avancer","reculer", "tourner" et "s'arrêter". L'ajout de capteurs (ultrasons par exemple) pour détecter des obstacles pourrait être intéressant.