Como ver Netflix en zonas difíciles

Veremos como poder ver contenidos sin cortes con nuestra Raspberry Py gracias al excelente conectividad de esta frente a los dongle ( bien por cable o por wifi+)


Hoy en día es muy habitual que los TV integren funciones inteligentes gracias a la conectividad  inalámbrica , lo cual permite  entre otras cosas disfrutar de servicios de streaming de vídeo  como por ejemplo Netflix.  En caso de no disponer de Tv inteligentes , también han surgido dongles  económicos  que permiten  ofrecer funciones  inteligentes  a los  TV   convencionales que no lo eran a través del puerto hdmi y  alimentación  usb de 5v que puede tomarse incluso del propio TV ,    como por ejemplo el popular  Amazon Fire TV  Stick 

En efecto con un Amazon Fire TV  Stick   se puede controlar una  TV, barra de sonido y receptor compatibles con los botones específicos para encender el dispositivo, silenciarlo y ajustar el volumen  así como reproducir y controlar contenido gracias al micrófono incorporado en  el mando que permite comandos por voz con  Alexa.

Con este dongle podemos disfrutar de contenidos favoritos de Prime Video, Netflix, YouTube, DAZN, Atresplayer, RTVE A la carta, Movistar+ ,etc o incluso navegar por internet  o ver nuestras redes sociales favoritos

Ademas el Fire TV Stick integra el asistente  Alexa ofreciendo así  el mayor número de funciones de voz en reproductores en streaming:  se  puede ver el vídeo en directo de cámaras compatibles, consultar la información del tiempo, atenuar las luces y reproducir música en streaming.

Desgraciadamente  no siempre tenemos buena conectividad  wifi  por lo que puede ocurrirnos que si usamos conectividad wifi   asociada  al propio dongle  ( tenga en cuenta que en esas medidas la antena no puede tener mucha ganancia ), puede que se nos corte  totalmente   o de forma intermitente  la visualizacion de contenidos  o incluso  se vean mal o pixelados en determinados momentos algunos  contenidos por una conectividad deficiente

Hay una solución un tanto engorrosa en caso de disponer de un el Fire TV Stick  que  consiste  mediante un cable OTG usar un adaptador usb a ethernet  de Amazon , pero hasta la fecha  Amazon no ha especificado cual es el modelo que necesitaría, así   que intentando dar una solución al problema de los cortes  de nuestra red inalámbrica wifi convencional  vamos a dar un enfoque distinto donde usando   en lugar de un dongle nuestra Raspberry Pi   una conexión por cable   o mediante un adaptador wifi+ ( por ejemplo un videobridge que usa la banda 4G que es mas estable y menos saturados)  siendo incluso interesante usar  versiones antiguas que quizás ya no usemos dándoles así un uso interesante ( en este post de hecho usaremos unas Raspberry version 2)

 

Instalación de Raspbian  en la Raspberry Pi desde un ordenador con Windows

Los Sistemas Operativos para la Raspberry Pi están empaquetados en imágenes de disco (archivos IMG casi siempre). Lo que llamamos instalación del sistema operativo, en realidad, no es más que trasladar por completo esa imagen de disco al interior de una tarjeta microSD,para lo cual hay varias formas, como  por  instalando NOOBS, que es un mini sistema operativo que hace de cargador de otros. El proceso es tal vez más intuitivo, pero sinceramente, solemos usar un único sistema operativo por lo que no vemos mucha utilidad a tener un cargador para varios, asi  que creo sinceramente la  forma mas eficiente es usando un software clonador de la imagen a la SD , sofware que por cierto existe tanto para  Mac como  para Windows  .

Como  vamos a instalar el sistema operativo Raspbian a modo de ejemplo,( aqunue  podria  instalar otro si lo desea),la última versión de Raspbian está disponible en https://www.raspberrypi.org/downloads/raspbian/ 

 

 

Una vez tenga descargado  y descomprimida la imagen, puede  seguir los  siguientes pasos:

  • Inserte la MicroSD en tu ordenador utilizando para ello un Adaptador a SD si fuera necesario.
  • Descargue el programa   sd car formatter desde su site oficial  https://www.sdcard.org/downloads/formatter/  (vaya a downloads y elija el so del ordenador donde vaya a instalar el sw)
  • Instale el programa   siguiendo las  instrucciones del  programa de instalación
  • Ejecute  el programa
  • Ahora  en select card  tenga mucho cuidado  de no confundir   la  unidad  donde  hayamos insertado la tarjeta   SD y pulseFormat.
  •  Cuando haya concluido salga del programa   y   descargue el programa Win32DiskImager
  • Una vez descargado  ábralo pinchndo en el icono del programa
  • En la ventana emergente busque  y seleccione la imagen de Raspbian que descargo desde la pagina oficial.
  • En “Device” selecciona la letra que su sistema haya asignado a su MicroSD. Puedes comprobarlo en “Equipo”( NO CONFUNDIRLA CON OTRA UNIDAD;ASI QUE ASEGÚRESE MUY BIEN DE QUE ES LA UNIDAD CORRECTA).
  •  En la parte inferior, pinchamos en “Write”.
  •  Aceptamos el proceso y damos permisos de usuario si se nos requieren.
  • Cuando haya terminado, nos saldrá  un mensaje emergente indicándonos que el proceso ha terminado
  • Ya  podemos extraer (con seguridad) la tarjeta  pues  ya tenemos preparada nuestra microSD para conectarla  a nuestra Raspberry Pi 2 y empezar a configurarla.

 

 

Instalación de Netflix

Hacer que Netflix se ejecute en su Raspberry Pi requiere algunos pasos diferentes, ya que el software necesitará obtener una versión de la biblioteca DRM para que pueda transmitir videos.

Puede utilizar los sistemas operativos que empaquetan Kodi, como OSMC, ya que estos mismos pasos deberían funcionar siempre que tenga acceso a la terminal(de hecho si en lugar  de instalar Rasbpian estuviese usando una distribución como OSMC como Kodi ya estará instalado puede  saltarse los siguintes pasos) ,  pero nosotros por simplicidad  haremos uso del sistema operativo Raspbian   tal y como hemos visto en el primer aparatdo.

Antes de que Netflix funcione en la Raspberry Pi, tendremos que hacer algunas cosas, entre otras cosas actualizar todos los paquetes ya instalados en su Pi.(  de hecho hacer esto ultimo asegura que cualquier paquete desactualizado no termine rompiendo esta miniguia).

Para actualizar todos sus paquetes, continúe y ejecute los siguientes dos comandos:

sudo apt update 

sudo apt upgrade

 

Una vez que el proceso de actualización se haya completado, ahora podemos continuar e instalar Kodi en la Raspberry Pi.

La razón por la que estamos usando Kodi es que actualmente es la forma más confiable de acceder a Netflix en la Raspberry Pi.

Los métodos del navegador web para acceder a Netflix parecen romperse a menudo y pueden ser difíciles de configurar y mantener pero Kodi también está bastante bien optimizado para Raspberry Pi.

Para instalar Kodi y todos los paquetes que necesitamos, ejecute el siguiente comando

 sudo apt install kodi kodi-peripheral-joystick kodi-pvr-iptvsimple kodi-inputstream-adaptive kodi-inputstream-rtmp

 

Verá que estamos instalando varios otros paquetes junto con Kodi. Estos paquetes adicionales son necesarios para que el complemento Kodi Netflix funcione correctamente en nuestra Raspberry Pi. 2.

Una vez procesado el comando  necesitamos instalar algunos paquetes adicionales para acompañar nuestra instalación de Kodi. Estos paquetes contienen el “pip” del administrador de paquetes de Python, así como algunos extras que necesitamos para ejecutar el complemento Kodi Netflix.

Ejecute el siguiente comando para instalar los últimos paquetes que requerimos:

 sudo apt install build-essential python-pip python-dev libffi-dev libssl-dev libnss3

A continuación, instalaremos los paquetes de Python que requiere el complemento de Netflix para Kodi. Podemos instalar estos paquetes de Python en nuestro Pi haciendo uso del administrador de paquetes pip ,para lo cual use el siguiente comando para instalar todos los paquetes Python necesarios:

 sudo pip install setuptools wheel pycryptodomex

Con todos los paquetes requeridos ahora instalados, hay una última cosa que debemos hacer:necesitamos descargar el repositorio CastagnaIT , el cual  nos permitirá instalar el complemento de Netflix para Kodi y actualizarlo automáticamente.

Podemos descargar la última versión del repositorio directamente desde el GitHub del proyecto ejecutando el siguiente comando:

 wget https://github.com/castagnait/repository.castagnait/raw/master/repository.castagnait-1.0.0.zip

Una vez que el complemento del repositorio ha terminado de descargarse, puede continuar con Netflix trabajando en su Raspberry Pi.

Agregar el repositorio para Netflix en Kodi

Ahora desde  Kodi  veremos cómo utilizar todos los paquetes que acabamos de instalar para ejecutar Netflix en su Raspberry Pi.

  •  El primer paso es iniciar Kodi en su Raspberry Pi. Puede hacerlo haciendo clic en el icono del menú de inicio en la esquina superior izquierda, pasando el cursor sobre “ Sonido y video ” y luego haciendo clic en ” Kodi “.

 

  •  Para comenzar, necesitaremos cambiar la configuración de Kodi para permitir la instalación de fuentes desconocidas. Si no cambiamos esta opción, no podremos instalar el complemento de Netflix. Para hacer esto, necesitamos abrir la página de configuración dentro de Kodi. Si está utilizando el tema predeterminado, el botón para acceder a esta página es el símbolo de la tuerca  en la parte superior de la barra lateral.  Dentro de este menú, debe hacer clic en ” Sistema ” (System)en la esquina inferior derecha de la pantalla. Ir a la configuración del sistema Kodi. Ahora que estamos en la página de configuración del sistema, debemos ir y hacer clic en ” Complementos ” (Adds-ons) en la barra lateral.  Luego, haga clic en la opción ” Fuentes desconocidas “(unknown sources) recibiendo algunos mensajes de advertencia. Es importante destacar  que es seguro ignorar estas advertencias siempre que solo instale complementos de fuentes confiables por lo que cambiar esta opción nos permitirá instalar el repositorio que descargamos en nuestra Raspberry Pi en la sección anterior.  Una vez que haya habilitado ” Fuentes desconocidas “, presione la tecla ESC para volver a la página de configuración principal.

 

  •  Ahora que volvimos a la página de configuración principal, continúe y haga clic en el botón de menú “ Complementos “(adds-ons). Este botón nos llevará a la página de configuración de complementos y nos permitirá instalar el repositorio CastagnaIT desde el cual podemos descargar el complemento de Netflix para nuestra Raspberry Pi. Una vez en la página de configuración ” Complementos “, haga clic en la opción ” Instalar desde archivo zip “(install from zip file)  para continuar.   Con el cuadro de diálogo ” Instalar desde archivo zip ” ahora abierto, haga clic en ” Carpeta de inicio “(home folder) , ya que es donde descargamos el repositorio. Seleccionar carpeta de inicio. Desplácese hasta la parte inferior del siguiente cuadro de diálogo, luego haga doble clic en el archivo llamado “repository.castagnait-1.0.0.zip ” para instalar el repositorio.

 

  • Ahora que hemos configurado el repositorio, podemos proceder a instalar el complemento de Netflix en nuestra Raspberry Pi y también configurar cualquier otra cosa que necesitemos. Con el repositorio requerido ahora instalado en nuestra Raspberry Pi, podemos seguir adelante e instalar el complemento de Netflix a través de la interfaz de Kodi. Haga clic en la opción ” Instalar desde el repositorio “(install from repository)  en la página ” Complementos ” para continuar.
  •  En este menú, busque la opción ” Repositorio CastagnaIT ” y selecciónela para abrir el repositorio. Cargar repositorio CastagnaIT 3. Ahora que estamos dentro del repositorio CastagnaIT, ahora podemos ubicar e instalar el complemento de Netflix. Para encontrar el complemento de Netflix, debemos abrir la categoría ” Complementos de video “(Video add-ons).

 

  • Abra la única entrada en esta página, el complemento ” Netflix “. Podremos comenzar el proceso de instalación en la siguiente pantalla. Seleccione el complemento de Netflix para instalar . En esta pantalla, haga clic en el botón ” Instalar “ en la esquina inferior derecha. Instalar el complemento de Netflix 6. Antes de que comience la instalación, se le preguntará si está de acuerdo con la instalación de algunos complementos adicionales. Como el complemento de Netflix se basa en todo esto para funcionar, la única opción real es seleccionar ” Ok “.

 

  • El proceso  de instalar componentes adicionales puede llevar un poco de tiempo, ya que necesitará instalar estos complementos adicionales en los que se basa el complemento de Netflix por lo que deberá aceptar esta instalación. Con el complemento de Netflix  instalado en la Raspberry Pi, hay un par de cosas más que tendremos que hacer antes de estar listos para abrirlo:
    •  Para empezar, debemos seguir adelante y habilitar el complemento ” Adaptive Inputstream “. Podemos habilitar este complemento yendo primero a la página ” Mis complementos “. ,entrando en la categoría ” VideoPlayer Inputstream “. En esta pantalla, continúe y abra el complemento ” InputStream Adaptive “. Este complemento es en lo que se basa el complemento de Netflix para transmitir datos de video desde los servidores de Netflix a su Raspberry Pi. Seleccione InputStream Adaptive 10. En esta pantalla, haga clic en el botón “ Activar ” para activar el complemento Adaptive InputStream.Con el complemento InputStream Adaptive ahora habilitado, finalmente podemos seguir adelante y ejecutar el complemento de Netflix.
    • Regrese al menú principal para la siguiente sección. Ejecutando Netflix en la Raspberry Pi 1. De vuelta en el menú principal, haga clic en ” Complementos ” en la barra lateral. Una vez que la página ” Complementos ” esté abierta, continúe y haga clic en ” Netflix ” para abrir el complemento de Netflix. La primera vez que abra el complemento de Netflix, se le pedirá que ingrese sus datos de inicio de sesión. El complemento necesita estos detalles para iniciar sesión en Netflix. Ingrese sus datos para continuar usando Netflix en su Raspberry Pi.  Ahora dentro del complemento de Netflix, continúa y elige un programa que quieras ver. La primera vez que vea un programa, deberá ejecutar el proceso de instalación de los módulos DRM que el complemento requiere para funcionar. Sin estos módulos DRM, el complemento no podrá transmitir el contenido de video desde Netflix. Estos módulos son la misma razón por la que los navegadores web de Raspberry Pi luchan por lidiar con Netflix.
    •  Cuando se le notifique que se requiere Widevine CDM , haga clic en el botón ” Instalar Widevine ” para comenzar el proceso de instalación. Instalar Widevine CDM . Luego verá otra notificación que indica que debe tener al menos 3.1GB de espacio libre en disco. La razón de esto es que el instalador debe obtener Widevine CDM de una imagen de ChromeOS. Hay algunas razones legales por las que no podemos descargar el Widevine CDM directamente. Haga clic en el botón ” ” para continuar con el proceso de instalación.  Antes de que su Raspberry Pi pueda comenzar el proceso de obtener los archivos necesarios para usar Netflix, primero deberá aceptar un EULA de Google. Haga clic en ” Acepto ” para aceptar el EULA y continuar con el proceso de descarga.  . Ahora verá un mensaje que indica que el complemento deberá usar herramientas con permisos de root para poder extraer el archivo requerido de la imagen de ChromeOS. Para continuar con este proceso, haga clic en el botón ” Acepto “y espere a que finalice el proceso de descarga y extracción. Este proceso puede llevar algo de tiempo por lo que si alguna vez parece que la barra de progreso está atascada, dele más tiempo al programa para que se ejecute, ya que tiene que extraer un solo archivo de una imagen grande.  Una vez que se haya completado el proceso de Widevine, ahora ya si por fin podrá ver los videos que desee directamente desde Netflix a su Raspberry Pi.

 

En adds-ons->Netflix   ya  puede  disfrutar sus programas de televisión exclusivos de Netflix como por ejemplo  “Los informáticos”y todo desde nuestra vieja  Raspberry Pi  2  ya que  Netflix se ejecuta con éxito en Kodi

El interfaz sobre Kodi es ligeramente diferente al que estamos acostumbrados  pues su  funcionalidad se basa en el uso de teclado o de un ratón  ( o mejor un mando inalámbrico que englobe ambos ) , pero con un poco de practica tampoco no nos  costara demasiado hacernos con el control y disfrutar de nuestros contenidos favoritos

Esperemos que en este punto ahora pueda ver Netflix con éxito en su Raspberry Pi, sea el modelo que sea.

Simple cámara de seguridad

En este post vamos una potente ver placa para reconocimiento de imágenes que es plug and play. La placa permite la transmisión de imágenes a través de Wi-Fi, depuración a través de un puerto Micro USB, reconocimiento facial y de voz. Compatible con el sitio web de Espressif con ESP-IDF (IoT). ESP-WHO (AI) Marco de desarrollo, herramientas y tutoriales. El post culmina con un resumen de cómo configurar una placa raspberry pi con una pantalla táctil conectada  a esta para ver las imágenes servidas por dicha placa


En efecto gracias al nivel de integración alcanzado , cada vez hay soluciones más “sencillas” a problemas de computación en tiempo real que tradicionalmente han sido  muy complejos  como por ejemplo puede ser el reconocimiento y detección de imágenes en tiempo real .

Como muestra  de este tipo de soluciones  vamos a ver la placa ESP-EYE , una  pequeña placa de desarrollo del fabricante chino Espressif centrada en el  reconocimiento de imágenes  con  procesamiento de audio en aplicaciones AIoT

Realmente esta solución  se basa en dos componentes claramente  diferenciados:

  • El hardware  :  esta solución es soportable por muy diferentes propuesta  pero el  hw  más sencillo  y del que vamos  a ver en este post   el ESP-EYE , una placa de desarrollo  de  menos de 30€  para el reconocimiento de imágenes y el procesamiento de audio, que se puede utilizar en varias aplicaciones AIoT. Cuenta con un chip ESP32, una cámara de 2 megapíxeles y un micrófono. ESP-EYE ofrece mucho almacenamiento, con una PSRAM de 8 Mbyte y un flash de 4 Mbyte. También es compatible con la transmisión de imágenes a través de Wi-Fi y depuración a través de un puerto Micro-USB. Aunque el ESP-EYE es una opción en kit  muy asequible, el fabricante también ofrece una opción más potente :Esp-Wrover-Kit

 

  • El software :  ESP-WHO, que  es un marco de desarrollo de detección y reconocimiento de rostros diseñado para aplicaciones AIoT. Puede usarse con la placa de desarrollo ESP-EYE, el ESP-WROVER-KIT calificado por Amazon FreeRTOS u otras placas de desarrollo basadas en ESP32. Luego, al agregar solo unos pocos periféricos, como cámaras y pantallas, puede crear fácilmente aplicaciones AIoT completas.  Para ejecutar ESP-WHO, debe tener una placa de desarrollo que integre un módulo ESP32 que tenga suficientes pines GPIO y más de 4 MB de RAM externa SP  como la placa  anteriormente comentada (ESP-EYE ), aunque  no obstante  ESP-WROVER-KIT  también pueden ser otra opción como placa de pruebas.

 

Espressif ESP-EYE

Como hemos comentados hablado  estamos ante una Placa de desarrollo de Espressif para reconocimiento de imágenes y procesamiento de audio en aplicaciones AIoT.

Espressif , el fabricante  ofrece una solución AIoT completa que combina ESP32 con un marco de desarrollo de inteligencia artificial (AI).  Esta solución incluye la placa de desarrollo ESP-EYE, junto con los marcos de desarrollo IoT y AI de Espressif, también conocidos como ESP-IDF y ESP-WHO, respectivamente.

 

 

ESP-EYE es una placa de desarrollo para el reconocimiento de imágenes y el procesamiento de audio, que se puede utilizar en varias aplicaciones AIoT. Cuenta con un chip ESP32, una cámara de 2 megapíxeles y un micrófono, todo ello integrado en una minúscula placa de 8 x4 cm (mas o menos como un pen-drive USB).

ESP-EYE ofrece mucho almacenamiento, con una PSRAM de 8 Mbyte y un flash de 4 Mbyte. También es compatible con la transmisión de imágenes a través de Wi-Fi y depuración a través de un puerto Micro-USB.

 

 

Aunque el sl fabricante ha dejado disponible en Github su sw , también  puede apoyarse en otras soluciones del mismo fabricante como el ESP-WROVER-KIT-VB que f ofrece una solución integrada  AIoT completa que combina un ESP32 con un marco de desarrollo de inteligencia artificial   y además incluye la placa de desarrollo ESP-EYE, junto con los marcos de desarrollo IoT y AI de Espressif, también conocidos como ESP-IDF y ESP-WHO, respectivamente.

 

ESP-WROVER-KIT-VB

Es una placa de desarrollo de ultra bajo consumo altamente integrada que incluye Flash y PSRAM  agregando una interfaz USB, una pantalla LCD de 3.2 “, una interfaz de cámara OV7670 y una ranura para tarjeta micro SD.Alcanza un gran rendimiento con una RAM de 4.5 MB y una CPU de doble núcleo de 240 MHz permitiendo creer cámaras de Internet, pantallas inteligentes o radios de Internet conectando pantallas LCD, micrófonos y códecs ) , todo ello a un precio relativamente competitivo (  unos 62€)

Esta  placa Esp-Wrover-Kit  también del mismo  fabricante   Expressif es otra opción  que puede soportar el software  ESP-WHO , En este caso es una una placa de desarrollo calificada por AWS( Amazon Web Services ) . Además del ESP-IDF SDK de Espressif, puede usar Amazon FreeRTOS en ESP-WROVER-KIT-VB. Amazon FreeRTOS proporciona conectividad lista para usar con AWS IoT, AWS Greengrass y otros servicios de AWS.

Aunque  ESP32 admite la depuración JTAG, este modulo  ESP-WROVER-KIT-VB integra un depurador USB también, lo cual  hace que la depuración y el rastreo de aplicaciones complejas sea muy fácil, sin la necesidad de ningún hardware adicional.

ESP-WROVER-KIT-VB es pues la versión mejorada del ESP-WROVER-KIT ( de hecho cuesta casi el doble que la  version anterior) . Su PSRAM  en l aversion 2 aumenta a 8 MBytes, mientras que esta placa de desarrollo también cuenta con una interfaz de tarjeta Micro-SD de alta velocidad, una interfaz de cámara VGA, un panel LCD SPI de 3.2 ”y capacidades de expansión de E / S. Asimismo cuenta con  un procesador de doble núcleo, radios Bluetooth y WiFi, y 520 KB de SRAM.

Ultimamente estan distribuyendo la versión 3 que contiene 32 Mbit adicionales de PSRAM  siendo  el ESP32 s compatible con SPI, I2C, serie, etc.

Espressif admite dos cadenas de herramientas:

  • El entorno de lenguaje C nativo que se ejecuta bajo el sistema operativo en tiempo real FreeRTOS
  • El entorno Arduino C / C ++. Los programas desarrollados usando el entorno Arduino en realidad se ejecutan como una tarea en FreeRTOS y pueden usar las bibliotecas FreeRTOS.

Puede ser  preocupante el soporte para el controlador LCD  ya  que las versiones 2 y 3 de la placa utilizan un controlador ST7789V pero la placa de la versión 1 utiliza un controlador ILI9341.  La última versión de la demostración TFT simple en ESP32 SDK llamada spi_master se puede configurar para ejecutarse en cualquiera de los ESP32-WROVER-KIT. No obstante “Loboris” en github tiene una biblioteca TFT  con todas las funciones con opción de configuración para construir la biblioteca y el programa de demostración para la versión 3 WROVER-KIT. Incluso con SPI, la actualización de la pantalla es muy rápida.

No se incluye documentación con la placa, pero hay mucha documentación en la web, y el SDK nativo viene con una serie de ejemplos útiles. La desventaja es que el ESP32 es relativamente nuevo, parte del software está cambiando y faltan algunas bibliotecas de Arduino.

Sin dua el ESP32-WROVER-KIT es una gran pieza de hardware, aunque su uso requiere cierta experiencia con microcontroladores y cierta tenacidad para examinar la documentación en línea y el código de ejemplo , pero quizás valga la pena el esfuerzo por toda la potencia que le brinda esta placa.

EL software

El sw   necesario se  compone del  marco de desarrollo IoT  ( también llamado ESP-IDF  ) y la AI de Espressif ( también conocidos como ESP-WHO ).

Para ejecutar ESP-WHO, debe tener una placa de desarrollo que integre un módulo ESP32 generico que tenga suficientes pines GPIO y más de 4 MB de RAM externa SPI  y una cámara CCD . Lo mas sencillo es usar el  ESP-WROVER-KIT o el recomndado  por el fabricante:  el   ESP-EYE que hemos visto integra el ESP32 y la cámara integrado en una solución de bajo coste

 

 

ESP-WHO es pues  la utilidad de detección, reconocimiento e imagen son el núcleo de la plataforma   constando en realidad de los siguientes módulos:

  • Image Utility ofrece API de procesamiento de imágenes fundamentales.
  • La detección toma imágenes como entrada y proporciona la posición de la cara si hay una cara. Se implementa con el modelo MTMN, que se refiere a MTCNN y MobileNets .
  • El reconocimiento es identificar a la persona en particular y necesita los resultados de la detección. Se implementa con el modelo MobileFace.
  • La optimización consiste principalmente en aumentar la precisión de la inferencia y acelerar todo el proceso. Pero también podría cambiar la estructura de la red, actualizar los coeficientes, refactorizar el código, etc.

Tanto la entrada como la salida son flexibles porque las fuentes de imagen pueden ingresarse a través de la cámara ( aunque sin embargo, no proporcionan  muchos controladores en este momento, ya que los de otros módulos de cámara se lanzarán en el futuro)  y porque los resultados se pueden mostrar  a través de la línea de comando, un LCD o incluso el sitio web a través del servicio de Wi-Fi http.

 

Para saber cómo configurar el módulo ESP32 para sus aplicaciones, puede consultar el archivo README.md de cada ejemplo del respositorio de github ( https://github.com/espressif/esp-who )

Preparación de software

La resolución recomendada de la imagen de entrada es QVGA (320×240) . En cuanto a elegir la cámara si no usa el citado modulo recomendado  ESP-EYE      el módulo ESP32 usado   deberá tener libre los  pines específicos según la  cámara que use Por ahora el  sw  proporcionado soporta el controlador de OV2640 y OV3660 , que son muy recomendables para comenzar.

Veamos como instalar los dos módulos sw necesarios:

 ESP-WHO

Asegúrese de clonar el proyecto de forma recursiva usando el siguiente comando:

git clone --recursive https://github.com/espressif/esp-who.git

Si clona un proyecto sin --recursive ( es decir usando el indicador --recursive), vaya al directorio esp-who y ejecute el comando git submodule update --init antes de hacer nada.

 ESP-IDF

Consulte las guías de configuración para obtener instrucciones detalladas para configurar el ESP-IDF:Guía de inicio para la versión estable de ESP-IDF

En este caso, tomamos ESP-IDF v3.2 como la versión de prueba.Si ya ha configurado ESP-IDF antes y no desea cambiar el existente, puede señalar IDF_PATH al ESP-IDF que se encuentra en ESP-WHO.

 Otros componentes sw

Otros componentes  sw necesarios lo constituye  el marco principal del SDK, con algunos controladores y algunos  algoritmos dentro.

  • Cámara :  El componente de cámara contiene controladores para dispositivos de cámara de ESP32.
  • Face de esp: El componente esp-face contiene las API de las redes neuronales ESP-WHO, incluido el marco de detección y reconocimiento de rostros.

Ejemplos

La carpeta de /examples/  del respositorio de github ( https://github.com/espressif/esp-who )   contiene ejemplos de aplicaciones que demuestran las características API de ESP-WHO.

Una buena muestra es la  detección de rostros , para lo cual habría que seguir los siguientes pasos:

  1. esp-who/examples/single_chip/detection_with_command_line a una carpeta de ejemplo esp-who/examples/single_chip/detection_with_command_line .
  2.  cd esp-who/examples/single_chip/detection_with_command_line
  1. Compila y actualiza el proyecto.   idf.py build idf.py flash -p [PORT]
  1. Los usuarios avanzados pueden modificar algunas opciones mediante el comando idf.py menuconfig .

Verifique README.md de cada ejemplo  del respositorio de github ( https://github.com/espressif/esp-who )      para más detalles.

Demo

En el siguiente , podemos ver  cómo hacer su propio proyecto de seguridad para el hogar en solo 5 minutos utilizando la placa   ESP-EYE y una Raspberry Pi para visualizar el resultado aunque   puede usarse un pc portatil ,tableta , etc en su lugar  . Este proyecto  además es  plug and play pues  apenas  requiere ningún conocimiento de codificación o hardware.
Para  hacer su propio  dispositivo de transmisión inalámbrica por tanto sólo usaremos  una a pantalla LCD táctil conectada a la Raspberry pi . Como normalmente el fabricante del LCD suele incluir las instrucciones necesarias para  conectar esta a la Raspberry Pi y que sea funcional en la demo  no se requiere ninguna codificación y tampoco  ningún circuito   ya que nos bastará  conectar estos dispositivos y empezar a transmitir
En realidad  no es dificil  conectar un apantalla tactil a una raspberry pi   , pues de  hecho en este  blog vimos en este post http://soloelectronicos.com/2018/12/02/como-instalar-una-pantalla-tactil-de-5-en-una-raspberry-pi-3/  como hacerlo con un simple escudo   de kuman  y  cargando en nuestra Raspberry Pi la imagen de Raspbian con los drivers ya instalados

En primer lugar necesitaremos encender este ESP  alimentando con 5v DC por medio del puerto microUSB . En el inicio del LED rojo se enciende  en el ESP ,pero   el LED rojo comenzará a parpadear que revela que este dispositivo  se despierta  y ha creado  su punto de acceso propio al  que se  puede  conectar todos los dispositivos .

En este ejemplo  como se usa  Raspberry Pi para ver  los datos  que vienen del CSPI ,encenderemos la placa Raspberry Pi . Para la primera vez que se conecte es recomendable  tener teclado y ratón conectados a la Raspberry Pi , pero esto  sólo será para  la primera vez  pues después  el ajuste se guardará en esta Raspberry Pi y no necesitará  teclado y ratón ,ya que se puede utilizar  la pantalla táctil

Cómo  está abierto  el punto de acceso ,sólo necesitamos para conectar a través de este punto ,  abrir el navegador web y conectarnos a esta dirección IP( doble barra oblicua ,dos puntos y la ip del módulo y   podremos ver  la imagen que esta transmitiendo la cámara .

Para la  segunda vez no hay necesidad de utilizar este tipo de teclado porque una Raspberry Pi automáticamente se conectara con este punto de acceso particular y en el navegador puede usar esta dirección IP ,la cual  se guardará en el historial para que pueda tocar    la  dirección IP en el historial  y acceder directamente

 

 

En este video, pues  hemos visto cómo hacer su propio proyecto de seguridad para el hogar en solo 5 minutos utilizando el tablero ESP-EYE y Raspberry Pi, proyecto por cierto que como hemos visto es plug and play , y no requiere ningún conocimiento de codificación o hardware.

!Este módulo sin duda es una versátil aliado para múltiples retos  que se nos presente!

 

Como usar su smartphone o tableta como monitor de video

veremos como podemos visionar en un terminal android una señal de video externa


En efecto gracias  a la tecnologia OTG  (On then Go),  disponible en muchos smartphones   y tabletas Android,  es  posible utilizar con estos dispositivos hardware  adicional  como memorias USB, discos duros externos,capturadoras de  video, tarjetas de red ,etc   en principio  diseñados para  ordenadores,  pero que  gracias a  esta conexión podemos  ampliar el horizonte desde el mundo del pc a nuestros dispositivos Android.

Antes de empezar  , debe comprobar las especificaciones de la tableta o smartphone si es compatible con  la tecnología OTG en su conector microUSB, pues no todos  los dispositivos  los soportan ( lo cual , por cierto, si no lo sabe con exactitud,  hay varias aplicaciones en Google Play que lo pueden comprobar como otg-checker).En caso que sus dispositivos lo soperten, con  esta tecnología  podremos utilizar nuestro conector microUSB para algo más que para cargar el  dispositivo como vamos a ver a continuación.

En este ejemplo  sencillo  vamos a utilizar un  dispositivo usb externo del tamaño  algo mas grande que un lápiz sub , concreta mente el popular   AV Easycap adaptador USB para usar en nuestro teléfono Android o tablet como una pantalla secundaria de la FPV o DVR.

Probablemente esta solución quizas no sea tan buena para usar de forma permanente  como  pantalla principal pues  introduce cierta latencia en el sistema, pero si puede ser interesante  para trabajos puntuales  como por ejemplo para usar cn cámaras de  inspección , endoscopios,reproductores de dvd, etc .

Estos son los elementos  hardware y si software  que necesitaremos:

  • Adaptador USB Easycap. Se debe asegúre de que tiene el chipset UTV007 oes una Easycap USB (HTV600, HTV800), STK1160, UVC o de lo contrario no funcionará con Android .Su precio en Amazon ronda los 15€   .                                                         
  • Adaptador  USB a OTG    .En esta ocasión usaremos un modelo económico  con conector acodado tipo Micro USB B macho a USB A hembra  . Su precio suele ser elevado  pero  siempre hay algun  vendedor qeu nos ofrece modelos mas competivos( el mostrado es un producto plus que cuesta 2€)                               NANOCABLE 10.01.3600 - Cable USB 2.0 OTG acodado (On-The-GO), tipo Micro B/M-A/H, macho-hembra, negro, 15cm
  • Visor de EasyCap (disponible en Google Play)., existen  apps similares gratuitas
  • App de grabación de pantalla de su elección. Puede usar  AZ Screen Recorder o incluso al version grabadora de EayCap.
  • Un  dispositivo  con salida de video compuesto PAL para comprobar que funciona correctamente  (por ejemplo una cámara, un reproductor de DVD, un receptor de TDT, etc);

Configuración del hardware

Las conexiones como se pueden ver en la imagen  debajo son muy sencillas ,pues bastara conectar el adaptador de otg al smartphone o tableta , el otro extremo con conector usb hembra  al Easycap  y en la entrada de video del easycap  la señal de video externa que queremos visionar.

easycap.PNG

El Easycap dispone de conexione antiguas clásicas   como son una entrada de video compuesto ( el amarillo)   ,tomas de entrada  de audio (rca blanco  rojo) y  una entrada sde s-video (llamada también  “supervideo” ), la cual la mayoría  de  las veces   podemos prescindir al igual que las conexiones de audio(  si es que  no estamos interesados en capturar también el audio)

Hay personas que buscando un dispositivo compacto  pero mas funcional  optan por cortar todos los cables excepto el rca  con  conector amarillo corto (de la Easycap y FR632 el cable). Como la mayoría de  los dispositivos modernos usan jack de 2 1/2″   también incluso  cortan el  tapón amarillo  así como la la funda exterior del cable y sueldan un jack en su lugar.

Para el FR632, el cobre pelado es tierra y el cable amarillo es video. Para el Easycap, el cable blanco es tierra y rojo es video    pero también se puede soldar directamente en la propia placa EasyCap pues esta se puede desmontarse fácilmente. También se puede elegir utilizar un adaptador RCA macho a macho pero quizás quede mas compacto  soldando el conector , eso si la conexión   que necesita es la de jack de 2 1/2″ y no la de RCA.  El resultado final será algo como esto:

Final cable. Long connecting wires not shown

Uso y configuración de software

Para la app  se requiere:

  • Android 4.x hasta 7.x
  • Resolución de vídeo depende del formato de video y dispositivo de Easycap: NTSC: 720 * 480 @ 30fps; PAL: 720 * 576 @ 25fps y UVC y la cámara: desde QQVGA (160×120) hasta 5 megapíxeles (2592×1944)
  • Tiempo de demora – 0,1sec – transmisión en vivo casi
  • Se recomienda el uso de dispositivos Android con procesadores: Qualcomm Snapdragon, Intel, Exynos, sin Nvidia GPU Mali-4xx serie
  • lista de dispositivos probados: http://autodroid.mybb.us/viewtopic.php?id=32 

Con la adaptación  puede conectar la Easycap en el dispositivo mediante el cable OTG  ,pero puede que necesite cambiar algunas opciones para poder usar dispositivos OTG.

Enchufe el otro extremo del cable de vídeo en su dispositivo ( cámara, reproductor de DVD, receptor de TDT, etc).  Ahora, inicie  la aplicación de visor de Easycap .  Debería poder  ver  una imagen clara  y nítida  .

Puede utilizar la aplicación grabadora de pantalla para registrar su señal de video desde el visor de Easycap. Sólo iniciar la captura de pantalla, abrir el visor de Easycap, y detener la grabación cuando haya terminado.

En este vídeo  podemos  ver el proceso completo de la sencilla adaptación del  Easycap   a un jack de 2 1/2″:

 

Por favor asegúrese de que el dispositivo admite el modo de host USB (OTG) , antes de comprar la aplicación EasyCap  . Recordemos que debe preparar una  señal analógica activa  qeu conectara  a la  entrada de video del Easycap   y conectar el  cable OTG C  asi como  conectar el dispositivo EasyCap  para la prueba