Mostrando entradas con la etiqueta webcam. Mostrar todas las entradas
Mostrando entradas con la etiqueta webcam. Mostrar todas las entradas

sábado, 10 de abril de 2021

ESP32-CAM WEBCAM

 

ESP32-CAM
ESP32
WEBCAM


Este es mi segundo contacto con el ESP32, y cometí un error de principiante.
Cuando hice el montaje conecte la alimentación de 5V al pin Vcc, es una consecuencia de los muchos montajes con arduino.
Estuvo así durante 5 segundos, antes de darme cuenta del error cometido.
El ESP32 funciona a 3.3V que es su Vcc, y tenía que haber conectado los 5V al pin de 5V del ESP32.
El módulo ESP32 dispone de un regulador que transforma los 5V a los 3.3V que necesita el ESP32.
No se estropeo,  sigue funcionando, pero ha cambiado algo internamente, en algunas ocasiones no hace falta dar el botón BOOT para que cargue el programa.

Para instalar el entorno ESP32 debemos seguir los pasos de mi anterior montaje,
esp32a.html
Y seleccionamos la placa que tenemos, en mi caso es Al Thinker ESP-CAM.


Leemos el programa  desde el menú  Archivos->Ejemplos->ESP->Camera-CameraServer
Veremos que es un programa que funciona para varios tipos de módulos de cámara ESP32.
Debemos cambiar el programa comentando y descomentando  nuestro módulo.

// Select camera model
//#define CAMERA_MODEL_WROVER_KIT
//#define CAMERA_MODEL_ESP_EYE
//#define CAMERA_MODEL_M5STACK_PSRAM
//#define CAMERA_MODEL_M5STACK_WIDE
#define CAMERA_MODEL_AI_THINKER

Ahora nos queda indicar la red a la que debemos conectarnos y su contraseña.

const char* ssid = "MI_ROUTER";
const char* password = "MI_CONTRASEÑA";

Ya solo queda compilar nuestro programa y subirlo a la placa.

Aquí tenemos dos posibilidades según la placa que hayamos comprado.
Si solo hemos comprado el módulo ESP32-CAM , debemos de tener un convertidor USB->Serie para programar el módulo.


Puede que hayáis pedido junto con el módulo ESP32-CAM otro pequeño módulo adaptador  USB->Serie para el ESP32-CAM.

 
Yo recomiendo este último caso debido a que posee dos botones de BOOT y RESET para su programación por solo 2€ mas.
Además dispone del conector USB con el que podemos alimentar todo el conjunto.


    UDR ->TX
    UDT ->RX



Para programar el módulo debemos en el entorno IDE dar el botón Subir.
Después de unos segundos de compilar el programa nos aparece en la consola  Conectando......

Ahora debemos pulsar el botón RESET mientras tenemos pulsado el botón BOOT (Pin ID0).
Tenemos saber que el pulsar el botón es llevarlo a Cero o GND , en el vídeo no tengo pulsadores lo hago conectando y desconectando el pin a GND.
Cuando en la consola vemos que esta cargando el programa, ya podemos de dejar pulsado BOOT.
Esperamos un tiempo y vemos el porcentaje de programa subido.
Una vez subido el programa, nos pide un RESET, en algunas placas lo hace automáticamente.



Con el
módulo adaptador  USB->Serie para el ESP32-CAM , todo se hace mucho mas fácil al dispones de los botones de BOOT y RESET.
El proceso es el mismo,
debemos pulsar el botón RESET mientras tenemos pulsado el botón BOOT (Pin ID0), y cuando el programa empieza a cargar, soltamos el botón BOOT .

Si todo fue bien nos aparecerá en la consola serie el siguiente mensaje:

Como podemos ver, nos aparece la dirección donde en cualquier navegador podemos ver la WEBCAM.


Si solo queremos ver la webcam colocamos la dirección:  http://192.168.1.150:81/stream
Para capturar una imagen: ffmpeg -i http://192.168.1.150/capture -c copy -y imagen.jpg

El consumo del módulo depende de la resolución de la cámara.

No trasmisión    100mA

Resolución
320x240      180mA
1024x768     200mA
1600x1200    230mA


Esto es normal debido a que con imágenes grandes se necesita mas utilización del procesador.

VÍDEO

Espero que le haya gustado este tutorial, aunque seguro que existe mejores tutoriales.

Saludos.
Juan Galaz


Bibliografía:
esp32a.html
https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/
https://www.profetolocka.com.ar/2020/07/09/programando-el-esp-32-con-el-arduino-ide/
https://www.prometec.net/presentando-el-esp32/
https://scientric.com/2019/11/07/esp32-cam-stream-capture/
https://learn.circuit.rocks/esp32-cam-with-rtsp-video-streaming
espaa.html
espb.html



lunes, 1 de febrero de 2021


Sony Cámara Playstation Eye ps3
Transformación
para lentes de 1"



Sony Cámara Playstation Eye ps3

En uno de esos paseo que hago por el rastro encontré 3 lentes de cámaras de vigilancia, pagué 3€ , pienso que es una ganga.
Estas lentes tienen tienen una rosca de 1" , lo cual dificulta su adaptación a la webcam.
Como estaba en modo aprendizaje de crear piezas con FreeCAD en 3D me puse manos a la obra para crear una caja en PLA.
He de decir que trabajo bajo Linux Debian 10 , uso FreeCAD,  está bastante bien, pero tiene cuelgues raros, por lo que se debe hacer copias para no perder el trabajo.
A la hora de imprimir utilizo mi buena ENDER 3, no es la mejor impresora, pero en precio/calidad creo que es la mejor, no me ha dado ningún problema.



El conjunto tiene 4 piezas, pieza de la lente, pieza del LCD, caja y tapa de la caja.
En una posterior versión he reducido el número de piezas a 3, he incluso se podría hacer en 2 piezas.


Empezamos con el adaptador a la placa de la webcam.



La segunda pieza a imprimir es la que se une a la lente.


Crear la rosca de 1" (25,4 mm) es totalmente imposible en plástico.
Para ajustar la lente al hueco, coloco un trozo de goma de 10x4x1 mm de ancho entre la rosca y el hueco, y de esta forma queda muy bien sujeta la lente.

Caja para la sujeción de todo el conjunto.



Y por último la tapa de la caja.


Todo el conjunto unido.











También se me ocurrió hacer un adaptador para poder usar la cámara con un microscopio.



Si se trabaja en Windows disponemos del programa que proporciona Creative, pero si trabajamos en Linux debemos utilizar el programa Cura, el cual debemos configurar para que la impresión sea buena.


Esta webcam con su resolución de 640x480 (60fps) y 4 micrófonos me da muchas alegrías, y su precio de segunda mano está entre 3 y 6€.
Una resolución mayor hubiese sido mucho mejor, pero es lo que hay.
La disposición y tamaño del sensor LCD hace muy fácil su limpieza. He probado con otro sensor de 2M pixel (creo que está interpolado),  el resultado es igual, aunque es difícil su limpieza.
He de comentar que el objetivo original de la webcam dispone de un filtro de infrarrojo, ayuda a proteger al sensor de temperaturas extremas, no he podido colocarlo en su nueva caja, por lo cual el matiz de lo colores puede cambiar un poco.


Saludos.
Juan Galaz

Bibliografía:
http://astrobeano.blogspot.com/2013/03/ps3-eye-camera-for-astrophotography.html
https://stargazerslounge.com/topic/131246-xbox-livecam-mod-cliff/
https://www.universeoptics.com/es/diseno-de-lentes/montaje-de-lente-y-f-no-informacion/




martes, 23 de abril de 2019

Servidor WEB con Cámara en Orange PI

Volver

Servidor WEB con Cámara
Orange PI


En el anterior artículo había realizado y probado un servidor WEB con la placa Orange PI y el servidor  NGINX.
En este artículo añado un componente mas a Orange PI, una cámara.
A través de la página web se podrá ver la imagen de la calle, esta imagen se actualizará cada 2 minutos.
http://seta43.duckdns.org/seta/webcam/index.html


Imagen vista desde un navegador.

Para este proyecto hemos utilizado una webcam  Logitech, Inc., aunque sirve cualquiera que funcione en Linux.

Cámara colocada en la ventana.

Como base de la página web tenemos el fichero index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <meta http-equiv="refresh" content="115">
    <title>miweb</title>
  </head>
  <body alink="#EE0000" bgcolor="#ffff99" link="#0000EE" text="#000000"
    vlink="#551A8B">
    <i><big><b>Mi_Cámara</b></big></i><br>
    <hr size="2" width="100%"><big><big style="font-weight: bold;"><img
          alt="" src="web.jpg" height="480" width="640"><br>
        <br>
mar abr 23 20:26:01 CEST 2019
      </big></big>
  </body>
</html>



Lo primero que debemos hacer es utilizar un programa que capture una imagen de la webcam para colocarla en la página web.
_____VERSIÓN___ANTIGUA CAMBIADA_________
El programa utilizado es vgrabbj , este programa se maneja vía comandos, que es lo que nos interesa.

vgrabbj -U -R -i vga  -z 50  -f /home/seta/www/webcam/web.jpg


Con esta orden capturamos una imagen en /home/seta/www/webcam/web.jpg , es donde alojaremos la página web de la webcam.
En mi caso coloco mi webcam boca-abajo para mejor sujección, por lo cual debo utilizar las opciones -U -R para dejar la imagen bien.
El tamaño será de 640x480, con la orden -i vga capturo  ese tamaño.
En algunas webcam se necesita ciertas imágenes para que se estabilice la luz, yo espero 50 imágenes, opción -z 50.
El script queda de la siguiente manera.


#!/bin/bash
datecreated=`date`

vgrabbj -U -R -i vga  -z 50  -f /home/seta/www/webcam/web.jpg
sed -i '14d' /home/seta/www/webcam/index.html
sed -i "14i${datecreated}" /home/seta/www/webcam/index.html


Después de funcionar perfectamente la webcam durante 1 semana, se me ocurrió reiniciar la placa Orange PI.
Resultaba que la webcam no se llegaba a ver. Probando y probando me dí cuenta que el programa vgrabbj no funcionaba a veces cuando se lanzaba por primera vez.
Para solucionar el problema he cambiado el programa que captura imagenes, y ahora es fswebcam.
Ahora funciona todo bien cuando re reinicia el servidor.

#!/bin/bash
datecreated=`date`

#echo "$datecreated" >> /home/seta/web.txt
#vgrabbj -U -R -i vga  -z 50  -f /home/seta/www/webcam/web.jpg
#uvccapture -x640 -y480 -m -o"/home/seta/www/webcam/web.jpg"
fswebcam -r "640x480" -S 40 --flip h,v  --no-banner  --jpeg 70  /home/seta/www/webcam/web.jpg
sed -i '14d' /home/seta/www/webcam/index.html
sed -i "14i${datecreated}" /home/seta/www/webcam/index.html


Con el comando sed borro la línea 14, e inserto la hora y la fecha en la página web.

Para que la página web se actualize automáticamente coloco en la cabecera de la página web:

 <meta http-equiv="refresh" content="115">

Esto hace que se actualice cada 115 segundos.

Ya tenemos el script creado, pero nos falta que el script se ejecute cada 2 minutos.
Para esta tarea utilizaremos cron.  El comando cron es un administrador regular de procesos en segundo plano que viene de serie en linux.
Para añadir el comando que se debe ejecutar en segundo plano, utilizaremos el comando crontab -e  .
Y editaremos de la siguiente forma:

*/2  * * * * /home/seta/www/webcam/tareaWeb > /dev/null 2>&1

De esta forma el script se ejecutara cada 2 minutos.

Como veis es una forma bastante sencilla de crear una webcam en tu página web.


Saludos
Juan Galaz

Bibliografía:

servi.html
wpa.html
wpb.html
orange.html
https://orangepiweb.es/
http://www.orangepi.org/orangepibbsen/forum.php?gid=38