Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola,
Desde hace tiempo estaba pensando en hacer un sistema de hilo musical y domótica. Es en plan hobby y con idea de dejar todos los fuentes en open.
El caso es que he ido haciendo cosas un poco desordenadas, y me gustaría buscar voluntarios para hacer un proyecto entre varios, así que cada uno pudiese aportar lo mejor de cada cual.
Yo había pensado en diseñar todo el sistema cableado (más que nada necesito cablear el hilo musical, por lo que por el mismo precio cableo todo). Para las comunicaciones entre los módulos tenía idea de utilizar un bus 485 (2 hilos)...
En el siguiente fichero tenéis las 4 notas que he ido poniendo y los primeros borradores de circuitos (para ilustrar el funcionamiento), aunque hay unas cuantas cosas que no tengo claras...
Acepto críticas (constructivas :-)) y voluntarios para currar 🙂
Puestos a colaborar tengo algo ya hecho pero tiene un inconveniente...
Esta basado en el ATMega168...
Espero buscar los fuentes pronto y colgarlo aqui y en el blog.
Puestos a colaborar tengo algo ya hecho pero tiene un inconveniente...
Esta basado en el ATMega168...
Ya has visto que lo que yo he hecho no es mucho... si se crea grupo y es mejor ATMega168, o se decide por mayoría utilizar este otro, pues bienvenido sea. Yo solo querría que fuese open, lo demás me da lo mismo.
Si no se crea grupo lo acabaré haciendo yo (más despacio) y entonces lo haré sobre PIC 😛
Ya me dirás cuando pongas lo tuyo en tu blog.
Hola,
Leyendome el documento por encima he visto algunas cosas que quiero comentar:
1.- Yo separaría cable de datos (un cable de Ethernet con 8 hilos, o uno telefonico con 6) con cables de audio (coaxiales o coaxiales de doble núcleo).
2.- Cada canal de audio va a un par de altavoces, no a más. Si quieres enviar a más deberías hacer adaptación de impedancias o un amplificador. Vale he visto que cada dispositivo de audio irá acompañado con un amplificador.
3.- El acceso al canal del micro debe estar controlado (dos dispositivos no deben poder acceder al canal a la vez).
4.- Yo utilizaría más un sistema distribuido con micros pequeños baratos y de bajo consumo que un sistema centralizado. Sí que debe haber una central, pero esta simplemente haría de interfaz con el usuario y de control de dispositivos (enviar las ordenes correspondientes por el bus).
5.- Para terminar el bus de debe poner una resistencia: podría estar montada en todos los dispositivos y simplemente activarla con un jumper o simplemente ponerla cuando haga falta.
6.- Se puede utilizar la EEPROM o FLASH interna para codificar el tipo de dispositivo (con lo cual se pueden tener más de 16), yo utilizaría uno o dos bytes (256 o 65536). Si hacemos que el MSB (bit de mayor peso) siempre a 0 (128 o 32768) de puede hacer broadcast (ver siguiente).
7.- Cada dispositivo debería tener una dirección de bus Ya he visto que lo has puesto debería ser 1 byte mínimo. La dirección 0x00 estará reservada para el controlador de bus y la 0xFF (o 0xFFFF) para hacer un broadcast, de esta forma también se puede hacer broadcast por grupos: enviando a la direción 0b1xxxxxxx, donde las x es el tipo de dispositivo (por edo dejar 128 o 32768 dispositivos) .
8.- La tabla del máster si no tienen nada, en la primera inicialización debería preguntar a todos los dispositivos uno a uno (ojo con los tiempos de respuesta).
9.- Yo no limitaría la licencia a no comercial, si el arduino ha alcanzado las cotas que tiene es porque se puede comprar sin necesidad de fabricarse uno mismo la placa. Yo dejaría la licencia de ARDE (CC-by-sa)
Todavía voy por la mitad del documento, cuando siga leyendo seguro que salen más comentarios.
S2
Ranganok Schahzaman
Ya he dicho que era un borrador (muy guarro :-D)
1.- Yo separaría cable de datos (un cable de Ethernet con 8 hilos, o uno telefonico con 6) con cables de audio (coaxiales o coaxiales de doble núcleo).
Eso ya lo había pensado yo también, pero con la evolución se me olvidó ponerlo... yo en mi casa tengo hilo musical (marca EGI) y en su momento compré hilo especial de EGI que en el mismo mazo tenía todo eso... Lo malo que no recuerdo cuantos hilos llevaba (lo instalé hace 10 años), he buscado por Internet si encontraba el cable y no he conseguido, quizás algún día desinstale alguno de los mandos que tengo para recordar qué llevaba. Creo recordar que llevaba dos cables más gordos para la alimentación, dos más delgados y un par de coaxiales para el sonido.
Tu en el micro la placa le pondrías las dos masas separadas para los audios de los dos canales o los pondrías juntos?!?
3.- El acceso al canal del micro debe estar controlado (dos dispositivos no deben poder acceder al canal a la vez).
4.- Yo utilizaría más un sistema distribuido con micros pequeños baratos y de bajo consumo que un sistema centralizado. Sí que debe haber una central, pero esta simplemente haría de interfaz con el usuario y de control de dispositivos (enviar las ordenes correspondientes por el bus).
Por simplificar yo había pensado en tener un master y que este se encargase de ir dando paso a cada dispositivo (decirle cuando puede hablar), al estilo de como hacía token ring... evidentemente tu sistema es mejor (y más complicado para mi).
6.- Se puede utilizar la EEPROM o FLASH interna para codificar el tipo de dispositivo (con lo cual se pueden tener más de 16), yo utilizaría uno o dos bytes (256 o 65536). Si hacemos que el MSB (bit de mayor peso) siempre a 0 (128 o 32768) de puede hacer broadcast (ver siguiente).
Yo había pensado en tener dos cosas, un identificador de cada aparato (es decir si por ejemplo tienes 3 dimmers, pues cada uno de ellos que tenga una dirección, el primero la 1, el segundo la 2...), y por otra parte un identificador del tipo de aparato. Yo proponía que el tipo fuese en hard por hacerlo más sencillo (mi idea era que cada aparato constase de dos módulos, uno primero común, con toda la parte de comunicación con el bus, botones... al que lo he puesto como "main module") y luego un segundo que fuese encima del otro con la parte específica de cada tipo de módulo (por ejemplo un dimmer llevará un circuito de detección de Zero Crossing, y dos circuitos de control con triacs; un amplificador de audio llevará un selector del canal y un ampli de sonido; un timbre llevará un conversor de D/A, y un pequeño ampli mono;...)
Quería que la configuración de cada todos los módulos fuese igual (es decir que sólo hubiese un único firmware para todos los dispositivos) y que en base a lo que detecte que tiene enchufado actue de una forma u otra.
En su momento pensé también en utiliar una versión reducida y simplificada del protocolo modbus para hacer las comunicaciones, pero se me olvidó ponerlo.
Evidéntemente si es un proyecto que hagamos entre muchos, ya se decidiría.... y esto sólo será una opinión más.
9.- Yo no limitaría la licencia a no comercial, si el arduino ha alcanzado las cotas que tiene es porque se puede comprar sin necesidad de fabricarse uno mismo la placa. Yo dejaría la licencia de ARDE (CC-by-sa)
No aspiro a que creemos algo con la repercusión de un "arduino"... A mi personalmente me fastidia un poco que gente se lucre del trabajo que otros hacemos en nuestros ratos libres... pero de todas formas si se hace grupo ya se decidirá.
Muchas gracias por todos tus comentarios y recomendaciones.