Mostrando entradas con la etiqueta DCC. Mostrar todas las entradas
Mostrando entradas con la etiqueta DCC. Mostrar todas las entradas

miércoles, 18 de diciembre de 2024

La maqueta de Infotronikblog

Muy Buenas Arduineros y Arduineras!!!

Hace ya un tiempo, cuando empecé a programar, descubrí uno de los programas que más alegrías me ha dado desde que me dedico a esto. La central DCC++...

Hoy traigo al blog lamaquetade.infotronikblog.com una web dedicada al modelismo ferroviario y a la central DCC creada con Arduino.

Aunque no solo esta dedicada a la electrónica sino que también podemos encontrar trucos para la decoración de maquetas como un aplicador de césped electroestático o software dedicado al modelismo ferroviario como Rocrail o JMRI

Aunque el mayor premio se lo llevan la librería para el control de trenes DCC llamada DCCpp LMD y el software para Android con el que controlar esta y otras centrales DCC llamado DCCpp Android Cab.

Veamos algo más sobre este software:

La librería DCCpp LMD


DCCpp LMD es una librería que incluye todo lo necesario para montar una central DCC (Digital Command control) desde las funciones básicas hasta tener pantalla, comunicación Bluetooth y Wifi.

Características principales:

  • Flexibilidad: Una central DCCpp LMD es altamente configurable, lo que permite adaptarla a las necesidades específicas de cada maqueta. Puedes personalizar la configuración de las locomotoras, los accesorios, sensores y los diferentes aspectos de las operaciones de tu trenes.
  • Escalabilidad: DCCpp LMD cuenta con una amplia variedad de módulos y accesorios disponibles, como módulos S88 para detectar la ocupación de vías, módulos de radiofrecuencia para control remoto y mucho más. Esto te permite ampliar las funcionalidades de tu maqueta según tus necesidades.
  • Autonomía: Aunque la comunicación serial es su base, la central DCCpp LMD puede operar de manera autónoma gracias a la adición de una pantalla OLED, un teclado y un encoder rotatorio. Esto te permite controlar tus trenes directamente desde la central sin necesidad de una ordenador o teléfono inteligente.
  • Comunicación serial: Al comunicarse a través de serial facilita su integración con otros dispositivos y sistemas. Esto te permite conectar la central a un ordenador, un Arduino o cualquier otro dispositivo con capacidad serial.
  • Automatización: La DCCpp LMD se puede programar para realizar secuencias de comandos automáticas, como la simulación de horarios de trenes o la activación de señales.

Y estas son las opciones principales que nos ofrece la central DCCpp LMD con respecto a las locomotoras:

  • Direcciones de locomotoras de 2 y 4 bytes.
  • Velocidad de 128 pasos.
  • Programación en pista principal.
  • Control simultaneo de múltiples locomotoras.
  • Control de todas las funciones de cabina F0-F28.
  • Activación y apagado de todas las direcciones de accesorios 0-2048.
  • Programación en vía de programación.
  • Pantalla Oled 128*64 I2c.
  • Puertos seriales extras.

Ahora que ya hemos visto sus características y funciones principales...

¿Porqué existe DCCpp LMD y por que la uso?

La central DCC+ Base Station creada por Gregg E. Berman hace ya más de 9 años, revoluciono de una manera económica y sencilla el uso de las locomotoras que tienen incorporado un decodificador DCC

Estas centrales de tipo comercial, por lo general, tienen un coste elevado que añadido al coste de los decodificadores no hacía que fuera un entretenimiento asequible al bolsillo de cualquier aficionado.

Después de la central DCC++ Base Station todo eso cambio. Era relativamente sencillo conseguir una placa Arduino UNO y un MotorShield, podías encontrar los dos componentes en paginas webs por menos de 10€.

Visto esto y con mi consabida afición a los trenes en miniatura, ya sabes.. - ¿que hay mejor que un tren? - Dos trenes. decidí hacerme con todas las piezas y montar este cacharro y ver si daba lo que prometía... y vaya si lo hizo!!! Locomotoras y accesorios funcionaban al 100%, incluso se le podía añadir un sensor de consumo para prevenir cortocircuitos

No pude resistir el conocer a fondo como funcionaba, cuales eran sus entresijos, como recibía los datos con la comunicación serial y los distribuía entre las diferentes funciones así que termine empapándome de todo lo relacionado con esta central.

Finalmente llego a mi navegador de la mano de LocoDuino el mismo programa, pero en formato librería y paso a llamarse DCCpp. Nunca había tocado una librería... fue otro retro más que tenia que resolver. 

Después de un tiempo había añadido la pantalla Oled y el uso de los demás puertos seriales que tiene disponibles la placa Arduino MEGA. Por que si, para esta central, la placa que mejor se adapta tanto a el hardware como al software es la  placa Arduino MEGA. Sobre el 2020 la librería DCCpp dejo de actualizarse siendo su última versión la número 1.4.2. Una autentica pena la verdad.

Después de esto o incluso mientras otras centrales DCC surgieron de esta idea, la más destacada ahora mismo es la DCCEX. La rama americana de esta central. Ahí me perdí... Es un proyecto enorme en el que contribuyen muchas personas con mucho código que, si bien cubren las necesidades de muchos otros usuarios, para mi eran excesivas. Realmente no necesitaba tanto.

Volví a mi proyecto de la librería DCCpp modificada y pase a llamarla DCCpp LMD. La librería desde la que parte el proyecto, la V1.4.2, ya tiene todas las funciones que necesito, además de ser compatible con el software de gestión de trenes. Partiendo de esa base, fui añadiendo diferentes funciones y funcionalidades, mejorando el código en la medida de lo posible y adaptándola a mi maqueta.

Puedo programar secuencias de eventos, monitorear el consumo de corriente en tiempo real, detección con diferentes tipos de sensores, comunicación Bluetooth y wifi. Esto añadido al programa Rocrail, hace que me pueda pasar tardes enteras "jugando" con los trenes que tienen instalado un decodificador DCC,. Por desgracia no todas mis pequeñas cuentan con uno de estos decodificadores.

Si te gustan los trenes el modelismo y el sistema DCC y quieres descubrir como Arduino es capaz de adaptarse a cualquier entorno visita Lamaquetade.infotronikblog.com

Pantalla de llegada de trenes Adif - Lamaquetade.infotronikblog

Descargar librería DCCpp LMD para el control de locmotoras desde GitHub.

Decodificadores DCC realizados con Arduino en GitHub

Espero que te guste el contenido sobre Arduino y trenes y sobre todo que os guste la web, Saludos y felices fiestas!!!

miércoles, 11 de septiembre de 2024

Terminal DCC - Controla trenes DCC con la terminal

Muy Buenas a todos!!! Hoy traigo un programa creado con el ya comentado creador de interfaces de terminal pyTermTk. He vuelto a juntar las dos cosas que más me gustan, la informática y los trenes (si, muy a lo Sheldon).

Ya hacía tiempo que le iba dando vueltas a un controlador desde el terminal que no fuera estar metiendo instrucciones a mano desde una terminal. Entonces hace unos meses descubrí pyTermTk y empece a trabajar con el.

Tengo que decir que el diseñador de interfaces ttkDesigner ayudó mucho en el proceso, algunas veces me ha dado algún quebradero de cabeza, pero más por inexperiencia con la librería

También se han incluido los archivos json de las interfaces generados por ttkDesigner en la carpeta del repositorio

Terminal DCC esta diseñado para leer una base de datos generada con Rocrail y conectarnos a una central DCC de tipo hazlo tu mismo (DIY).

Para seleccionar el archivo desde un file picker que se abrirá al pulsar sobre el botón de menú "open". Desde aquí seleccionaremos el archivo .xml donde estén almacenados los datos del plan Rocrail.

 

Cuenta con dos pantallas principales llamadas Controller y List. En la primera de ellas, Controller, podemos manejar las locomotoras. Por otra parte List nos mostrará un resumen de los elementos almacenados en el archivo plan.xml


A la ventana configuración accedemos desde el menú superior "File", en "Config". Una vez que se abre la pantalla, encuentran los parámetros IP, que será la IP de la central DCC y el puerto que por defecto es el "2560" para realizar la conexión con wi-fi y sockets.

También se pueden configurar las pantallas Controller y List para que aparezcan al iniciar Terminal DCC.

Con estos datos ya podremos realizar la conexión pulsando sobre "Connection On/Off". Si todos los datos son correctos recibiremos un mensaje de confirmación:


--> [CONNECTED] to DCC station 192.168.1.5:2560

Una vez conectados podemos interactuar con la central introduciendo comandos con el widget de texto en la parte inferior. 

Con el botón "DCC On/Off" encendemos o apagamos la central DCC. Con la cental encendida ya podemos  manejar locomotoras desde el Controller con sus funciones básicas de avance, retroceso, parada. Las funciones de las locomotoras aún no están implementadas.

 


Instalación: 

Para instalar Terminal DCC solo necesitamos tener acceso a un terminal linux.

Una vez estamos en el terminal creamos un entorno virtual donde instalaremos las librerías y accedemos a el:


python3 -m venv ~/venv/TerminalDCC

source ~/venv/TerminalDCC/bin/activate

Nos situamos en la carpeta donde vamos a descargar Terminal DCC y lo podemos descargar directamente desde GitHub con la "git":


git clone https://github.com/Peyutron/TerminalDCC

Instalamos las librerías del archivo "requirements.txt" con "pip":


pip install -r requirements.txt

Ya solo queda ejecutar el programa:


python3 -m TerminalDCC_main
o
python3 TerminalDCC_main.py

 Bien pues esto es todo, las funciones son básicas y seguramente haya otro programa que no sea Rocrail, pero por el momento me ha servido para practicar Python con sus librerías, listas, diccionarios y sockets entre otros. La intención es actualizar la entrada cuando vaya haciendo cambios en el programa.

 

Si te gusta la programación y el contenido que realizo puedes aportar comentando tanto aquí como en el canal de Youtube.

 



Terminal DCC en GitHub

Y aquí tienes algunos ejemplos sobre TermTk y ttkDesigner:

pyTermTk y ttkDesigner: Button y Lablel

pyTermTk y ttkDesigner: List, ListSelect y Lablel

pyTermTk y ttkDesigner: Slider y Label

Librería PyTermTk crea interfaces en terminal

Librería PyTermTk en GitHub

Sígueme para más artículos sobre TermTk y otros temas de programación, Saludos!!!

sábado, 19 de diciembre de 2015

Arduino: Leyendo paquetes DCC con RB_DCC_Sniffer

Buenas todos los Arduineros!!

Después de la entrada anterior a alguno le picara la curiosidad. ¿como puedo conectar el sistema DCC al ordenador?

Bueno antes de empezar con las librerías y demás, lo primero que he hecho ha sido comprobar que el circuito con el 6N137 funciona correctamente. Para ello encontré este programa que es muy útil para comprobar que paquetes de datos circulan por nuestros raíles.

El circuito es muy simple ya que solo hace falta el modulo y un Arduino conectado al PC. El modulo va conectado a Arduino en el pin 2.

El programa en si se llama DCC Sniffer y, como se ha comentado, no hace falta ningún tipo de librería, solo cargar el sketch y a funcionar.

El programa es bastante simple nos manda en monitor serial de Arduino configurado a un Baudrate de 38400 una serie de datos como en número de locomotora, dirección, velocidad o función activa.

También nos dará la información sobre el estado de los desvíos.

Además se puede configurar parámetros como el tiempo de lectura o el tamaño del buffer mediante entrada de comandos en el monitor serial.

Los comandos son los siguientes:

  • 1 = 1s Tiempo de refresco
  • 2 = 2s
  • 3 = 4s (por defecto)
  • 4 = 8s
  • 5 = 16s
  • 6 = 4 Tamaño del buffer DCC
  • 7 = 8
  • 8 = 16
  • 9 = 32 (por defecto)
  • 0 = 64
  • a = Paquetes de accesorios on/ off
  • l = Paquetes de locomotoras on / off

En la siguiente foto se puede ver como funciona el programa con los datos que recibe el ordenador en el monitor del IDE de Arduino.




Fuentes:

Las fuentes originales de donde he sacado la información y la descarga del programa es esta: Rudysmodelrailway

También te puede interesar:


martes, 24 de noviembre de 2015

Arduino: Lectura del sistema DCC NmraDCC

Muy Buenas a todos los amantes del DCC!!!

Es sabido por parte de todos los que leéis este blog mi pasión por las maquetas de trenes y por supuesto a Arduino.

Bien ahora he descubierto (aunque es algo nuevo) las librerías con las que podemos conectar los Arduinos a el sistema DCC de la maqueta y con el que controlaremos locomotoras, desvíos y cualquier tipo de accesorio.

Las librerías se llaman NmraDcc-master, LocoNet-master y DCC_Decoder.

  • DCC_Decoder:
    Algo obsoleta pero ideal para decodificadores de accesorios "sencillos"

  • NmraDcc:
    Es la más actualizada y permite control de locomotoras y accesorios

  • LocoNet:
    Para centrales Digitrax

La idea la he sacado de esta web: http://mrrwa.org/ y de este magnifico manual: Servos-DCC-Arduinos.pdf eso si, ambas en ingles.

Vamos a intentar traducir y hacer los ejemplos a poder ser con vídeos, para mostrar lo sencillo que es conectar nuestro sistema DCC con Arduino.

Para empezar tenemos que conectar Arduino a las vías para poder leer la información que circula por ellas. Tengo que decir que en la pagina arriba descrita hay dos circuitos diferentes uno de lectura y otro con posibilidad de escritura, el que vamos a montar es el sistema de lectura.

Materiales necesarios:

Para leer los paquetes que "corren" por los railes DCC solo necesitamos unos pocos componentes:

  • 1 optoacoplador 6n137
  • 1 resistencia de 1k
  • 2 resistencias de 10k
  • 1 diodo 1n4148.

Todos los componentes los montaremos de la siguiendo el esquema:


Interfaz DCC - Arduino

Bueno este es un circuito bastante sencillo y que casi cualquiera puede ponerse y construir. Por mi parte ya estoy esperando el pedido de los optoacopladores para seguir haciendo pruebas.

Y por lo pronto esto es todo, hasta que no tenga el material no podre empezar, pero es algo que en cuanto llegue me pondré e iré haciendo un pequeño tutorial.

Si quieres más información sobre DCC para trenes H0/N puedes visitar:

Un saludo a todos y espero que dentro de poco os pueda enseñar los resultados!!

martes, 18 de noviembre de 2014

Decoder NCE D13SR como conectar leds

Muy buenas a todos los amantes del DCC!!!

Junto con la central digital Prodigy Express adquirí también unos decodificadores de la marca NCE, el NCE D13SR con 4 funciones.

No incluyen conector NEM 652 (de 8 pin) así que vienen los cables para hacer nosotros la conexión.

Hay varias opciones, podemos compramos el conector o lo podemos fabricar nosotros mismos (hay algunas webs con varias ideas al respecto) y por último la opción más segura, soldar los cables directamente a todos los componentes motor, iluminación, etc.

Por otra parte si las luces están en la carcasa, fabricar un conector será más cómodo a la hora de manipular la locomotora en futuras reparaciones.

En mi caso he optado por soldarlos directamente siguiendo el esquema que proporciona el mismo vendedor:




Estos son los colores de los cables y los componentes que se van soldadar: