fbpx
skip to Main Content
Auto Corazzata Funzionante Con Arduino

Auto corazzata funzionante con Arduino

Già da qualche tempo pensavo di costruire qualcosa con Arduino ma non sapevo cosa, però alla fine mi è venuta un idea: costruire un carro armato con Arduino.

Costruire il carro armato non è stato facile: per prima cosa dovevo trovare una base dove collocare la scheda Arduino e gli altri componenti così ho modificato una vecchia macchina telecomandata (di quelle che si trovano al supermercato) così però più che un carro armato è un auto corazzata, in modo che vi si potesse alloggiare la breadboard di Arduino.

Successivamente dovevo realizzare il circuito, dopo una settimana di prove sono riuscito a completare il circuito e il codice, il circuito elettrico in se era semplice, è stato il codice a complicare le cose, perché volevo rendere le funzioni di Arduino tutte wireless usando un sensore ad infrarossi.

Alla fine ho creato il circuito nella breadboard, collegato tutti i componenti e costruito una corazza di cartone (non mi è venuta molto bene).

Questa auto corazzata ha diverse funzioni: la torretta è girevole grazie uno stepper motor alimentato dalle batterie della macchina che ho modificato, il cannone si può alzare e abbassare grazie ad un servomotore tutto questo tramite infrarossi questi componenti sono alimentati da una batteria 9V.

Invece la macchina che ho modificato poteva muoversi tramite il telecomando originale anche se non essendo di qualità non si muoveva molto bene.

Il circuito (Sfortunatamente non ho potuto realizzare il circuito su Tinkercad perché non riuscivo a trovare alcuni componenti ad esempio la scheda per controllare lo stepper motor.

Il codice di Arduino

#include <IRremote.h>

#include <Stepper.h>

const int stepsPerRevolution = 2038;
Stepper myStepper = Stepper(stepsPerRevolution, 7, 5, 6, 4);

IRrecv energen(11);
decode_results results;

#include <Servo.h>

Servo RJservo; 
const int SERVO_PIN = 8;
int angle =90; 
int angleStep =5;
const int ANGLE_CENTRE =90;

void setup() {
Serial.begin(9600);
energen.enableIRIn();
RJservo.attach(SERVO_PIN);
}

void loop() {
if (energen.decode(&results)) {
Serial.println(results.value, DEC);
energen.resume();
}
while(results.value == 16753245){
myStepper.setSpeed(5);
myStepper.step(stepsPerRevolution - 2000);
results.value = 0;
delay(100);

}
while(results.value == 16736925){
myStepper.setSpeed(5);
myStepper.step(-stepsPerRevolution + 2000);
results.value = 0;
delay(100);

}

{
while(results.value == 16720605){

if (angle > 45 && angle <= 180) {
  angle = angle - angleStep;
   if(angle < 0){
    angle = 0;
   }else{
  RJservo.write(angle); 
  Serial.print("Moved to: ");
  Serial.print(angle);   
  Serial.println(" degree");
   }
}
results.value = 0;
delay(100);

}
while(results.value == 16761405){

if (angle >= 0 && angle <= 135) {
  angle = angle + angleStep;
  if(angle >180){
    angle =180;
   }else{
  RJservo.write(angle); 
  Serial.print("Moved to: ");
  Serial.print(angle);   
  Serial.println(" degree");
   }
}
  results.value = 0;
delay(100);

}

if(results.value == 16712445)
{
angle = ANGLE_CENTRE;
RJservo.write(angle);
}

}
}
Video sulle funzioni della torretta

Io penso che questo progetto è stato molto difficile da realizzare ma penso che alla fine abbia ottenuto un buon risultato alla fine.

Questo articolo ha 0 commenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.