Decidiendo la tecnología del controlador

En esta segunda entrega veremos qué materiales necesitamos para poder dar forma a nuestras funcionalidades. 

Si recordamos el listado de funcionalidades de entrada / salida que definíamos en el anterior artículo, Definición de las necesidades, nos vendrá a la memoria el comentario que os hice a cerca de las placas de controlador de juegos que se venden actualmente en el mercado, y que dan muchísima versatilidad: no nos sirve

 

Su coste, extremadamente bajo para lo que ofrece: 9.99€ en una archiconocida tienda online, lo hace especialmente atractivo para nuestro proyecto. Pero me reitero, no nos sirve. El motivo, a simple vista, no es obvio, pero a continuación os daré mas detalles a cerca del mismo. Por ahora pensad en esto, esta tarjetita ofrece un número muy limitado de entradas / salidas (si las tiene), y nosotros hemos definido mas de… puffff!!! o mas!!! posibles salidas (accionamientos)… Además, también quiero que tenga un buen número de entradas (indicadores)…

¿Qué existe en el mercado actualmente que nos dé soporte a tantas entradas y salidas como queramos? (siempre con un límite, claro!).

Esta es la parte que mas me gusta. Porque soy amante de este mundillo.

La gran pregunta es:

¿Cómo controlamos las salidas (botones, pulsadores…) y damos soporte a las entradas (señales luminosas, por ejemplo)?

La respuesta es sencilla:

Necesitamos una placa que controle de forma sencilla todo el sistema de entradas y salidas, y dé respuesta a nuestras necesidades

Hay varios sistemas que nos ofrecen estas funcionalidades.

En seguida lo veremos…

 

Sistemas de control programables

Los sistemas de control programables, o también llamados placas de microcontroladores, son unas placas electrónicas, de propósito general, que ofrecen una serie de puertos de entrada y de salida, así como la posibilidad de computación de datos, toma de decisiones y, sobre todo, programables. Estas placas llevan un cerebro llamado microcontrolador, o popularmente conocido como procesador (aunque a mucha menor escala que lo que monta un PC de hoy en día).

Desde hace unos años estas placas están muy de moda. Aparecieron para quedarse. Daban soporte a todo lo que he comentado anteriormente, y además lo hacían a un precio extremadamente bajo… Con la aparición de las nuevas tecnologías y la bajada de precios, se convirtieron en el objetivo profesional para algunos, y como un hobby de increíbles prestaciones, para otros…

En el mundo del microcontrolador, y mas en concreto, en el mundo de las placas de microcontroladores, existen diferentes marcas o fabricantes. De hecho, son en su mayoría integradores mas que fabricantes, ya que lo que han conseguido es diseñar una placa que integra una serie de componentes, entre ellos el microcontrolador, rodeados de una gran lógica electrónica que trabajan en consonancia para conseguir lo que hasta hace pocos años era impensable: tener run sistema programable, de bajo coste y de bajo consumo, en una sola placa.

Como digo, existen diferentes integradores que lo han logrado, pero yo, como fan y como reconocedor de su gran mérito, sólo me centraré en uno de ellos…

Si… Arduino.

Arduino es el sistema microcontrolador que revolucionó el mundo de los automatismos hace unos cuantos años. Un sistema barato, basado en la idea del código abirerto (en este caso, hardware libre) y que ofrece todo lo que necesitamos.

Existen diferentes modelos del integrador oficial, y muchos mas de otros integradores que se han basado en su tecnología para crear sus propios sistemas.

Este es el Arduino UNO, desde hace mucho tiempo, el modelo más extendido y conocido de Arduino:

Es, quizá, el modelo de Arduino mas sencillo del mercado. No por ello el peor, pero para nuestro propósito, no acaba de servirnos. Vamos por qué…

Nuestras necesidades

Ya tenemos claro que necesitamos un microcontrolador, y hemos decidido que, por sencillez y por fama, usaremos “alguna” de las pacas que ofrece Arduino.

Veamos qué es lo que nos interesa que el sistema controlador nos ofrezca:

  • 32 entradas (estimado)
  • 16 salidas (estimado)
  • conexión sencilla con el PC

El tema de las entradas / salidas está cubierto por cualquiera de estos dispositivos. No importa el número de entradas, como veremos más adelante, eso no es problema (aunque el modelo que seleccionemos no tenga tantas como necesitamos!).

Lo que mas nos interesa conseguir para nuestra botonera es la “comodidad de conexión” a nuestro PC. Anteriormente ya decidimos que queríamos que la conexión fuera por USB…

Cuando compramos un dispositivo USB, lo que deseamos es poder “conectar y funcionar” (plug & play). Eso es lo importante de los USB, y de lo mucho que nos han solucionado la vida, que en la mayoría de los casos Windows (o Linux) ya no necesita que instalemos drivers previamente para usar un dispositivo USB. El sistema operativo ya los lleva internamente (y los instala al enchufarlo por primera vez) o bien, una vez conectado, es el propio sistema operativo el que intenta conectarse a internet e instalarlo de forma “transparente” para nosotros.

Eso sería genial, ¿verdad? 😉

Pues bien, podemos conseguirlo de forma sencilla: conectado un nuevo teclado / game pad al PC, que nos mapee todas las teclas o botones que queremos usar con nuestra botonera.

A este sistema se le llama HID (Human Interface Device), y todos los sistemas operativos actuales lo reconocen. Si conectas un teclado, enseguida verás que te lo deja utilizar. Si conectas un game pad, que no sea demasiado complejo, pasará lo mismo. El sistema operativo detecta un dispositivo HID y lo configura automáticamente. Y ya podemos usarlo sin mas problemas.

Pues bien, lo que queremos es que nuestro controlador emule un HID, un teclado, en concreto, que es lo mas sencillo de implementar. No es ni más ni menos que lo mismo que hace la plaquita de controles china que comentábamos en mi primer artículo…

 

Conclusiones

Ya hemos visto que la definición del cerebro de nuestra botonera queda perfectamente reflejado con las funcionalidades que una placa de microcontrolador nos ofrece. También hemos definido que queremos que nuestro dispositivo sea identificado por un sistema HID por el sistema operatico, para que la instalación sea directa y sencilla.

Finalmente, solo nos queda buscar el dispositivo que mejor se adecúe a nuestras necesidades.

Las placas Arduino de referencia están basadas en el chipset Atmega328, como el UNO, que es un potente chip que ofrece una gran versatilidad y bajo consumo, como ya hemos dicho. A parte, la placa incorpora un controlador serie a USB, de modo que es fácil conectarlo a cualquier sistema operativo, y que lo reconozca de forma sencilla. Sin embargo, este chip sólo soporta comunicación serie. Esta comunicación sólo sirve para porgramarlo y enviar y recibir datos de forma serie (esto sí nos interesa!). Pero no nos sirve.

Si seguimos buscando un poco, vemos que quién implementa la interfaz HID nativa es el chipset ATmega32U4, el cuál lleva doble controladora de USB, y permite tanto la comunicación serie como la interfaz HID.

Según la referencia de Arduino, sus dispositivos que montan un ATmega32U4 son los DUE y Zero, que están basados en Leonardo: https://www.arduino.cc/en/Reference/HID

Como vemos, es una placa bastante voluminosa, y por qué no decirlo, al final es cara… 

Ya dijimos en su momento que Arduino trabajaba con código libre, y como tal, hay otros muchos integradores que crean sus propias placas. Si buscamos, uno de los mejores y mas conocidos integradores de Arduino es Sparkfun.

Este integrador tiene el Arduino Pro Micro, que incorpora el chip ATmega32U4: https://www.sparkfun.com/products/12640

Esta versión es mucho mas pequeña, y barata que la original. Lo de original, es por decir algo, porque hay que reconocerle a Arduino su diseño, pero los otros integradores han creado iguales o mejores versiones que los propios amigos de Arduino… Recordemos que son “de código abierto”, y como tal los esquemas están publicados y pueden ser usados en cualquier proyecto externo…

Qué nos ofrece esta placa?

  • 9 canales de 10-bit ADC
  • 5 pins PWM
  • 12 canales IO, así como conexionse serie Rx y Tx
  • Funciona a 16MHz y 5V
  • Acepta hasta 12V VCC

Vamos, un pequeño cañón al alcance de casi todos…

Y si seguimos buscando, aún lo encontraremos mas barato, de un fabricante chino cualquiera…

Este genérico lo he conseguido yo por eBay, por 6.45€, puesto en casa (desde España).

 

En definitiva, nuestro dispositivo controlador será un Arduino Pro Micro, trabajando en modo serial y HID.

 

Gracias por leerme y nos vemos en la próxima entregra!


Navegación:

Buttonbox para simuladores de conducción

Share Button