jump to navigation

Diseño de mi Robot con Linux 7 octubre, 2008

Posted by ubanov in Electrónica, Informática-Linux, Robótica.
Tags: , ,
trackback

Siguiendo con la instalación de mi robotito con Linux (puedes ver todos los artículos que he escrito sobre este tema en: https://ubanov.wordpress.com/category/robotica/), en este artículo voy a dar una aproximación más al tema.

Voy a mostrar el esquema de conexionado de todo el hardware, voy a dar los primeros programas de gestión del robotito (versiones alfa, o incluso cosas sin acabar).

Al final después de dar unas cuantas vueltas al tema del equipo a utilizar, he decidido instalar una placa Epia VIA M10000. Esta placa la he elegido de entre las que tenía por casa muertas de risa de epia. En concreto las que he evaluado son las siguientes:

  • Epia 5000: esta fue la primera que había elegido, pero tiene poca “chicha”, tiene de todo y además el procesador no tiene ventilador (cosa que me atraía mucho), pero al tener poco procesador la descarté.
  • Epia M9000: también perdida por casa tenía una M9000, los problemas que tenía eran que no tiene la opción de que al arrancarse se encienda automáticamente y además no le funcionaba el scaling de velocidad de CPU.
  • Epia M10000, esta es la placa sobre la que voy a instalarlo (repito la tengo por casa, si tuviese que comprar una no compraría esta). Se enciende en cuando se enchufa y con el módulo longhaul tiene scaling de frequencias (admite poner la CPU a 532, 598, 665, 731, 798, 864, 931 y 997Mhz).

El ordenador al final va con una memoria Flash de 2GB (como sistema de almacenamiento), 512MB de RAM (lo que tenía la placa), procesador 1Ghz y va en una caja que lleva una fuente de alimentación de las que va sin ventiladores, aunque la caja y el procesador si lleva ventiladores). El equipo una vez montado tiene la siguiente pinta:

Este ordenador se va a conectar con una placa de control de los servos y del resto de la periferia. El esquema de conexión de todo el sistema es más o menos el siguiente:

Lo que es la fuente de alimentación y el ordenador es la caja que he puesto en la foto anterior. Esta caja estará conectada a la batería, a dispositivos que se conecten directamente al ordenador (camara USB, un micrófono, un altavoz amplificado…) y por otro lado estará conectado a lo que he llamado “Placa control periferia”.

Esta última placa estará conectada al ordenador por medio de un cable RS-232. Por otra parte esta placa se conectará al resto de periféricos para la gestión del robot (servos, motores, sensores…). Esta placa llevará un microcontrolador (o bien un PIC 16F876 o un PIC 16F877, dependiendo del número de dispositivos a controlar), que ejecutará las órdenes que reciba desde el ordenador por el puerto serie, será un programa muy tonto y la lógica se dejará en el ordenador.

El esquema del circuito de control de periferia es el siguiente:

Por no hacer la placa, en un primer momento yo voy a aprovechar la placa de control del PICBOT3 que tengo, que tiene más o menos el esquema anterior, yo si la hiciese nueva pondría otros conectores en lugar de los que lleva, pero por ahora sirve.

El protocolo que se va a hablar entre el ordenador y la placa de gestión va a ser algo semejante al protocolo Modbus, pero simplificado.

Básicamente cualquier trama será de 1 a 16 caracteres, con las siguientes partes:

  • Byte 0: en nibble superior valor A y nibble inferior el tamaño del resto del paquete (0-15), esto no lo lleva modbus.
  • Byte 1: destinatario del mensaje, esto está pensado por si tuviesemos más de un dispositivo en el bus (por ejemplo si pusiesemos un bus RS-485), por ahora consideraremos siempre que la placa es el ordenador es el 1 (que no se usará) y que la placa es el 2 (vamos que todos los mensajes irán con destino 2)
  • Byte 2: número de función a ejecutar en la placa, inicialmente sólo se podrán ejecutar las funciones 6 (escribir en un registro de 16bits), 4 (leer varios registros de 16bits) y 8 (una función de gestión de contadores del puerto serie)…
  • Bytes 3-n: parte variable de datos que necesita cada una de las funciones (específica de cada función), como máximo podrán ser 11 bytes.
  • Dos Bytes del final: irá un CRC de 16 bits (creo que es el CRC-16 IBM), en el primer byte irá la parte alta del mismo y en el inferior la parte baja.

Las comunicaciones entre el ordenador y la placa irán a 19200, 8, n, 1 (tampoco es lo mismo que el modbus que lleva paridad).

La caja al final va a estar construida con madera contrachapada de 10mm. La caja medirá 30x30x26 (ancho x largo x alto). La caja se podrá abrir por detrás con tornillos.

En la parte de abajo de la caja irá la batería, irá tumbada y entonces ocupará (15x10x6), irá en la parte de delante de la caja. Si en un futuro se necesita entraría una segunda batería en la parte de atrás (de las mismas medidas). Debajo también irán los motores de las ruedas.

Encima irá una “bandeja” de madera y sobre esta el ordenador, con la placa de gestión del robot (la que he dibujado antes del pic).

Dado que es un coñazo el subir aquí ficheros fuentes, he solicitado que me abran un proyecto en sourceforge para dejar los fuentes de este proyecto. Por ahora no tengo nada puesto, pero lo iré haciendo. El link es http://robolin.sourceforge.net/

Me gustaría oír feed back sobre el tema del robot, si hay alguien que quiera hacer lo mismo que yo, que le pueda interesar, o que no entiende nada por que me expreso fatal, o lo que sea… espero vuestros comentarios.

Comentarios»

1. ubanov - 19 noviembre, 2008

Estoy empezando a pensar que el diseño de caja que he hecho es demasiado pesado y quizás tenga que hacer algo más sencillo para empezar, como puede ser http://www.robexarena.com

2. Megavoltio - 3 diciembre, 2008

Hola,

he mirado un poco estos articulos sobre el robot que te estas montando (¡a mi me gustaria uno que pase la aspiradora por toda la casa!). Me parece muy interesante, aunque al igual que tu creo que igual va un poco pasado de peso. Luego, lo de los motores y tal en esa caja de madera, mas la bateria… Desde luego tiene complejidad

Si se podría usar una de esos chasis de placas epia simultaneamente de chasis del robot estaria muy bien. Claro que tendrias que meter la bateria en algun lugar (¿El hueco de la fuente de alimentación quiza?)

Para componentes para el robot porque no los Mindstrom de lego. De ahi igual se pueden utilizar los sensores, captadores, servos, etc. (igual hasta la bateria). Mira en lego:

http://shop.lego.com/ByTheme/Leaf.aspx?cn=17&d=70&CMP=KAC-GOOGEU&HQS=lego+mindstorms

Megavoltio

ubanov - 9 diciembre, 2008

Megavoltio: Mira el siguiente link: http://perso.wanadoo.es/carabaza/descr_Escobator.htm es eso que quieres hacer. Además comercialmente ese robot “aspiradora” ya existe….


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: