Como parte de nuestro interés por colaborar con el desarrollo de la robótica en nuestro país, Panama Hitek pondrá este espacio a disposición de docentes y estudiantes entusiastas de la robótica y tratará de contribuir con este movimiento a través e la publicación de artículos y tutoriales sobre este tema. Sobre esta iniciativa ya hemos escrito un artículo dando a conocer los motivos por los cuales nos hemos propuesto participar de este movimiento.
En esta ocasión compartiremos con ustedes los conocimientos que hemos adquirido sobre el módulo ROBO TX Controller de la marca Fischertechnik. Hemos hecho un review de los componentes de hardware que conforman este módulo, lo cual procederemos a compartir en esta entrega. En futuros aportes esperamos compartir con ustedes el review del software para la programación del hardware.
Acerca del fabricante
El Robo Tx Controller forma parte de la gama de productos de la empresa Fischertechnik, con sede en Alemania, donde son una de las empresas más importantes en el mercado de construcción de juguetes. Sus productos se encuentran en el mercado desde 1964.
Los juguetes que fabrican han sido diseñados para la enseñanza de máquinas simples, motores, mecanismos y robótica en general. Los juguetes fabricados para la interacción con computadoras forma parte de su línea de producción desde la década de los 80, donde lanzaron al mercado una interfaz compatible con las computadoras Commodore 64, la más alta tecnología de la época.
Actualmente la empresa se encuentra en su quinta generación de interfaces de computadora, a última siendo lanzada durante la Navidad del año 2009.
El módulo ROBO TX Controller
El Robo TX Controller es el corazón de muchos de los kits de legos que distribuye Fischertechnik.A continuación procederemos a describir las características físicas del módulo.
-
Dimensiones
Se trata de un módulo de forma cuadrada, de 9x9x15 centímetros cubicos. Bastante compacto.
-
Características físicas
Mientras estudiaba las características del RoboTX Controller, algo llamó poderosamente mi atención: esta plataforma está basada en un procesador ARM9, específicamente el Atmel AT91SAM9260, con un reloj de 200 Mhz.
Atmel es la misma marca en la que está basado Arduino. Sin embargo, cabe destacar que Arduino es una plataforma basada en un microcontrolador y el RoboTX Controller está basada en un procesador. Además, las diferencias en la velocidad del reloj (Arduino en 16MHz vs RoboTX en 200MHz) hace un poco difícil la comparación entre ambas plataformas. No podemos pensar en el RoboTX Controller como un Arduino, a pesar de que sí podemos hacer, prácticamente, las mismas cosas con una plataforma u otra.
El Diagrama 2 nos muestra los principales puertos de comunicación, así como las entradas de voltaje para la alimentación del controlador.
- Entrada de voltaje de alimentación: el RoboTX Controller se alimenta con 9 voltios en corriente directa, los cuales los proporciona una batería incluida en el kit de Fischertechnik. Estas baterías son de 8.4 voltios, lo cual está un poco por debajo de los 9 voltios que requiere el controlador. Sin embargo, este voltaje es aceptado y la pérdida de esos 0.6 voltios no representa mayores inconvenientes. La conexión se da a través de los cables con los que cuenta el kit.
El controlador también puede ser alimentado a través de un adaptador AC/DC de 9 voltios a través de la conexión de 9V-IN que se encuentra en la esquina superior derecha. En este caso se necesita que el adaptador posea una conexión hembra tipo jack, lo cual no viene incluido en el kit. - Salida de voltaje de 9VDC: Disponible para la conexión de cualquier carga de 9 voltios. Podemos considerar que esta salida está en paralelo con la entrada de voltaje de alimentación, por lo que si conectamos algo entre estos terminales estaríamos, prácticamente, conectándolo a la batería.
- Interruptor On/Off: es el que enciende o apaga el controlador.
- Puerto USB – Mini: Se utiliza para la comunicación del controlador con la computadora. Es el que al usuario programar el controlador a través del software diseñado para este propósito.
- Puerto para cámara: una de las características más llamativas es el puerto para la cámara en la parte central inferior del controlador. Es probable que esto haya sido agregado al controlador debido a que es una de las características nativas del procesador. Este puerto se encuentra conectado directamente a las entradas de sensor de imágenes del procesador.
Sin embargo, a pesar que existe el puerto para la cámara, no existen las librerías ni el soporte de software para su uso. Probablemente el puerto fue incluido para usos futuros con software de reconocimiento de imágenes. Hasta ahora, esto no se ha dado.
- Puertos RS-485 (EXT 1): estos puertos pueden ser utilizados para la comunicación con otros dispositivos, sea otro RoboTX Controller o bien, algún dispositivo basado en un microcontrolador, como un Arduino o un Raspberry. Utilizan el protocolo RS485.
Los pines NC no poseen funcionalidad. No se conectan. El protocolo RS485 necesita que le dediquemos un post sobre este tema y sobre cómo podríamos comunicar el RoboTX Controller con otros dispositivos.
- Puertos I2C/RS-485 (EXT 2): este puerto incluye conectividad para I2C (I-cuadrado-C) el cual es un bus de comunicación en serie. Es mundialmente utilizado por sensores, controladores y periféricos en general para comunicaciones entre sí, lo cual hace posible que el RoboTX Controller pueda utilizar una vasta cantidad de dispositivos de hardware que le permitirían expandir su capacidad hasta niveles mucho más allá de un simple kit de robótica basada en bloques de lego.
Sin embargo, el I2C es solamente un bus de comunicación. Cada sensor o cualquier dispositivo que se conecte a este puerto tiene su propia metodología de funcionamiento, lo que hace que la vasta mayoría de dispositivos sean muy difíciles de programar desde el RoboTx Controller, ya que todos y cada uno de ellos obedece algoritmos distintos para la transmisión y recepción de datos. Es aquí donde resultaría provechoso crear una interfaz Arduino/Fischertechnik donde el Arduino sería el encargado de comunicarse con los dispositivos que deseemos utilizar (la comunidad de Arduino es mucho más amplia que la de Fischertechnik, con mucho más ejemplos y documentación) y el RoboTx Controller simplemente recibiría lo que el Arduino le hace llegar.
Todo lo que se requiere para crear una interfaz Arduino/RoboTX Controller (de ahora en adelante, RTC), será explicado con lujos de detalles en nuestros próximos aportes. Continuemos con la descripción del RTC.
-
Entradas y Salidas Analógicas y Digitales
Como preámbulo a esta serie de artículos sobre la plataforma Fischertechnik consideramos justo y necesario dedicarte un artículo completo a explicar el concepto de entradas y salidas analógicas y digitales:
Dicho documento explica en detalle, con ejemplos, todo lo que se necesita saber sobre una entrada y una salida, sea analógica y digital. Es altamente recomendable para todas aquellas personas que no posean mayores conocimientos sobre electrónica y programación de microcontroladores.
Volviendo al RTC, procedemos a señalar los puertos de entrada y salida:
- Entradas analógicas/digitales: Las entradas enmarcadas en color amarillo pueden ser configuradas como analógicas o digitales. Al ser utilizado como entadas digitales, se pueden considerar dos modos de funcionamiento:
Modo 10 voltios: En esta configuración se pueden leer voltajes entre 0 y 9 voltios (OJO: 9 voltios, no 10) en corriente directa. Se utiliza para ello un convertidor analógico-digital de 10 bits.
Modo 5kΩ: En esta configuración se hace lectura analógica de la caída de voltaje entre una resistencia fija (interna en el RTC) y una resistencia variable. Esto es utilizado para la lectura de sensores del tipo resistivos. Al final se trata de una lectura analógica que en vez de hacer lectura de un voltaje se hace la conversión a Ohmios, lo cual es una unidad de resistividad.
El utilizar un modo u otro requiere que lo que se va a medir, sea un voltaje o una resistencia se conecte entre una de las entradas analógicas/digitales y tierra. En las entradas analógicas/digitales mostradas en el diagrama 6 se muestra que cada entrada (denotada por el prefijo I seguido de un número entre 1 y 8) posee a su lado una conexión a tierra. Esta conexión la reconocemos al identificar la línea que une todas las entradas.La resolución de 10 bits, ante un voltaje máximo de 9 voltios hace que las variaciones mínimas de voltaje que se puedan registrar es de 8.78 milivoltios. Este concepto ya lo explicamos en el post sobre Entradas y Salidas Analógicas y Digitales.
Estas conexiones pueden ser utilizadas para hacer lectura de sensores analógicos. También es posible utilizar instrumentos como potenciómetros y fotoresistencias para lograr diferentes propósitos.
Las mismas entradas analógicas pueden ser configuradas como entradas digitales. De esta forma, podemos leer 2 posibles estados: 1 y 0, donde el 1 lógico será un estado que se registra cuando el voltaje aplicado a cualquiera de las entradas supere un nivel previamente establecido; cuando el voltaje caiga por debajo de dicho nivel, se considera un 0 lógico. - Contadores digitales: los contadores digitales son los únicos puertos de entada digitales «verdaderos». Es decir, funcionan como puertos digitales puros, donde solo reconocen 2 estados lógicos, 1 y 0. Se llaman contadores porque están asociados a variables cuyo valor aumenta cada vez que se da el flip entre 0 y 1. Si conectamos a una de estas entradas un dispositivo que encienda y apague una salida de voltaje con la siguiente secuencia: 01010101010, el valor de la variable asociada al puerto aumentará su valor en 5 unidades, ya que se cambió de 0 a 1 cinco veces. Esto se utiliza para los llamados encoders, los cuales son dispositivos que registran el número de vueltas de un motor. Esto permite variar la velocidad y la cantidad de vueltas que da el motor.
- Salidas Digitales (PWM): las salidas digitales son puertos que pueden entregar un voltaje máximo (9 voltios) y una corriente máxima (250 mA). Debemos considerar que un Arduino, por ejemplo, puede entregar solamente 5 voltios y 40 mA en cualquiera de sus salidas digitales. Arduino es un microntrolador. El RoboTX Controller posee más capacidad de entrega de potencia debido a que ha sido diseñado para su uso con motores. Entre las 8 salidas del controlador, se puede entregar 2 A, lo cual es mucha corriente. Un motor que consuma 250 mA es considerado un motor «grande», si tomamos en cuenta que los dispositivos con los que estaremos trabajando son legos.
La capacidad aumentada de las salidas digitales de este controlador se debe a la implementación de un arreglo de MOSFETs, los cuales son los encargados de manejar las corrientes de 250 mA. El microprocesador por sí solo no es capaz de entregar 2 A. Con los MOSFET, esto ya no es un problema.
Podemos observar que hay 4 marcas llamadas M1, M2, M3 y M4. Estos son indicadores para la utilización de un Puente H, el cual permite invertir el sentido de giro de un motor, así como su velocidad. Estos conceptos ya los hemos explicado antes en este blog:– El puente H: Invirtiendo el sentido de giro de un motor con Arduino
– Puente H con control de velocidad por Arduino
PWM o modulación por ancho de pulsos (Pulse Width Modulation) es una técnica utilizada para modificar la cantidad de energía que se entrega a una carga. Permite, entre otras cosas, variar la velocidad de un motor de corriente directa o modificar la intensidad luminosa de un LED. Para conocer más detalles sobre este concepto, recomiendo el siguiente post:
– Arduino PWM: Modulación por ancho de pulsos
Los contenidos que hemos recomendado para ustedes contienen conceptos importantes para el entendimiento de los fenómenos que ocurren con el controlador y el potencial que posee este dispositivo para lograr tareas avanzadas.
Los contenidos presentados en este post son simplemente los conceptos básicos que se necesitan conocer sobre el RoboTX Controller, no desde el punto de vista de robótica sino como un dispositivo electrónico, un controlador como tal. Antes de intentar obtener resultados es primordial conocer los conceptos que rigen el funcionamiento de este dispositivo. En los próximos aportes estaremos conociendo un poco más de la electrónica detrás del RTC y la programación del mismo.
Cualquier duda, comentario o sugerencia es bienvenido a través de nuestra sección de comentarios. Saludos.