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
Pièce à imprimer Jante_40.FCStd Jantes du véhicule, entourer d'un joint en caoutchou

Assemblage

Une fois les pièces découpées et imprimées, on peut tout assembler. On commence par assembler le châssis grâce à de la colle à bois. On laisse ensuite le tout sécher toute une nuit.
En parallèle, on assemble les roues directement sur les moteurs pas à pas et on ajoute les pneus.
Les différentes cartes seront ajoutées plus tard.

É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 continue et utilise un système de flags pour le pilotage. Le code est disponible ici : commande_telephone.ino.

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.

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.