Como conectar bombillas de Ikea con Philips hue


¿Sabe que puede obtener las bombillas de luz inteligente Trådfri de IKEA que se pueden controlar  dentro de la aplicación Philips Hue?  Pues sí, usted realmente puede llenar toda su casa con bombillas inteligentes de Ikea  sin arruinarse  con todas las ventajas de  utilizar la aplicación Hue, y/o un asistente digital como Alexa o el propio Movistar Home.

Aunque existen muchos modelos de redes basadas en Zigbee , lo cierto es que el sistema Philips Hue prácticamente se ha convertido   el modelo de referencia del mercado  , siendo el  Hub Hue el alma del  sistema.

En efecto Philips Hue integra el coordinador y el router Zigbee en un único dispositivo , e permitiendo conectar hasta 50 bombillas Hue además de 10 accesorios para poder ampliarlo. Precisamente en este post vamos a ver que no solo este Hub admite bombillas Philips Hue  sino  otras marcas mas económicas

 

El puente de Philips Hue es pues la herramienta que permite la conexión y manejo de bombillas LED  compatibles con Zigbee  al ser  compatible con ZigBee 3,0, pero también al ser compatible con el protocolo estándar ZigBee Light Link  lo cual significa que las  bombillas que conectemos a este no tienen que ser necesariamente  Philips Hue  como tal, pues  hay  otros  productos y dispositivos compatibles con ZigBee Light Link que  funcionan con el puente Hue. Por lo tanto tal  y como ya comentamos en un post anterior , podemos usar otras  marcas como por ejemplo las  bombillas inteligentes de IKEA   o  otras  bombillas de la talla de GE y Osram

Sin embargo, sólo porque pueda, no significa que deba hacerlo,de hecho, George Yianni, el hombre que creó Hue, lo comento  recientemente. Por lo tanto, antes de embarcarse en los pasos bastante complicados – y a menudo frustrantes , se advierte que podría generar  más quebraderos de cabeza que beneficios ,  pero piense que  si lo consigue es  un gran paso para llevar a si hogar la casa inteligente a  un precio mas que razonable.

Precisamente con la app  “Philips Hue ” disponible en Google  Play s puede programar y personalizar la iluminación de una  casa  permitiendo organizar fácilmente la iluminación por habitaciones. Se  puede encender o apagar todas las luces de las habitaciones o cambiar el color o el brillo en todas las bombillas según tu estado de ánimo o actividad lo cual es una tarea fácil de controlar, con independencia de la cantidad de bombillas.

Estas son algunas de sus posibilidades:

  • Transformar la iluminación en una experiencia extraordinaria eligiendo  entre 16 millones de colores o cualquier tono de luz blanca.
  •  Activar sus mañanas, fomentando la concentración o cambiando a una configuración más relajante al final del día, ya sea para leer un libro, relajarse después de la cena o prepararse para dormir.
  • Disfrutar de un atardecer en Honolulu o de una noche de fiesta en el Soho en Londres. Basta con pulsar la escena para transformar su habitación. La aplicación Philips Hue dispone de más de 30 escenas seleccionadas por nuestros diseñadores de iluminación.
  • Con un  algoritmo transformar su fotografía favorita en una escena personal Philips Hue. El algoritmos extrae los colores relevantes y los aplica de forma inteligente a las bombillas. Ahora puede utilizar tus bombillas Hue para revivir tus recuerdos utilizando tus propias fotografías.
  • Automatizar las luces como quiera: empiece a una hora concreta o a la puesta de sol, enciende y apague las luces o active una escena. Incluso puede simular que está en casa reproduciendo la rutina aleatoriamente.
  • Configurar y olvidarse gracias al conocimiento de la ubicación de la aplicación, las luces se encenderán automáticamente cuando llegue a la puerta de entrada o se apagarán al salir de casa.
  • Configurar las luces para que le ayuden a dormir por la noche y despertar revitalizado creando sus propias rutinas de sueño personalizadas para atenuar automáticamente las luces por la noche o para despertarse suavemente por la mañana.
  • Sorprender a sus amigos o dejar de preocuparse si tiene que andar por la casa a oscuras con las manos ocupadas. Tanto si desea encender o apagar las luces o cambiar el brillo de una habitación, puede hacer muchas cosas con la voz por ejemplo mediante el asistente de voz Movistar Home . Si tiene instaladas luces inteligentes (Phillips Hue), podrá controlar el apagado y encendido de las luces del salón a través del comando de voz, “OK Aura, enciende las luces” u “OK Aura, apaga las luces”, así como elegir el color o la intensidad de la iluminación de forma táctil en la pantalla de su Movistar Home.

 

Aunque en realidad  el hub de Philips Hue  tiene un precio razonable de unos 49€  , el precio de las luminarias  Philips  Hue compatibles con Hue no  lo es tanto(a partir de 25€ por luminaria)  ,lo cual hace que muchas personas se cuestionen la viabilidad del sistema Hue, pero como vamos a ver existe alternativas

 

Conexión de las bombillas de IKEA Trådfri a su Philips Hue Bridge

Esto es bastante sencillo… según IKEA, simplemente siga estos pasos:

  •  En primer lugar, asegúrese de que las fuentes de luz que desea conectar tienen una versión de software actualizada (1.2. x o posterior)
  • Mantenga las fuentes de luz cerca del puente Philips Hue
  • Buscar nuevos dispositivos con la aplicación Philips Hue
  •  Realice un restablecimiento de fábrica de las fuentes de luz conmutando el interruptor principal 6 veces

Si esos pasos son correctos, esto  es lo único que necesita hacer ..

How to get Ikea Trådfri smart light bulbs working with Philips Hue

Actualización de las bombillas de IKEA Trådfri

Si sus bombillas de IKEA son actuales , entonces lo más probable es que ya van a estar en el último firmware. Si este es el caso, entonces significa que usted  necesitara  conseguir la puerta de enlace Trådfri, o un  dispositivo de control que puede ser un mando a distancia, un regulador de intensidad o un sensor de movimiento.,

Sin embargo, si compró sus bombillas el año pasado, y nunca las ha conectado a un portal de Trådfri, podrían tener  algún firmware antiguo. Es bastante simple para actualizarlos, dentro de la aplicación Trådfri, pero puede tardar  más de una hora por cada bombilla.

Ahora, IKEA no menciona esto en sus sencillos pasos, pero el siguiente paso es quitar las bombillas de su sistema Trådfri. No sólo necesita  hacer el restablecimiento, es necesario  también eliminarlo dentro de la aplicación en primer lugar….

  • Encienda las luces que desea eliminar
  • Ir a la sección de dispositivos de la aplicación Trådfri
  • Toque la bombilla y elija ‘ quitar ‘
  • Confirme que la luz está encendido tocando ‘ continuar ‘ y luego toque ‘ eliminar ‘ una última vez y verá que su nombre desaparece de la aplicación
  • Ahora el método de reinicio de 6 interruptores… la sexta vez que vuelvas a encender el interruptor, verás que la bombilla parpadea para indicar que se ha restablecido correctamente.

Sincronización con el puente Hue

Ahora viene parte complicada – conseguir las bombillas Trådfri que  aparezcan en la aplicación Hue. Hace algún tiempo  podría haberle llevado muchos  intentos  simplemente conseguir que se muestren en la app de Philips , pero sin embargo, con el nuevo fw la integración parece estar funcionando un poco mejor ahora.

Es una buena idea desactivar cualquier otro concentrador ZigBee que tenga para reducir la interferencia (eso incluye su puerta de enlace Trådfri). Es posible que incluso desee apagar sus otras bombillas Hue también.

Ahora, active la aplicación Hue y busque una bombilla de la misma manera que lo harías con una bombilla Hue regular. Si aparece  !enhorabuena! pero si no,  intentelo de nuevo hasta conseguirlo

How to get Ikea Trådfri smart light bulbs working with Philips Hue

Se tiene cierto éxito en lo que controla la aplicación Hue  permitiendo con las bombillas de IKEA  encenderla ,apagarlas o atenuarlas, pero no parece ser capaz de cambiar entre los modos blancos, por ejemplo 

También deberías poder usar Alexa , Siri o Movistar Home  para controlar tus bombillas de IKEA que estén emparejadas con un puente Hue, aunque aún no hay funciones de Asistente de Google .

Si quiere usar sus controladores físicos de IKEA de nuevo, esto es posible, pero puede dar problemas  así que no se recomienda.

IKEA Trådfri en otros centros de casa inteligentes

Además de tener sus bombillas inteligentes de IKEA en funcionamiento en su aplicación Philips Hue – hay otros hubs y plataformas – todo sin la necesidad de una puerta de enlace IKEA Trådfri.

Cualquier centro de casa inteligente con ZigBee a bordo, en teoría, debe trabajar con las bombillas Trådfri, aunque algunos son más sencillos que otros, por ejemplo el emparejamiento con un hub de Wink y el control a través de la aplicación Wink es muy sencillo, aunque, al igual que Hue,  pero este s  limita a los controles y la atenuación de solo encendido y apagado, sin cambios en el espectro blanco ni en el color.

Otro ejemplo es Samsung smartthings es una heramienta  mucho más complicada y que requiere no sólo una cuenta de desarrollador smartthings, sino también una comprensión de la codificación. e.

Anuncios

Cómo añadir luces económicas al puente Philips Hue


Aunque actualmente existen  en el mercado  algunos modelos procedentes del mercado asiático de luces controlables por wifi  ,dada la dificultad de ofrecer un alcance mayor , por su gran versatilidad , destacan aquellas controlables por el famoso  standard Zigbee , el cual constituye  el nombre de la especificación de un conjunto de protocolos de alto nivel de comunicación inalámbrica para su utilización con radiodifusión digital de bajo consumo, basada en el estándar IEEE 802.15.4 de redes inalámbricas de área personal (wireless personal area network, WPAN) y opera en bandas sin licencia, incluyendo 2.4 GHz, 900 MHz y 868 MHz..

Algo muy destacable de zigbee frente a wifi es su topología de red en malla lo cual mejora muchísmo la cobertura  global   ya que cada dispositivo actúa  de repetidor mejorando el alcance de la red  .Ademas  destaca su bajo consumo  y  su fácil integración  en  otros dispositivos convencionales al requerir muy  poca electronica , lo cual lo hace ideal para aplicaciones domóticas , como por ejemplo el control de  luminarias.

A diferencia de las  luces con wifi , integrado , para conformar una red basada en Zigbee  se  requieren tres actores:

  • ZC( Zigbee Coordinator) o coordinador Zigbee , es el es dispositivo mas completo pues solo debe existir  uno por red . Sus funciones son las de encargarse de controlar la red y los caminos que deben seguir los dispositivos para conectarse entre ellos.ed.
  • ZR ((Zigbee Router) o router Zigbee,  Interconecta dispositivos separados en la topología de la red, además de ofrecer un nivel de aplicación para la ejecución de código de usuario.Suele ir intgrado en ZC
  • ZED (Zigbee End Device)  o dispositivo final Posee la funcionalidad necesaria para comunicarse con su nodo padre (el coordinador o un router), pero no puede transmitir información destinada a otros dispositivos, así este tipo de nodo puede estar dormido la mayor parte del tiempo, consumiendo muy poco  .Ademas tiene requerimientos mínimos de memoria y es por tanto significativamente más barato lo cual lo hace ideal para integrarlo  en las propias luminarias.

Aunque existen muchos modelos de redes basadas en Zigbee , lo cierto es que el sistema Philips Hue prácticamente se ha convertido   el modelo de referencia del mercado  , siendo el  Huvb elte controlador que integra el coordinador y el router Zigbee en un único dispositivo , que permite conectar hasta 50 bombillas Hue además de 10 accesorios para poder ampliarlo

 

El puente de Philips Hue es pues la herramienta que permite la conexión y manejo de bombillas LED  compatibles con Zigbee , necesitando  tan solo conéctarlo a un router  por cable ethernet y descárgar  la aplicación Hue  para disfrutar de todas las ventajas disponibles,

Precisamente con la app  “Philips Hue ” disponible en Google  Play s puede programar y personalizar la iluminación de una  casa  permitiendo organizar fácilmente la iluminación por habitaciones. Se  puede encender o apagar todas las luces de las habitaciones o cambiar el color o el brillo en todas las bombillas según tu estado de ánimo o actividad lo cual es una tarea fácil de controlar, con independencia de la cantidad de bombillas.

Estas son algunas de su posibilidades:

  • Transformar la iluminación en una experiencia extraordinaria eligiendo  entre 16 millones de colores o cualquier tono de luz blanca.
  •  Activar sus mañanas, fomentando la concentración o cambiandoa una configuración más relajante al final del día, ya sea para leer un libro, relajarse después de la cena o prepararse para dormir.
  • Disfrutar de un atardecer en Honolulu o de una noche de fiesta en el Soho en Londres. Basta con pulsar la escena para transformar su habitación. La aplicación Philips Hue dispone de más de 30 escenas seleccionadas por nuestros diseñadores de iluminación.
  • Con un  algoritmo transformar su fotografía favorita en una escena personal Philips Hue. El algoritmos extrae los colores relevantes y los aplica de forma inteligente a las bombillas. Ahora puede utilizar tus bombillas Hue para revivir tus recuerdos utilizando tus propias fotografías.
  • Automatizar las luces como quiera: empieze a una hora concreta o a la puesta de sol, enciende y apague las luces o active una escena. Incluso puede simular que está en casa reproduciendo la rutina aleatoriamente.
  • Configurar y olvídarse gracias al conocimiento de la ubicación de la aplicación, las luces se encenderán automáticamente cuando llegue a la puerta de entrada o se apagarán al salir de casa.
  • Configurar las luces para que le ayuden a dormir por la noche y despertar revitalizado creando sus propias rutinas de sueño personalizadas para atenuar automáticamente las luces por la noche o para despertarle suavemente por la mañana.
  • Sorprender a sus amigos o dejar de preocuparse si tiene que andar por la casa a oscuras con las manos ocupadas. Tanto si desea encender o apagar las luces o cambiar el brillo de una habitación, puede hacer muchas cosas con la voz por ejemplo mediante el asistente de voz Movistar Home . Si tiene instaladas luces inteligentes (Phillips Hue), podrá controlar el apagado y encendido de las luces del salón a través del comando de voz, “OK Aura, enciende las luces” u “OK Aura, apaga las luces”, así como elegir el color o la intensidad de la iluminación de forma táctil en la pantalla de su Movistar Home.

 

Aunque en realidad  el hub de Philips Hue  tiene un precio razonable de unos 49€  , el precio de las luminarias  Philips  Hue compatibles con Hue no  lo es tanto(a partir de 25€ por luminaria)  ,lo cual hace que muchas personas se cuestionen la viabilidad del sistema Hue

Afortunadamente   aparte de la bombillas Philips Hue  existen varios fabricantes  como Ikea o la marca Holandesa Inn  que están fabricando bombillas compatibles con el Hub de Philips Hue  mucho mas económicas ( casi el 50% según los casos) , y que por supuesto  son controlables tanto con la aplicación móvil como por los asistentes de Voz

Veamos ahora  como conectar al puente de Philips Hue las luminarias económicas Inn que por cierto también  son compatibles con Alexa ,Google Home y Movistar Home ( pero lamentablemente no funciona con Apple HomeKit o el modo Entretenimiento.)

El procedimiento para  conectar  este  tipo de bombillas basadas en Zigbee  con el Hub de Philips Hue  en realidad no es complicado:

  1. Inicie la aplicación Hue en su smartphone,
  2. Vaya a Configuración y seleccione ‘Configuración de la lámpara‘.
  3. Luego elija “+” en la parte inferior derecha y luego “Buscar“.
  4.  Luego apague la lámpara interior y vuelva a encenderla. La lámpara parpadeará 2x, lo que indica que se puede conectar.
  5.  Cuando el puente haya encontrado la lámpara (esto es cuestión de segundos), la lámpara nuevamente parpadeara 1x para confirmar que está conectada al puente.
  6.  Un poco más tarde, la lámpara estará visible en la aplicación Hue y podrá controlarla. ¡Esto puede tardar un rato! Si la lámpara interna no coincide, verifique estas instrucciones paso a paso en la sección de descargas o póngase en contacto con el Servicio al Cliente.

Si no le funciona el prendimiento  anterior , puede hacerle un RESET a la propia lampara Inn  siguiendo los siguintes pasos

  • Encienda la lámpara por un mínimo de 5 segundos y luego apáguela y enciéndala 6 veces con intervalos de alrededor de 0,5 segundos.
  • Se puede apagar y encender con el interruptor (de pared) o apagando y encendiendo manualmente la lámpara en el zócalo de la luminaria.
  • Después de la sexta vez, la lámpara parpadeará breve mente dos veces para indicar que está nuevamente en el estado “nuevo de fábrica” ​​y se puede volver a acoplar.

 

Es importante destacar que este tipo de luces  deben estar acopladas a su puente para garantizar que solo usted pueda controlar sus luces, y no su vecino (y viceversa). Mientras las luces no estén acopladas a un puente, parpadearán brevemente cuando se enciendan.

Para acoplar las luces al puente, use la aplicación para hacer que el puente busque las luces, y luego encienda las luces una por una. Cada luz parpadeará brevemente cuando se encienda porque aún no está acoplada en ese momento, luego se encuentra dentro de los 4 segundos y luego vuelve a parpadear para indicar que ahora está acoplada.

*

Como supeditar el encendido de una TV al de un descodificador,Blueray u otros dispositivos ( parte 1)


Puede parecer  extraño , pero cada vez tenemos dispositivos  conectados a nuestro TV  que  suelen ser  el origen de  vídeo  por defecto  como pueden ser dispositivos Android   TV, reproductores blueray, etc.  o   sobre todo descodificadores de TV  

En este sentido  podría ser interesante  supeditar  automáticamente el  encendido  de la TV  al de la fuente de vídeo ( normalmente un descodificador de TV) , para lo cual   vamos a intentar implementar una solución que lo automatice

Pensando en una solución , una aproximación  podría ser basarse en  las señales de infrarrojos entre el TV  y la fuente de vídeo ,pero esto conlleva mucha complejidad pues en el mercado existe una infinidad de marcas  y modelos de  dispositivos diferentes , que haría  muy difícil  contemplar un método practico para resolverlo , así  que debemos pensar en otra solución …

Pensando  en la variación del consumo de un dispositivo  ,una solución puede pasar por detectar  esa variación  de consumo   y con ello  sabremos si debemos o no activar la TV , para lo cual nos puede basta el sensor   ACS712    , un  Modulo Sensor de corriente para Arduino con un rango de medida máximo de 5 Amperios ( suficiente para la mayoría de los dispositivos  que conectaremos al TV) 

Este sensor esta basado  en efecto Hall   que detecta el campo magnético que se produce por inducción de la corriente que circula por la línea que se está midiendo , por lo que no hay disipación de potencia a través de este como ocurriría  con soluciones clásicas  que  usarían una resistencia de valor bajo  en serie  para medir la corriente que circula por ella  y el circuito (pero  con el consiguiente disipación  de potencia en esta )

Concretamente  en las pruebas  junto a un Arduino UNO , usaremos el  chip sensor  ACS712ELC-05A  alimentado  con  5V a través del propio Arduino ( lleva un led a bordo como e indicador de energia) 


El modulo puede medir los positivos y negativos de máximo 5 amperios, correspondiente a la salida analógica 185mV / A   entregando una salida de voltaje proporcional a la corriente, Dependiendo la aplicación podemos usar otros módulos  como el ACS712-05A, ACS712-20A o el ACS712-30A, para rangos de 5, 20 o 30 amperios respectivamente

El  ACS712  podemos encontrarlo en módulos, los cuales nos facilitan sus conexiones, Este modulo  trae una bornera para conectar la línea que queremos medir ( el descodificador)  y 3 pines por el otro extremo: dos para conectar la alimentación y un pin para la salida analógica.

Para las conexiones en el módulo debe  guiarse por los nombres de los pines, en algunos modelos vienen en diferente orden pero marcados en la serigrafia como Gnd,Out  y Vcc . En nuestro caso Vcc ira al pin +5V de Arduino, GND al GND del Arduino y  Out lo conectaremos al pin analógico de Arduino  A0 

En los terminales opuestos del  ACS712  conectaremos  en serie la alimentación del Descodificador ,o dispositivo que  vaya a controlar  la TV . Para medir la corriente se  debe conectar en serie con el dispositivo o carga, nunca conectar en paralelo a la fuente de voltaje.

 

 

El rango de corriente que podemos medir y sensibilidad varían dependiendo del modelo del integrado, existen tres modelos los cuales detallamos a continuación:

Modelo Rango Sensibilidad
ACS712ELCTR-05B-T -5 a 5 A 185 mV/A
ACS712ELCTR-20A-T -20 a 20 A 100 mV/A
ACS712ELCTR-30A-T -30 a 30 A 66 mV/A

El sensor  ACS712  nos entrega un valor de 2.5 voltios para una corriente de 0A y a partir de allí incrementa proporcionalmente de acuerdo a la sensibilidad, teniendo una relación lineal entre la salida de voltaje del sensor y la corriente. Dicha relación es una línea recta en una gráfica Voltaje vs Corriente donde la pendiente es la sensibilidad y la intersección en el eje Y es 2.5 voltios. La ecuación de la recta seria la siguiente

ecuacion V vs I en ACS712

Donde la pendiente es m y equivale a la Sensibilidad

Despejando tendremos la ecuación para hallar la corriente a partir de la lectura del sensor:

ecuacion para la corriente ACS712

 

Para realizar la lectura de corriente simplemente se necesita leer la entrada analógica y con la formula antes expuesta obtener la corriente.

A continuación se muestra el código para un realizar la lectura de corriente:

float Sensibilidad=0.185; 
//sensibilidad en Voltios
/Amperio para sensor de 5A void setup()
{    Serial.begin(9600); }
void loop()
{    float voltajeSensor= analogRead(A0)*(5.0 / 1023.0);
//lectura del sensor   
 float I=(voltajeSensor-2.5)/Sensibilidad;
//Ecuación  para obtener la corriente
 Serial.print("Corriente: ");
 Serial.println(I,3);
 delay(200);     
}

En nuestro caso estamos trabajando con un sensor de 5A ( ACS712  )  por eso usamos el valor de sensibilidad de 0.185V/A que es el equivalente 185mV/A que nos da el fabricante, si están trabajando con el sensor de 20A, reemplazar el valor de la sensibilidad por 0.100 V/A.

 

Existen varios tipos de filtros, que dependiendo de la complejidad pueden consumir recursos en la programación de nuestro Arduino, en nuestro caso  simplemente usaremos la media aritmética de varias lecturas consecutivas, implementar el promedio de las lecturas en Arduino es sencillo y fácil de entender, simplemente hay que sumar las lecturas y dividirlas en un  número de muestras suficiente.
La cantidad de muestras para calcular el promedio depende del nivel de ruido que tengan .En nuestro ejemplo con 200.000 son un valor lo suficiente bueno  para que nos de un resultado bastante preciso

El programa mejorado  seria el siguiente:

float Sensibilidad=0.185; 
//sensibilidad en Voltios/Amperio para sensor de 5A void setup()
{    Serial.begin(9600);
}
void loop()
{
 float I=get_corriente(200000);//obtenemos la corriente promedio de 200.00 muestras
 Serial.print("Corriente: ");
 Serial.println(I,3);
 delay(100);     
}
float get_corriente(int n_muestras)
{
 float voltajeSensor;
 float corriente=0;
 for(int i=0;i<n_muestras;i++)
 {    voltajeSensor = analogRead(A0) * (5.0 / 1023.0);
////lectura del sensor   
 corriente=corriente+(voltajeSensor-2.5)/Sensibilidad;
//Ecuación  para obtener la corriente  
}
 corriente=corriente/n_muestras;
 return(corriente);
}

 

 

Como  el error que obtenemos  aun con el numero tan elevado de muestras es grande, debemos de recalibrar y hallar los valores reales puesto que los valores que nos da el fabricante no son exactos.

Recordemos la ecuación que usamos para hallar la corriente:

ecuacion para la corriente ACS712

En esta ecuación solo tenemos dos constantes: los 2.5 que es el voltaje del sensor cuando la corriente es 0V y la sensibilidad, que equivale a la pendiente de la recta Voltaje Vs Corriente; tenemos que calcular los valores reales de estas dos constantes. Al ser una recta, basta con obtener dos puntos y con estos podemos calcular constantes.

Para esto necesitamos un polimetro en la escala de Intensidad   ( debe ser de buena precisión, ya que este será la herramienta para calibrar)  . El polimetro, el ACS712  y la carga deben de conectarse en serie. 

Después de conectar el aparato de medida y el  sensor, debemos de tomar lecturas de voltaje del sensor, esto se hace con el siguiente programa.

void setup() 
{  
 Serial.begin(9600);
} void loop()
{  
float voltajeSensor =get_voltage(10000);
//obtenemos voltaje del sensor(10000 muestras)
 Serial.print("Voltaje del sensor: ");
 Serial.println(voltajeSensor ,3);
     }
float get_voltage(int n_muestras)
{  float voltage=0;  
 for(int i=0;i<n_muestras;i++)
 {    
voltage =voltage+analogRead(A0) * (5.0 / 1023.0);    
 }  voltage=voltage/n_muestras;  return(voltage);
}

El primer punto que debemos medir es para una corriente de 0 amperios: esta es una de las constantes, en nuestro caso 2.527, que corresponde al punto P1(2.527,0)

Para hallar la segunda constante necesitamos una segunda medida, se recomienda que no sea cercano al valor de la primera medida, en nuestro caso usaremos una carga cuya corriente es superior a 1 amperio.Como se observa en el sensor  un voltaje de 2.687, y en el amperímetro medimos 1.155A, este sería nuestro segundo punto P2(2.687,1.155) ,

Para calcular la sensibilidad simplemente calculamos la pendiente.

Teniendo estos dos valores la ecuación para calcular la corriente es:

ecuacion de sensibilidad

Donde sensibilidad=0.139 V/A

Con estos nuevos valores debemos trabajar los ejemplos anteriores

Tener en cuenta que cada sensor tiene su propia característica

Otra forma puede ser en tomar varios puntos y al final aplicar regresión y hallara la ecuación de la recta.

 

 

Con estos dos valores  contemplados en el programa, toca  ejecutar el programa  y observar la salida  del monitor serie    en función de cuando activamos el descodificador  y lo apaguemos . En nuestro caso , las lecturas son inferiores a 0.207 cuando esta en stand-bye    , superando este valor  cuando esta encendido

Estos valores   son precisamente  los que podemos usar como umbral  para activar o desactivar un pin de salida  por ejemplo para activar/desactivar  un rele que  a su vez alimente  al TV

Con todos estos cambios , el código final del programa que detecta  si se enciende o no el descodificador es el siguiente:

 

 

const int sensorPin = A0; // seleccionar la entrada para el sensor
int sensorValue; // variable que almacena el valor raw (0 a 1023)
float value;
float Sensibilidad=0.185; //sensibilidad en Voltios/Amperio para sensor de 5A

void setup() {

// Iniciamos comunicacion serie
Serial.begin(9600);
}


void loop() {

float I=get_corriente(200000);//obtenemos la corriente promedio de 500 muestras

if (I<0.207)
{Serial.print(“Apagado: “);  // aqui podemos desactivar un pin binario de salida  para deactivar  un rel
Serial.println(I,3);
delay(100);
}
else
{Serial.print(“Encendido: “);// aquí podemos activar un pin binario de salida  para activar  un relé
Serial.println(I,3);
delay(100);
}


}


float get_corriente(int n_muestras)
{
float voltajeSensor;
float corriente=0;
for(int i=0;i
{
voltajeSensor = analogRead(sensorPin) * (5.0 / 1023.0);////lectura del sensor
corriente=corriente+(voltajeSensor-2.5)/Sensibilidad; //Ecuación para obtener la corriente
}
corriente=corriente/n_muestras;
return(corriente);
}

// cambio de escala entre floats
float fmap(float x, float in_min, float in_max, float out_min, float out_max)
{
return (x – in_min) * (out_max – out_min) / (in_max – in_min) + out_min;
}

 

 

 

Samsung UE22ES500 no enciende


Llega el momento  de encender nuestra TV Samsung para disfrutar  de nuestra serie o programa favorito   y de repente el TV  no responde ¿que es lo que ha podido pasar? Pues en primer lugar paciencia, respire y analice algunos puntos ,en el orden que vamos a comentar a continuación, pues al fin al cabo, todo en este mundo tecnológico tiene solución ¿no cree? Veamos pues que podemos hacer

Lógicamente  probaremos  primero que el mando responde   circunstancia que podemos probar con cualquier cámara digital : cada  vez que pulsamos un botón del mando, debería verse el haz blanco de luz saliendo del led infrarrojo de la parte superior del  mando . Obviamente si ni responde al mando, también lo intentaremos  con el control manual  del propio TV ( botón OK)   por si fuese el receptor infrarrojo.

SI ninguna de ambas acciones  activa la TV , por supuesto descartamos lo mas obvio : que haya alimentación de ca en el enchufe y que el cable de alimentación esta en buen estado

Si  hay tensión de ca , el cable esta bien y el mando funciona  , hay un detalle importante que nos deberíamos  percatar:  el  pequeño led testigo ( normalmente  rojo) del estado de  stand-bye del TV , pues  estando  alimentado , en el caso de que este no luzca , es un signo inequívoco, , de que la fuente de alimentación  interna  se ha  averiado , así que nos tocara  desmontarla  para  intentar repararla  o reemplazarla por otra en bien estado

 

¿Qué puede estar pasando? Pues que la mayoría de  las fuentes de alimentación de TV de  Samsung se auto-protegen   normalmente con  un diodo Shotkey de  potencia .  el cual con el tiempo termina rompiéndose.  Este hecho  de hecho se puede constatar si enciende la TV y usa un multímetro de precisión  (aunque lo ideal es usar el osciloscopio) . Ahí vera un voltaje de 0 a 1V , pero si el polimetro cuenta con un detector de pulsos, vera que cada pocos segundos hace un intento de arranque dando los 5V de la línea de 5V y al momento vuelve a caer (con un multímetro normal no se vera pues es un pulso muy rápido) .Esta casuistica  es síntoma que esta intentando arrancar pero algo esta mal, en este caso el diodo.

En efecto, estamos pues ante un caso típico   de avería de muchos  TV Samsung, los cuales  se les funde el diodo Schottky a la salida del transformador  de alta frecuencia , por lo que cambiándolos se arregla . El motivo es complejo : no creo que los fabrican para que en unos años acaben fallando,  pero  si es cierto que  estos diodos trabajan cercanos al limite por lo que con el tiempo terminan averiándose   ,. quizás  en en intento de ajustar el precio al máximo para que la tele sea lo más barata económica posible y poner los componentes lo más justos posible.

No obstante , un diodo  roto no siempre se rompe por agotamiento  ya que muchos   componentes se queman por que otros han fallado, subiendo la tensión, saltando el varistor y a continuación el fusible ( y  cambiando el fusible  se vuelve a quemar, hasta que no cambie el varistor seguirá quemando fusible pero quizás después también por que la sobre tensión haya sobrepasado el varistor y haya estropeado algo más.)

 

Veamos con  claridad paso a paso que ha podido  haber  pasado:

 

Primero quitaremos la peana

Ahora quitaremos  los tornillos de la tapa

 

Destapada la tapa , ahora ya podemos ver claramente las partes que compone el TV: 

  • La placa madre  (a la derecha) , destacando  sus conexiones a la fuente , a los altavoces  y al LVDS( interfaz del panel LCD)
  • Altavoces , que se conectan directamente a la placa madre
  • Fuente de Alimentación , la cual proporciona alimentación  tanto  a la placa madre como a los leds de retroiluminacion del panel
  • Botonera con testigo de alimentación

 

 

Antes de desmontar la fuente volveremos  a probar :

  • Que el mando responde   circunstancia que podemos probar con cualquier cámara digital
  •  Intentaremos  accionar la TV desde la botonera por si fuese el receptor infrarrojo
  • Nos cercioraremos que haya alimentación de ca en la salida  del  cable de alimentación  con un polimetro
  • Comprobaremos que  el  pequeño led testigo(  normalmente  rojo ) del estado de  stand-bye del TV ,no luce

 

Si el resultado ha sido negativo ,dado que no hay señal de alimentación  es síntoma  de que la fuente de alimentación  interna  se ha  averiado , así que nos tocara  desmontarla  para  intentar repararla  o reemplazarla por otra fuente idéntica en bien estado.

En primer lugar desconectaremos  la alimentación  !por favor nunca trabaje con la fuente enchufada pues se arriesga mucho su integridad!

Antes de medir nada   , tenga cuidado con el  condensador del primario de la fuente de alimentación (en este caso el condensador marrón que hay arriba a la izda del conector de alimentación de ca) : en prevención de problema descárguelo,  por ejemplo conectando a este una pequeña bombilla incandescente de coche de 12V, Una vez descargado el condensador “gordote” es tiempo de investigar posibles elementos quemados incluyendo el fusible principal

En segundo lugar  revisaremos  todos los diodos de potencia  con un polímetro en modo prueba de diodos ( en un sentido deben conducir  y en sentido contrario deberían estar abiertos )

Es muy tipico  en TV samsung  que el diodo de potencia Schottky que va separado a la salida del transformador de alta frecuencia sea el responsable de muchas averísa ,  por los estudiaremos  eespecialmente estos pues  incluso soldados podemos   probar si tanto en una dirección como en otra de sobre  1 ohm de continuidad,  lo cual significaría que  el diodo esta  en cortocircuito,.

Normalmente  el diodo es un SR3150  que puede  sustituirse  por un SR5150  que son ambos de 150V  (pero en vez de ser de 3A es de 5A con los 150V igual), En otras ocasiones  suele haber un SR320 quiere decir que es de 3 Amperios y 20 Voltios.

En todo caso si no cuenta con ninguno de estos modelos   generalmente se puede  sustituir esos diodos por uno más “todo terreno” como es el  BY399, un diodo  Shotkey de 800v 3Amp  que de muy facil adquisición  y mucho mas económico que los citados. De todas formas si tiene algún diodo Schottky de 5A o de más de 20V también sirve. Mientras no sea de menos no hay problema. Un SR520, SR540 o incluso un SR560, lo importante es que sea Schottky y de más amperaje o voltaje( ! nunca de menos!). Piensese que ahí hay presente alta frecuencia y si el diodo fuese  normal se rompería al poco tiempo.

 

Ahora  tocaría  soltar los  dos  conectores de la fuente, quitar los tonillos que la unen al chasis  y finalmente sacar la placa

 

Ahora aplicando calor con cuidado en ambos lados de soldadura y usando una bomba desoldadora ,extraeremos el diodo averiado   que volveremos a soldar en su lugar   ( no  equivocarse en el lado  y  hacerlo  conforme marca la serigrafia de la placa  ) 

 

Asegúrese que lo has soldado correctamente, que la franja blanca esta en el mismo sitio que la franja pintada en la placa  pues si lo has montado al revés puede provocar una buena avería.

Una vez colocado el diodo y soldado en su posición, volvernos a colocar tornillos y conectores  

Colocaremos la tapa  , conectaremos alimentación y cruzaremos los dedos

Si funciona !enhorabuena ! !ha arreglado el TV!

 

 

 

 

 

 

 

 

OpenAuto


Y es que en lugar de tener que gastar una fortuna en una pantalla para el coche que incluya Android Auto de marca como Pioneer o Sony el desarrollador Polaco Michal Szwaj   se decidió a crear este proyecto cuando buscaba incorporar un sistema Android Auto en su viejo coche,  por lo que descartado comprar un costoso equipo ,  la primera alternativa que se le ocurrió  fue  OpenAuto que  se lanzó  en el primer trimestre de 2018 de manera pública ( dado que las primeras versiones de Android Auto oficialmente no admitían autorradios de  terceros baratos ) , Desgraciadamente  como hemos visto,  instalarlo  a pesar  de  que existe un script que  puede hacer  todas las funciones , es algo complejo porque al fin al cabo requiere compilar código ,   así como añadir una serie de configuraciones para hacerla funcionar, motivo por el cual se lanzó a hacerlo todavía más sencillo creando una imagen en unas SD  con todo ya instalado  y pre-configurado .

En efecto se  puede hacer casi  lo mismo que Android Auto  gracias a la  nueva distribución de GNU/Linux llamada Crankshaft para lo cual  solo necesitaremos la Raspberry Pi  3 y una pantalla táctil, la cual desgraciadamente  tiene  una gran peculiaridad :sólo  funciona con la  pantalla táctil de 7″ oficial de la fundación Raspeberry ( unos 100€) . Sólo si se cuenta con ambas condiciones tan  solo habrá que  instalar  la imagen de Crankshaft y por supuesto encontrarle un hueco en el salpicadero de nuestro coche(su creador recomienda que compremos la pantalla oficial y una carcasa)

 

 

Crankshaft  esta en fase alfa y se puede descargar  gratuitamente desde su página web oficial pero sus autores no se responsabilizan de ningún problema que pueda surgir durante su utilización, ya que se distribuye de forma altruista y no una versión estable desarrollada por Google (por tanto, tenga mucho cuidado si lo utiliza  y depende  de esta).

Los  conceptos  sobre los que se centra esta distribución;

  • Amistoso y divertido:Una instalación base que debe “sólo trabajar” sin ninguna configuración extra , es decir sin tener que ejecutar un solo comando desde la consola .

  • Software libre ; respeta su libertad garantizada por la GPLv3, desarrollado por Open. Código fuente.

  • De gran alcance: nos  lo pone fácil para personalizar y desarrollar en él.

Android Auto es más que un concepto,  pues mientras Android Auto puede tomar la forma de software pre-instalado en un a elegante unidad principal de su coche  nuevo , en un contexto de Crankshaft,  Auto Android es, ante todo un reflejo de la aplicación que se ejecuta en tu teléfono Android   y por ende donde reside toda la magia , por lo que no es software que se ejecuta en una unidad principal (en este caso una  Rasbperry Pi 3  ) ya que  a aplicación Android Auto funciona en su teléfono que  sirve como  software de proyección – más simplemente mediante un cable USB – de sí mismo y admitiendo  incluso  aplicaciones como Google Maps, funcionando en su teléfono. Open fue desarrollado originalmente para su uso en el hardware como el Pi de Raspberry pi  con una pantalla táctil,  para usarlo en  combinación con  un teléfono con Android con  la aplicación Android Auto, proyectando la salida de la aplicación Android Auto un Raspberry Pi equipado con una pantalla táctil y funcionamiento Open, se convierte en una unidad principal de coche potencialmente muy bajo costo y eficaz comparable a la funcionalidad ofrecida por unidades principales actuales.

Crankshaft es una distribución Linux ha sido desarrollada para hacer más fácil de usar Open para configurar y ejecutar proporcionando la funcionalidad adicional de ayuda fuera de la caja que no es estrictamente parte de Open.

Una unidad principal de funcionamiento del Crankshaft:

  1. Tiene muy poco control sobre el teléfono y qué aplicaciones se ejecutan en él
  2. Solo maneja entradas relacionadas cuando toca la pantalla táctil   enviando estos datos a la aplicación de Auto Android en su teléfono
  3. Puede negarse a ayudar al audio del teléfono aunque esto puede ser útil si desea utilizar un Bluetooth estéreo ya trabajando en su coche
  4. Podría considerarse vinculada al teléfono Android que es el servidor con  todos los beneficios y límites que conlleva

 

Hardware 

Necesita los siguientes elementos

Getting started materials

  1. Una Raspberry Pi:

    • Los modelos 3B y 3B + son la opción razonable.

    • El Pi 2 sería conveniente pero carece de WiFi y Bluetooth a bordo que podría ser de utilidad.

    • El cero de Pi, A + y B Pi original pueden hacerlas a pesar de la aceleración de GPU de Open.

  2. Por lo menos una tarjeta de microSD de 4GB  :Tarjetas Sandisk y Samsung (la línea EVO) son grandes

  3. Pantalla táctil de frambuesa Pi : de hecho el oficial 7″ modelo funciona muy bien alimentado desde el Pi a través de los pines GPIO, como física pin 2 (5V) y la clavija 6 (GRND)

  4. Un smartphone con Android 5.0 o superior  con la aplicación de Android Auto instalada

  5. Un cable USB para conectar el teléfono a su Raspberry Pi

  6. Una fuente de energía como un enchufe accesorio de 12V al convertidor del USB.

    • Conseguir una adecuada con alto amperaje (Amp 2 o más).

    • No compre los baratos en las tiendas de articulos orientales.

  7. Un cable USB a micro USB para alimentar el Pi.

  8. Una solución de salida de audio como la radio del coche.

    • Un cable de audio 3.5mm Macho a macho le permitirá conectar el Raspberry Pi para Aux zócalo de su coche, si tienes uno.

    • Otra opción es audio Bluetooth.

  9. Un micrófono USB Si desea utilizar al asistente de “Google OK”.

 

Si usted está confundido con la pantalla táctil, consulte a la guía de “construcción de la pantalla” en ThePiHut.

Assembled screen

La pantalla montada debería verse como esto.

Después de conectar el cable de cinta, necesitarás conectar dos cables adicionales más.

Estos son algunos diagramas útiles

Corresponde a:

Usted tendrá que conectar los 2 pines: tierra (GND/negro) y 5V (rojo) a los 2 pines etiquetado GND y 5V de la pantalla táctil. N

Tome  mucha  precaución al conectar lo 5V/GND, ya que podría freír la pantalla / el Pi si lo conecta mal.

Software

Vaya a la sección lanzamientos de Crankshaft y descargue el archivo ZIP de 500 MB o así a su ordenador.

Una vez ,  descargada la imagen correspondiente  en su ordenador  siga los siguientes pasos:

  • Inserte la tarjeta SD en el lector de tarjetas SD  de su ordenador comprobando cual es la letra de unidad asignada. Se puede ver fácilmente la letra de la unidad, tal como G :, mirando en la columna izquierda del Explorador de Windows.
  • Puede utilizar la ranura para tarjetas SD, si usted tiene uno, o un adaptador SD barato en un puerto USB.
  • Descargar la utilidad Win32DiskImager desde la página del proyecto en SourceForge como un archivo zip; puede ejecutar esto desde una unidad USB.
  • Extraer el ejecutable desde el archivo zip y ejecutar la utilidad Win32DiskImager; puede que tenga que ejecutar esto como administrador. Haga clic derecho en el archivo y seleccione Ejecutar como administrador.
  • Seleccione el archivo de imagen que ha extraído anteriormente de la imagen de Raspbian de Crankshaft .
  • Seleccione la letra de la unidad de la tarjeta SD en la caja del dispositivo. Tenga cuidado de seleccionar la unidad correcta; si usted consigue el incorrecto puede destruir los datos en el disco duro de su ordenador! Si está utilizando una ranura para tarjetas SD en su ordenador y no puede ver la unidad en la ventana Win32DiskImager, intente utilizar un adaptador SD externa.
  • Haga clic en Escribir y esperar a que la escritura se complete.
  • Salir del administrador de archivos  y expulsar la tarjeta SD.
  • Ya puede insertar la SD en su Raspberry Pi en el adaptador de micro-sd , conectar un monitor por el hdmi , conectar un teclado y ratón en los  conectores USB, conectar la  con un cable ethernet  al router  conectividad a Internet y finalmente conectar la alimentación  para comprobar que la Raspeberry arranca con la nueva imagen

 

Por último, poner todo en iniciar su coche y conecte el teléfono!

No es un software de nivel alpha, por lo que. No es seguro  que funcione  al 100%   incluso con el hw probado  y sw de Google o Android. T

Si es  un desarrollador que es capaz de compilar software en Linux, puedes seguir las instrucciones de Open incluso cuando el Crankshaft  no funcione en su hardware personalizado.

Puede ver en este hilo una lista de compatibilidad de teléfonos y Hardware.El listado de móviles compatibles incluye prácticamente todos los recientes, y puede comprobar el listado de usuarios que afirma que funciona con su móvil en la página de GitHub   pero como decíamos al principio de este post el problema es la pantalla táctil pues de no ser la oficial  puede que visualize  perfectamente el interfaz  pero que no reaccione a las pulsaciones .

Personalmente lo he probado con la pantalla  kuman de 5”  ( bastante mas económica que la de 7″ oficial ) pero desgraciadamente aunque  la imagen es  perfecta del interfaz  desgraciadamente  no responde a las pulsaciones ante la pantalla 

Al estar todavía en fase experimental, le faltan bastantes funcionalidades. Por ejemplo, no cuenta con implementación para micrófono, por lo que el control por voz mediante Ok Google no funciona. Tampoco tiene Bluetooth, por lo que es necesario conectar el móvil mediante USB para poder usarlo con el sistema

 

Via instructables

Como emular un mando con Arduino


A veces   puede ser  interesante emular del comportamiento  de un mando infrarrojo  con el fin de automatizar procesos  que de otra manera  seria mucho mas complejo . Como ejemplo típico de dispositivos que podemos controlar vía infrarojos, hablamos de  reproductores de cámaras, televisores, DVD, VCR, lectores de blueray, equipos de sonidos, descodificadores  y  un largo etcétera 

Aunque pueda parecer descabellado repetir las mismas señales desde una placa Arduino , lo cierto  es que no es descabellado querer emular este comportamiento , porque  podemos  hacer cosas  que seria muy dificultoso  sin la ayuda del procesamiento de señales de infrarojos como por ejemplo  encender automáticamente  el Aire Acondicionado  cuando la temperatura  suba un determinado valor , o se desconecte a una determinadas horas ,  se apague  cuando no haya movimiento  y un largo  etcétera 

Como paso previo  debemos analizar las señales infrarrojas emitidas por el mando usado para el control de ese dispositivo  por lo que deberemos averiguar  cómo recibir los códigos y luego una vez conocidas intentar ver como transmitirlas.

Para nuestra tarea necesitamos :

  • 1 x Arduino (cualquier versión sirve  siempre que pueda procesar señales  “PWM” )
  • 1 x LED IR   (usted puede conseguir éstos de cualquier TV remoto)
  • 1 x receptor IR (usted puede conseguir éstos de cualquier TV remoto)

 

Preparación para recibir señales

Para el análisis  de las señales infrarrojas  producidas por el mando del  dispositivo a controlar en primer lugar necesitaremos  un receptor de infrarrojos ,   que bien  puede proceder de   uno reciclado de cualquier viejo proyecto que ya no utilice  o bien adquirido específicamente  en el comercio

Una interesante opción son los famosos kits para Arduino que integran por unos 4€  todo los necesario para habilitar la comunicación en los dos sentidos  gracias a un led IRDa, un receptor IRDA  y un mando para pruebas.

Kit Modulo Receptor Infrarojo IR Protocolo Nec con Mando a Distancia Arduino

Como sugerencia  para captar el código correcto , deberíamos poner el receptor IR y el mando en una caja opaca  o algo que sea oscuro  lo cual  asegurará que habrá el mínimo de interferencias y  podremos tener el código más claro para que no tengamos que programar  nuestro  Arduino  muchas veces para una simple tarea. También, asegúrese de que estar alejados de personas viendo la televisión.

Realmente el circuito es bastante sencillo pues únicamente tendremos que alimentar con 5v DC  ( que podemos tomar directamente desde nuestro Arduino )   y luego conectar la salida del receptor digital al pin digital A2 de Arduino

 

Picture of Preparing to Receive Signals

Una vez montado el simple circuito del receptor de infrarrojo es hora de  subir el programa a su Arduino  para  poder descodificar la señal infrarroja .

El siguiente programa utiliza el Arduino y un PNA4602 para descifrar IR recibido lo cual se  puede utilizar para hacer un receptor de infrarrojos. (buscando un código en particular) o transmisor (pulsando un LED IR a ~ 38KHz para el duraciones detectadas,

Este código es de dominio público (visite http://www.ladyada.net y adafruit.com), pero en esta ocasión se ha traducido para que sea mas legible y fácil de entender:


// Necesitamos usar los métodos de lectura de pin ‘raw’  porque el tiempo es muy importante aquí y el digitalRead () es un  procedimiento s más lento!

#define IRpin_PIN PIND
#define IRpin 2

// el pulso máximo que escucharemos: 65 milisegundos es mucho tiempo
#define MAXPULSE 65000

// lo que debería ser nuestra resolución de tiempo, más grande es mejor ya que es más ‘preciso’ – pero demasiado grande y no se conseguirá  tiempo exacto
#define RESOLUTION 20

// almacenaremos hasta 100 pares de pulsos (esto son muchos )
uint16_t pulses[100][2]; // par es pulso alto  y bajo 
uint8_t currentpulse = 0; // indice para pulsos que estamos almacenando

void setup(void)

{
Serial.begin(9600);
Serial.println(“Ready to decode IR!”);
}

void loop(void)

{

// tiempo de almacenamiento temporal
uint16_t highpulse, lowpulse;

//empezar sin pulso 
highpulse = lowpulse = 0;

//esto es demasiado lento!
while (IRpin_PIN & (1 << IRpin)) {
// pin esta a nivel alto

// continúa otros microsegundos
highpulse++;
delayMicroseconds(RESOLUTION);

// Si el pulso es demasiado largo, ‘se agotó el tiempo’ – o bien nada / se recibió o el código está terminado, así que imprima lo que  hemos obtenido hasta ahora, y luego reiniciamos
if ((highpulse >= MAXPULSE) && (currentpulse != 0)) {
printpulses();
currentpulse=0;
return;
}
}
// no nos detuvimos, así que escondamos la lectura
pulses[currentpulse][0] = highpulse;

// lo mismo que arriba
while (! (IRpin_PIN & _BV(IRpin))) {
// pin esta aun bajo
lowpulse++;
delayMicroseconds(RESOLUTION);
if ((lowpulse >= MAXPULSE) && (currentpulse != 0)) {
printpulses();
currentpulse=0;
return;
}
}
pulses[currentpulse][1] = lowpulse;

// leemos un pulso alto-bajo con éxito, ¡continuamos!
currentpulse++;
}

void printpulses(void) {
Serial.println(“\n\r\n\rReceived: \n\rOFF \tON”);
for (uint8_t i = 0; i < currentpulse; i++) {
Serial.print(pulses[i][0] * RESOLUTION, DEC);
Serial.print(” usec, “);
Serial.print(pulses[i][1] * RESOLUTION, DEC);
Serial.println(” usec”);
}
}


Una vez que hemos subido el código anterior  y  todo está configurado correctamente, abrir el serial monitor haciendo clic en el botón en el programa de Arduino que es el botón de un círculo en la imagen y  ya estára en marcha así que ahora usted necesitará encontrar un control remoto que desee usar para controlar algo con Arduino

El proceso  esquemáticamente  a seguir es el siguiente :

  1. Encontrar el mando a distancia del dispositivo  que quiere controla
  2. Ejecutar el código del  receptor anteriormente citado
  3. Presione el botón del mando cuyo  código desea obtener 
  4. Ver el Monitor Serial
  5. Pegar el todo el código del monitor serie  en un editor de texto 
  6. Repetir los paso 3, 4 6  con todos los botones del mando que desee descodificar 

 Interpretando las señales

Una vez siga la secuencia de paso anteriores recibirá un montón de números seguidos por “usecs” o “usec”.
Asegúrese de que ha copiado la señal que se desea formateando la salida para más fácil referencia.

Se verá algo como esto:
500 usec, 300 usec
600 usec, usec 1200

Pero habrá números mucho más que eso.

Ahora en el programa emisor  verá esto bastantes veces:

delayMicroseconds();
pulseIR();

Es decir tenemos que  tomar el primer número y poner paréntesis en delayMicroseconds(“here”); el  valor obtenido en el monitor
y a su vez   tomar el segundo número de la misma línea como el de la delayMicroseconds()  valorar y poner en el paréntesis de pulseIR(); valor.

Veamos otro ejemplo .Si conseguimos esto en el monitor serial:

OFF ON
1660 usec, usec 580
1640 usec, usec 560

Ahroa para poner los  correspondiente valores en sus áreas correspondientes lo haremos asi :

delayMicroseconds(1660);
pulseIR(580);
delayMicroseconds(1640);
pulseIR(560);

Como puede apreciar ,la  tarea de transcripción  es muy fácil.

Una vez que tenga los códigos que desee, abra un nuevo  archivo IR_SEND.pde en el programa de Arduino y luego tendremos que  poner  los valores que tiene del monitor de serie entre paréntesis haciéndolo  del mismo modo  que hemos visto anteriormente .

Ahora, una vez que tenemos los códigos que desea y haya cargado el programa con la señal que desea enviar, todo lo que tiene que hacer es conectar el LED IR al pin 13 y luego a tierra  No necesita la resistencia si tiene un Duemilanove Arduino porque tiene una resistencia integrada para PIN 13, por lo que no tiene que preocuparse.


Como ejemplo veamos este código cuando se presiona el botón para subir el canal en un  control remoto de Comcast. . Aquí está el código de Serial Monitor: Recibido:

OFF  ON
36328 usec, 280 usec
820 usec, 300 usec
1580 usec, 320 usec
640 usec, 240 usec
2740 usec, 240 usec
1280 usec, 240 usec
1240 usec, 240 usec
1120 usec, 240 usec
2600 usec, 240 usec
12740 usec, 240 usec
840 usec, 240 usec
980 usec, 240 usec
700 usec, 240 usec
700 usec, 240 usec
720 usec, 240 usec
2460 usec, 260 usec
700 usec, 240 usec
700 usec, 240 usec
14904 usec, 260 usec
820 usec, 240 usec
1660 usec, 240 usec
700 usec, 260 usec
2740 usec, 240 usec
1240 usec, 240 usec
1260 usec, 240 usec
1100 usec, 240 usec
2620 usec, 240 usec
12720 usec, 260 usec
840 usec, 220 usec
2080 usec, 240 usec
1780 usec, 260 usec
700 usec, 240 usec
700 usec, 240 usec
2480 usec, 240 usec
700 usec, 240 usec
700 usec, 240 usec

Aquí está el código realizado a partir de los datos en bruto anteriores  pero no se  asociado al código  

En el siguiente  programa   se ha introducido  un detalla original ; Arduino cambiará el canal cada diez segundos para que se puedan hacer otras cosas , Por ejemplo mientras se ve televisión y esta haciendo otras cosa  así  no tendrá que cambiar el canal de modo que el sw  recorrerá los canales para que tenga las manos libres. (todos sabemos que presionar un botón es tan difícil, ¿por qué no hacerlo de forma automática?)

 

He aquí el programa realizado por Wally_Z:


int IRledPin =  13;    // LED conectado al pin digital 13

// El método setup () se ejecuta una vez, cuando comienza el boceto

void setup()   {               
  // initializa  el pin como salida :
  pinMode(IRledPin, OUTPUT);     

  Serial.begin(9600);
}

void loop()                    
{
  SendChannelUpCode();

  delay(20*1000);  // espera veinte segundos (20 segundos * 1000 milisegundos) Cambia este valor para diferentes intervalos.

}

// Este procedimiento envía un pulso de 38KHz al IRledPin  para un cierto  numero de microsegundos. Usaremos esto siempre que tengamos que enviar códigos.

void pulseIR(long microsecs)

{
  // contaremos desde la cantidad de microsegundos que se nos dice que esperemos

  cli();  // esto apaga cualquier interrupción de fond

  while (microsecs > 0) {
   // 38 kHz tiene aproximadamente 13 microsegundos de alto y 13 microsegundos de bajo
   digitalWrite(IRledPin, HIGH);  //Esto lleva alrededor de 3 microsegundos
   delayMicroseconds(10);         // esperar 10 microseconds
   digitalWrite(IRledPin, LOW);   // esto toma sobre 3 microseconds
   delayMicroseconds(10);         // esperar   10 microseconds

   // asi que  26 microseconds  todo junto
   microsecs -= 26;
  }

  sei();  // esto devuelve el control
}

void SendChannelUpCode()

{
  // Este es el código para CHANNEL + para TV COMCAST.
 
  delayMicroseconds(36328);      //Tiempo libre (columna IZQUIERDA)      
  pulseIR(280);                               //Tiempo en (columna DERECHA) <——- NO MEZCLAR ESTOS ARRIBA
  delayMicroseconds(820);
  pulseIR(300);
  delayMicroseconds(1580);
  pulseIR(320);
  delayMicroseconds(640);
  pulseIR(240);
  delayMicroseconds(1280);
  pulseIR(240);
  delayMicroseconds(1240);
  pulseIR(240);
  delayMicroseconds(1120);
  pulseIR(240);
  delayMicroseconds(2600);
  pulseIR(240);
  delayMicroseconds(12740);
  pulseIR(240);
  delayMicroseconds(840);
  pulseIR(240);
  delayMicroseconds(980);
  pulseIR(240);
  delayMicroseconds(700);
  pulseIR(240);
  delayMicroseconds(700);
  pulseIR(240);
  delayMicroseconds(720);
  pulseIR(240);
  delayMicroseconds(2460);
  pulseIR(240);
  delayMicroseconds(700);
  pulseIR(240);
  delayMicroseconds(700);
  pulseIR(240);
  delayMicroseconds(14904);
  pulseIR(240);
  delayMicroseconds(820);
  pulseIR(240);
  delayMicroseconds(1600);
  pulseIR(240);
  delayMicroseconds(700);
  pulseIR(260);
  delayMicroseconds(2740);
  pulseIR(240);
  delayMicroseconds(1240);
  pulseIR(240);
  delayMicroseconds(1260);
  pulseIR(240);
  delayMicroseconds(1100);
  pulseIR(240);
  delayMicroseconds(2620);
  pulseIR(240);
  delayMicroseconds(12720);
  pulseIR(260);
  delayMicroseconds(840);
  pulseIR(220);
  delayMicroseconds(2080);
  pulseIR(240);
  delayMicroseconds(1780);
  pulseIR(260);
  delayMicroseconds(700);
  pulseIR(240);
  delayMicroseconds(700);
  pulseIR(240);
  delayMicroseconds(2480);
  pulseIR(240);
  delayMicroseconds(700);
  pulseIR(240);
  delayMicroseconds(700);
  pulseIR(240);
}

 

Via Instrucables.com

 

 

 

Android Auto con una Raspberry Pi


Android Auto, es un sistema que usa un hardware especifico  diseñado para poder utilizar algunas funciones de nuestros móviles mientras conducimos, como ver mensajes, cambiar de canción, recibir instrucciones para el GPS, hacer llamadas, etc. Hasta ahora era necesario que el coche fuera de los más nuevos e incorporara el sistema o incorporar una cara pantalla que lo incluya, pero gracias a Raspberry Pi ya no es necesario ¿le  interesa como lograrlo, pues siga leyendo porque la verdad es que no puede ser mas sencillo .

 

 

En efecto , en 2015, Google presentó Android Auto , un sistema que permite a los usuarios proyectar ciertas aplicaciones desde sus teléfonos inteligentes Android en la pantalla de información y entretenimiento de un automóvil. La interfaz amigable para el conductor de Android, con botones táctiles y comandos de voz más grandes, tiene como objetivo hacer que sea más fácil y seguro para los conductores controlar la navegación, la música, los podcasts, la radio, las llamadas telefónicas y más, mientras mantiene la vista en la carretera. Android Auto también se puede ejecutar como una aplicación en un teléfono inteligente Android, lo que permite a los propietarios de vehículos de modelos más antiguos sin pantallas de unidades principales para aprovechar estas características.

 

Si bien hay muchas aplicaciones disponibles para Android Auto, los desarrolladores están trabajando para ampliar  su catálogo.De hecho una nueva herramienta de código abierto llamada OpenAuto espera facilitarlo al ofrecer a los desarrolladores  como una forma de emular Android Auto en una Raspberry Pi 

 Con OpenAuto, los desarrolladores pueden probar sus aplicaciones en condiciones similares a las de cómo trabajarán en una unidad de cabeza de automóvil real ,  pero ademas ,  como puede imaginarse también sirve para implementar Android Auto en un vehículo convencional  que no contara  con esta facilidad .

Las funciones implementadas a día de hoy en Android Auto son:

  • Vídeo a 480p, 720p y 1080p a 30 o 60 fps
  • Decodificación hardware de vídeo en la Raspberry Pi 3 (hasta [email protected])
  • Reproducción de audio de todos los canales (multimedia, sistema y voz)
  • Entrada de audio para comandos de voz
  • Touchscreen y botones
  • Bluetooth
  • Inicio automático tras conectar el dispositivo
  • User-friendly

Además de la   Raspberry Pi 3 y un dispositivo Android  con la app de Android Auto instalada, se necesita:

  • Microfono USB : la Raspberry Pi 3 no tiene una entrada de micrófono, que se requiere para usar el Asistente de voz de Google ( si no se instala no se podrán dar ordenes vocales)
  • Dispositivo de salida de video: puede usar una pantalla táctil o cualquier otro dispositivo de salida de video conectado a HDMI o salida compuesta (RCA)
  • Dispositivo de entrada: por ejemplo, una pantalla táctil o un teclado USB

 

OpenAuto

OpenAuto es un emulador para la unidad principal de Android Auto.Emula el software de la unidad principal y le permite usar Android Auto en su PC o en cualquier otra plataforma integrada como Raspberry Pi 3.

El software de la unidad principal es una interfaz para la proyección automática de Android. Toda la magia relacionada con Android Auto, como la navegación, el Asistente de voz de Google o la reproducción de música, se realiza en el dispositivo Android.

 La proyección de Android Auto en la unidad principal se realiza utilizando el códec H.264 para video y el códec PCM para la transmisión de audio. Esto es lo que hace principalmente el software de la unidad principal: descodifica la transmisión de video H.264 y las transmisiones de audio PCM y las reproduce de manera conjunta. Otra función de la unidad principal es proporcionar entradas de usuario pues OpenAuto admite eventos táctiles y teclas duras.

Para una implementación exitosa, se necesita implementar el soporte de aceleración de hardware de video usando la GPU Raspberry Pi 3 (VideoCore 4).Gracias a esto, la proyección automática de Android en la  Raspberry Pi 3 puede manejarse incluso con una resolución de 1080p a 60 fps. Se pueden usar las bibliotecas cliente OpenMAX IL e IL entregadas junto con el firmware Raspberry Pi para implementar la aceleración de hardware de video.

Aprovechando el hecho de que el sistema operativo Raspberry Pi es Raspbian basado en Debian Linux, OpenAuto también puede construirse para cualquier otra plataforma basada en Linux que brinde soporte para la decodificación de video por hardware. La mayoría de las plataformas basadas en Linux proporcionan soporte para decodificación de video por hardware directamente en GStreamer. Gracias a las bibliotecas altamente portátiles como Boost y Qt , OpenAuto se puede construir y ejecutar en la plataforma Windows. 

El proyecto se basa en la instalación de una distribución Linux, Raspbian Stretch, a la que luego se le añaden librerías como las célebres Qt para poder ejecutar las aplicaciones orientadas a ser utilizadas en el coche.

A la Raspberry Pi 3 en la que se han basado para iniciar el proyecto se le conecta una pantalla táctil (480p, 720p o 1080p) que es recomendable para la interacción con el sistema. Completar el proceso es relativamente sencillo, y tanto el código fuente (en GitHub) como las instrucciones de instalación están disponibles públicamente.

El proyecto, desarrollado por Michal Szwaj, plantea por ahora un sistema en el que es posible controlar la reproducción multimedia —el soporte Bluetooth es protagonista—, o acceder a los mapas de Google, por ejemplo. De momento no se ofrecen funciones como la navegación GPS, pero la versatilidad de la Raspberry Pi hace que esa opción no parezca difícil de implementar.

El proyecto de hecho no solo está disponible para la Raspberry Pi, sino también para sistemas Linux y Windows, y su licencia GPLv3 invita a cualquiera a investigar y contribuir a una iniciativa que una vez más demuestra la versatilidad de la Raspberry Pi.

Componentes de Open Auto

El núcleo de OpenAuto es la biblioteca aasdk , que proporciona soporte para todas las funciones de Android Auto. La biblioteca aasdk está construida sobre las bibliotecas Boost, libusb y OpenSSL. libusb implementa la comunicación entre la unidad principal y un dispositivo Android (a través del bus USB). Boost proporciona soporte para los mecanismos asíncronos de comunicación. Es necesario para la alta eficiencia y escalabilidad del software de la unidad principal. OpenSSL se utiliza para cifrar la comunicación.

La biblioteca aasdk está diseñada para ser completamente reutilizable para cualquier propósito relacionado con la implementación del software de la unidad principal. Puede usarlo para crear su propio software de unidad principal para su plataforma deseada.

Otra biblioteca muy importante utilizada en OpenAuto es Qt. Proporciona soporte para multimedia, entrada de usuario e interfaz gráfica de OpenAuto. Y el sistema de compilación que está utilizando OpenAuto es CMake .

 El protocolo de Android Auto se toma de otro gran proyecto de unidad principal de Android Auto llamado HeadUnit . Las personas que trabajan en este proyecto hicieron un trabajo increíble en la ingeniería inversa del protocolo AndroidAuto y crearon los buffers de protocolo que estructuran todos los mensajes.

Para instalar Android Auto paso a paso podemos seguir los siguientes pasos :

  1. Construir aasdk 

    1. Instalar el software necesario 

      $ sudo apt-get install -y libboost-all-dev libusb-1.0.0-dev libssl-dev cmake libprotobuf-dev protobuf-c-compiler protobuf-compiler

      1. Repositorio de aasdk clon

      $ cd

      $ git clone -b master https://github.com/f1xpl/aasdk.git

      1. Crear el directorio aasdk_build en el mismo nivel que aasdk dir

      $ mkdir aasdk_build

      $ cd aasdk_build

      1. Generar archivos de cmake

      $ cmake -DCMAKE_BUILD_TYPE=Release ../aasdk

      1. Construir aasdk

      $ make

  2. Instalar el software necesario

$ sudo apt-get instala -y libqt5multimedia5 libqt5multimedia5-plugins libqt5multimediawidgets5 qtmultimedia5-dev libqt5bluetooth5 libqt5bluetooth5-bin qtconnectivity5-dev librtaudio-dev pulseaudio librtaudio5a

  1. Construir ilclient desde el  firmware de la Raspberry

$ cd /opt/vc/src/hello_pi/libs/ilclient

$ make

  1. Clonar repositorio de Open

$ cd

$ git clone -b master https://github.com/f1xpl/openauto.git

  1. Crear el directorio openauto_build en el mismo nivel que Open dir

$ mkdir openauto_build

$ cd openauto_build

  1. Generar archivos de cmake. Si es necesario, ajustar trazados por consiguiente a su localización de directorios aasdk y aasdk_build.

$ cmake-DCMAKE_BUILD_TYPE = liberación-DRPI3_BUILD = TRUE – DAASDK_INCLUDE_DIRS = “/ home/pi/aasdk/include”-DAASDK_LIBRARIES=”/home/pi/aasdk/lib/libaasdk.so”-DAASDK_PROTO_INCLUDE_DIRS = “/ home/pi/aasdk_build”-DAASDK_PROTO_LIBRARIES = “usual PI/AASDK/lib/libaasdk_proto.so”… /openauto

  1. Construir Open

$ make

  1. Ejecutar Open

$ /home/pi/openauto/bin/autoapp

 

Puede seguir todos los pasos anteriores  o bien seguir el instalador  creado por novaspirit , el cual hace todo el proceso automáticamente:

  1.  Descargar el script de instalación desde el  github de novaspirit                                       $ git clone https://github.com/novaspirit/androidauto_rpi_install 
  2. Ahora necesitamos cambiar a ese directorio                                                                         $ cd androidauto_rpi_install 
  3. Para ejecutar el script install.sh necesitamos cambiar los permisos para permitir que se ejecute.                                                                                                                         $ chmod +x install.sh 
  4. Ahora podemos instalar Android Auto                                                                                  $ ./install.sh 

Este proceso puede tardar casi media hora pero ojo porque nos informara en primer lugar que ha instalado las dependencias  y tendremos que pulsar  intro par seguir 

Asimismo al rato nos informara que esta clonando y construyendo el SDK  de Androd Auto

Acto seguido nos informara de que esta construyendo el firmware de ilclient

Seguidamente ya se empezará a clonar y construir la imagen de OpenAuto 

 Si en este punto aborta con  un error es muy posible  que haya ocurrido en el transcurso de la compilación de OpenAuto

Puede realizar los pasos finales del script de modo manual sin la  opción del parametro -j4, es decir:

$make 

Y ahora habilitamos  OpenAuto en el arranque :

$echo “sudo /home/pi/openauto/bin/autoapp” >> /home/pi/.config/lxsession/LXDE-pi/autostart

Y con esto arrancamos OpenAuto

$whiptail –title “OpenAuto RPi” –msgbox “Strating OpenAuto” 8 78

$/home/pi/openauto/bin/autoapp

 

Después de esta larga espera, ya estará  lista la instalación  para conectar su teléfono a su Raspberry Pi.

Si ha  conseguido llegar a este punto  de la pantalla anterior , ya esta en condiciones de probar la funcionalidad de Android Auto para lo cual puede conectar por USB  un smartphone  Android  con la app instalada de Android Auto  a uno de los conectores USB de la Raspberry Pi

En seguida debería reconocer  el terminal que esta intentando conectar con la Raspberry, y en unos segundos ya debería cambiar la pantalla en la Raspberry pi por  el menu de Android Auto desde el cual podra acceder a Google Map, ver las llamadas o los mensajes  y reproducir su musica favorito a traves del interfaz tacil de su Raspberry Pi

 

OpenAuto está licenciado bajo GPLv3.Para obtener más información, visite la página GitHub del proyecto , donde puede encontrar su código fuente y mas información.

Crankshaft

Y es que en lugar de tener que gastar una fortuna  en una pantalla para el coche que incluya Android Auto de marcas como Pioneer o Sony, se  puede hacer lo mismo  gracias a una distribución de GNU/Linux llamada Crankshaft.

Solo necesitaremos la Raspberry Pi con la pantalla tactil instalada e instalar la imagen de Crankshaft y por supuesto encontrarle un hueco en el salpicadero de nuestro coche(su creador recomienda que compremos la pantalla oficial y una carcasa)

Huan Truong   se decidió a crear este proyecto cuando buscaba incorporar un sistema Android Auto en su viejo coche. Vio que había una alternativa llamada OpenAuto que recientemente fue lanzada de manera pública tal y como hemos visto , pero esta opción le parecía  más compleja porque requería compilarla y añadir una serie de configuraciones para hacerla funcionar. Por ello, se lanzó a hacerlo todavía más sencillo.

Crankshaft se puede descargar en la página web oficial. Troung recuerda que el proyecto se encuentra en versión alpha y no se responsabiliza de ningún problema que pueda surgir durante su utilización, ya que es un hobby y no una versión estable desarrollada por Google. Por tanto, tened mucho cuidado si lo utilizáis y dependéis de él.

Al estar todavía en fase experimental, le faltan bastantes funcionalidades. Por ejemplo, no cuenta con implementación para micrófono, por lo que el control por voz mediante Ok Google no funciona. Tampoco tiene Bluetooth, por lo que es necesario conectar el móvil mediante USB para poder usarlo con el sistema (Truong afirma que quiere incluirlo más adelante, aunque no tiene prisa). El listado de móviles compatibles incluye prácticamente todos los recientes, y puede comprobar el listado de usuarios que afirma que funciona con su móvil en la página de GitHub.