hola amigos, intento hacer un robot, programable, que siempre que encienda realice ciertos movimientos.
el robot es muy sencillo consta del control de dos motores, cada uno hace girar una rueda, si quiero ir al frente giro ambas ruedas en un sentido, si quiero ir de reversa, ambas ruedas giran en el otro sentido, si quiero ir a la derecha solo giro la rueda izquierda y si quiero ir a la izquierda solo giro la derecha.
Para programar el robot, pienso desarrollar una Aplicación en android que envié varios datos de tipo texto vía conexión serial USB por medio del cable OTG, y que estos datos se queden guardados en un vector, para que cuando desconecte el USB y cada vez que encienda el robot, se ejecuten los movimientos.
Este es el código que tengo hasta ahora para arduinonano, pero desconozco si realmente hace los que planteo ya que por cuestiones económicas aun no cuento con los recursos necesario para realizar las pruebas , espero me puedan ayuda en este proyecto, gracias por su atención y cualquier comentario se los agradeceré de antemano
// a= adelante, b= atras c= izquierda, d= derecha, e= pausa
int izqA = 5;
int izqB = 6;
int derA = 9;
int derB = 10;
int vel = 255; // Velocidad de los motores (0-255)
void setup() {
Serial.begin(9600); /// CARGAR LOS DATOS del arreglo y el tamaño del arreglo, via OGT USB, para posteriormente ser ejecutados ya sin la conexión
char coreografia[] = {a, a, b, d, e, c};
int contador= 0
int tvector= 6
pinMode(derA, OUTPUT);
pinMode(derB, OUTPUT);
pinMode(izqA, OUTPUT);
pinMode(izqB, OUTPUT);
}
void loop()
{
for( int contador=0; contador<tvector; contador++){
paso = coreografia[contador];
if(paso = a){
analogWrite(derA, vel); // Frente 2 segundos
analogWrite(izqA, vel);
delay (2000);
}
if(paso = b){
analogWrite(derB, vel); // Reversa 2 segundos
analogWrite(izqB, vel);
delay (2000);
}
if(paso = c){
analogWrite(derA, 0); // Izquierda 0,5 segundos
analogWrite(izqA, vel);
delay (500);
}
if(paso = d){
analogWrite(derA, vel); // Derecha 0,5 segundos
analogWrite(izqA, 0);
delay (500);
}
if(paso = e){
analogWrite(derB, 0); // Detiene los Motores por 0,5 segundos
analogWrite(izqB, 0);
delay (500);
}
}
}
//Al prender el robot, se ejecutaran las instrucciones pre-cargadas