Construisez un char laser contrôlé par Leap Motion – Arduino, Raspberry Pi, LEDs RGB
Composants et fournitures
| Composant | Quantité |
|---|---|
| LED infrarouge | 1 |
| Récepteur infrarouge | 1 |
| Arduino UNO | 1 |
| Raspberry Pi 2 Model B | 1 |
| Module RF24 | 1 |
| LED RGB cathode commune | 1 |
| Pilote moteur L293D | 1 |
| Plaque d'essai (breadboard) | 1 |
| Fils de connexion | 1 |
| Support de piles | 1 |
| Piles AA rechargeables NiMH | 1 |
| Briques Lego | 1 |
| Roulette à billes 3/8" | 1 |
| Contrôleur Leap Motion | 1 |
À propos du projet
L'objectif de ce projet était de créer un ensemble de chars robotisés pour des batailles où les opérateurs bénéficient d'une sensation de contrôle plus réaliste grâce au contrôleur Leap Motion. Je voulais concevoir ces chars robotiques à moindre coût afin que le projet soit facilement reproductible.
Le châssis du char est construit avec des briques et plaques Lego génériques. La source d'alimentation est un bloc simple de 4 piles AA rechargeables. Le contrôleur du char est un Arduino Uno R3. La propulsion repose sur deux moteurs DC avec roues à l'arrière et une roulette unique à l'avant, pilotés par un seul circuit intégré L293D. L'armement consiste en une unique LED infrarouge, tandis que la protection est assurée par un ensemble de capteurs IR qui détectent les tirs des LEDs adverses. L'affichage tête haute (HUD) est une LED multicolore unique signalant les actions du char, y compris l'état de l'armure. Enfin, le contrôle sans fil du char est géré via un Raspberry Pi 2 exécutant NodeJS, connecté par un module RF24 sans fil dont chaque char est équipé.
À l'aide de leurs mains, le Leap Motion contrôle le char via le SDK JavaScript Leap Motion. En détectant les mouvements des mains, le JavaScript communique avec le serveur NodeJS sur le Raspberry Pi 2, qui transmet les commandes au char via le module RF24. Les deux mains en avant : le char avance. Les deux mains en arrière : il recule. Main gauche en avant, main droite en arrière : rotation à droite. Main droite en avant, main gauche en arrière : rotation à gauche. Les deux mains en position neutre : arrêt. Une main en avant (gauche ou droite) tandis que l'autre est baissée : tir de l'arme.

Voici une démonstration rapide de l'arme, de l'armure et de l'affichage tête haute du char.
Grâce à l'armure omnidirectionnelle avancée et à des boîtes en carton comme abris, Laser Tanks devient un jeu de chasse et d'évasion.
Étapes de configuration du projet
- Assemblez les chars et câblez-les selon les schémas ci-dessous. Téléchargez les bibliothèques Arduino nécessaires (voir README sur le dépôt GitHub), compilez et téléversez le sketch Arduino pour le char 1 sur un char, et celui pour le char 2 sur l'autre.
- Câblez le transceiver RF24 sur le Raspberry Pi. Installez Raspbian OS et Node.js sur le Pi.
- Téléchargez, configurez et compilez la bibliothèque RF24 sur le Pi (voir README GitHub).
- Téléchargez le logiciel serveur NodeJS depuis le site GitHub, configurez-le et lancez le serveur d'application/web (voir README GitHub).
- Installez le Leap Motion et ses pilotes sur votre ordinateur. Ouvrez un navigateur et chargez l'URL du serveur REST/web du Raspberry Pi pour accéder à la page de contrôle (voir README GitHub) du char 1 ou du char 2.
- Cliquez sur le bouton de calibration et placez vos mains au-dessus du Leap Motion pour qu'il détecte deux mains et connaisse votre position neutre. Une fois la calibration terminée, vous pouvez contrôler le char avec vos mains.
Note rapide sur le châssis du char
Le corps des chars est assemblé à partir de simples Legos collés à la colle forte sur les pièces (moteurs, breadboards, etc.) pour maintenir l'ensemble. Voici une série d'images montrant la construction.











Note rapide sur les LEDs infrarouges
Les télécommandes infrarouges sont très fonctionnelles pour changer de chaîne depuis n'importe où dans la pièce. Les LEDs IR sont conçues pour diffuser leur faisceau dans un maximum de directions. Mais pour un jeu de bataille de chars, il est préférable de réduire le faisceau pour plus de précision. En utilisant une simple loupe au bout d'un tube, on peut focaliser le faisceau infrarouge.

J'ai acheté une loupe de poche bon marché, retiré la lentille, construit un tube autour et placé la LED IR à l'autre extrémité. Cela a parfaitement fonctionné pour réduire le faisceau.
Note sur les capteurs infrarouges à 360°
Un capteur IR détecte les signaux d'une LED IR directement devant lui sur environ 90°. Si la LED est derrière, le signal n'est pas détecté.

Pour obtenir une détection à 360°, il faut soit modifier la bibliothèque IR pour utiliser 4 broches avec 4 capteurs, soit créer une solution matérielle reliant 4 capteurs à une seule broche. J'ai trouvé qu'un simple circuit intégré AND (74HCT21) permet de chaîner 4 capteurs sur une seule entrée. Quand l'un détecte un signal, il le rapporte sur cette broche. Cela donne 360° de détection sans modifier la bibliothèque ni utiliser 4 broches.

Code
Laser Tanks sur GitHub
Tous les fichiers de code personnalisés pour le projet Leap Motion Laser Tanks : https://github.com/corky/LaserTanks
Schémas
À l'aide d'une LED infrarouge, le char tire des « codes » que les autres chars identifient comme des impacts.
À l'aide d'un unique capteur infrarouge, le char détecte les signaux IR des chars adverses et les enregistre comme des impacts.
Avec 4 capteurs infrarouges chaînés via un circuit intégré AND (74HCT21), un char identifie les signaux IR des LEDs adverses comme des impacts à 360° autour de lui.
À l'aide d'une LED RGB, le char indique son statut actuel (nombre d'impacts subis) en changeant la couleur de la LED. La LED passe au vert à chaque tir.
À l'aide d'un circuit intégré L293D et de simples moteurs DC, le char avance, recule et tourne à gauche ou à droite.
À l'aide d'un transceiver RF24 simple et peu coûteux, le char communique et reçoit les commandes de l'opérateur.
À l'aide d'un Raspberry Pi 2, d'un transceiver RF24 et de Node.js, l'opérateur communique avec chaque char via des appels API REST.
Processus de fabrication
- Guide expert du marquage laser sur aluminium : précision, durabilité et applications industrielles
- Guide complet du marquage laser : types, avantages et applications
- Marquage laser fibre : précision, vitesse et polyvalence pour industries modernes
- Pointeur laser : conception, fabrication et aperçu de la sécurité
- Lasers à semi-conducteurs : Génération de lumière de précision pour la technologie moderne
- Construire un capteur de mouvement infrarouge DIY pour Raspberry Pi – Guide étape par étape
- Contrôler une LED avec un capteur de mouvement PIR sur Raspberry Pi
- Kit MOSMusic : MOSFET, Arduino et plus pour éclairage musical
- Composants clés d'une machine de marquage laser : Comprendre les pièces maîtresses pour la longévité