Noticias|Artículos|Figuras|Enlaces|belenismo.net

Buscar | Estadísticas | Listado de usuarios Foros | Calendarios | Álbumes | Skins
Foro de Belenismo

¿Quieres anunciarte aquí? - contacta con nosotros

Has entrado como invitado. ( Entra | regístrate )

Control de un Belén mediante Arduino

Páginas: < ... 6 7 8 9 10 11 12 >
 

laucsada

Posts: 189
Ubicación: Pamplona



Pastorcillo

Posts: 189

Ubicación: Pamplona

Buenos días.

Ante los problemas que se han planteado en el uso del código Dfplayerinfarr.ino he intentado encontrar las causas que lo motivaban, llegando a la conclusión de que los reproductores DFPlayer Mini tienen diferentes comportamientos dependiendo del fabricante o la fecha de fabricación.

El código subido en su día se basaba en el feedback del reproductor a Arduino ante la solicitud de información, como, si ya estaba iniciado, el valor del volumen o el tipo de ecualización. Algún reproductor que tengo en otros proyectos con arduinos Micro y Nano si envía esa respuesta, pero los últimos que he adquirido no responden.

He llegado a preguntar al fabricante y no ha podido aclararme este asunto.

Así pues he preparado un código alternativo al original que no precisa de ese feedback y mantiene el resto de las características de impresión por monitor (grado de volumen y tipo de ecualización) basándose en la orden que se envía.

El resto del código se mantiene (indicación de recepción de señales no codificadas y tiempo entre pulsaciones).

Espero que os funcione y lamento los problemas que la versión anterior haya podido causar.

Un saludo.



Modificado por laucsada 13/9/2024 10:31




Adjuntos
----------------
Adjuntos dfplayerInfrarr_sin_feedback.ino (4KB - 7 descargas)
A minin y yiyi les gusta esto.
minin

Posts: 76
Ubicación: Asturias


Pastorcillo

Posts: 76

Ubicación: Asturias

Buenas tardes

He estado realizando pruebas con el nuevo código dfplayerInfrarr sin feedback.ino y, después de seguir dándome problemas, con el mensaje de "botón no valido" , al final descubrí que, el problema no viene ni del receptor de infrarrojos, ni del reproductor DFplayer. Todo el problema se debe a la tarjeta de pruebas "Breadboard" la cual, no se el motivo, debe de tener las conexiones de inserción tocadas y realiza microcortes de conexión que son los que provocan los errores del programa. He probado con otra tarjeta de pruebas que tengo mas pequeña instalada en el control del belén y funciona sin problema alguno, tanto con este ultimo programa como con en el anterior que habías mandado hace dias.

Por mi parte creo que todo funciona perfectamente y, ahora, me toca lo peor. Intentar insertar este nuevo código en el programa que uso para el control de luces y sonidos de mi belén.

Querido Laucsada, espero no darte mucho mas la paliza, pero apelo a tu amabilidad para que me saques del embrollo en el que, seguro, voy a meterme. Ya iré comentando por aqui como va el tema.

Un saludo


laucsada

Posts: 189
Ubicación: Pamplona



Pastorcillo

Posts: 189

Ubicación: Pamplona

Buenas tardes.

No sabes cuanto me alegra que se hayan resuelto los problemas. Has de saber que gracias a estas cosas aprendo, por lo que los errores nunca me han parecido una desgracia, sino una oportunidad.

Respecto a integrar este código en el que usas para el control del resto del belén, no tengas ningún miedo, que es muy sencillo. Simplemente has de poner cada cosa de este código en la misma zona del otro.

Así pues, lo que va delante de setup, lo pondremos delante de setup, lo que está en setup, en setup, lo de loop en loop y el subcódigo translateIR() fuera de setup y loop (es lo mismo que vaya delante o detrás de loop).

Ya sabes que puedes consultar cualquier duda.

Un saludo.

minin

Posts: 76
Ubicación: Asturias


Pastorcillo

Posts: 76

Ubicación: Asturias
Muchas gracias por tu ayuda, si no fuera por ella, no me habría embarcado en esto del Arduino. Un saludo
minin

Posts: 76
Ubicación: Asturias


Pastorcillo

Posts: 76

Ubicación: Asturias

Buenas tardes.

Estimado Laucsada, he incorporado todos los códigos del programa dfplayerInfrarr sin feedback.ino , tal como me has indicado en el post de hace 4 días al fichero que uso para controlar el belén, que es uno de los que tan amablemente habías puesto a disposición de todos hace un par de años, con ligeras modificaciones, el cual funciona correctamente hasta que lo arranco con las nuevas incorporaciones del código.

Por mas que lo intento, no hay manera de controlar el receptor ir a traves del mando a distancia. En base a las pruebas y modificaciones que he hecho, te comento lo siguiente

- En el nuevo código, si desconecto el receptor IR (quitando el cable 5V del mismo para que no le llegue alimentación), funciona a la perfección.

- Si conecto, el receptor IR a los 5V, entonces empieza a darme el error de "botón no valido" y, si bien el receptor, recibe 
las pulsaciones que le envio por el mando a distancia, hace caso omiso de las ordenes que le mando. Incluso, en los cambios de la musica segun la fase del dia, empieza a reproducirse y al segundo, o antes, deja de sonar


- En el programa dfplayerInfrarr sin feedback.ino, observo que, la linea 1120 emite la orden que hace que, el fichero de musica 0001 , se reproduzca en bucle, mientras que en el programa que uso con el belén, los sonidos que quiero reproducir son seis, correspondientes a las fases de dia, atardecer, anochecer, noche, alba y amanecer . Tal vez ahí esté el problema de todo, pero no soy capaz de dar con ello


- Solo he modificado en el fichero que uso con el belén, la linea 1120 , para evitar que reproduzca en bucle el fichero de musica 0001

Abusando de tu amabilidad, me permito enviarte el fichero que quiero usar este año para controlar mi belén, para que, cuando tengas un poco de tiempo, le puedas echar una mirada para ver que puedo estar haciendo mal, por supuesto que si crees que es demasiado trabajo, entenderé perfectamente que no hagas nada.

Dándote las gracias anticipadas, un saludo





Adjuntos
----------------
Adjuntos BELEN_12_salidas_Analogicas_3_Digitales_SONIDO_SINMOTOR_V.2024.ino (33KB - 3 descargas)

laucsada

Posts: 189
Ubicación: Pamplona



Pastorcillo

Posts: 189

Ubicación: Pamplona

Buenas tardes.

No te prometo nada, porque ando un poco mal de tiempo y al terminar la semana salgo de viaje, pero le voy a echar un vistazo y te digo lo que vea.

Un saludo.


laucsada

Posts: 189
Ubicación: Pamplona



Pastorcillo

Posts: 189

Ubicación: Pamplona

Buenas tardes de nuevo.

Tras un primer vistazo al código, observo que estás mezclando la reproducción del sistema antiguo (reproduce automáticamente una banda sonora en cada fase) con lo que preparamos para ser controlado por IR.

En primer lugar es preciso tener claro qué es lo que queremos conseguir con el sonido y el mando a distancia.

Así se me ocurren unas preguntas:

  • ¿Estas utilizando los dos canales de sonido, música y sonidos ambiente? (la música en el código arranca en setup).
  • ¿Con el mando quieres controlar solo los sonidos de ambiente?
  • ¿Quieres controlarlo en todo momento o solo ocasionalmente?
  • Qué quieres hacer:
    • ¿elegir la pista que suena?
    • ¿detener la reproducción?
    • ¿solamente controlar volumen y ecualizador?

Con estas respuestas (seguro que me dejo algo en el tintero)  se puede empezar a revisar y corregir el código.

Un saludo.



Modificado por laucsada 17/9/2024 18:56
minin

Posts: 76
Ubicación: Asturias


Pastorcillo

Posts: 76

Ubicación: Asturias

Buenas tardes Laucsada.

Respondo a tus pregunta:

- Solo estoy usando el canal de los sonidos de ambiente
- Con el mando solo quiero controlar los sonidos de ambiente
- Quiero poder controlar los sonidos de ambiente, en todo momento
- Quiero detener/Iniciar la reproducción y controlar el volumen y ecualizador

Como puedes ver, casi nada que digamos. Vuelvo a darte las gracias por todas las molestias que tomas para ayudarme y, entiendo perfectamente, que lo que pido no es nada facil y, no quisiera, robarte parte de tu precioso tiempo para resolver este tema que nos ocupa. Entiendo que, tienes cosas mas importantes que hacer que meterte en este "mi berenjenal"

Un saludo

 


laucsada

Posts: 189
Ubicación: Pamplona



Pastorcillo

Posts: 189

Ubicación: Pamplona

Trabajando con arduino, todo se puede hacer, solo hay que encontrar la forma.

Ya vamos centrándonos en lo que queremos. Siempre es interesante quitar del código todo lo que no se vaya a usar, pues nos come recursos. Así sería interesante eliminar la parte de la música, que aunque no es mucho, hace trabajar para nada a la placa. También veo que el reproductor lo inicias con el código actualizado, y después lo chequeas con el código viejo, hay variables repetidas con diferente nombre, etc. Hay que depurar todo eso y dejar el código lo más limpio posible.

Lo que planteas cambia totalmente la forma de trabajar.

Ahora viene la segunda tanda de preguntas, que surgen de tus respuestas:

  • Al detener la reproducción de los sonidos, ¿quieres parar el transcurrir de las fases de iluminación o solo el sonido?
  • Al iniciar la reproducción de sonidos, ¿te refieres a iniciar desde el principio, iniciando también las fases? o ¿quieres que se reproduzca el sonido correspondiente a la fase activa en ese momento (si no se habían detenido antes)?
  • O ¿quieres elegir iniciar en una cierta fase sonido e iluminación?

Con el tema del volumen y ecualizador no hay más problema que el que indicas de "botón no válido" que va a impedir el correcto uso del mando. ¿Has cambiado la instalación del hardware o no la has tocado y es la misma que usabas antes? Porque antes el sensor solamente leía las pulsaciones del mando.

Ya me dirás algo. 

Un saludo.



Modificado por laucsada 17/9/2024 20:56
minin

Posts: 76
Ubicación: Asturias


Pastorcillo

Posts: 76

Ubicación: Asturias

Por lo que me estas diciendo, entiendo que, lo que propongo, obliga a realizar unos cambios tan grandes que escapan totalmente de mis conocimientos de Arduino y, por supuesto de su programación. Como te indique en el post anterior, no es mi intención hacerte perder tu valioso tiempo en realizar un trabajo, altruista, por un tema que yo, en mi ignorancia, pensaba que era coser y cantar. Por eso entendería que me mandases a paseo y te olvidases del tema. 

No obstante a la segunda tanda de preguntas, te indico lo siguiente:

- Al detener la reproducción del sonido, deseo que solo pare el sonido y que, las fases de iluminación, sigan ejecutándose pero sin el sonido del fondo

- Quiero que se reproduzca el sonido correspondiente a la fase activa en ese momento, aunque se hubiese detenido en otra fase anterior.

Y en cuanto al Hardware, es la misma que usaba antes, cuando hice las pruebas de funcionamiento del mando, el cual, con el segundo programa que mandaste, funcionaba correctamente. Actualmente, el receptor IR lo instalé con el Hardware que uso en el Belén , el cual, sin el receptor IR, funciona sin problema. 

Yo ya me imaginaba que, el problema está en la programacion del sketch, pero como te dije en el primer parrafo, ahi estoy perdido

Gracias por tu interés. Un saludo

 

 

 

 

minin

Posts: 76
Ubicación: Asturias


Pastorcillo

Posts: 76

Ubicación: Asturias

Perdona, pero se me olvidó comentar que, dada la amplitud de todos los cambios que hay que realizar, me conformaría con que se pudiera, solamente, subir/bajar el volumen con el mando a distancia.


laucsada

Posts: 189
Ubicación: Pamplona



Pastorcillo

Posts: 189

Ubicación: Pamplona

Bueno, lo que quieres no es tan complicado, pero hay que atacarlo desde otro punto de vista.

Lo primero es solucionar el problema de la recepción de las señales. Me dices que el hardware es el mismo, pero entiendo que has cambiado las conexiones. Al principio también te daba esos errores y era por culpa de las conexiones de la placa de pruebas que usabas. 

Respecto al código para el sonido. El tema del volumen ya lo tenemos (cuendo se reciban bien las señales debería funcionar sin problema). Y el tema de las paradas y arranques del sonido, yo lo veo de esta forma (todo esto es teoría, que habría que probar):

El sistema arranca normalmente, iniciándose el proceso de fases con sus bandas sonoras respectivas. 

Una variable (que sería modificada por pulsaciones en el mando) estaría permitiendo que la reproducción se realizara.

Al pulsar el botón correspondiente del mando, la reproducción se detendría y cambiaría esa variable para impedir la reproducción de ninguno de los archivos de sonido. El ciclo de fases continuaría sin que le afectara ese cambio.

Al pulsar el botón elegido para reiniciar la reproducción, cambiaría esa variable para permitir la reproducción y al llegar en el ciclo de loop correspondiente al funcionamiento del reproductor, iniciaría la reproducción del archivo asignado a la fase en que se encuentre el sistema. Eso si, habría un desfase durante la fase de reinicio, pues fase y sonido no empezarían a la vez, porque la reproducción empezaría desde el principio del archivo y la fase de iluminación podría estar al principio, en el medio o a punto de terminar. Al pasar a la siguiente fase, se sincronizarían.

No sé si me he sabido explicar.

Repito, que esto es solo teoría. Al llevarlo a la práctica es cuando suelen salir los problemas.

De momento hay que solucionar la recepción de las señales y limpiar el código  y creo que con eso sería suficiente para que se pueda bajar y subir el volumen.

Un saludo

minin

Posts: 76
Ubicación: Asturias


Pastorcillo

Posts: 76

Ubicación: Asturias

Buenos días:

De momento, voy a ponerme por lo mas "fácil", limpiar el código, y después ya iremos viendo como se desarrolla lo demás.

Saludos

Páginas: < ... 6 7 8 9 10 11 12 >
Saltar al foro :
Buscar en este foro
Versión Impresa
Enviar un mail con el enlace a este tema

(Borrar todas las cookies grabadas por este sitio)
Ejecutándose MegaBBS ASP Forum Software
© 2002-2024 PD9 Software