Capítulo 5: Navegación Táctil con Filamentos Muchos tipos de maquinaria robótica confían en una variedad de interruptores táctiles. Por ejemplo, un interruptor táctil puede detectar cuando un brazo robótico ha encontrado un objeto. El robot puede ser programado para recoger el objeto y colocarlo en otro lado. Las fábricas usan interruptores táctiles para contar objetos en una línea de producción y también para alinear objetos durante sus procesos. En todas estas instancias, los interruptores proveen entradas que dictan alguna otra forma de salida programada. Las entradas son electrónicamente monitoreadas por el producto, siendo este un robot, una calculadora o una línea de producción. En base al estado de los interruptores, el brazo robótico toma un objeto, o la calculadora despliega actualizaciones, o la línea de producción de la fábrica reacciona con motores o servos para guiar los productos. Construiremos interruptores táctiles llamados filamentos y los probará en su microbot. Luego programará al microbot para monitorear el estado de estos y para decidir qué hacer cuando encuentre un obstáculo. El fin es la navegación autónoma por palpado. NAVEGACIÓN TÁCTIL Los filamentos o bigotes (“whiskers”) son así llamados porque es lo que estos interruptores de choque parecen, aunque algunos argumentan que parecen más antenas. Estos filamentos están mostrados en el microbot en la Figura 5-1. Los filamentos le dan al microbot la habilidad de sensar el mundo a su alrededor palpando, muy parecido a las antenas de una hormiga o los bigotes de un gato. Las actividades en esta sección usan los filamentos en sí mismos, pero pueden ser combinados con otros sensores. Figura 5-1 Microbot con Filamentos ACTIVIDAD #1: CONSTRUYENDO Y PROBANDO LOS FILAMENTOS Antes de proceder con los programas que harán que el microbot navege en base a lo que pueda tocar, es esencial construir y probar los filamentos primero. Esta Actividad le guiará a través de la construcción y prueba de los filamentos. Circuito con Filamentos y Ensamble Reúna el hardware de los filamentos mostrados en la Figura 5-2. Desconecte la energía de su tarjeta de control y de los motores. Lista de partes (2) Alambres filamentos (2) Tornillos Phillips 7/8″ cabeza plana 4-40 (2) Espaciadores de ½″ (2) Rondanas de Nylon #4 (2) Conectores de 3 pines (2) Resistencias de 220 Ω (rojo-rojo-cafe) (2) Resistencias de 10 kΩ (cafe-negro-naranja) Figura 5-2 Hardware de los filamentos Construyendo los Filamentos (esta guía es como base, utilice sus propios materiales) Refiérase a la Figura 5-3 mientras que sigue las Instrucciones faltantes. Coloque una rondana de nylon luego un espaciador en cada tornillo de 7/8″. Coloque los tornillos en su tarjeta y dentro de los soportes, pero aún no los apriete completamente. Deslice los extremos con gancho de los alambres alrededor de los tornillos, uno sobre una rondana y el otro bajo la otra rondana, de tal forma que se entrecrucen sin tocarse. Apriete los tornillos a los soportes. Filamento bajo la rondana Filamento sobre la rondana Board of Education / HomeWork Board Figura 5-3 Montando los filaments El siguiente paso es agregar el circuito para filamentos mostrado en la Figura 5-4 a los circuitos que se construyó anteriormente. C onstruya el circuito para filamentos de la Figura 5-4 usando el diagrama (Figura 5-5) de referencia. Asegúrese de ajustar cada filamento de tal forma que estén próximos a tocar, pero no tocan, los conectores de 3 pines en la tableta. Una distancia de aproximadamente 1/8″ (3 mm) es un punto de inicio recomendado. Vdd Vdd 10 k 10 k P7 220 P5 220 Right Whisker Vss Left Whisker Vss Figura 5-4 Esquemático para filamentos Figura 5-5: Diagrama de alambrado de filamentos para el Board of Education Left Whisker Motores 15 14 Vdd 13 12 Red Black X4 Vdd X5 Vin Vss X3 P15 P14 P13 P12 P11 P10 P9 P8 P7 P6 P5 P4 P3 P2 P1 P0 X2 + Board of Education Rev C © 2000-2003 Right Whisker Use las resistencias de 220 Ω (rojo-rojo-café) para conectar P5 y P7 a sus correspondientes conectores de 3 pines. Use las resistencias de 10 kΩ (cafe-negronaranja) para conectar Vdd a cada conector de 3 pines. Figura 5-6: Diagrama de alambrado de filamentos para el HomeWork Board Left Whisker To Servos (916) 624-8333 www.parallax.com www.stampsinclass.com Vdd Vin Rev B Vss X3 P15 P14 P13 P12 P11 P10 P9 P8 P7 P6 P5 P4 P3 P2 P1 P0 X2 + HomeWork Board Right Whisker Use las resistencias de 220 Ω (rojo-rojo-café) para conectar P5 y P7 a sus correspondientes conectores de 3 pines. Use las resistencias de 10 kΩ (cafe-negronaranja) para conectar Vdd a cada conector de 3 pines. Probando los Filamentos Revise de nuevo el esquemático de la Figura 5-7. Cada filamento es una extensón mecánica y la tierra eléctrica de un circuito con un interruptor normalmente abierto de 1 polo y 1 tiro. La razón por la que los filamentos están conectados a tierra (Vss) es porque los 4 barrenos en los 4 extremos externos de la tarjeta están conectados a Vss. Los soportes de metal los tornillos proveen la conexión eléctrica para cada filamento. Vdd Vdd 10 k 10 k P7 220 P5 220 Right Whisker Vss Left Whisker Figura 5-7 Un Segundo vistazo al esquemático para filamentos. Vss La tarjeta de control puede ser programada para detectar cuando se presiona un filamento. Los pines de I/O conectados a cada circuito-interruptor monitorean el voltaje en la Resistencia de 10 kΩ. La Figura 5-8 ilustra esto. Cuando un determinado filamento no es presionado, el voltaje en el pin I/O conectado a ese filamento es 5 V. Cuando un filamento es presionado, la línea de I/O es puesta a tierra (Vss), y entonces la línea I/O ve 0 V. Todos los pines I/O toman como valor por defecto “input” cada vez que inicia un programa PBASIC. Esto significa que los pines I/O conectados a los filamentos funcionan como entradas automáticamente. Como entrada, un pin I/O conectado a un circuito de filamento causará que su registro de entrada guarde un 1 si el voltaje es 5 V (filamento no presionado) o un 0 si el voltaje es 0 V (filamento presionado). La Terminal de Depuración puede usarse para desplegar estos valores. Figura 5-8 Detectando Contactos Eléctricos ACTIVIDAD #5: PROBANDO EN CAMPO LOS FILAMENTOS Asuma que puede tener que probar los filamentos en un momento posterior lejos de su computadora. Como la Terminal de Depuración no estará disponible, ¿qué puede hacer? Una solución sería programar su tarjeta de control para que envíe una señal de salida que corresponda a la señal de entrada que está recibiendo. Esto puede hacerse con un par de circuitos LED y un programa que los encienda/apague según la entrada de los filamentos. Lista de partes: (2) Resistencias, 220 Ω (rojo-rojo-café) (2) LEDs, rojos Construyendo los circuitos LED de prueba de Filamentos Desconecte la energía de su tarjeta y motores. A gregue el circuito mostrado en la Figura 5-9, P10 220 Figura 5-9 Esquemático LED de prueba de Filamentos P1 220 LED Vss LED Vss Agregue estos circuitos LED. ACTIVIDAD #3: NAVEGACIÓN CON FILAMENTOS En la Actividad previa, el programa nos sirvió para detectar si un filamento fue presionado. Ahora será programado para tomar ventaja de esta información para guiar al microbot. Cuando esté avanzando y un filamento sea presionado, querrá decir que el microbot choca contra algo. Un programa de navegación necesita atender esta entrada, decidir qué significa y llamar a un conjunto de maniobras que hagan que el microbot se recupere del obstáculo, gire y vaya en otra dirección. Act03: Desarrolle un programa para que reconozca cuando están presionados los bigotes, verifique su acción con la ayuda de los leds y enviando el dato por el puerto serie al monitor. Programando el microbot para Navegar en base a la entrada de sus filamentos. El siguiente programa que debe desarrollar, tiene que informarle al microbot que vaya al frente hasta que encuentre un obstáculo. En este caso, el microbot sabe cuándo encuentra un obstáculo al chocarlo con uno o ambos filamentos. Tan pronto como el obstáculo es detectado por los filamentos, las rutinas y subrutinas de navegación desarrolladas en actividades anteriores harán que el microbot retroceda y gire. Luego, el microbot retoma su movimiento al frente hasta que golpea otro obstáculo. Para hacer esto, el microbot necesita ser programado para tomar decisiones. Utilice las estructuras de control condicional para este caso en particular, se sugiere la estructura llamada IF (condición) {…} ELSE{…} que toma decisiones. Su turno: Con la ayuda de sus acciones al cerrar sus ojos y utilizar sus brazos para trasladarse de un lugar a otro (como un ciego lo haría), programe a su microbot para poder ir de un lugar a otro evadiendo obstáculos. Por ejemplo, cuando cambia de nivel un filamento significara que se ha chocado por uno de sus extremos, izquierda o derecha, (¿Qué haría usted si fuesen sus brazos?) Cumpliría lo siguiente: N CONDICIÓN ACCIÓN 1 No choca ningún filamento Continuar adelante un paso. 2 Chocan los dos filamentos Retroceder, voltear a uno de los lados y continuar adelante 3 Choca el filamento derecho Retrocedo un paso giro a la derecha y avanza a adelante. 4 Choca el filamento izquierdo Retrocede un paso giro a la izquierda y avanzo adelante. Cumpliendo estos eventos se estará evadiendo los obstáculos alrededor. ACTIVIDAD #4: INTELIGENCIA ARTIFICIAL Y DECIDIENDO CUANDO ESTÁ ATORADO Quizá haya notado que el microbot se queda atorado en las esquinas. Conforme el microbot entra a la esquina, su filamento toca la pared a la izquierda y gira a la derecha. Cuando el microbot se mueve hacia al frente nuevamente, su filamento derecho choca con la pared a la derecha y gira a la izquierda. Luego gira y choca con la pared izquierda nuevamente y así sucesivamente, hasta que alguien lo rescata de su predicamento. Programando para Escapar a las Esquinas Modifique su programa anterior para detectar este problema y actuar en consecuencia. El truco es contar las veces que los filamentos alternativamente hacen contacto. Una cosa importante es que el programa tiene que recordar en qué estado estaba cada filamento durante el contacto previo. Tiene que compararlo contra los estados actuales de los filamentos en el contacto presente. Si son opuestos hay que sumar uno al contador. Si el contador sobrepasa un valor de umbral que usted haya determinado, entonces es hora de dar vuelta en U y reiniciar el contador de esta alternativa. Preguntas 1. ¿Qué tipo de conexión eléctrica es un filamento? 2. Cuando se presiona un filamento de tu microbot ¿qué voltaje ocurre en el pin I/O que lo monitorea? ¿Qué valor binario ocurrirá en el registro de entrada? 3. ¿Qué comando se usa para brincar a diferentes subrutinas dependiendo del valor de una variable? ¿Qué comando se usa para decidir a qué subrutina brincará? ¿En qué se basan estas decisiones? 5. ¿Cuál es el propósito de tener declaraciones IF…THEN anidadas.