Descargar

Control de Robot con sensores de distancia (página 2)

Enviado por Pablo Turmero


Partes: 1, 2, 3
edu.red

while(!button_is_pressed(BUTTON_B)) { clear (); print_long(read_battery_millivolts()); print("mV"); lcd_goto_xy(0,1); print("Press B"); delay_ms(100); }   //Limpia la pantalla para borrar el mensaje que dice presionar b clear();

Espera que se presione el botón b que inicia todo el proceso Mientras muestra el valor de voltaje presente en la batería

edu.red

//Emite un sonido de la escala do re mi…. a volumen 10 (v10) con retardo de corche(L8) play("L8 V10 crrdrrerrfrrgrrarrbrr");     while(1){     //Lee el analogico en el puerto 6 y 5   s1= analog_read(6); s2= analog_read(5);

Lectura de los valores obtenidos por los sensores para iniciar su movimiento

Instrucción para añadir tonos al Pololu 3pi

edu.red

//Emite un sonido de la escala do re mi…. a volumen 10 (v10) con retardo de corche(L8) play("L8 V10 crrdrrerrfrrgrrarrbrr");     while(1){     //Lee el analogico en el puerto 6 y 5   s1= analog_read(6); s2= analog_read(5);

Lectura de los valores obtenidos por los sensores para iniciar su movimiento

Instrucción para añadir tonos al Pololu 3pi

edu.red

print("s1 "); print_long(s1); lcd_goto_xy(0,1); print("s2 "); print_long(s2);   //Si se encuentra a una distancia entre 10 a 15 cm se detiene a esperar   while(s1<360 && s1>300){ //(d<15 && d>10) La relación es inversa   s1= analog_read(6); s2= analog_read(5);

Si se encuentra a una distancia entre 10 a 15 cm se detiene a esperar

Imprime el valor de los sensores S1 y S2

edu.red

print("s1 "); print_long(s1); lcd_goto_xy(0,1); print("s2 "); print_long(s2);

set_motors(0,0); cnt++; cnt2=0; delay_ms(1);

Imprime el valor de los sensores S1 y S2

edu.red

if(cnt>=4000){   //Giro hasta detectar un espacio libre para seguir un camino

while(s1>100 && s2>100){   play("L8 V10 crdrerfrgrarbr");   s1= analog_read(6); s2= analog_read(5);

Instrucción para añadir tonos al Pololu 3pi Lectura de los valores obtenidos por los sensores

edu.red

print("s1 "); print_long(s1); lcd_goto_xy(0,1); print("s2 "); print_long(s2);

delay_ms(100); //Signos diferentes para que gire set_motors(40,-40);

cnt2++; cnt=0;

}  } }

Giro del Robot

Imprime el valor de los sensores S1 y S2

edu.red

if(s1<360 && s2<360){ //(d1>15 && d2>15) s1= analog_read(6); set_motors(40,40); cnt=0; }  

if(s1>300){ //(d1<10)

play("L8 V10 crrrerrrcrrrerrrcrrre");

s1= analog_read(6); set_motors(-40,-40); cnt=0; }

Si el sensor derecho ve una distancia corta retrocede para evitar colisiones mientras emite un sonido Si el sensor derecha e izquierda ve una distancia grande avanza

edu.red

s1= analog_read(6); s2= analog_read(5);   print("s1 "); print_long(s1); lcd_goto_xy(0,1); print("s2 "); print_long(s2);   //Deja limpia la LCD clear();   }   return 0;   }

Finalización del programa limpiando la pantalla Imprime el valor de los sensores S1 y S2

edu.red

CURVA DE CONVERSION VOLTAGE ANALOGO VS DISTANCIA

edu.red

print(“mensaje"):

Permite presentar un mensaje en la pantalla LCD (8 columnas y 2 filas) del robot Pololu .

print_long (“valor de la distancia"):

Permite mostrar el valor que se guarde en una variable.

set_motors(+/-vel, +/-vel):

Modifica la velocidad de los motores de 600 a 0 rpm con solo darle a vel 255 para el primer caso ó “0” para el segundo caso, además se puede cambiar el giro cambiando su signo a negativo.

FUNCIONES PRINCIPALES

edu.red

play("Lx Vy caracteres"):

Esta función permite emitir sonidos o series de sonidos con un control de tiempo x y volumen y de las notas musicales do=c; re=d ; mi=e; fa=f; sol=g; la=a ; si=b. Y el corche "r" el cual permite hacerle un retardo o alargamiento a la nota que se coloque antes de esta.

FUNCIONES PRINCIPALES

edu.red

La implementación del proyecto se la hará de la siguiente manera: El Robot contará con la implementación de un control esquivador de objetos El diseño de este proyecto se basa en controlar el Robot Pololu utilizando la ayuda de sensores de distancia trabajando a manera de convertidores de señal El Pololu deberá conservar una equidistancia proporcionada por el usuario Implementar rutinas para que el Robot pueda realizar un giro de búsqueda de salidas. Programar la pantalla LCD del robot POLOLU para presentar datos específicos IMPLEMENTACION PRELIMINAR

edu.red

Entre las aplicaciones se puede observar el comercio, la seguridad de los autos y la exploración espacial Pequeños vehículos autónomos enfocados hacia la minería y a exploración subterránea. El campo de aplicación de este proyecto está relacionado con la industria automovilística. Desarrollar un prototipo inteligente para poder evitar obstáculos y colisiones

APLICACIONES PRINCIPALES

edu.red

Evita cualquier tipo de obstáculos: móviles o estáticos.

Facilidad de busca de obstáculos gracias a los dos frentes de visión uno derecho y otro izquierdo para obstáculos presentes en estas direcciones.

Búsqueda autónoma en su propio eje de hasta 360 grados para evitar obstáculos. VENTAJAS PRINCIPALES

edu.red

Al depender de los sensores el evadir obstáculos tiene un rango fijo de altura, es decir solo reconoce obstáculos a la altura que en que se ubiquen los sensores. Por su acción de evasión repentina el desplazamiento del robot es de mediana velocidad. Al ser energizado con baterías posee un tiempo limitado de funcionamiento de aproximadamente 4 horas de forma continua.

DESVENTAJAS PRINCIPALES

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente