Diseño de una controladora DMX con Arduino Mega

Hola locodelafonola!

Ayer tuve reunión con el tutor y le planteé toda la información que me estas pasando. Bueno,... creo que tendremos que ir poco a poco.

No nos dió tiempo a resolver gran parte de los conceptos que has ido introduciendo en este tema porque, a parte, nos surgieron otros problemas. (no pude sacar la trama DMX correcta desde el arduino, por lo que estuvimos investigando la librería DmxSimple.h que es la que utilizo para las primeras pruebas, a parte de familiarizarme con este protocolo...)

A medida que vaya adelantando, lo iré especificando en el tema...

Respecto a los receptores, entiendo que ya están programados y son inamovibles. No sé si habré dado otra impresión pero si que era consciente que estos no se podían modificar.

El problema que tendrá esta consola será como tu has introducido antes, será la inacción de canales en la configuración de los receptores.

Respecto al manejo de un robot con más de 16 canales... no se podrá con un mismo escáner activado porque estará limitado a 16 direcciones. Y ahora me planteo esta duda en el manejo de un robot con 25 canales (0 40 o ...)... ¿se podrá manejar si desactivo el escáner 1, por ejemplo, con las direcciones del 1-16, y activo el escáner 2 con las direcciones 17-32, para poder manejar el resto de canales del robot sin interferir con los 16 primeros?

O si activo escáner 1 y 2 voy a manejar con los mismos valores que me dé el potenciometro la dirección 1 y 17 (2-18, 3-19...) haciendo lo que corresponda a cada uno de estos canales?
Sé que va a ser una chapuza, porque le puedo mandar un determinado movimiento al motor en un eje y otro movimiento a otro motor en otro eje y pueden estar las luces apagadas, con lo cual no serviría de nada.

Cuando comentabas que se debían mandar todos los canales juntos y que no se podían separar, yo contemplo que cuando envío la trama le estoy mandando las direcciones de todos los canales preestablecidos, uno detrás de otro (según el número de canales máximo que asigne en la opción DMXMAXCHANNEL -o instrucción a la que haga referencia dependiendo de la librería utilizada-).
Si el robot tiene 25 canales, la trama se envía con el todos los canales contemplados, con lo cual, después del 16 vendrá el 17 y el robot podrá interpretar que la que sigue continúa afectándole a él, ¿no?. ¿O esto significa que cuando yo pulso el escáner 2 con la dirección 17 se va a buscar otro receptor y ya no interpreta el valor de la trama que se le estaba mandando?

Viendo los gif que has mandado, que me parecen geniales y responden a aquello de "una imagen vale más que mil palabras"

Saludos y gracias,

Joan
 
hola
Y bueno con mi santa paciencia ., empezamos desde el principio​
Vamos a empezar por el principio ., vos indicastes la direccion de un video ., y como veo que entendes los graficos ., entonces te lo explico en base a este​
Veamos entonces "los scanenner" ., eso por empezar ., no escanea o busca ninguna direcion ., son solo "bancos de MEMORIAS"​
Como esos bancos ., estan prefijados para guardar 16 canales ., y creo que se debe mas al tamaño o capacidad de la memoria en si misma ., que a otra cuestion (no estoy seguro )​
Si te fijas en la primera parte del video ., donde programa el primer efecto (la media bola) ., elige el primer "banco" o scannner" ., direccion1 (al efecto)​
Segun el señor del video tiene 5 canales ., eso no es problema si no sobraran canales en el "banco" ., si a 16 le restas 5 ., te quedan 11 canales libres ( anda teniendo en cuenta eso)​
El segundo efecto ( barra de led) ., lo coloca en la direccion 17 (al efecto)., de alli solo usa 2 canales ., le quedan 14 libres ., ( sumalo a los 11 anteriores )​
El ultimo efecto (laser scan) ., lo coloca en la direccion 33 (al efecto)​
Y aqui una aclaracion a lo que dice ., saca mal la suma ., si fuera por su logica ., el segundo efecto iria en el canal 16 ., pero ese canal pertenece al otro banco o scanner como desis vos​
Del mismo modo que el canal 32 ., pertenece al segundo banco o escaner ., si se empezo a contar de la direccion 17 y sumamos 16 canales ., nos da 33 ., NO 32​
El 33 es la direccion de tercer banco o scaner​
El efecto conectado al trecer banco tiene 3 canales solamente., o sea nos sobran 13 ., si sumamos 13 + 14 + 11 = 38 canales vacios o con valor cero (0)​
Este es un problema ., para el tiempo de envio de trama ., porque envias solamente 10 canales utiles ., y 38 inutilmente (pero salen todos igualmente)​
Los tres bancos de memoria ., suman un total de 49 canales ., si revisas como es la trama ., envia desde ., el canal 1 al 49 ., cuando termina el 49 ., vuelve a enviar desde el 1 ., y asi susesivamente hasta que cambie algo​
El dato curioso ., es que no he encontrado ., algun video donde manejen o programen ., algun robot o equipos con muchos canales ., lo que por un lado confirmaria mi sospecha ., de que no puede​
El otro dato del video ., pasa cuando quiere hacer andar a los tres equipos juntos ., alli se nota que los canales no tiene direccion ., ni tampoco cantidad de canales​
Y de eso si estoy seguro., porque cuando quiere probar las esenas guardadas ., cambia el segundo equipo a la direccion 7 ., y si razonamos es el primer banco de 16 canales ., por eso puede andar las luces en forma sincronizadas ( 5 canales de la bola + 2 canales de la barra = 7 canales ) jejejejejejeje​
bueno con respecto a esas librerias ya te dije que no va a funcionar ., envia un solo canal por vez., cuando apretas un boton ., que esta asociado al pote​
Aca tenes la direccion donde tratan el problema de esa librerias​
http://forum.arduino.cc/index.php?topic=45102.0
Despues ., algo que a medida lo hiba leyendo ., me causo gracia ., ya en el mensaje # 28 ., se da cuenta de como tendria que trabajar el SN75176B​
Despues lo termina conectando como debe ser ., pero no lo aclara en el foro arduino ., sino en su blog​
https://forum.arduino.cc/index.php?topic=208648.0
Este es un trabajo ., para evitar el cable ., se hace desde la consola o salida de compu ., a este aparatito​
En definitiva ., habilitar o desabilitar la trasmicion de la USART ., se limita al uso de un pin mas en el micro ., con eso la USART toma el control​
Luego al dar inicio a la trasmicion (init dmxTx send ) ., se coloca la siguiente definicion ., para el pin/port que maneja al SN75176B​
PHP:
DDRD |= (1<<2)|(1<<1);
PORTD |= (1<<2)|(1<<1);        //enable transmission (para SN75176B)
Si fuera el caso de habilitar la recepcion (init dmxRx in) seria asi​
PHP:
DDRD  |= (1<<2);
PORTD &= ~(1<<2);
Las librerias que se que son oficiales y son las que se usan ., son sacadas de aca​
http://www.mathertel.de/Arduino/DMXSerial.aspx
La verdad no te sabria decir ., cuales son las falencias ., pero esa no esta reformada para 4 universos ., por lo que vi ., parece que tiene trasmicion y recepcion ., en 512 canales DMX nada mas Como ya te dije no uso arduino (ni lo pienso usar ) jajajajajajjajajajajaja​
En definitiva si vas a usar un LCD por I2C ., y las memorias por I2C ., que hagan de banco o scaner como desis vos .., si ya que en la memoria se graban valor de potes y esenas​
Porque no grabar la direccion y cantidad de canales que se envian a un efecto ., como por ejemplo lo hacen los programas de las compu​
Con ese metodo se evitarian que se superpongan canales ., se meszclen valores ., y no se pueda manejar cada banco independientemente​
Buscando por internet alguna info interesante ., me encontre esto.,es un foro de planos 3D para impresoras ., el plano te lo venden a 44 trumps (cash)​
lo que si me fije en los detalles ., tiene mas bancos y mas potes​
Disco_Light_Controller_DMX-384_07_002.jpg
El otro detalle es que tiene paginacion para 32 potes en total ., alli si es intersante y bastante util​
Pero no lleva ningun LCD ., solo un indicador alfanumerico muy basico ., y si botones de funciones o menu​
Disco_Light_Controller_DMX-384_09_002.jpg
Eso esta por aca​
http://www.stlfinder.com/model/disco-light-controller-dmx-384/2848408
Por aca tambien​
http://www.stlfinder.com/model/disco-light-controller-dmx-384/2848408
Y aca​
https://www.turbosquid.com/3d-models/disco-light-controller-dmx-lwo/580631
 
Hola locodelafonola!
Tengo presente tu mensaje y ahora estoy con el tema de la programación.

De momento no he conseguido mucho pero es bastante para mi porque he conseguido hacer funcionar todos los canales, que hasta ahora había sido un suplicio. (he tenido que dejar de lado el analizador lógico porque nome estaba sacando la señal que esperaba y me estaba mareando, que cuando lo prové con los receptores... FUNCIONARON!!

Cuando intenté llevar el proyecto -desmontado- al tutor no me funcionó, así que le he hecho un transportin "cutre" para poder hacer pruebas antes de montar el definitivo.

Te mando un vídeo para que veas por donde van los tiros. De momento no hay mucho, pero poco a poco,


Saludos
Joan
 
Hola
Hola locodelafonola!
Tengo presente tu mensaje y ahora estoy con el tema de la programación.

De momento no he conseguido mucho pero es bastante para mi porque he conseguido hacer funcionar todos los canales, que hasta ahora había sido un suplicio. (he tenido que dejar de lado el analizador lógico porque nome estaba sacando la señal que esperaba y me estaba mareando, que cuando lo prové con los receptores... FUNCIONARON!!

Cuando intenté llevar el proyecto -desmontado- al tutor no me funcionó, así que le he hecho un transportin "cutre" para poder hacer pruebas antes de montar el definitivo.

Te mando un vídeo para que veas por donde van los tiros. De momento no hay mucho, pero poco a poco,

https://youtu.be/xpGqSAwLsA0

Saludos
Joan
Genialllllll ., amigo​
Siiiiiii perfecto che ., pero creo que muchos problemas te daba ., la libreria esa ., aparte me parecia que con el analizador ., no ibas a poder ver nada (pero como no lo tengo ., no se)​
A mi me pasaba lo mismo cuando empece en esto​
Ahora ya tenes bastante hecho ., y al parecer funciona bien​
Incluso ., le agregaste la funcion de audioritmico​
El display lcd., se ve que es del tipo I2c., pero no se si tiene botones (no se ve)​
Porque eso te ayudaria mucho para la parte que sigue (MENU FUNCIONES)​
Y esta correcto ., que vallas de a poco., ( aunque demaciado para quien esta aprendiendo )​
El asunto es que vallas aprendiendo como funciona cada cosa ., y a partir de eso vallas viendo como "crear" las demas funciones​
La otra cosa que me gusto son que le pusistes mas potenciometros ., pero tendrias que ver si podes llegar a los 16​
Porque si podes "crear" ., la funcion de paginacion (valores guardados momentaniamente en la RAM) ., llegarias a los 32 canales ., y podrias manejar cualquier equipo​
Tendrias que poner el codigo del arduino ( "envolvelo" con la etiqueta PHP) ., asi lo voy leyendo y te puedo sugerir algunas cosas ., o ayudarte mas o menos en lo que nesesitas​
Pero hasta ahora ., va muy bien la cosa ., por lo que se ve ., eso es signo que vas por buen camino​
:aplauso: :aplauso: :aplauso:
 
Arriba