Projet

Général

Profil

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).

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 :

Circuit electronique

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.