Noticias:

¿Has Leído las Normas de HispaLUG? LEER AHORA

Menú Principal

Proyectos de automatización trenes PF

Iniciado por leander, 12 de Enero de 2012, 14:51:25 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

leander

Yo ahora necesito un poco de tiempo que el curro me está agobiando.

pulipuli

Bueno, sólo decir que no he tirado la toalla, que sigo metido hasta las cejas en el empeño ;) lo que pasa es que ando escasísimo de tiempo y suelo hacer mis búsquedas y apuntes con el tablet.

Cuento como llevo mis progresos y en cuanto me ponga, abro un par de hilos nuevos, uno para la parte técnica pura y dura, otro para el software, y otro más para describir el sistema de cantones, que prepararé a modo de artículo (en realidad está escrito, tengo que ponerlo en "formato foro" y separarlo de otras cosas que también llevo escritas a modo de diario)

- Sensores: para mi es una parte importante, pero implican electrónica o usar muchos puertos de NXT. Como quiero no ser el único que ande ese camino, estoy intentando desarrollar distintas variantes a base de interruptores caseros tipo lengüeta, trozos de cuerda de guitarra en casquillos para hacer interruptores, e incluso un lector de código de barras (ese es p'a nota :D). La parte electrónica estoy intentando que sea fácil, directamente controlable con NXT mediante MyBlocs para evitar que haya que pegarse con la programación "dura"
- Automatización: el NXT es la base, junto con el emisor IR-LINK. Está desarrollado y a medio probar el repetidor de infrarojos que aumente el alcance de un IR-LINK a toda una estación (al menos). Para reducir la carga de proceso del NXT he pensado como opción poder tener algunas funciones que se puedan delegar a una pequeña placa de circuito con un PIC encargado p.ej. de leer los sensores. El circuito ha de ser muy sencillo de montar, es un requisito básico. Ah, lo olvidaba, también he pensado en transferir la automatización a un Arduino (para los profanos, digamos que es como un NXT en una placa de circuito, y se programa en línea de comados, p.ej. en C, y es una plataforma abierta y barata), e incluso a un PC conectado a una plaquita barata de circuito via USB, que sería la que se relacione directamente con sensores y activadores. Todo es posible, sólo hay que ir desarrollando a poquitos según vaya picando la curiosidad y den de si los conocimientos.
- Desvíos: Tengo varias vías abiertas para investigar, tanto hacerlo con motores PF (consume muchos recursos de NXT), como con servos baratos (unos 4€ cada uno), que no son piezas LEGO, pero son fáciles de usar. Si uso servos, he diseñado una plaquita que controle hasta 8 servos distintos (8 desvíos) que se puede conectar al bus del NXT, y está basada en un PIC. El coste de esa plaquita no excederá los 10€, por lo que cuando esté todo desarrollado el controlar 8 desvíos con un NXT saldrá por unos 60€ incluyendo un montón de metros de cable y los servos.
- Comunicaciones RF. No las descarto... jejejeje. Ahí bebería de la experiencia de Leander, pero intentando integrarlo con NXT de tal modo que un NXT pudiera controlar de forma remota los trenes. Es tan sencillo como usar el PIC del emisor con interfaz I2C, y así poder conectarlo al NXT, definiendo un pequeño protocolo de comandos (p.ej. tren 1, avance al 7, enciende luces...). También tengo in-mente transladar el protocolo PF a RF, y que los trenes tuvieran receptor dual RF-IR.

En fin, como veis soy ambicioso, pero mi base es como planteó NXTorm que sea todo 100% modular, fácilmente enchufable a otros módulos, y que permita distintos niveles de automatización o de control de trenes. Así, habrá módulos que no necesiten saber que tren es el que entra, habrá zonas de circuito con sistema de bloqueo "por horario de trenes", otras con bloqueo por cantones... y se podrá mezclar todo sin problemas siguiendo unas reglas. Ah, y lo más importante, los programas de NXT de los módulos controlados por NXT serán a base de MyBlocs sencillos del estilo "entra tren nº X en estación", para que puedan crearse sin conocimientos avanzados, y se podrán modificar también de forma sencilla incluso sobre la marcha para, p.ej. partir de un módulo de "estación con N vías" y a partir de él, cambiando sólo un valor o dos en el programa (nº de vías, puertos donde están pinchados los desvíos...), poder hacer una ampliación de 2 a 3 vías sin reprogramar todo. Además, al programarse la estación con MyBlocs de alto nivel, y que cada sensor/activador tenga un MyBloc distinto, si cambiamos los sensores/activadores por otro modelo, bastará con definir un MyBloc para ese otro modelo pero con las mismas interfaces para que sólo con cargar el "driver" adecuado a los sensores que se utilicen, el programa siga funcionando igual

Ea, que por ambición no sea :D :D :D luego igual me canso a medio camino y se queda en una implementación de las cuatro cosas que tenga más probadas... pero partiendo de esas bases, será fácil de ampliar o modificar todo por cualquiera que tenga ganas de explorar otras formas de hacer las cosas.

PD: Para los ortodoxos... también se puede hacer todo usando sólo LEGO :D sólo que si se usa NXT te quedas rápido sin puertos :(, pero no descarto incluso un control manual tipo los antiguos sistemas 12V, que también tenían un encanto exquisito :)


nxtorm

Madre mía Puli, solo puedo decir.... suerte  ;)  Ya nos mantienes informados de los avances. Bastantes de las cosas que mencionas me interesan, especilmente lo referente al sensor, pero en general el proyecto. Animo con él.

Bueno, y por otra parte, darte un poco de guerra, si no no sería feliz, ya sabes  :D Como de costumbre, uso el azul para tus citas y el rojo para enlaces.

- Automatización: el NXT es la base, junto con el emisor IR-LINK. Está desarrollado y a medio probar el repetidor de infrarojos que aumente el alcance de un IR-LINK a toda una estación (al menos). Bueno, según cómo lo hagas, esto sí es posible como se pudo ver en mi video. Si las máquinas quedan muy alejadas, sí es posible que la señal no llegue.

PD: Para los ortodoxos... también se puede hacer todo usando sólo LEGO sólo que si se usa NXT te quedas rápido sin puertos [...] Bueno, como bien sabes, el IRLink amplía el tema. Y tampoco es siempre necesario si usas canales comunes como ya debatimos en la propuesta de estándar.

Lo que no acabo de ver es cómo harás el tema ampliable con My Blocks. Cuando te metas a ello, quizás veas que es más complicado de lo que parece o quizás vea yo que es más sencillo de lo que aparenta. En fin, suerte y ya nos mantienes al día.

pulipuli

Sobre el tema de myblocks para ampliación de módulos, consiste en la definición de variables para hasta "N", pero que el programa sólo use las "M" primeras según un parámetro de configuración. A fin de cuentas, el algoritmo pesa lo mismo se haga para el número de desvíos que se haga, y sólo las variables pesan algo más en la memoria del NXT, pero unas cuantas variables no pesan mucho comparado con el total del programa ;). Así, en el programa principal lo primero que se hará será definir: 1.- la modularidad (2, 3... vías), 2.- la dirección física a la que se conecta cada sensor, 3.- la dirección física de cada desvío, 4.- Arranca el programa. Modificando los parámetros de los tres primeros puntos, tendremos configurado el módulo.
Hay un pequeño inconveniente de rendimiento, pues todo programa trabaja mejor con constantes que con variables, pero ya lidiaremos ese toro cuando entremos en harina, por ahora considero que el NXT tiene una capacidad ilimitada y luego será cuestión de descubrir cuales son sus limitaciones, que tiempo tarda en procesar cada bloque de código, si es capaz de hacer un barrido de sensores en el tiempo mínimo requerido para detectarlos, etc... Si hay alguna parte que se ve que "cojea" porque el NXT no da de sí, la solución será disponer de un coprocesador externo (un PIC, que para los profanos basta decir que es un chip programable, que un neofito sólo deberá soldar junto con media docena de componentes, no más) que le aligere el trabajo.
Un ejemplo: si los sensores sólo detectan el tren durante 0,2 segundos y el barrido de todos los sensores tarda en hacerse 0,3 sg, en un barrido nos podremos saltar un sensor. Esto se soluciona usando un buffer intermedio, que a fin de cuentas es una cucaracha más en un circuito y unos cuantos puntos de soldadura. Ese chip, que puede costar 0,5€ permitirá que el NXT no se pierda ninguna activación de sensores. Introduce una dificultad añadida para los que tengan miedo a soldar... pero habrá que quitar ese miedo facilitando la vida, con tutoriales paso a paso de como hacerlo sin complicarse en demasía, y facilitando si hace falta placas de circuito impreso a quien las necesite.

Para quien tenga miedo a la electrónica, que piense sólo si le supone un gran problema coger un soldador, media docena de componentes, un alicate y un poco de estaño y montarlo todo en media horita (no mucho más). Creo que ese pequeño sacrificio, que además debe costar muy poco dinero, merecerá la pena.


Vi


Holas;

Siento no haber podido leer todo lo que precede en profundidad, la escasez de tiempo no me deja.

Cita de: leander en 14 de Enero de 2012, 23:19:39 PM
Sigo pensando que el sistema IR de LEGO es una cagada total cuando se trata de montar dioramas profesionales, está más orientado a estar en un cuarto de un crio para ver al tren dar vueltas y vueltas. Porque con solo 8 canales de codificación FIJA aunque tenga poco alcance cuando uno controla su diorama puede afectar al diorama de otro en la proximidad, así como acercarte con tu propio mando a un diorama del prójimo y gastar una broma llegando incluso a cargarse su automatización.
Tiene que descartarse automáticamente el IR, antes de seguir tengo que buscar la forma de que SOLO EL QUE CONTROLA SU PROPIO DIORAMA tenga la clave para controlar SUS TRENES. Es fundamental.
Perdonadme si no avanzo durante los próximos dias, aunque no lo parezca estoy asimilando más info, pero no puedo ir a lo práctico porque me faltan componentes para controlar el motor, estoy esperando recibirlos.



Yo, ya de introducir elementos no-Lego, me metería a 'metalizar' las vías y usar sistema 9V o incluso mejor sistemas DCC de modelismo ferroviario, mercado ya muy establecido. Perdona leander por el trabajo que llevas hecho, pero creo que lo más práctico es eso....
Salu2 a to2;

pulipuli

Lo uno no quita lo otro, a fin de cuentas un sistema DCC y un sistema RF sólo se diferencian en que en un caso la interfaz es radio y en el otro caso es DCC pura, pero el resto es idéntico. Hace no mucho leí un artículo de un modelista que hizo su diorama con comunicación RF usando programas y circuitería DCC pero con interfaces RF, y repetidores DCC usando RF... todo es compatible aunque obviamente exige un trabajo de integración