El otro día, después de subir la entrada anterior, Victoria se puso a programar y a agregar el sensor y los ledes mientras el resto le diseñábamos una carcasa y decorábamos a nuestro robot.
Ahora el androide gira al detectar un objeto y enciende ledes de diferentes colores según los movimientos que realice: permanece encendido el verde cuando va recto y se enciende el rojo cuando gira. También es capaz de realizar movimientos sin estar enchufado al ordenador (con una batería más) y tiene un caparazón que hemos hecho nosotras, con cartón, rotuladores y pinturas.
La verdad es que estamos muy orgullosas de nuestra creación y el resultado nos encanta. Le hemos bautizado como "A".
Adjuntamos foto creando el caparazón, vídeos del resultado final y el programa que le hemos cargado al robot.
int distancia;
int tiempo;
int pinTrigger = 8;
int pinEco = 9;
int ledrojo = 13;
int ledverde = 11;
int pin1motor1= 2;
int pin2motor1= 7;
int pin1motor2= 10;
int pin2motor2 = 12;
void setup() {
pinMode(pin1motor1, OUTPUT);
pinMode(ledverde, OUTPUT);
pinMode(ledrojo, OUTPUT);
pinMode(pin2motor1, OUTPUT);
pinMode(pin1motor2, OUTPUT);
pinMode(pin2motor2, OUTPUT);
Serial.begin(9600);
pinMode(pinTrigger, OUTPUT);
pinMode(pinEco, INPUT);
}
void loop() {
digitalWrite(pin1motor1, HIGH);
digitalWrite(pin2motor1, LOW);
digitalWrite(pin1motor2, HIGH);
digitalWrite(pin2motor2, LOW);
digitalWrite(ledverde, HIGH);
digitalWrite(ledrojo, LOW);
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);
if (distancia<=30) {
digitalWrite(pin1motor1, LOW);
digitalWrite(pin2motor1, HIGH);
digitalWrite(pin1motor2, HIGH);
digitalWrite(pin2motor2, LOW);
digitalWrite(ledrojo, HIGH);
digitalWrite(ledverde, LOW);
delay(1000); }
}
No hay comentarios:
Publicar un comentario