Anúncio
Proy iker4
Proy iker4
Proy iker4
Proy iker4
Anúncio
Proy iker4
Proy iker4
Proy iker4
Proy iker4
Proy iker4
Anúncio
Proy iker4
Próximos SlideShares
Robot seguidor de línea con software y hardwareRobot seguidor de línea con software y hardware
Carregando em ... 3
1 de 10
Anúncio

Mais conteúdo relacionado

Anúncio

Mais de José Tomás Diarte Añazco(20)

Anúncio

Proy iker4

  1. APLICACIÓN DEL BASIC STAMP: UN SENCILLO RASTREADOR DE LINEAS Aritza Etxebarria ikercv2001@yahoo.es Profesor del Colegio Vizcaya A través del siguiente artículo queremos acercar al lector al mundo de la programación de microcontroladores Basic Stamp de la empresa Parallax. Varios aspectos son los que convierten a este microcontrolador en el ideal para iniciarse en el mundo de la programación de microcontroladores: Sencillez de conexión Frente a otros microcontroladores que requieren de un extenso hardware auxiliar para su funcionamiento (fuente de alimentación, circuito del reloj, circuito de reset, circuito grabador, etc.) las principales versiones del Basic Stamp incorporan toda esta circuitería en el microcontrolador. Sencillez de programación Frente a los lenguajes de bajo nivel utilizados en la mayoría de los microcontroladores, el basic stamp utiliza un lenguaje de alto nivel llamado PBASIC, muy similar al archiconocido BASIC. Asistencia técnica gratuita La empresa Parallax, proporciona soporte para cualquier tipo de duda que pudiera surgir con el uso de sus microcontroladores, desde problemas de programación, conexionado, hasta dudas de electrónica. (stamptech@parallaxinc.com) Para demostrarlo, a continuación vamos a presentar un proyecto para la realización de un robot rastreador de líneas, basado en Basic Stamp. Paso cero: Análisis del problema del robot rastreador. El problema del robot rastreador consiste en realizar un robot autónomo que sea capaz de seguir una línea de color blanco sobre fondo negro. En la mayoría de los concursos de robótica universitarios, se practica esta modalidad. En la siguiente imagen, podemos apreciar un posible circuito muy simple. El robot debe atravesar desde el extremo inicial hasta el final, sin abandonar el camino, en menos tiempo que sus adversarios para conseguir ganar el concurso. Para poder llevar a cabo esta tarea el robot debe tener al menos 2 sensores de reflexión (por ejemplo CNY70) que detectan el color blanco o el negro. Existen múltiples soluciones para llevar a cabo el rastreo, pero nosotros analizaremos la más sencilla tan solo utilizando dos sensores.
  2. Los sensores se colocarán en paralelo y uno de ellos deberá ir por la parte blanca del circuito mientras que el otro por la parte negra. Es decir, el robot bordeará la línea. Mientras el robot lea que en el sensor izquierdo el color de la superficie es blanco y en el sensor de la derecha el color es negro, el robot avanzará hacia delante. Sin embargo, cuando el robot encuentre en ambos sensores el color blanco o en ambos sensores el color negro, el robot deberá girar para volver a encontrar el camino deseado que es negro en el sensor derecho y blanco en el izquierdo. Según esta configuración en el cruce que presentamos en la siguiente figura el robot tomaría el camino de la derecha. Analicémoslo paso a paso. Colocamos el robot en la posición INICIO de forma que tenga un sensor en la parte blanca y otro en la parte negra. Al encenderlo, al detectar blanco en el sensor izquierdo y negro en el derecho el robot avanza hasta la posición A. En la posición A el robot detecta blanco en los 2 sensores, y deberemos programarlo para que entonces gire a derecha hasta volver a leer blanco en el sensor izquierdo y negro en el derecho. En ese momento vuelve a avanzar hasta la posición B. En esta posición los sensores leen negro en ambos y entonces debemos programarlo para que gire a izquierda hasta leer negro y blanco. Entonces avanzará hasta el punto C, etc. Primer paso: Elección del Microcontrolador Una vez analizado el problema anterior, observamos que necesitamos programar un microcontrolador para controlar 2 sensores y el movimiento del robot. Para esto último utilizaremos 2 servomotores de rotación continua que tan solo necesitan una entrada de control para su funcionamiento. Por lo tanto, sólo necesitaremos 2 entradas y 2 salidas para realizar nuestro robot. Es importante analizar el número de entradas y salidas que necesitamos a la hora de elegir el microcontrolador, ya que este número es limitado y diferente en cada microcontrolador. Dentro de la familia de microcontroladores de Basic Stamp, existen varias versiones del mismo. Aunque para la iniciación suele recomendarse empezar por el Basic Stamp II, debido a las múltiples herramientas y documentación existente, nosotros lo haremos con el Basic Stamp I, debido principalmente a su menor coste económico. Dentro de los distintos modelos de Basic Stamp I, elegiremos el modelo Basic Stamp I Rev. D por su sencillez de conexión con los periféricos a emplear. Este tiene 8 pines que pueden actuar como entradas o salidas suficiente para manejar las cuatro líneas que necesitamos.
  3. Vin Vista superior del Basic Stamp I Rev. D Entrada positiva de la carga sin regular +5V Salida regulada a +5 voltios +5V Salida regulada a +5 voltios P7 Patita 7 del microcontrolador P6 Patita 6 del microcontrolador P5 Patita 5 del microcontrolador P4 Patita 4 del microcontrolador P3 Patita 3 del microcontrolador P2 Patita 2 del microcontrolador P1 Patita 1 del microcontrolador P0 Patita 0 del microcontrolador GND Toma de tierra GND Toma de tierra GND Toma de tierra Cuadro 1: Conexiones del BSI Rev.D Además esta pequeña placa contiene el circuito grabador, posibilidad de debug en tiempo real, rectificador de corriente a 5 voltios, modulación de pulsos, etc. Segundo paso: Diseño del robot rastreador Un error muy típico a la hora de diseñar un micro robot es menospreciar el diseño de la parte mecánica del mismo y centrarse únicamente en la parte electrónica y programación del mismo. El tamaño y tipo de las ruedas, los motores empleados, el anclaje de estos sobre el chasis del robot, las pilas empleadas, todo influye sobre la solución final del proyecto y cualquier fallo puede hacernos fracasar en el intento. Para montar la estructura del robot, proponemos construir un pequeño armazón de madera donde encajaremos los 2 motores (servomotores de rotación continua), los 2 sensores de reflexión, el Basic Stamp I Rev. D y las pilas. Estos son los componentes que vamos a utilizar: LISTA DE COMPONENTES Componente Unidades Precio Unitario Aprox. Basic Stamp I Rev. D. 1 47,00 € Servomotor Parallax de 2 18,00 € rotación contínua Sensor de reflexión MSE2 8,00 € S110.1 Portapilas de 4 pilas de 1,5v 1 0,60 € Conector Molex 12 pines 1 0,15 € hembra CD 8 cms. 2 1,20 € Rueda loca 1 1€ Material diverso (Conectores varios, tornillos,…)
  4. Con la ayuda de una sierra y un taladro confeccionaremos la estructura en madera del robot donde alojaremos los motores con tornillos de métrica 2. Es muy importante que los motores estén perfectamente anclados a la estructura. Para unir las distintas tablas podemos usar un pegamento de pegado rápido. Un posible ejemplo se observa en la siguiente fotografía: Tras tener los servomotores perfectamente sujetos a la estructura, incorporamos los sensores de reflexión mediante 2 tornillos, en la parte delantera de la estructura. La distancia entre ambos, no debe ser superior a la anchura mínima de la línea a seguir. A continuación colocamos una tapa a la estructura de madera con 3 agujeros. Uno grande para pasar los conectores de los servos, y otros 2 para atornillar el Basic Stamp I rev. D a la estructura.
  5. A continuación realizamos las distintas conexiones necesarias según el programa diseñado. Para los conectores del BStamp podemos usar un conector molex de 12 pines colocado de forma que sobren dos de los 3 pines de tierra. Así las conexiones serían las siguientes: Servomotor izquierdo Servomotor derecho Sensor izquierda ROJO = Vin NEGRO = GND BLANCO = PIN7 del BStamp ROJO = Vin NEGRO = GND BLANCO = PIN6 del BStamp 1 = +5v 2 = GND 3 = PIN1 del BStamp Sensor derecha 1 = +5v 2 = GND 3 = PIN0 del BStamp
  6. Por último creamos las ruedas del robot. Para conseguirlas, proponemos pegar el conector que viene junto al servomotor a 2 CDs de 8 centímetros con un adhesivo como Loctite y rodear el CD con una goma para que no patinen las ruedas. (Por ejemplo pegando la goma de una alfombrilla de ratón alrededor del CD). Y colocamos una rueda loca en la parte trasera del micro robot que servirá de apoyo. El resultado final podría ser algo parecido al que presentamos en la siguiente fotografía: Cuarto paso: Programación del robot Una vez construido el robot, vamos a meternos con la programación del mismo. Lo primero que haremos será construir el cable de programación necesario para comprobar el perfecto funcionamiento del basic stamp con el que confeccionaremos nuestro primer programa. Creación del cable de programación El Basic Stamp I se programa por el puerto paralelo mediante un cable especial que también puede adquirirse por el precio aproximado de 18 Euros. Sin embargo proponemos crear dicho cable para abaratar costes. La construcción del cable es muy sencilla, simplemente hay que seguir el siguiente esquema: Busque este símbolo en la placa del BSTAMP I
  7. Prueba del microcontrolador Una vez creado el cable, es imprescindible bajarse de internet (www.parallax.com) el editor de Basic Stamp I, programa desde el que programaremos el microcontrolador. El programa funciona bajo MSDOS, y puede que dé algún problema a los usuarios de Windows XP, sin embargo con otras versiones de windows, funciona perfectamente. Una vez ejecutado el editor, conectamos el cable con el Basic Stamp observando el símbolo >> serigrafiado en la placa, alimentamos el Basic Stamp con las pilas y teclearemos el siguiente programa: debug “Hola mundo, soy tu Basic Stamp” A continuación pulsaremos ALT + R y observaremos el resultado en pantalla. ¡El Basic Stamp nos habla! ¿Cómo que no nos habla? Si en la pantalla de su ordenador no viese el mensaje en cuestión, revise el cable de programación creado, y revise que el Basic Stamp esté correctamente alimentado. Pero si por el contrario lee el mensaje en pantalla, ¡Enhorabuena! Acaba usted de ejecutar su primer programa sobre el Basic Stamp. Existen múltiples manuales de programación en el sitio web de parallax pero en la bibliografía le recomendamos otra web donde encontrará los manuales de parallax en castellano. Pasemos ahora, a otra fase de la programación Leyendo los sensores Los sensores, los tenemos colocados en las patitas 0 y 1 del microcontrolador. Lo primero que debemos hacer es indicarle al controlador que esas patitas van a ser de entrada. Para ello utilizaremos la instrucción input de la siguiente manera: INPUT 0 INPUT 1 ‘ El pin 0 del Basic Stamp actuará como ENTRADA ‘ El pin 1 del BStamp actuará como ENTRADA Fíjese que tras la instrucción hemos añadido dos comentarios con el símbolo apóstrofe por delante. A continuación leeremos la entrada de cada pin y la mostraremos con el comando debug en un bucle infinito: INPUT 0 ‘ El pin 0 del Basic Stamp actuará como ENTRADA INPUT 1 ‘ El pin 1 del BStamp actuará como ENTRADA Leer: ‘ Etiqueta para el bucle infinito DEBUG pin0,pin1 ‘Mostramos en pantalla el estado del pin 0 y 1 PAUSE 500 ‘ esperamos medio segundo (500 milisegundos) GOTO Leer ‘Saltamos a la etiqueta Leer para repetir el ciclo ‘ de forma indefinida Al pulsar ALT + R nos aparecerá en pantalla el estado del pin0 y el pin 1. Si colocamos en un folio un trozo de cinta aislante negra y vamos variando la posición de los sensores sobre el folio y la cinta aislante observaremos en pantalla los distintos valores de los
  8. sensores. La altura a la que deben estar los sensores con respecto a la superficie a leer debe ser aproximadamente (varía con la iluminación empleada) de medio centímetro. Ahora, en cuanto sepamos como mover los servos, podremos crear el programa rastreador. Moviendo los servos Para mover el robot hemos seleccionado 2 servomotores de rotación contínua que distribuye la empresa parallax. Estos motores se caracterizan por tener una circuitería auxiliar que permite que con una única señal de pulsos electrónicos controlemos el movimiento del motor. Así nos ahorramos la etapa de potencia que deberíamos usar con otros motores y ganamos en sencillez de diseño. Pero basta de teoría. Empecemos a mover el robot. Dependiendo de la señal que enviemos al servomotor conseguiremos un movimiento u otro. Para crear una señal de pulsos electrónicos el Basic Stamp dispone de una instrucción llamada PULSOUT. No nos vamos a extender con el funcionamiento de los servos. Simplemente indicaremos a continuación un programa que controla el movimiento de los servos. Al poner los dos servomotores enfrentados, si mandamos la misma señal a los servomotores, girarán en sentido contrario y si mandamos señales distintas girarán en el mismo sentido. Veámoslo y comprobémoslo con el ejemplo. ‘Pruservo.bs2 ‘Programa para la prueba de servos SYMBOL MotorIzq = 7 ‘El motor de la izquierda lo conectamos al pin7 SYMBOL MotorDer = 6 ‘El motor de la derecha lo conectamos al pin6 ‘La instrucción SYMBOL se utiliza para declarar variables y constantes OUTPUT MotorIzq ‘Configuramos la patita 7 como salida OUTPUT MotorDer ‘Configuramos la patita 6 como salida FOR B0 = 1 TO 20 ‘Para observar el movimiento del robot ‘mandamos la señal durante 20 impulsos PULSOUT MotorIzq,300 ‘Con el parámetro 300 en el motor izq ‘conseguimos que este avance rápidamente PULSOUT MotorDer,1 ‘Y el motor derecho avanza cuando mandamos un ‘1 pulso de 10 microsegundos PAUSE 20 ‘Y al avanzar los dos motores, el robot avanza NEXT FOR B0 = 1 TO 20 ‘El motor izquierdo sigue avanzando PULSOUT MotorIzq ,300 ‘ pero al mandar la señal contraria al servo PULSOUT MotorDer , 300 ‘ derecho, este retrocede. PAUSE 20 ‘ Y así al avanzar una rueda y girar la otra NEXT ‘conseguimos que el robot gire Para aprender más sobre el movimiento y control de los servomotores no dude en consultar la bibliografía indicada al final del artículo. En caso de no conseguir el efecto deseado cambie las constantes en la instrucción PULSOUT hasta conseguirlo. Con cambiar el 1 por 300 y viceversa, debería ser suficiente. Una posible solución Si integramos todos los aspectos analizados a través de todo el artículo, y con un poco de conocimiento del lenguaje PBASIC, podríamos llegar fácilmente a una solución muy parecida a esta:
  9. '*************************************************************** '* Programa de control de robot * '* para Basic Stamp Rev D. * '* AUTOR: Aritza Etxebarria 2.003 * '*************************************************************** '======================= ' Asignaci¢n de patitas '======================= symbol p0 = pin0 'Pin0 conectado al detector de l¡nea der symbol p1 = pin1 'Pin1 conectado al detector de l¡nea izq symbol MotorIzq = 7 'Conectado al servomotor izquierdo symbol MotorDer = 6 'Conectado al servomotor derecho '================================= ' Constantes de control de Servos '================================= symbol Avizq = 300 'Hace avanzar el servomotor izquierdo symbol Reizq = 1 'Hace retroceder el servomotor izquierdo symbol AvDer = 1 'Hace avanzar el motor derecho symbol ReDer = 300 'Hace retroceder el motor derecho '=========== ' Variables '=========== symbol pulsos = b0 'Para el control del bucle de los motores symbol lectura = b1 'Para almacenar el estado de la lectura '================ ' Inicializaci¢n '================ input p0 'p0 y p1 son entradas input p1 'de los sensores de reflexion output MotorIzq 'El Motor izquierda es de salida output MotorDer 'El Motor derecha es de salida '==================== ' Programa principal '==================== Principal: GOSUB LeeSensores 'Leemos el estado de los sensores Continua: ' En fucnci¢n de dicho estado nos encontramos en una superficie u otra ' y actuamos en consecuencia BRANCH lectura, (BlancoBlanco,BlancoNegro,NegroBlanco,NegroNegro) GOTO Principal 'Repetimos el bucle indefinidamente '==================== ' Rutinas auxiliares '==================== NegroNegro: for pulsos = 1 to 5 ‘Hacemos girar el robot a izquierda pulsout MotorDer,AvDer pulsout MotorIzq,ReIzq pause 20 next GOTO Principal NegroBlanco: for pulsos = 1 to 5 ‘Hacemos girar el robot a derecha pulsout MotorDer,ReDer pulsout MotorIzq,AvIzq pause 20 next GOTO Principal BlancoNegro: ‘El robot avanza pulsout MotorIzq,AvIzq pulsout MotorDer,AvDer pause 20 GOTO Principal BlancoBlanco: ‘El robot gira a derecha for pulsos = 1 to 5 pulsout MotorDer,ReDer pulsout MotorIzq,AvIzq pause 20 next GOTO Principal '================================================================== 'Esta rutina devuelve en una variable el estado de los bits p0 y p1 '================================================================== LeeSensores: lectura = p1*2 + p0 ‘ Convierte los bits en valor decimal RETURN ' Vuelve al programa principal
  10. Si introducimos esta solución en el robot, este se encontrará listo para seguir la línea que usted le marque. ¡Adelante¡ Constrúyase su propio circuito de pruebas y trate de depurar el programa hasta conseguir mejores velocidades. ¿Quiere entretenerse más? A continuación le presentamos posibles mejoras del robot y/o transformaciones: -Añadir un interruptor de encendido/apagado. -Añadir un switch y modificar el programa para que el robot vaya por los caminos de la derecha o la izquierda. Cuando se concursa con un robot rastreador, siempre suele haber un camino mejor que el otro. Si nosotros solo programamos el robot para que elija el camino de la derecha (como en nuestro ejemplo) corremos el riesgo de que el mejor camino sea el de la izquierda. Por eso sería interesante añadirle un switch al robot para que en función del switch, siga siempre el de la izquierda o siga siempre el de la derecha. -Modificar el robot para ser un luchador de sumo. Una vez superada esta fase del robot rastreador, intente crear un robot luchador de sumo. Parallax dispone de un robot de lucha sumo llamado Sumobot, cuyo manual de ensamblaje y programación puede bajarselo gratuitamente de la web de parallax junto con las reglas de este concurso. -Conseguir mejores giros del robot, utilizando más sensores. Si utiliza más sensores podría determinar el tipo de giro que debe dar el robot: Muy cerrado, poco cerrado, etc. Modifique el robot para que detecte cada tipo de giro y haga que las ruedas giren de distinta forma dependiendo del tipo de giro, de forma que optimice el tiempo empleado en el circuito. -También puede ahorrarse algo de dinero si en vez de usar los sensores de reflexión MSES110.1 los confecciona usted mismo siguiendo el siguiente esquema de conexionado de los CNY70 Bibliografía recomendada: www.parallax.com o www.stampsinclass.com sitio web oficial de la empresa parallax, con extensos manuales, catálogos de productos, software, todos ellos gratuitos. www.cursoderobotica.com.ar Dentro de la sección libros encontrará una serie de manuales en castellano que le ayudarán de una forma muy sencilla a introducirse en la programación de estos microcontroladores, creación de robots, … www.microcontroladores.com Distribuidor en España de los microcontroladores Parallax y de los sensores utilizados.
Anúncio