Algunas notas sobre mis pruebas con la ESP32-Cam:
¿Qué es ESP32? (First things first.)
ESP32 se refiere a una serie de circuitos integrados fabricados por “Espressif Systems” e incluyen entre muchas otras características, conectividad Wi-Fi, Bluetooth, y además es posible programarlo utilizando Arduino IDE. Existe mucha documentación sobre los distintos módulos que utilizan ESP32 en “Random Nerd Tutorials” y en la misma página de Espressif Systems.
Después de investigar distintos tipos de cámaras aplicables al proyecto, y al encontrar una serie de ellas que utilizan el ESP32, el camino se hizo un poco más claro en cuanto a la electrónica en el proyecto. En algún momento probé con GoPro’s, y aunque hice algunos experimentos con Toni, la idea de utilizar algo tan comercial y con una app muy cerrada no me cuadraba ni gustaba nada.
Así pues, cuando encontré que existían cámaras con la ESP32 y además programables con Arduino, adquirí varias de ellas para empezar a probar. 🙂
Antes de empezar:
- Para utilizar la cámara ESP32, es necesario usar un programador FTDI.
- En mi caso, al conectar el FTDI como estaba acostumbrada, me encontré con la horrible sorpresa de que mi laptop simplemente no lo reconocía como puerto accesible.
- Después de mucha frustración y de navegar mucho por varios tutoriales, encontré que para hacer servir los puertos USB en Mac OS Sierra con el programador, es necesario instalar y desinstalar drivers FTDI. Los tutoriales que seguí (tardé mucho en hacer aparecer el puerto):
Arduino IDE + ESP32 CAM:
Me basé en un maravilloso “Nerd Tutorial” que incluye toda la info sobre la tarjeta impresa, diagrama de pines y configuración con ARDUINO: https://randomnerdtutorials.com/esp32-cam-video-streaming-face-recognition-arduino-ide
Instalar ESP32 Add-on:
Este add-on funciona para poder programar el ESP32 desde el Arduino IDE.
1 . Desde Arduino, ir a ->Tools -> Boards –> Board Manager. 2. Buscar “ESP32”
3. Seleccionamos el add-on que aparece como “ESP 32 by Espressif Systems” y lo instalamos.
Otra manera de instalar este add-on es mediante las preferencias de Arduino, para ello hay que:
1. Arduino –> Preferences
2. Copiar y pegar el siguiente link “https://dl.espressif.com/dl/package_esp32_index.json” en la sección “Additional Boards Manager URLs”.
Una vez instalado, podemos ir a –> Arduino –> Examples –> ESP32 –>Camera –>CameraWebServer
Esto abrirá un sketch de ejemplo que ya tiene las configuraciones aplicables a algunas de las cámaras que existen con ESP32.
Después de muchas pruebas, encontré que la siguiente configuración era la mejor para hacer todo funcionar:
- Desde Windows y con el módem externo
- Board: ESP32 Dev Module
- Upload speed 921600
- Flash Freq: 400Mh
- Partition Scheme: Huge App
- PS RAM Disabled
- Arduino code tag para la cámara:
- #define CAMERA_MODEL_AI_THINKER
Importante!
Para cargar el código a la cámara hay que conectar el pin GPIO con GND. Una vez cargado, hay que retirarlo.
Una vez que tenemos la cámara programada, abrimos el puerto serial y si todo está correcto, tendría que salir el mensaje “Camera Stream Ready! Go to: ( IP) “.
Copiamos la IP y la pegamos en cualquier navegador. Se abrirá una página con diferentes opciones de resolución de video.
En la parte inferior hay que dar click en “Start Stream” y …. ¡Felices videos!
Desventajas de la ESP32 Cam:
- Está descontinuada
- De momento es inestable, a veces se cargan los códigos y a veces no.
- El botón de reset está en un lugar muy incómodo. Posiblemente ponga un botón externo de más fácil acceso a mi circuito.
- El stream se puede abrir en un sólo navegador.
Ventajas:
- Hay mucha documentación online.
- Las dimensiones de la cámara son ideales para el proyecto, es decir que puedo adaptarlas fácilmente al cuerpo.
- Tiene un par de pines libres que puedo utilizar para los motores micro que posteriormente implementaré para la interacción cuerpo-actividad online.
Next steps:
- Añadir motor micro
- Probar micrófono
- Calcular amperaje necesario con motor + micrófono
- Diseñar un módulo de sólo micrófono
Problemas por resolver:
- El rooter que estoy usando, es recuperado de la basura ( 🙂 why not ), y de momento me envía mensajes con algún error extraño. No entiendo si la conexión es estable o no.