Construción de un robot caminante controlado mediante Linux Introducción Los robots siempre nos han fascinado. Cuando encontramos un libro que incluia un kit para montar un pequeño robot del tipo insecto y que se llama Stiquito, nos entusiasmamos. Stiquito es un robot especial, anda sin la ayuda de ningun motor. Sus patas son cables con nitinol y de esta forma se desplaza de manera tan sileciosa como la hace un insecto. Pero despues de montarlo nos dimos cuenta que sus movimientos eran muy lentos debido ha que no habia suficiente fricción con la superficie por la que se desplazaba. Por suerte, el libro incluia descripciones de diseños de otros robots lo que nos inspiro la construcción del robot que os vamos a describir en este post. Nitinol Nuestro robot no tiene motor. Anda porque sus patas son cables y sus músculos son de nitinol. Nitinol es un cable con memoria, hecho de niquel y titanio que al calentarse electricamente se contrae como si fuera un músculo. Cuando conduce una corriente electrica, el cable se acorta. Cuando conduce la corriente electrica, el cable se calienta y se contrae(vuelve a su forma original). Se requiere de una fuerza opuesta ( en muestro caso mediante una cuerda de música) para devolver el nitinol a su longitud anterior. Como el cable es resistente y lo suficientemente fiable con tan sólo estiralo entre un 3 y 5 por ciento, podra aguantar varias millones de ciclos. Construcción del Robot Para contruir el robot necesitaremos el siguiente material: Una placa de circuito impreso con pads en ambas caras de la placa y taladro metalizado. La placa debe ser de fibra de vidreo , la de baquelita no sirve por que se puede quebrar.Ver la figura de la izquierda. 15 x 15 mm, 6 x 6 agujeros (para el cuerpo). dos de 18 x 16 mm, 7 x 6 agujeros (para el cuerpo) 18 x 6 mm , 7 x 2 agujeros (para poner sobre el cuerpo) tubo de latón o cobre de 2 mm de diámetro 4 cm de tubo cobre o latón: 2mm de diámetro externo, 1mm el interno 0.5 m de tubo cobre o latón: 1mm de diámetro externo, aproximadamente 0.6 mm el interno. Lo utilizamos para sujetar el cable de nitinol. 1m de cable nitinol , .004" de diamtero 0.5m cable músical (cable acerado), 1 mm de diámetro. 5m cable de cobre barnizado de 0.1mm de diámetro (muy delgado, del tipo que se utilizan en los transformadores o pequeños motores ). Papel de lija fina estaño, soldador un cuhillo afilado de cocina un pelador de cables alicates de boca semi-redonda o boca plana curva Un conector hembra de 25 pins para el puerto paralelo y los componentes electrónicos que se indican en el esquema electrónico siguiente: Puedes encontrar buena parte del material en una buena tienda de maquetas. Si no hay ninguna en tu ciudad, puedes buscar cerca de una universidad de arquitectura. Sus estudiantes deben construir modelos de casaz y otro tipos de construciones y es bastante facil que encuentres alguna tienda donde comprar este tipo de material, asi como tubos finos de latón o cobre. Cuando compres los alicates de boca plana o semi-redondaa, asegurate que tienen una cara plana, por que en caso contrario no podras rizar el cable de nitinol. Construyendo el cuerpo Para construir el cuerpo necesitas tres partes de la placa de circuito: una de 6x6 agujeros y dos de 6x7 agujeros. Ademas de 4 cm del tubo de laton junto con 3,7cm de cable de música. Corta el tubo de latón en piezas de 8 , 17.5 y 8mm tal como se muestra en la figura. Puedes cortarlo deslizando el tubo sobre el cuchillo y entonces curvandolo. El tubo se cortara cuando le hagas una muesca con el cuchillo. Es importante que el tubo del medio sea ligeramente mas largo que la placa de 6x6 agujeros. Corta unos 3.7 cm de cable músical. Ha de ser unos 3 mm mas largo que los tres tubos juntos. Introduce el cable en el interior de los tubos. El tubo del medio tendra la capacidad de girar cuando los otros dos esten soldados a la cuerda de música. El tubo del medio se suelda a la placa de 6x6 agujeros. Debes ir con cuidado por que puede girar. Los otros dos tubos se sueldan a las otras dos placas. Ahora coje la placa más pequeña, la de 2x7 agujeros. Se pone de canto sobre la mitad del tubo. Realizar una muesca en la placa con el cutter. Colocar la parte media del tubo en la parte media de la placa y soldar el conjunto (Observar la figura) Lija el tubo de 1mm y cortalo varias piezas de 4mm largo. Haz rodar el tubo sobre el filo del cuchillo de cocina y ves flexionandolo. Necesitaras 16, pero mejor corta alguno más.Estos tubos se utilizarán como tope donde atar el cable de litinol. Antes de nada, vamos a hacer una pruebas con alguno de los tubos cortados: Pon el final del nitinol en el tubo de 1mm de diámetro externo y apreta con el alicate de punta curva. A esto se le llama rizar o crimpar. Procura comprar un buen alicate, por que se ha de realizar un gran fuerza sobre el tubo. Con el fin de tener un buen contacto eléctrico lija el final del cable de nitinol. Vamos a cablear con el cable nitinol para poder mover las patas de arriba a abajo. Coloca el nitinol como si quisieras construir un puente. Empiezas en un lado. Pon el cable en el último agujero de la izquierda. Haces un nudo en el cable de nitinol(para asegurarnos una buena conexión) , pasa uno de los tubitos de 4mm y vuelve apasar el cable por el tubito y tensalo bien tenso. Pasa el cable por el segundo agujero de la parte superior lado izquierdo y lleva el cable atraves del último agujero posible. De nuevo en la parte de debajo de la placa haz un nudo en el cable de nitinol. (ver Fig 7). El nitinol debe estar tenso pero no mucho. Si presionas ligeramente se debe mover de 2 a 4 mm. Si no esta lo suficientemente tenso o lo esta demasiado, más tarde el robot no se movera correctamente. Suelda los tubitos a la placa. Haz lo mismo en el otro lado. Antes de continuar vamos a ver si funciona. Utiliza una pila de 1.5V del tipo AA mignon y conectala a uno de los cables de nitinol. Cuando el cable se contraiga, la parte media del cuerpo girará entre 10 y 20 grados.¡ESTA PRUEBA HA DE DE DURAR COMO MUCHO 1 SEGUNDO! Por que puedes quemar el cable por sobre calentamiento. Las Patas Para las patas vamos a cortar 3 trozos de cable de música de 10 cm. En cada uno de los trozos doblar el cable 1.5cm en cada lado . Soldamos cada pata una en cada parte del robot. Procurar que queden paralelas. Ahora debes cablear el nitinol sobre las seis patas. Pasa el cable de nitinol por la parte de arriba atraves de uno de los tubitos y por el un agujero del circuito impreso. La longitud del cable de música es de 3 agujeros. Mantenlo tirate (mira el dibujo de arriba). Bobina sobre el cable de música hasta que lleges al doblez de la pata. Pon el cable de nitinol sobre el y bobinalo fuertemente. Ahora viene la parte más dificil. Manten el robot y dobla las patas. El cable de músia hace el efecto opuesto al del nitinol. Para que trabaje el cable de nitinol no debe estar suelto. El cable de música debe tirar atraves de uno de los agujeros de la placa hacia el nitinol y la parte bobinada debe estar solda a la pata. Comprueba que el nitinol y el cable de música estan igualados. Cuando el nitinol se contrae las patas no se han de mover de arriba a abajo. La pierna se mueve hacia atras. Haz lo mismo con las otras patas. El conjunto formado por las patas y el cable músical junto con los tubitos de latón actuan como un bus de potencia y ademas hay una conexión electrica entre todos ellos. La parte dentral del robot tiene mayor movilidad al poder rotar y ademas no tiene una buena conexion. Esto último se mejora utilizando uno de los tubitos de 4mm y enrrollando un trozo de cable de cobre de 3 cm y 0.1mm de diámetro obteniendo una pequeña bobina. Extrae el tubito y suelda la bobina entre la mitad de las patas centrales y una de las exteriores. La forma de bobina del cable garantiza una mayor flexibilidad. Cuando el robot este listo, soldaras diversos cables de cobre barnizado de 0.1mm de diámetro y de 0.5m de longitud o más. Necesitaras 9 cables : 6 para las patas , 2 para subir y bajar y otro para la masa. Uno de los extremos se soldará a un conctor que se conectará al correspondiente conector del circuito driver. La Manera de andar Controlando el robot bajo Linux El Circuito del Driver Esta placa te permite tener el control de los actuadores desde el PC a traves del puerto paralelo. Mientras desarrollamos el programa, testeamos su funcionamiento controlando leds. Cuando nos aseguramos que la simulación de los movientos con los leds era correcta, conectamos los cables del robot a la placa de control. El robot es un ser hambriento, se necesitan de 200 a 250 mA de corriente para contraer el cable de nitinol. 3 cms de cable de nitinol tienen una impedancia de 7 Ohms. Antes de dar potencia al circuito, hay que poner en marcha el programa para inicializar el port paralelo y prevenir que se estropee el cable de nitinol. Esto se hace asi por que la bios activa las salidas del puerto paralelo a cualquier valor aleatorio. En esta circunstacia se puede quemar el cable de nitinol, ya que si circula corriente más de 1 segundo se calienta y pierde sus propiedes cuando se sobrepasa 1.5 veces el tiempo necesario para calentarse.. El Esquema del Circuito Tal como puedes ver en el circuito de encima utilizamos un regulador de tensión integrado. Así nos aseguramos una tensión estable y de paso se protege el puerto. Como alimentador externo se puede utilizar cualquiera que permita suministrar entre 6Vdc y 24Vdc. El 7805 es un regulador estandar. Se ha de tener en cuenta que los dos condesadores , 470uF y 0.1uF, han de estar cerca del regulador como medida de protección y evitar que se estropee. Este diseño se repite 8 veces : para controlar cada pata y 2 para los movimientos de las patas de arriba y abajo. Se utilizaran transistores NPN del tipo Darlington poruqe el robot consume bastante corriente. El BC875 o el BC618 pueden comuntar unos 500mA. La resistencia de 47K conectada a la entrada nos asegura que cuando esta quede abiertaon (por ejemplo con el ordenador desconectado) equivalga a "off". Los niveles de tensión del puerto paralelo son : 4 V para el estado "on" y por debajo de 1V para el estado "off". El transistor trabajoa en modo interruptor. Las resitencias de 15 Ohm limitan la corriente y protege a las patas del robot y al transistor. Los LEDs nos muestran el estado, ya sea on o off. Debajo teneis el circuito. Para poder ver bien los LEDs rojos (los que estan en paralelo con los actuadores del robot) se utilizan del tipo transparente. Las resistencias de 15 Ohms las hemos fabricado con rollos de cable de constantan. Esto ha sido asi, porque teniamos mucho y no resultaba más barato que comprarlas hechas. El Puerto Paralelo El puerto paralelo esta diseñado para servir como puerto de salida de datos del Pc y para conectar la impresora. Algunos puertos permiten la transmisión bidireccional de datos. En esta aplicación solo lo utilizaremos para enviar datos. En un posterior artículo se añadiran sensores al robot y utilizaremos el modo de entrada de datos de este puerto. El conector de este puerto tiene 25 pins de lso cuales se utilizan 9. Ocho lineas corresponden a datos y la otra es masa. Acontinuación presentamos la asignación de pines: 25 PIN D-SUB Hembra al PC. Pin Name Dir Description 1 STROBE [-->] Strobe 2 D0 [-->] Data Bit 0 3 D1 [-->] Data Bit 1 4 D2 [-->] Data Bit 2 5 D3 [-->] Data Bit 3 6 D4 [-->] Data Bit 4 7 D5 [-->] Data Bit 5 8 D6 [-->] Data Bit 6 9 D7 [-->] Data Bit 7 10 ACK [<--] Acknowledge 11 BUSY [<--] Busy 12 PE [<--] Paper End 13 SEL [<--] Select 14 AUTOFD [-->] Autofeed 15 ERROR [<--] Error 16 INIT [-->] Initialize 17 SELIN [-->] Select In 18 GND [---] Signal Ground 19 GND [---] Signal Ground 20 GND [---] Signal Ground 21 GND [---] Signal Ground 22 GND [---] Signal Ground 23 GND [---] Signal Ground 24 GND [---] Signal Ground 25 GND [---] Signal Ground El driver se conecta al pin 18 (GND) y a los pines de datos(2-9). La forma de trabajar del puerto paralelo es enviando el dato a la linea de salida de datos y entonces activa la señal STROBE a 1 para indicarle a la impresora que el dato es valido. En nuestro caso no se necesita la señal STROBE. El Programa Paquetes Extraelo con la siguiente opcióntar zxvf pprobi*.tar.gz. Se incluyen las instrucciones de instalación. El progama esta excrito en C. Los movimientos del robot se controlan con las flechas : delante, atras, a la derecha ,a la izquierda y atras . La barra espaciadora para el robot. Con la tecla q o x se abandona el programa. Otra posibilidad de controlar el robot es usando las teclas h,j,k,l. El programa esta optimizado para el movimiento de las patas de mi robot.Debereis ajustar algunos parametros para el robot que vosotros construyais. Esto es debido a que los cables de nitinol no son iguales.Asi que debereis hayar experimentalmente los valores correctos para vuestro robot. Vigilar que no se sobrecaliente y que el de tiempo no sea suficiente para enfriarse. Si quieres ver el código fuente, aquí está El software usa el interface programable ppdev de la versión 2.4.x del Kernel (Necesitaras la versión 2.3.x o 2.4.x del Kernel. No trabajará con versiones anteriores del kernels). Este interface permite programar de manera sencilla el port paralelo. En versiones anteriores del kernel se debia escribir un nuevo modulo o utilizar un metodo que tan solo permitia al root ejecutar el programa. El interface ppdev usa el dispositivo /dev/parport0 . Configurando los provilegios se controla quienes pueden usar el puerto paralelo. Se compilaran conjuntamente PARPORT y PPDEV, asi se obtiene un nuevo módulo del kernel. Y el fichero .config quedará : # # Soporte para el puerto paralelo # CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PARPORT_PC_FIFO=y # CONFIG_PARPORT_PC_SUPERIO no activo # CONFIG_PARPORT_AMIGA no activo # CONFIG_PARPORT_MFC3 no activo # CONFIG_PARPORT_ATARI no activo # CONFIG_PARPORT_SUNBPP no activo CONFIG_PARPORT_OTHER=y CONFIG_PARPORT_1284=y # # Caracteres # CONFIG_PPDEV=m # Lo primero que hace el programa es inicializar el port con el comanto ioctl de PPCLAIM. Entonces activa el terminal en modo no canonico. De esta manera se controla desde el teclado sin necesidad de pulsar siempre el enter despues de cada dato. El programa entra en un bucle esperando las ordenes para que el robot ande. Si no recibe ninguna orden el programa mantiene la ultima orden ( por ejemplo : manteniendo el robot andado recto). El comando ioctl(fd, PPWDATA, &bitpat); se utilixa para activar las salidas a un valor determinado. Los pines del robot se conctan de la siguiente manera al driver: Legs: A1------=------B1 = = B2------=------A2 = = A3------=------B3 Pin to set A-legs to ground= AD Pin to set B-legs to ground= BD Correspondencias entre la salida de datos y el driver: data 0 A1 data 1 A2 data 2 A3 data 3 AD data 4 B1 data 5 B2 data 6 B3 data 7 BD El Data 0 es la salida del circuito driver que se conecta al pin 2 (D0) dek puerto paralelo. Aqui esta , nuestro robot andante: En esta animacion se mueve un poco rapido. En realidad su movimiento es más lento debido a al tiempo de enfriamiento necesario que se necesita para que el nitinol vuelva a su posición original. Espero les haya gustado, si se animan al reto, no dejen de enviarme sus videos para publicarlos en este post Aquí les dejo una guía de Robótica controlada por ordenadores que me ha resultado muy muy útil.
Datos archivados del Taringa! original
295puntos
1,534visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
12visitas
0comentarios
Dar puntos: