Modelismo Ferroviario con Arduino

Desde la Associació Ferroviària de Godella queremos estar a la última en tecnologías de control de trenes y adaptación del modelismo ferroviario a las últimas tendencias tanto en decoración como en electrónica.

Por ello, queremos comenzar con este artículo una serie de artículos dedicados a la plataforma Hardware Libre Arduino para que juntos, aprendamos a utilizar estos versátiles microcontroladores en nuestras actividades de modelismo ferroviario.

¿Qué es Arduino?

Según la Wikipedia, Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares.

El hardware consiste en una placa con un microcontrolador Atmel AVRy puertos de entrada/salida. Los microcontroladores más usados son el Atmega168Atmega328Atmega1280ATmega8 por su sencillez y bajo coste que permiten el desarrollo de múltiples diseños. Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programación Processing/Wiring y el cargador de arranque (boot loader) que corre en la placa.

Al ser open-hardware, tanto su diseño como su distribución es libre. Es decir, puede utilizarse libremente para el desarrollo de cualquier tipo de proyecto sin haber adquirido ninguna licencia.

Modelos de Arduino

Desde el inicio del proyecto Arduino en 2005 se han creado muchas versiones del microcontrolador Arduino y todas tienen un diseño específico para una aplicación  aunque nosotros presentaremos sólo tres versiones que creemos que son las más adecuadas por tamaño, prestaciones y coste, para el modelista.

Como no podría ser de otra manera, recomendamos adquirir las placas de la tienda oficial de Arduino en Europa http://store.arduino.cc/eu/index.php , aunque también podemos adquirirlas a través de Ebay a vendedores de China a unos precios mucho más asequibles (sobre todo para los modelistas que estamos en crisis de trabajo y disponemos de menos dinero para la afición).

Arduino UNO

Es la versión más popular y barata de Arduino. El Arduino UNO está basado en el microcontrolador ATmega328. Posee 14 entradas/salidas (6 de ellas pueden utilizarse para salidas de PMW, 6 entradas analógicas) un reloj de 16 MHz, conexión USB y conector Jack de alimentación de 9V.  Su precio ronda los 18-25€ dependiendo del distribuidor donde lo compremos, por tanto es el más asequible para comenzar con la plataforma Arduino.

Arduino UNO
Arduino UNO

ARDUINO Mega 2560

El Arduino Mega la versión grande de la plataforma Arduino y la que más entradas/salidas nos dará para jugar en nuestras maquetas. Está basada en el ATmega2560. Tiene 54 pines digitales de I/O (14 de los cuales pueden ser usados como salidas PWM), 16 entradas analógicas, 4 UARTs (puertos serie en hardware), un reloj de 16MHz, conexión USB, y un conector jack para conexión a 9V.  Su precio es algo más elevado (sobre los 35€/40€) pero nos permitirá ahorrarnos la compra de otro Arduino UNO si queremos hacer varias cosas (que no requieren de mucha sincronización) con una única placa.

Arduino MEGA 2560
Arduino MEGA 2560

 

ARDUINO Nano

Esta placa Arduino es una de las más pequeñas de la familia Arduino, cuyo tamaño nos permitiría ponerla en cualquier lugar de nuestra maqueta – e incluso dentro de algún tren de escala HO si hiciera falta – . Tiene casi todas las características del Arduino UNO, pero prescinde del conector Jack para alimentación de 9V.  Esta placa tiene un precio sobre los 15€.

 

Shields de Arduino útiles en Modelismo Ferroviario

Después de una pequeña presentación de las diferentes placas Arduino que pueden serle de mayor utilidad a un modelista, pasamos a presentar algunas shields útiles también para que el modelista pueda comenzar a utilizar la plataforma Arduino de una manera muy rápida y sin necesidad de soldar o de muchos conocimientos de electrónica.

Shields de Arduino
Shields de Arduino

Una shield es una placa de circuito impreso (PCB) llena de componentes electrónicos y que tiene un fin (controlar motores, controlar servos, multiplexar las salidas de un Arduino … ) que encaja directamente en la interfaz de pines de una placa Arduino o compatible, por tanto no tenemos que preocuparnos por nada más que de programarla.

Protoboard

Esta Shield nos será muy útiles para montar prototipos de antiguos circuitos de control de trenes o de modelismo ferroviario, de esos que encontramos por internet en lugares míticos como la página de Paco Cañadas que podemos transladar a la plataforma Arduino para que cobren vida de nuevo y sigan siendo tan útiles como antes. Además nos permitirá probar diferentes circuitos electrónicos que podremos, cuyo funcionamiento podemos ir perfilando sobre esta placa. Podemos encontrar esta Shield a un precio de 15€ en la tienda oficial de Arduino .

Protoboard
Protoboard

De concebir un circuito electrónico especial para utilizar con Arduino para controlar nuestras maquetas, podría pasarse de esta placa de prototipado a realizar una shield propia y comercializarla, cosa muy interesante para los demás modelistas, pues compartir y crear son dos de los valores más importantes de la comunidad Arduino.

SENSOR SHIELD

Esta Shield nos será muy útil para conectar todos nuestros sensores a nuestro Arduino. Dispone de muchos ‘enchufes’ para conectores de 3 y 4 pines que nos permiten conectar nuestros servos y receptores infrarrojos o cualquier otra circuitería directamente al Arduino.

Arduino Sensor Shield
Arduino Sensor Shield

Podemos encontrarla a un precio 10.90€ en la tienda oficial de Arduino aunque podemos encontrar más versiones de ella con más conectores en otros tiendas online.

Motor Shield

Esta Shield es muy interesante pues dota a nuestro Arduino de control de motores, lo que equivale en nuestra afición a controlar el tren como si de un transformador se tratase.

Con una motor Shield podemos variar la tensión (de 0 a +12v generalmente) en uno o dos canales de control de motores, cuyo consumo pico (por canal) puede llegar a ser de 2000mA (suficiente para una composición pequeña sin muchas luces en interior de los coches o para maquetas sin pendientes) y además, podemos invertir digitalmente el sentido de la marcha, con lo que estamos haciendo que el control de nuestros trenes se traslade a nuestro Arduino y al PC.

La versión de la Motor Shield – que es la que ha utilizado nuestro socio Andrés – puede obtenerse a través de la siguiente dirección a un precio relativamente barato (18$ ~ 14€ al cambio). Esta placa dispone de todo lo necesario para conectarla al Arduino (encaja directamente y sin problemas sobre un Arduino UNO, Duemilanove o Mega), dispone de 13 salidas para controlar servos (con conector estándar de 4 pines, propio del sistema Grove de la casa Seeedstudio y permite invertir el sentido de la marcha de ambos motores digitalmente (algo muy importante, pues muchas shield sólo permiten hacer rodar motores en un sentido, debiendo cambiar los cables para que el motor ruede en sentido contrario).

Arduino Motor Shield
Arduino Motor Shield

La ventaja de utilizar esta placa sobre otras, es que permite la alimentación externa de la placa, en vez de utilizar el voltaje de +5V propio del Arduino, por tanto nos permite utilizar nuestros +12V en corriente continua (debemos entregarle unos +14V en c.c para compensar la caída de tensión a través de los diodos y transistores de la shield), así que es perfecta para llevar motores de 12V (nuestras locomotoras).

Por último, esta Shield nos permite conectar – usando los conectores para servos – potenciómetros variables (que venden también en la misma casa de China, bajo este enlace y que siendo un potenciómetro lineal de 10KOhm nos permite regular la velocidad del tren de una manera muy suave y progresiva (hasta en 255 pasos), conectándolo para ello a una de las entradas analógicas de nuestro Arduino a través de la Motor Shield y leyendo valores de 0 a 1024, que luego serán convertidos a un valor entre 0 y 255, que será el que escribamos en el puerto de salida de nuestra shield y por tanto a nuestra vía.

 

Relay Shield

La Relay Shield es Shield para Arduino que dispone de cuatro relés de 12V, que conectados a salidas digitales (a las que se les puede escribir un 0 o un 1), pueden hacer que el circuito se cierre o se abra, es decir, que fluya la tensión en una sección aislada de una vía y que el tren, por consiguiente, se ponga en marcha o pare.

Arduino Relay Shield
Arduino Relay Shield
Placa de 8 Relés
Placa de 8 Relés

Generalmente para un modelista con una gran maqueta puede ser poco eficiente tener una Relay Shield de sólo 4 relés, por ello desde aquí les recomendaríamos adquirir una de las múltiples versiones de una placa de control de 8 relés como la que puede verse en la imagen y que permitiría al modelista utilizando 8 salidas controlar hasta 8 secciones aisladas. Para esta placa de 8 relés no hace falta nada más que emitir un 1 en la salida conectada al relé que queramos conectar, de esta manera el circuito se conecta y el tren sale de su apartadero. Si además se necesitan muchas más salidas porque la maqueta tiene muchos más apartaderos o secciones aisladas, el modelista puede utilizar un Arduino MEGA 2560 – con mayor número de entradas y salidas – y dos o más bloques de 8 relés. Esta placa de 8 relés puede comprarse a un precio muy barato en éste enlace .

Por pocos euros (unos 60€ aproximadamente) podemos automatizar una maqueta o una estación oculta a través de PC o simplemente a nivel de Microcontrolador, con la ventaja que los relés ya vienen montados y soldados, y sólo hace falta conectarlos a sus respectivas entradas del Arduino haciendo así el mismo montaje en un tiempo récord y sin utilizar el soldador, que puede causar problemas a los más principiantes.

Music Shield

Por último la última Shield que presentamos y que consideramos imprescindbie para un modelista es aquella Shield que permite hacer ruido, o lo que es lo mismo, reproducir sonidos de ambiente o sonidos determinados respondiendo a diferentes eventos que pueden producirse en una maqueta (paso de un tren por una estación, paso de tren sobre detector de paso a nivel, alguien presiona un botón físico … ) .

Arduino Music Shield
Arduino Music Shield

Puede ser que el modelista piense que puede montar el mismo sistema con un antiguo MP3 o lector de CD y hacerlo manualmente él (el seleccionar los sonidos a reproducir), pero este sistema le garantizaría que tendría las manos libres para dedicarse a llevar y controlar el tren, además le permitiría reaccionar a eventos que ya se han explicado antes y preparar su maqueta para causar admiración.

Imagínese que, mediante una combinación de lector de etiquetas NFC su Arduino detecta el tren que está entrando en la estación y mediante el número de tren – asignado en la etiqueta NFC que porta la locomotora o automotor pegado en sus bajos – es identificado como ‘Talgo Miguel de Unamuno’ y su Arduino, que tiene (programadas ‘a fuego’) los números de trenes le dice a la music shield que lance el sonido que contiene la megafonía “Talgo Miguel de Unamuno destinos Irún, Bilbao y Salamanca con parada en Lleida Pirineus, Zaragoza Delicias, Castejón de Ebro … ” .  Al autor de este artículo le fascina mucho esa idea y piensa que con una combinación de Arduino Mega+Sensor Shield+Music Shield podría montar un ‘centro de sonidos dinámicos’ para su maqueta, que anunciara cada tren conforme éste entrara en la estación o que reprodujera aleatoriamente sonidos de animales, de personas o de campanas.

Sin desviarnos del tema, os proponemos utilizar la Music Shield diseñada y comercializada por SeeedStudio (el mismo fabricante chino que ha realiado la Motor Shield presentada anteriormente en éste artículo), que puede comprarse en este enlace al precio de 27.5$ y que sobresale en capacidades (poder usarla como reproductor de sonidos desde una tarjeta microSD, poder seleccionar el sonido mediante botones o poder incluso grabar sonidos a través de line IN (poco útil para nuestros propósitos) ).

Seguramente esta Shield será la que mayor satisfacción nos proporcione, pues nos permitirá simular el sonido del ferrocarril sin disponer de un caro sistema digital con decodificadores que no bajan de 100€.

Aplicaciones útiles de un Arduino en Modelismo Ferroviario:

Virtualmente podemos utilizar un Arduino para cualquier tarea electrónica de modelismo ferroviario, pero Arduino es predilecto para utilizarse en los siguientes casos:

  1. Control de trenes por PC:  Utilizando una shield controladora de motores que opere con tensión externa de 14 a 16 voltios en corriente continua. Tan sólo tendremos que sacar las conexiones para los motores a la vía y operar el tren desde nuestro PC con total comodidad.
  2. Control de secciones aisladas: La idea es utilizar una placa de relés externas al arduino, para – colocando un 1 en alguna de sus salidas – conectar el circuito de un relé, provocando que el tren ruede por el circuito afectado a dicha vía.
  3. Control de una placa giratoria: Podemos utilizar la placa controladora de motores para gestionar el giro de un motor paso a paso.
  4. Control de desvíos: También podemos controlar desvíos desde un Arduino, pero debido a la baja intensidad de corriente de sus salidas nos será imposible o muy complicado mover la bobina de un desvío, por ello deberemos recurrir a una combinación de chips tipo ULN2803 array de transistores  en configuración Darlington que combinando sus salidas en serie, pueden proporcionarnos la suficiente intensidad de salida para que el Arduino pueda escribir un 1 en una salida y hacer que un desvío cambie a vía desviada o a vía directa.
  5. Control de servos: Podemos controlar servos de una manera muy sencilla, incluyendo la librería Servo.h que viene con la distribución por defecto de Arduino y realizar el movimiento de servo con tres pins (VCC,GND,S) utilizando sólo una salida de nuestro Arduino, con la que le daremos órdenes al servo (múevete 30º, ahora muévete -150º … ).
  6. Control de iluminación de LEDs, bombillas, edificios o farolas:  El control de LEDs (y por tanto de la iluminación de nuestros edificios) puede hacerse de manera muy simple, basta con conectar a un cable (conectado desde un pin de salida marcado como Digital de un Arduino) a una resistencia, después la resistencia a un LED y este de vuelta al pin GND. Por tanto, podemos encender y apagar las luces de nuestros edificios simulando el tiempo del día o incluso podemos programarnos nosotros mismos una aplicación que – a través del puerto USB – envíe al Arduino órdenes de poner a HIGH o LOW alguna de las salidas que tengamos conectadas a los LEDs.
  7. Detección de trenes: Arduino es muy útil para detección de trenes, de hecho puede sustituir a un sistema complejo de cantones para una maqueta y permitir trasladar parte de la electrónica analógica a un sistema digital basado en un programa. Arduino puede leer valores de detectores infrarrojos (por ejemplo de una ‘barrera infrarroja’ que utiliza un led infrarrojos y detecta cuando la luz emitida por éste se refleja en algún objeto), detectores de trenes por consumo (se hace pasar una pequeña corriente a través de la bobina de un transformador y si esta genera diferencia de potencial medible entonces hemos detectado un tren en una sección de vía) o detección de trenes mediante un interruptor (cuando pasa el eje de un vagón o coche a través de una sección de carril aislada y entonces esta cierra un circuito que transmite una tensión analógica a una de las entradas del Arduino).
  8. Control DCC de trenes: Existen unas librerías escritas para utilizar el protocolo DCC con Arduino aunque de momento están muy verdes. La idea es escribir un generador e intérprete de comandos digitales basados en el protocolo DCC y enviar las órdenes a la vía de manera que las locomotoras respondan a ellas.
  9. Control de sonidos ambientales de nuestra maqueta: Arduino junto a la shield Music Shield, que mediante un slot para tarjeta MicroSD es capaz de leer sonidos en formato WAV o MP3  y reproducirlos haciéndose el control a través de la circuitería de esta Music Shield, por tanto seríamos capaces de programar nuestro Arduino para que responda a diferentes eventos (alguien pulsa un botón, algún tren pasa por el detector del paso a nivel) y una vez detectado el evento se reproduzca uno de los ficheros que tenemos en la tarjeta SD. Imaginaos que cada vez que un tren pasa por la estación y se detecta que el tren va a cierta velocidad nuestro Arduino reprodujera por los altavoces “Tren sin parada, tengan precaución de no cruzar las vías, utilicen los pasos inferiores para cambiar de andén…”
  10. Identificación del tren a través de NFC: Actualmente las etiquetas NFC son de reducido tamaño y las Shield lectoras de NFC han visto drásticamente su precio reducido, la idea es grabar una etiqueta NFC con un número de tren y pegarla bajo la locomotora, o en algún vagón o coche de la composición, la placa lectora NFC detectaría el número de tren grabado en la etiqueta y se lo pasaría al Arduino, que este realizaría alguna operación (por ejemplo emitir un sonido especial de la megafonía real del tren, poner una secuencia de desvíos para que el tren entre en un apartadero donde tiene parada … ).
  11. Control de nuestras maquetas a través de USB, Infrarrojos, Bluetooth, Ethernet o ZigBee: Todo lo que hemos visto anteriormente podemos ampliarlo para que se pueda controlar a través de USB utilizando el objeto Serial para comunicarnos desde nuestros programas en el PC con el Arduino, Infrarrojos para recibir órdenes desde un mando a distancia (útil si nuestra maqueta es de grandes dimensiones, como la que tiene la asociación de Corriente Continua/Digital o la de Escala O), Bluetooth para controlar el Arduino a través de nuestro teléfono móvil o tablet y una APP, Ethernet, para controlar nuestro Arduino a través de Internet, de un PC o de una red de ordenadores que permita a nuestros socios o amigos llevar cada una de las secciones de nuestra maqueta como si de un puesto de mando real se tratase, por último podemos usar redes bajo protocolo ZigBee, distribuyendo en varios Arduinos (lo más pequeños y con el más bajo consumo posible) las labores de detección de trenes, cambio de desvíos, secciones aisladas, … de manera totalmente inalámbrica, sin poner más cables en nuestra ya saturada de cables maqueta.

Esperemos que os haya gustado el artículo y que comentéis.  Aquellos modelistas que tengáis experiencias con la plataforma Arduino ¿podriáis compartirla con nosotros? Desde l’Associació Ferroviària de Godella deseamos desarrollar una comunidad de modelistas ferroviarios que utilizan Arduino en sus maquetas. ¡Cuantos más seamos antes habrá Shields para cambiar desvíos y Shields para cantones o sistemas digitales!

 

Andrés Ignacio Martínez Soto
Socio de la Associació Ferroviària de Godella