Construire un tireur LEGO Star Wars automatisé avec Arduino Uno
Composants et fournitures
| Arduino UNO | × | 1 |
| Moteur servo SG90 | × | 4 |
| Fils de liaison (génériques) | × | 1 |
| Canon tirant LEGO Star Wars | × | 4 |
| Plaque d'essai (générique) | × | 1 |
Outils et machines nécessaires
- Ruban adhésif (électrique ou tout autre ruban convient)
Applications et services en ligne
- Arduino IDE
À propos de ce projet
Ce projet vise à faire tirer automatiquement des canons LEGO. J'aime jouer avec les LEGO et utiliser des Arduinos, alors j'ai décidé de faire ce projet pendant mon temps libre. Les moteurs servo, avec leurs bras attachés, tournent en frappant le levier et en tirant le canon. Un excellent premier, deuxième ou troisième projet pour débutants !
Voici un guide étape par étape pour le réaliser.
Étape 1 : Le matériel
Étape 1 Partie 1 : Bases du matériel
Commencez par connecter 5 V sur la rangée positive et GND sur la rangée négative. Cela ressemble à ceci :
Étape 1 Partie 2 : Branchement du servo #1
Le servo a trois fils : le fil orange/jaune (signal) prendra un emplacement dans les broches DIGITAL (PWM~), le fil rouge (alimentation) ira sur VIN (n'importe quelle broche de la rangée positive), et le fil noir/marron (masse) ira sur la rangée négative connectée à la broche GND de l'Uno. La broche numérique que j'ai utilisée pour mon premier servo est la 7. Voici à quoi ressemble le schéma quand le premier servo est branché :
Étape 1 Partie 3 : Câblage des autres servos
Une fois que vous avez compris le principe avec les servos, le reste devrait être facile. Une chose à noter : vous devez rester cohérent avec les broches numériques que vous avez attachées à vos servos dans le code.
Par exemple, le code (disponible en bas de la page) indique :
secondCannon.attach(8);
Donc le deuxième servo doit être connecté à la broche numérique 8.
De la même façon, le troisième servo doit être attaché à la broche numérique 6, et le quatrième à la broche numérique 9.
Cependant, cela peut être changé pour n'importe quel ordre. Assurez-vous simplement de modifier à la fois le matériel et le logiciel pour la cohérence, sinon le code ne fonctionnera pas.
Pour fonctionner avec le code fourni, voici à quoi devrait ressembler le schéma :
Félicitations ! Vous avez officiellement terminé la partie matérielle de ce projet.
Étape 2 : Le logiciel
Maintenant, copiez-collez le code en bas de la page dans un sketch Arduino, et téléversez-le. Assurez-vous d'avoir la bibliothèque Servo avant de téléverser, sinon cela ne marchera pas ! Voici un guide étape par étape expliquant le code et ce qu'il signifie lors de l'exécution.
#include // Inclusion de la bibliothèque pour les servos
Servo firstCannon; // Définition du premier canon comme servo
Servo secondCannon; // Définition du deuxième canon comme servo
Servo thirdCannon; // Définition du troisième canon comme servo
Servo fourthCannon; // Définition du quatrième canon comme servo
Ce code configure la bibliothèque Servo.h, qui jouera un rôle fondamental. Cela se voit dans les lignes suivantes, utilisant la bibliothèque pour définir quatre canons comme servos, c'est-à-dire des moteurs qui peuvent pivoter de 180 degrés.
void setup() {
Serial.begin(9600); // Démarrage communication série
Serial.println("Defend the Clones! Set up the defenses!"); // Affiche dans le moniteur série
firstCannon.attach(7); // Attache broche digitale 7 au premier canon
secondCannon.attach(8); // Attache broche digitale 8 au deuxième canon
thirdCannon.attach(6); // Attache broche digitale 6 au troisième canon
fourthCannon.attach(9); // Attache broche digitale 9 au quatrième canon
}
Le code void setup() est utilisé dans presque tout projet Arduino, et c'est du code qui ne s'exécute qu'une seule fois. Ici, nous démarrons la communication série à 9600 bauds. Ensuite, nous affichons des choses dans le moniteur série. Pour programmer les servos, nous devons connecter leurs noms à leurs broches numériques respectives. C'est le but du code .attach().
void loop() {
Serial.println("Beginning firing sequence"); // Affiche dans le moniteur série
firstCannon.write(180); // Fait pivoter le premier servo de 180°, déclenchant le premier canon
delay(100); // Attend 1/10 de seconde
firstCannon.write(0); // Ramène le servo à la position d'origine pour rechargement
delay(1000); // Attend 1 seconde
secondCannon.write(180); // Deuxième canon
delay(100);
secondCannon.write(0);
delay(1000);
thirdCannon.write(180); // Troisième canon
delay(100);
thirdCannon.write(0);
delay(1000);
fourthCannon.write(180); // Quatrième canon
delay(100);
fourthCannon.write(0);
delay(1000);
Serial.println("All cannons fired");
Serial.println("Prepare for reload");
delay(10000); // 10 secondes de rechargement
Serial.println("Reloading Complete. Preparing to fire again");
}
C'est la pièce finale du code, utilisant la fonction void loop() qui permet au code suivant de s'exécuter indéfiniment. Ensuite, nous affichons dans le moniteur série que les canons vont tirer. Les servos de chaque canon doivent pivoter de 180 degrés, puis revenir à la position d'origine, un par un. Après cela, il y a 10 secondes (temps de rechargement) avant que le processus ne se répète.
Si vous avez d'autres problèmes lors du téléversement, commentez dans la section commentaires et je répondrai ASAP. Si ça marche, passez à l'étape suivante.
Étape 3 : Installation
La dernière étape nécessite les canons LEGO et du bon vieux ruban adhésif ordinaire. Le canon LEGO ressemble à ceci :
Exécutez le code. Observez dans quel sens le servo tourne. Collez le servo sur le canon LEGO de sorte que sa trajectoire le mette sur une trajectoire de collision avec le levier sur le dessus du canon sur l'image ci-dessus.
Bravo ! Vous avez officiellement terminé ce projet. Comme je l'ai dit, commentez ci-dessous si vous avez des questions.
Si vous avez aimé ce projet, regardez ces liens :
Code
- Code du tireur LEGO
Code du tireur LEGO
Collez ceci dans l'IDE Arduino
#include // Inclusion de la bibliothèque pour les servos
Servo firstCannon; // Définition du premier canon comme servo
Servo secondCannon; // Définition du deuxième canon comme servo
Servo thirdCannon; // Définition du troisième canon comme servo
Servo fourthCannon; // Définition du quatrième canon comme servo
void setup() {
Serial.begin(9600); // Démarrage communication série
Serial.println("Defend the Clones! Set up the defenses!"); // Affiche dans le moniteur série
firstCannon.attach(7); // Attache broche digitale 7 au premier canon
secondCannon.attach(8); // Attache broche digitale 8 au deuxième canon
thirdCannon.attach(6); // Attache broche digitale 6 au troisième canon
fourthCannon.attach(9); // Attache broche digitale 9 au quatrième canon
}
void loop() {
Serial.println("Beginning firing sequence"); // Affiche dans le moniteur série
firstCannon.write(180); // Fait pivoter le premier servo de 180°, déclenchant le premier canon
delay(100); // Attend 1/10 de seconde
firstCannon.write(0); // Ramène le servo à la position d'origine pour rechargement
delay(1000); // Attend 1 seconde
secondCannon.write(180); // Fait pivoter le deuxième servo de 180°, déclenchant le deuxième canon
delay(100);
secondCannon.write(0);
delay(1000);
thirdCannon.write(180); // Troisième canon
delay(100);
thirdCannon.write(0);
delay(1000);
fourthCannon.write(180); // Quatrième canon
delay(100);
fourthCannon.write(0);
delay(1000);
Serial.println("All cannons fired");
Serial.println("Prepare for reload");
delay(10000); // 10 secondes de rechargement
Serial.println("Reloading Complete. Preparing to fire again");
}
Schémas
Processus de fabrication
- Ruban Adhésif Polyvalent : Force, Flexibilité et Usages Quotidiens
- Ruban adhésif cellophane : histoire, production et impact environnemental
- Construire un Spybot Arduino piloté par Bluetooth
- FlickMote : Télécommande IR à gestes pour maison connectée
- TV-B-Gone DIY Arduino : Télécommande universelle pour toutes les TV
- Construire une horloge maître LED personnalisée avec alarme – Visible à 12 mètres
- Construire un jeu « Opération » géant animé type Lego Minifigure avec Arduino
- Find Me : Localisateur d'objets intelligent avec Arduino et Bluetooth
- SunGlass-BOT : Lunettes de soleil intelligentes à adaptation automatique à la lumière