Puedes descargar el programa que hicimos aquí MachineGun Arduino.
Éste es el código de Arduino:
#include <Servo.h>
Servo x;
Servo y;
Servo shoot;
int pos1;
int pos2;
int motorA = 2;
int motorB = 3;
int dirA = 4;
int dirB = 5;
int luz = 11;
int led=13;
char c;
boolean apuntar = false;
void adelante();
void reversa();
void parado();
void derecha();
void izquierda();
void adelanteDerecha();
void adelanteIzquierda();
void atrasDerecha();
void atrasIzquierda();
void encenderLuz();
void setup(){
Serial.begin(9600);
pinMode(led, OUTPUT);
pinMode(motorA, OUTPUT);
pinMode(motorB, OUTPUT);
pinMode(dirA, OUTPUT);
pinMode(dirB, OUTPUT);
pinMode(luz, OUTPUT);
x.attach(9);
y.attach(10);
shoot.attach(8);
x.write(90);
y.write(90);
shoot.write(50);
}
void loop(){
while (Serial.available()) {
if (Serial.available() >0) {
c = Serial.read();
}
}
if(apuntar == false){
switch(c){
case 'F':
adelante();
break;
case 'B':
reversa();
break;
case 'S':
parado();
break;
case 'L':
izquierda();
break;
case 'R':
derecha();
break;
case 'G':
adelanteIzquierda();
break;
case 'I':
adelanteDerecha();
break;
case 'H':
atrasIzquierda();
break;
case 'J':
atrasDerecha();
break;
case 'W':
encenderLuz();
break;
case 'w':
apagarLuz();
break;
case 'X':
apuntar = true;
break;
case 'v':
shoot.write(50);
break;
}
}
else{
switch(c){
case 'B': //HACIA ARRIBA
pos1++;
if(pos1 > 100){
pos1=100;
}
y.write(pos1);
break;
case 'F': //HACIA ABAJO
pos1--;
if(pos1 < 60){
pos1=60;
}
y.write(pos1);
break;
case 'L':
pos2++;
if(pos2>180){
pos2=180;
}
x.write(pos2);
break;
case 'R':
pos2--;
if(pos2<0){
pos1=0;
}
x.write(pos2);
break;
case 'x':
apuntar = false;
break;
case 'V':
shoot.write(100);
break;
case 'v':
shoot.write(50);
break;
}
delay(5);
}
}
void adelante(){
digitalWrite(motorA,HIGH);
digitalWrite(motorB,LOW);
digitalWrite(led,HIGH);
}
void reversa(){
digitalWrite(motorA,LOW);
digitalWrite(motorB,HIGH);
digitalWrite(led,HIGH);
}
void parado(){
digitalWrite(motorA,LOW);
digitalWrite(motorB,LOW);
digitalWrite(led,LOW);
digitalWrite(dirA,LOW);
digitalWrite(dirB,LOW);
}
void izquierda(){
digitalWrite(dirB,LOW);
digitalWrite(dirA,HIGH);
digitalWrite(led,HIGH);
}
void derecha(){
digitalWrite(dirB,HIGH);
digitalWrite(dirA,LOW);
digitalWrite(led,HIGH);
}
void adelanteIzquierda(){
digitalWrite(dirB,LOW);
digitalWrite(dirA,HIGH);
digitalWrite(motorB,LOW);
digitalWrite(motorA,HIGH);
digitalWrite(led,HIGH);
}
void adelanteDerecha(){
digitalWrite(dirB,HIGH);
digitalWrite(dirA,LOW);
digitalWrite(led,HIGH);
digitalWrite(motorA,HIGH);
digitalWrite(motorB,LOW);
}
void atrasIzquierda(){
digitalWrite(dirB,LOW);
digitalWrite(dirA,HIGH);
digitalWrite(motorB,HIGH);
digitalWrite(motorA,LOW);
digitalWrite(led,HIGH);
}
void atrasDerecha(){
digitalWrite(dirB,HIGH);
digitalWrite(dirA,LOW);
digitalWrite(led,HIGH);
digitalWrite(motorB,HIGH);
digitalWrite(motorA,LOW);
}
void encenderLuz(){
digitalWrite(luz,HIGH);
}
void apagarLuz(){
digitalWrite(luz,LOW);
}
Control del auto mediante la aplicación y cómo utilizamos los botones:
No hay comentarios:
Publicar un comentario