Salut les gens, je me suis présentée sur ce forum il y à quelques mois mais je ne vous ai pas parlé de mon projet. Pour m'occuper depuis le début de cette pandémie je travaille sur Bubu qui sera à terme : un robot autonome.
Pourquoi "à terme" ? Car pour ne pas me décourager et avoir rapidement un robot qui roule, j'ai découpé ce projet en plusieurs versions.
Le Bubu version V1 doit avoir les caractéristiques suivants :
- Robot roulant à l'aide de 2 roues motrices
- Robot contrôlé par un smartphone
Cette version s'est réalisé en plusieurs étapes que je vais vous décrire.
Choix des composants électroniques
La première étape, et une des plus importantes, a été le choix des composants électroniques en fonction des caractéristiques attendues du robot :
- micro-contrôleur : Raspberry Pi
- moteurs : motoréducteurs encodeurs de Polulu et ses roues
- contrôleur des moteurs : pont en H L298
- source d'énergie : batterie sans fil à deux sorties pour alimenter le Raspberry Pi et les moteurs
Montage électronique
J'ai réalisé le montage électronique sur une petite plaque d'apprentissage qui ne nécessite aucune soudure. J'ai relié les moteurs aux ponts en H du L298 qui est lui même relié aux pin GPIO du micro-contrôleur. La batterie est reliée au Raspberry Pi et aux deux moteurs.
Programmation des moteurs
L'étape d'après, une de celles que je préfère était la programmation les moteurs et de leurs encodeurs et de les synchroniser pour que le robot puisse aller droit ou au contraire tourner quand la vitesse de l'un est plus basse que celle de l'autre. Pour programmer sur le micro-contrôleur j'ai opté pour le C++ qui est le langage que je maîtrise le mieux de par mes études et mon travail.
Programmation d'une communication vers l'extérieur
Pour pouvoir piloter le robot de mon smartphone il fallait commencer par choisir le type de liaison utilisée. J'ai choisi le Wifi car je voulais une liaison sans fil qui puisse transmettre beaucoup de données sans être trop proche (comme le Bluetooth). Pour mettre en place une liaison peer-to-peer entre le robot et u smartphone il me fallait un serveur et un client. J'ai donc codé un serveur TCP sur la Raspberry. Pourquoi utiliser le protocole TCP et pas UDP ? C'est un protocole pour lequel on est certain qu'un message envoyé est un message reçu.
Programmation de l'application Android
J'ai réalisé l'application Android en Java. J'ai commencé par programmé le client TCP qui me permet de connecter le smartphone au robot. Ensuite il me fallait implémenter un moyen de contrôler le robot. Pour cela j'ai réalisé l'IHM suivante :
La vitesse du robot est contrôlé par la SeekBar à gauche et le cap du robot est contrôlé par l'inclinaison du smartphone. Le bouton situé à droite permet d'arrêter les moteurs ou de les démarrer.
Conception d'un châssis
J'ai ensuite dessiné un châssis pour le robot sur FreeCad avant de l'imprimer à l'aide d'une imprimante 3D. Pour que le châssis ne soit pas trop grand à imprimer mais qu'il puisse quand même tenir tous les composants électronique, je l'ai réalisé en deux parties, avec l'une qui vient se mettre au-dessus de l'autre. J'ai dessiné la partie supérieur du châssis avec des "cales" pour tenir le matériel électronique et éviter qu'il ne tombe. J'ai du aussi dessiner des supports pour les moteurs et un support pour une roue folle située à l'avant su robot.
Et... Enfin !
Voici Bubu V1 :
Bubu V2 à venir
Pour la version V2 de Bubu l'objectif est de le rendre autonome en lui rajoutant des capteurs pour qu'il puisse reconnaître son environnement et, pourquoi pas, en rajoutant un peu d'intelligence artificiel dans son programme.
La suite au prochain épisode...