Introduction

Mon objectif est de construire une voiture téléguidée autonome. Réaliser ce projet me permettra de développer davantage mes compétences sur le sujet de la conduite autonome et plus généralement du Deep Learning. J’ai déjà réalisé un premier projet sur ce sujet (j’ai publié un article et une vidéo Youtube) mais mon expérimentation utilisait le simulateur Unity. Maintenant avec ce nouveau projet, je veux sortir du virtuel et aller un cran plus loin en passant au monde réel.

Pour ce faire, j’ai donc acheté une petite voiture téléguidée. J’ai démonté la télécommande et je l’ai “hackée”. J’ai en effet réalisé 4 dérivations sur le circuit de commande. Les 4 boutons poussoirs que l’on retrouve dans presque toutes les télécommandes de ces voitures sont maintenant bypassés/ remplacés par mon Raspberry Pi 3 via le GPIO.

J’ai pas mal de Micro-controleurs et de Micro-ordinateurs (Arduino Uno, Mega, Yun, Orange Pi, Banana Pi, Raspberry Pi 1, 2, 3, et pleins d’autres…). J’ai opté pour le Raspberry Pi 3 pour ce projet tout simplement parce qu’il a du Wifi intégré et parce qu’il devrait être assez puissant pour faire tourner Tensorflow et la vidéo (+ broadcast sur Webapp et API hostée). L’avenir me dira s’il sera suffisant puissant pour tout faire tourner. Pour le moment j’en suis encore à la partie hardware. L’idée, pour ce projet, est de ne pas avoir besoin d’une connexion internet pour que le voiture roule de façon autonome.

Résultat de mon travail

Première vidéo: Premiers tests juste après la soudure des composants et branchement des fils

Deuxième vidéo: Tout est branché et semble opérationnel. On peut maintenant tester la voiture et la piloter avec son Smartphone. Yeah cela fonctionne parfaitement et sans aucune latence (Websocket).

Schéma de cablage

Voici le schéma de cablage: image

Matériel nécessaire (presque rien): image

  • 1 breadboard (pour v1 prototypage. Pas viable dans le temps. je vais tout souder (dès que j’ai reçu les pièces))
  • Fer à souder et étain
  • 4 opto coupleurs
  • 1 voiture téléguidée
  • 1 Raspberry Pi 3
  • Des fils male / male et male / femelle
  • 1 carte Micro SD
  • 1 batterie externe (pour le Raspberry Pi)

Montage terminé: image

Pilotage de la voiture

J’ai réalisé une petite interface Web très simple qui me permet de piloter la voiture. Il y a aussi un petit serveur NodeJS qui permet de transmettre les commandes de l’interface au GPIO du Raspberry Pi via Websocket et de servir les fichiers statiques (html et js).

Tout est opensource et disponible ici.

Voici à quoi ressmemble l’interface qui ne va pas me servir très longtemps puisque mon objectif est que la voiture soit autonome.

image