hola,
Esto es lo que pretendemos solucionar: queremos que siempre haya un circuito –el visitante no sabrá que solo será uno– en el que cada nueva ocupación pueda dar lugar al oportuno cambio de señal, desvío o ambos, y así haya un recorrido automatizado aunque la maqueta se acabe de encender y no haya ordenador. Creemos que es posible hacerlo.
Sí que es posible hacerlo, lo que es más factible es el disparo de rutas al estilo como lo hace la ECoS, que cuando se active un sensor posicione los desvíos y señales o un control de un tren lanzadera, automatizaciones relativamente sencillas que dan ambiente a la maqueta y al alcance de la mayoría de programadores de Arduino.
Yo por mi parte llevo trabajando un tiempo en un autómata para Xpressnet. Ahora estoy con los test con diferentes centrales.
En mi caso escucho el bus Xpressnet ya que la central comunica por el bus las ocupaciones en la retroseñalización y los cambios en los accesorios (desvíos y señales).
Mi idea es tener un módulo simple que cuando se enchufe al bus Xpressnet ejecute acciones sobre las salidas (desvíos, señales y locomotoras) según unas reglas definidas por el usuario al estilo de los PLC (autómatas programables) en función del estado de las entradas (retroseñalización y accesorios). Este
AutomataXpressNet lo conectaríamos temporalmente al ordenador para cambiar o añadir nuevas reglas.
Si quieres echarle un vistazo, puedes verlo aquí:
https://usuaris.tinet.cat/fmco/beta_sp.html#automata
La pregunta es ¿qué utilidad práctica se le puede dar a esto? ¿Hacia dónde merece la pena enfocarlo?
Depende de cómo proporciones los datos y del público al que va dirigido.
Si es para un público objetivo que tiene algunos conocimientos de la programación en Arduino lo primero que se me ocurre es que hagas una librería
EspiaBusS88.h que incluya una función callback
cambioSensorS88 (int sensor, int estado) donde informas del sensor que ha cambiado por lo que el programador podrá decidir que ordenes enviar por Xpressnet.
Si tu público objetivo es un usuario sin conocimientos de programación Arduino pero que quiera automatizar mínimamente su maqueta digital entonces deberás proporcionarle alguna herramienta o pasos simples para que pueda llevarlo a cabo. Por ejemplo, como ha hecho Jindra Fucik con su XRobot (
http://www.fucik.name/masinky/robot/ ) que permite que el usuario programe condiciones y acciones de forma gráfica y sencilla o como mi
AutomataXpressNet que lo hace creando reglas en lenguaje natural.
Si es para ti, puedes hacerlo personalizado para tu maqueta, tienes conocimientos de programación de sobra para realizarlo.
saludos,
Paco