Un hogar con efectos especiales de video y sonido.
Muchos vivimos en la ciudad, en departamentos, donde no es posible tener un hogar donde relajarse escuchando el sonido del quemado de los maderos, el chillido de las brazas y sentarse a observar el fuego.
Tenemos largas jornadas de trabajo o de viaje en las ciudades populosas, además por más que algunos quieran ser indiferentes, mirando entre las calles y la población encontramos personas que viven en condiciones desfavorables o casi inhumanas. A lo largo de la historia espiritual por la liberación en las culturas judeo cristianas el fuego a representado el sentimiento de un espíritu de salvación. Su humo, una guía en un camino de liberación personal y comunitaria, y el fuego en sí mismo el sentir del pueblo en una vivencia divina de sentirse artífice de su historia y sus ansias de justicia.
En esta nota presentaremos como construir un simulador de un hogar para armar para tu casa con algunos componentes electrónicos.
Hace algún tiempo agregamos un elemento mágico a nuestra sala de estar: una chimenea eléctrica. La sensación y el ambiente que le da a nuestra casa es genial, te recomiendo que consigas una si estuvieras pensando en ello. Ahora, el pequeño detalle que falta en este aparato es el sonido del fuego que se escucha con madera y llamas reales. ¡Pero ahora vamos a arreglarlo!
Instale la chimenea y el calefactor eléctrico en su casa. Verifique de antemano los requisitos eléctricos, ya que puede consumir mucha energía en función de la calefacción que proporciona. Estos calefactores eléctricos pueden instalarse colgadas en la pared o empotradas en una, según su elección.
Puede construirse fácilmente una chimenea con placas de yeso y madera. Creando un espacio donde montar en su interior la electrónica.
Instalación de audio
Justo antes de instalar la chimenea en su posición final, hay que dejar atrás un par de altavoces conectados a una Raspberry Pi:
En este proyecto se utilizó un Rasp Pi 1 que teníamos con un adaptador usb wifi. Pero creemos podés usar cualquier Raspberry Pi en este proyecto.
Conecta el Pi a Particle Device Cloud
En caso de que no supieras como hacerlo, puedes usar la siguiente guía: https://docs.particle.io/datasheets/discontinued/raspberry-pi/ Por favor, siga las instrucciones. Tan pronto como termine de convertir su Raspberry Pi en una Partícula de Pi, se convertirá en uno de sus dispositivos de Partícula (en caso de que tenga Fotones, Electrones, Bluz (es), ReadBear Duos, etc.). Elige tus efectos especiales.
Elegí descargar el mp3 de un video de Youtube como este:
Convierte el video a mp3 por medio del siguiente servicio online:
https://www.clipconverter.cc/ cárguelo en su Raspberry Pi en /home/pi/fire.mp3
Control desde el celular con Blynk
Para controlar fácilmente los efectos de sonido y el volumen, crea una aplicación Blynk. ¿No conoces a Blynk? Podés leer más en los siguientes artículos.
Para cargar la aplicación FX escanea este QR con su aplicación Blynk para Android o iOS:
Flash Particle Pi
Ahora está listo para actualizar el firmware de su Particle Pi. Agarre el software que adjunto a continuación, o haga clic en este enlace de aplicación de partículas compartidas y colóquelo en su Particle Pi.
https://go.particle.io/shared_apps/5a4d9d89b7a129684e000133
NOTA: ¡No olvide seleccionar su Particle Pi mientras construye la Compilación o recibirá errores de compilación! Si está utilizando el código de Visual Studio como lo documenté anteriormente en este artículo (entorno de desarrollo totalmente increíble), cambie la definición de la tarea de compilación en el archivo YOUR_PRJ_PATH / .vscode / tasks.json cambiando el Photon por pi:
“args”: [“pi”, “${workspaceRoot}”, “–saveTo”, “${workspaceRoot}/firmware.bin”],
Hechalo a andar
Una vez que el Pi ha cargado el firmware, el mp3 está en el lugar correcto y las estrellas se alinean a tu favor, podrás iniciar los efectos de sonido. Hay tres niveles de volumen codificados, pero siéntete libre de modificarlos a tu gusto:
volumeLevel = “-1800”;
volumeLevel = “-1000”;
volumeLevel = “-1”;
// Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
// This is a human-readable summary of (and not a substitute for) the license.
// Disclaimer
//
// You are free to:
// Share — copy and redistribute the material in any medium or format
// Adapt — remix, transform, and build upon the material
// The licensor cannot revoke these freedoms as long as you follow the license terms.
//
// Under the following terms:
// Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
// NonCommercial — You may not use the material for commercial purposes.
// ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
// No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.
//
// Notices:
// You do not have to comply with the license for elements of the material in the public domain or where your use is permitted by an applicable exception or limitation.
// No warranties are given. The license may not give you all of the permissions necessary for your intended use. For example, other rights such as publicity, privacy, or moral rights may limit how you use the material.
//
// github: https://github.com/gusgonnet
// hackster: https://www.hackster.io/gusgonnet
//
// Free for personal use.
//
// https://creativecommons.org/licenses/by-nc-sa/4.0/
#include <blynk.h>
#define BLYNK_BUTTON_ON_OFF V27
#define BLYNK_SLIDER_VOLUME V28
#define BLYNK_BUTTON_VOLUME V29
// DO NOT SHARE YOUR BLYNK TOKEN
char auth[] = “123720194708912734981273408912”;
bool soundOn = false;
bool volumeHigh = false;
String volumeLevel = “-1800”;
// auto on in the morning
const String timeOn = “09:00AM”;
// auto off at midnight
const String timeOff = “11:59PM”;
void setup() {
//set time zone and format
Time.zone(-5);
Time.setFormat(TIME_FORMAT_ISO8601_FULL);
Particle.function(“playSound”, playSound);
Particle.function(“stopSound”, stopSound);
Blynk.begin(auth);
}
void loop() {
Blynk.run();
// get time. Example: 10:38PM
String timeNow = Time.format(Time.now(), “%I:%M%p”);
if (timeNow == timeOn)
{
soundOn = true;
playSound(“”);
}
if (timeNow == timeOff)
{
stopSound(“”);
soundOn = false;
}
// this delay will slow down this rasppi particle agent process so the pi keeps its cool 😉
// without this delay, top (the command line util on the pi) shows 100% CPU use (of the firmware.bin process)
// with this delay in place, top shows 2% CPU use, which is much better
delay(1000);
}
int playSound( String dummyParameter ) {
// set the volume to your liking as explained here:
// https://stackoverflow.com/questions/33162820/adjust-audio-volume-level-with-cli-omxplayer-raspberry-pi
Process proc;
proc = Process::run(“omxplayer –vol ” + volumeLevel + ” –loop /home/pi/fire.mp3 &”);
Particle.publish(“Napoleon Sound Fx”, “Sound on”, PRIVATE);
proc.wait();
return 0;
}
int stopSound( String dummyParameter ) {
Process proc = Process::run(“sudo killall omxplayer.bin”);
proc.wait();
Particle.publish(“Napoleon Sound Fx”,”Sound off”, PRIVATE);
return 0;
}
BLYNK_WRITE(BLYNK_BUTTON_ON_OFF)
{
// background: in a BLYNK push button, blynk sends 0 then 1 when user taps on it
// source: http://docs.blynk.cc/#widgets-controllers-button
if (param.asInt() == 1)
{
soundOn = true;
playSound(“”);
} else
{
stopSound(“”);
soundOn = false;
}
}
BLYNK_WRITE(BLYNK_BUTTON_VOLUME)
{
// background: in a BLYNK push button, blynk sends 0 then 1 when user taps on it
// source: http://docs.blynk.cc/#widgets-controllers-button
if (param.asInt() == 1)
{
volumeHigh = true;
} else
{
volumeHigh = false;
}
if ( soundOn )
{
stopSound(“”);
playSound(“”);
}
}
BLYNK_WRITE(BLYNK_SLIDER_VOLUME)
{
// background: in a BLYNK push button, blynk sends 0 then 1 when user taps on it
// source: http://docs.blynk.cc/#widgets-controllers-button
if (param.asInt() == 1)
{
volumeLevel = “-1800”;
}
if (param.asInt() == 2)
{
volumeLevel = “-1000”;
}
if (param.asInt() == 3)
{
volumeLevel = “-1”;
}
if ( soundOn )
{
stopSound(“”);
playSound(“”);
}
}
Fuentes:
Esta nota fue publicada gracias a la autorización de Blynk inc.
Sé el primero en comentar