Tourelle Nerf Autonome DIY – Construire un Canon Nerf Intelligent avec Moteurs Pas-à-Pas, Caméra et Arduino
Composants et Fournitures
- Moteur pas-à-pas NEMA 17 OpenBuilds × 1
- Moteur pas-à-pas avec réducteur DFRobot × 1
- Pilote moteur pas-à-pas DFRobot (DRV8825 double) × 1
- Caméra Pixy 2 DFRobot × 1
- Arduino Mega 2560 × 1
- Capteur ultrasonique HC-SR04 × 1
- Pistolet Nerf Nitron × 1
Outils et Machines Nécessaires
- Imprimante 3D (générique)
- Fer à souder (générique)
- Routeur CNC
Applications et Services en Ligne
- Arduino IDE
- Autodesk Fusion 360
À Propos du Projet
Idée
Il y a quelques années, j'ai vu un projet de tourelle semi-autonome tirant automatiquement une fois visée. L'idée : utiliser une caméra Pixy 2 pour acquérir les cibles, viser automatiquement le pistolet Nerf, qui verrouille et tire de manière autonome.
Les Composants
Le pistolet a besoin d'yeux → Pixy 2 (interface facile avec carte principale). Microcontrôleur → Arduino Mega 2560 (nombreuses broches). Deux axes (lacets et tangage) → deux moteurs pas-à-pas. DFRobot a fourni leur carte pilote double DRV8825.
CAO (Conception)
Début sous Fusion 360 : canevas image pistolet Nerf → corps solide. Plateforme avec supports à roulements pour rotation gauche/droite. Moteur pas-à-pas à côté pour l'entraîner.
Pour le tangage (haut/bas) : système d'entraînement linéaire avec un point sur bloc mobile, l'autre à l'arrière du pistolet. Bielle relie les deux, permettant pivot sur axe central.
Fabrication des Pièces
Presque toutes pièces en impression 3D (deux imprimantes). Plateau mobile : trajectoires outil Fusion 360 → routeur CNC → disque découpé dans contreplaqué.
Assemblage
Connexion supports roulements au disque rotatif. Assemblage tangage linéaire : tiges alu 6 mm + filetée à travers pièces. Fixation pistolet : tige acier + deux poteaux profilés alu.
Programmation
Partie la plus complexe. Machine à tir de projectile = complexe, maths déroutantes. Flux programme étape par étape, états machine :
- Acquérir cible
- Positionner pistolet
- Monter moteurs (spool up)
- Tirer
- Arrêter moteurs (wind down)
Acquisition : Pixy configuré pour suivre objets rose néon. Pistolet bouge jusqu'à centrage cible dans vue Pixy. Distance canon-cible mesurée par ultrasons. Distances horizontale/verticale par trigonométrie. Fonction get_angle() calcule angle nécessaire pour toucher cible.
Pistolet se positionne, active moteurs via MOSFET. Après 5 s montée en régime, servo tire la gâchette. MOSFET coupe moteurs, pistolet revient en recherche cible.
Test et Amusement
Cible : carte index rose néon au mur. Précision bonne, programme calibre/ajuste angle selon distance mesurée. Vidéo de démonstration disponible.
Code (C/C++ pour Arduino Mega)
Bibliothèques : math.h, Arduino.h, BasicStepperDriver.h, Servo.h, Pixy2I2C.h. Broches : X=pitch, Y=yaw. Machine d'états : ACQUIRE, POSITION, SPOOL, FIRE, WIND_DOWN, RETURN. Fonctions principales : acquire_target(), position_gun(), get_angle() (balistique), ping() (ultrason), home_pitch() (origine tangage).
Pièces Personnalisées et Boîtiers
Fichiers CAO sur Thingiverse (lien externe).
Schémas
Schéma de câblage fourni (image).
Processus de fabrication
- Moteurs pas à pas : types, caractéristiques et applications pratiques
- Drivers intégrés simplifient la conception de moteurs pas-à-pas haute puissance
- Raspoulette : Prototype de système autonome de porte de poulailler à énergie solaire
- Simple Pi Robot – Construire un rover autonome 2 roues motrices avec Raspberry Pi
- Bibliothèque Complète pour Moteur Pas à Pas Bipolaire Arduino
- Swipeur Automatique Tinder/Bumble : Arduino UNO + Moteur Pas à Pas BYJ48
- Moteurs Servo vs Pas à Pas : Clarifier la zone grise moderne
- Comprendre les moteurs linéaires : de l'énergie électrique au mouvement linéaire précis
- Servomoteurs expliqués : fonctionnement et importance