jueves, 9 de junio de 2016

¡Nos despedimos!

Por fin acabamos nuestro proyecto por lo que esta sera nuestra última entrada.
Conseguimos solucionar el problema de los motores que no estaban a la misma altura ynunca colnseguiamos que andase recto. Al fin conseguimos recuperar el video que grabamos así que aquí os lo mostramos, ESPEREMOS QUE OS GUSTE MUCHO.

Así nos ha quedado finalmente nuestro robot.


Un saludo de Lucía, Regina, Áurea y Natalia.


miércoles, 8 de junio de 2016

El proceso de creación.

Nuestro robot, siendo sinceras, no empezó con muchas esperanzas pero hoy, 31 de mayo, hemos conseguido que ande, ¡y además es bonito!

Respecto a la estética todo iba muy bien, ya teníamos todo montado para que tuviese forma de cohete y le colocamos los motores en la parte de abajo y la rueda loca en la parte delantera. Le pusimos un poco de cinta aislante y metimos dentro de el los circuitos para que quedase más estético y que se viese bien. Le pusimos dos alerones de cartón sobre el tubo cilíndrico para que simulasen los alerones del cohete.

Para que haga los movimientos prgramados, este es el programa de Arduino que hemos escrito:



int pin1motor1 = 2;
int pin2motor1 = 7;
int pin1motor2 = 11;
int pin2motor2 = 14;






void setup() {
pinMode(pin1motor1, OUTPUT);
pinMode(pin2motor1, OUTPUT);
pinMode(pin1motor2, OUTPUT);
pinMode(pin2motor2, OUTPUT);
}



void loop() {



digitalWrite(pin1motor1, LOW);
digitalWrite(pin2motor1, HIGH);
digitalWrite(pin1motor2, HIGH);
digitalWrite(pin2motor2, LOW);
delay(2000);



digitalWrite(pin1motor1, LOW);
digitalWrite(pin2motor1, HIGH);
digitalWrite(pin1motor2, LOW);
digitalWrite(pin2motor2, LOW);
delay(2000);



digitalWrite(pin1motor1, HIGH);
digitalWrite(pin2motor1, LOW);
digitalWrite(pin1motor2, LOW);
digitalWrite(pin2motor2, LOW);
delay(2000);



digitalWrite(pin1motor1, HIGH);
digitalWrite(pin2motor1, LOW);
digitalWrite(pin1motor2, HIGH);
digitalWrite(pin2motor2, LOW);
delay(2000);
}



Con este programa conseguimos que nuestro robot ande aunque quizás de una forma irregular.
El sensor que le hemos incorporado sirve para medir la distancia entre diferentes objetos y así poder reaccionar ante ellos y esquivarlos, rodearlos o pararse. Esta formado por dos círculos en forma de altavoz que es por donde recibe las ondas para calcular la distancia entre los objetos que hay a su alrededor y así poder esquivar todos los objetos.
Estamos tratando de despegar uno de los motores ya que en nuestro programa indica que ande recto pero al no haber colocado los dos motores a la misma altura se desvía en algún momento hacia los lados, fallo nuestro. 


Aquí abajo ten tenéis el programa con el sensor. Finalmente hemos decidido eliminar los ledes por lo que no aparecen en ninguno de los dos programas.


int pin1motor1 = 2;
int pin2motor1 = 7;
int pin1motor2 = 11;
int pin2motor2 = 14;
int distancia;
int tiempo;
int pinTrigger = 6;
int pinEco = 5;



void setup() {
pinMode(pin1motor1, OUTPUT);
pinMode(pin2motor1, OUTPUT);
pinMode(pin1motor2, OUTPUT);
pinMode(pin2motor2, OUTPUT);
Serial.begin(9600);
pinMode(pinTrigger, OUTPUT);
pinMode(pinEco, INPUT);


}

void loop() {
digitalWrite(pinTrigger,LOW);
delayMicroseconds(25);
digitalWrite(pinTrigger, HIGH);
delayMicroseconds(100);
tiempo=pulseIn(pinEco, HIGH);

distancia= int(0.017*tiempo);

Serial.print("Distancia ");
Serial.print(distancia);
Serial.println("cm");
delay(1000);
                                
digitalWrite(pin1motor1, LOW);
digitalWrite(pin2motor1, HIGH);
digitalWrite(pin1motor2, LOW);
digitalWrite(pin2motor2, HIGH);



if(distancia<11){
digitalWrite(pin1motor1, LOW);
digitalWrite(pin2motor1, HIGH);
digitalWrite(pin1motor2, LOW);
digitalWrite(pin2motor2, LOW);

delay(2000);
digitalWrite(pin1motor1, HIGH);
digitalWrite(pin2motor1, LOW);
digitalWrite(pin1motor2, LOW);
digitalWrite(pin2motor2, LOW);

delay(2000);
digitalWrite(pin1motor1, LOW);
digitalWrite(pin2motor1, HIGH);
digitalWrite(pin1motor2, LOW);
digitalWrite(pin2motor2, HIGH);

}
}



En este video podéis verlo en acción con el anterior programa.