Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Bouw een Geautomatiseerde LEGO Star Wars Kanon met Arduino Uno

Onderdelen en benodigdheden

Arduino UNO × 1
SG90 Micro-servomotor × 4
Draadbruggen (algemeen) × 1
LEGO Star Wars Schietbare Kanon × 4
Breadboard (algemeen) × 1

Nodige gereedschappen en machines

  • Tape, Elektrisch - Elke tape is prima. Het hoeft zeker geen elektrisch tape te zijn.

Apps en online diensten

  • Arduino IDE - Een programma dat Arduino-code draait op Mac, Windows en Linux apparaten.

Over dit project

Dit project gaat over het automatisch laten schieten van LEGO-kanonnen. Ik speel graag met LEGO's en gebruik graag Arduinos, dus besloot ik dit project in mijn vrije tijd te doen. De servomotoren, met hun armen bevestigd, draaien om en slaan de hefbel, waardoor de kanon afvuurt. Een geweldig eerste, tweede of derde project voor beginners!

Dit is een stap-voor-stap handleiding over hoe je het maakt.

Stap 1: De Hardware

Stap 1 Deel 1: Hardware Basis

Begin met 5V naar de positief geladen rij en GND naar de negatief geladen rij. Het ziet er zo uit -

Bouw een Geautomatiseerde LEGO Star Wars Kanon met Arduino Uno
Basisvoeding op het breadboard

Stap 1 Deel 2: Servo #1 aansluiten

De servo heeft drie draden - de oranje/gele (signaal) neemt een slot in de DIGITALE (PWM~) pinnen, de rode (voeding) gaat naar VIN (elke pin in de positieve rij), en de zwarte/bruine draad (GND) gaat naar de negatief geladen rij verbonden met de GND-pin op de Uno. De digitale pin die ik voor mijn eerste servo gebruikte is 7. Zo ziet het schema eruit wanneer de eerste servo aangesloten is -

Bouw een Geautomatiseerde LEGO Star Wars Kanon met Arduino Uno
Schema met eerste servo aangesloten

Stap 1 Deel 3: De overige servo's aansluiten

Zodra je de knip hebt met de servo's, moeten de rest een fluitje van een cent zijn. Een ding om te onthouden: je moet consistent blijven met de digitale pinnen die je in de code aan je servo hebt gekoppeld.

Bijvoorbeeld, de code (onderaan de pagina te vinden) stelt:

secondCannon.attach(8);

Daarom moet de tweede servo verbonden zijn met digitale pin 8.

Op dezelfde manier moet de derde servo aan digitale pin 6 gekoppeld zijn, en de vierde aan digitale pin 9.

Deze kunnen echter veranderd worden naar elke gewenste volgorde. Zorg er alleen voor dat je zowel hardware als software aanpast voor consistentie, anders werkt de code niet.

Om met de meegeleverde code te draaien, moet het schema er zo uitzien:

Bouw een Geautomatiseerde LEGO Star Wars Kanon met Arduino Uno
Volledig schema met alle 4 servo's

Gefeliciteerd! Je hebt officieel het hardwaregedeelte van dit project voltooid.

Stap 2: De Software

Kopieer en plak nu de code onderaan de pagina in een Arduino-sketch, en upload hem. Zorg dat je de Servo-bibliotheek hebt voordat je de code uploadt, anders werkt het niet! Hieronder een stap-voor-stap uitleg van de code en wat het betekent bij het draaien van het programma.

#include <Servo.h> // Inclusie van de bibliotheek voor de servo's
Servo firstCannon;  // Definiëren van de eerste kanon als servo
Servo secondCannon; // Definiëren van de tweede kanon als servo
Servo thirdCannon;  // Definiëren van de derde kanon als servo
Servo fourthCannon; // Definiëren van de vierde kanon als servo

Deze code stelt de Servo.h bibliotheek in, die een fundamentele rol speelt in de code. Dit wordt getoond door de volgende regels, die de bibliotheek gebruiken om vier kanonnen te definiëren als servo's, of motoren die 180 graden kunnen draaien.

void setup() {
  // Setup-code, of code die slechts één keer draait
  Serial.begin(9600); // Start de seriële communicatie
  Serial.println("Defend the Clones! Set up the defenses!") // Print iets in de Serial Monitor
  firstCannon.attach(7);  // Koppel digitale pin 7 aan eerste kanon
  secondCannon.attach(8); // Koppel digitale pin 8 aan tweede kanon
  thirdCannon.attach(6);  // Koppel digitale pin 6 aan derde kanon
  fourthCannon.attach(9); // Koppel digitale pin 9 aan vierde kanon
}

De void setup() code wordt in bijna elk Arduino-project gebruikt, en het is code die slechts één keer draait. In dit geval starten we de seriële communicatie op 9600 baud. Daarna printen we dingen in de Serial Monitor. Om de servo's te programmeren, moeten we hun namen koppelen aan hun respectievelijke digitale pinnen. Dit is het doel van de .attach() code.

void loop() {
  // Loop-code, of code die oneindig vaak draait
  Serial.println("Beginning firing sequence") // Print iets in de Serial Monitor
  firstCannon.write(180);  // Draai de eerste servo 180 graden, eerste kanon afvuren
  delay(100);              // Wacht 1/10 seconde
  firstCannon.write(0);    // Draai servo terug naar oorspronkelijke positie voor herladen
  delay(1000);             // Wacht 1 seconde
  secondCannon.write(180); // Draai tweede servo 180 graden, tweede kanon afvuren
  delay(100);              // Wacht 1/10 seconde
  secondCannon.write(0);   // Draai servo terug naar oorspronkelijke positie voor herladen
  delay(1000);             // Wacht 1 seconde
  thirdCannon.write(180);  // Draai derde servo 180 graden, derde kanon afvuren
  delay(100);              // Wacht 1/10 seconde
  thirdCannon.write(0);    // Draai servo terug naar oorspronkelijke positie voor herladen
  delay(1000);             // Wacht 1 seconde
  fourthCannon.write(180); // Draai vierde servo 180 graden, vierde kanon afvuren
  delay(100);              // Wacht 1/10 seconde
  fourthCannon.write(0);   // Draai servo terug naar oorspronkelijke positie voor herladen
  delay(1000);             // Wacht 1 seconde
  Serial.println("All cannons fired");
  Serial.println("Prepare for reload");
  delay(10000);
  Serial.println("Reloading Complete. Preparing to fire again")
}

Dit is het laatste stuk code, dat de void loop() functie gebruikt die de volgende code oneindig vaak laat draaien. Dan printen we in de Serial Monitor dat de kanonnen gaan vuuren. De servo's voor elke kanon moeten 180 graden draaien, dan terug naar de oorspronkelijke positie, één voor één. Daarna moet er 10 seconden (herlaadtijd) gewacht worden tot het proces zich herhaalt.

Als je andere problemen hebt bij het uploaden van de code, kun je een reactie achterlaten in de commentaren en ik reageer zo snel mogelijk. Als het werkt, ga dan door naar de volgende stap.

Stap 3: Installatie

Bouw een Geautomatiseerde LEGO Star Wars Kanon met Arduino Uno
De LEGO Star Wars schietbare kanon

Draai de code. Kijk welke kant de servo op draait. Plak de servo op de LEGO-kanon zodat de baan een botsingskoers heeft met de hefbel bovenaan de kanon in de afbeelding hierboven.

Goed gedaan! Je hebt officieel dit project voltooid. Zoals gezegd, laat een reactie achter in de sectie hieronder als je vragen hebt.

Als je dit project leuk vond, check deze links -

  • https://create.arduino.cc/projecthub/342600/basketball-hoop-with-buzzer-using-an-arduino-693bad?ref=user&ref_id=1536504&offset=1
  • https://create.arduino.cc/projecthub/ShreyanR/soundbox-826a56

Code

  • LEGO Kanon Schietcode

LEGO Kanon Schietcode C/C++

Plak dit in Arduino IDE

#include <Servo.h> //Including the library for the Servos
Servo firstCannon; //Defining the First Cannon as a Servo
Servo secondCannon; //Defining the Second Cannon as a Servo
Servo thirdCannon; //Defining the Third Cannon as a Servo
Servo fourthCannon; //Defining the Fourth Cannon as a Servo
void setup() {
  //Setup code, or code that is only run once
  Serial.begin(9600); //Start the Serial communication
  Serial.println("Defend the Clones! Set up the defenses!") //Print something in the Serial Monitor
  firstCannon.attach(7); //Attach Digital Pin 7 to First Cannon
  secondCannon.attach(8); //Attach Digital Pin 8 to Second Cannon
  thirdCannon.attach(6); //Attach Digital Pin 6 to Third Cannon
  fourthCannon.attach(9); //Attach Digital Pin 9 to Fourth Cannon
}
void loop() {
  //Loop code, or code that is run an infinite amount of times
  Serial.println("Beginning firing sequence") //Print something in the Serial Monitor
  firstCannon.write(180); //Swerve the first servo 180 degrees, setting off the first cannon
  delay(100); //Wait for 1/10 of a second
  firstCannon.write(0); //Swerve the Servo back to original position in preparation for reload
  delay(1000); //Wait for 1 second
  secondCannon.write(180); //Swerve the second servo 180 degrees, setting off the second cannon
  delay(100); //Wait for 1/10 of a second
  secondCannon.write(0); //Swerve the Servo back to original position in preparation for reload
  delay(1000); //Wait for 1 second
  thirdCannon.write(180); //Swerve the third servo 180 degrees, setting off the third cannon
  delay(100); //Wait for 1/10 of a second
  thirdCannon.write(0); //Swerve the Servo back to original position in preparation for reload
  delay(1000); //Wait for 1 second
  fourthCannon.write(180); //Swerve the first fourth 180 degrees, setting off the fourth cannon
  delay(100); //Wait for 1/10 of a second
  fourthCannon.write(0); //Swerve the Servo back to original position in preparation for reload
  delay(1000); //Wait for 1 second
  Serial.println("All cannons fired");
  Serial.println("Prepare for reload");
  delay(10000);
  Serial.println("Reloading Complete. Preparing to fire again")
}

Schema's

Bouw een Geautomatiseerde LEGO Star Wars Kanon met Arduino Uno

Productieproces

  1. Alleskunner tape: kracht, flexibiliteit en alledaags gebruik
  2. Cellofaan Tape: Geschiedenis, Productie en Milieueffect
  3. Bluetooth-gecontroleerde Arduino Spybot bouwen
  4. FlickMote: Gebarengecontroleerde IR-afstandsbediening voor Slimme Huizen
  5. DIY Arduino TV-B-Gone: Universele TV-uit-schakelaar
  6. Bouw een Aangepaste LED Hoofdklok met Alarm – Zichtbaar vanaf 12 Meter
  7. Een reusachtige Lego-minifiguur animatronics Operation-spel bouwen met Arduino
  8. Find Me: Slimme Item Locator met Arduino en Bluetooth
  9. SunGlass-BOT: Slimme Zonnebril Die Zichzelf Aanpast Aan Licht
  10. Geoptimaliseerde Voedingsoplossingen voor Arduino Projecten
  11. Arduino Boter-Kaas-Eieren met MAX7219 LED Matrix en Kartonnen Behuizing