[Scripts actualizados al final del hilo]Ya "presenté" mi nueva webcam en el foro de Instrumentos meteorológicos, pero quería hacer por aquí un apartadillo para ver si alguien mas se anima a montar un invento de estos, creo que los resultados son interesantes y la inversión puede ser pequeña.
El caso es que llevaba tiempo pensando como mejorar la calidad de la webcam de mi página, y estuve buscando algún tipo de webcam que realmente diera una calidad de imagen aceptable.
La primera opción fueron las webcam con sensor de tipo CCD. Hay algunos modelos en el mercado de las gamas altas de philips, logitech y creative que no dan mal resultado, pero no exactamente el que yo me esperaba y mas hablando de cámaras que andaban por los 90€, por ejemplo:
http://www.jaxweathercam.net/Aun así estuve investigando más y encontré cosas como estas:
http://www.melbournephotos.net.au/webcam/http://www.australiasevereweather.com/video/webcam.htmhttp://webcams.bsch.au.com/redcliffe.htmlhttp://webcams.bsch.au.com/kipparing.htmlSobre todo tras ver la primera, la de Melbourne, me preguntaba como podía obtener esa calidad, y no era el único que se lo preguntaba como se puede ver aquí:
http://forums.whirlpool.net.au/forum-replies-archive.cfm/750173.htmlEn resumen, las webcam con mejor calidad consistían en cámaras de fotos digitales que de alguna forma, estaban conectadas de forma permanente con un PC para realizar fotografías de forma automática cada X minutos.
El tema me pareció interesante y me puse a ello, os resumo un poco lo que tengo montado:
1. El Hardware.
Tras investigar un poquillo por la red, vi que los programas "estrella" para realizar montajes de este tipo eran Psremote y VM95. El primero para cámaras de Canon y el segundo para cámaras Olympus (y alguna Kodak).
Es importante antes de hacer ninguna inversión asegurarse de que la cámara sirve para control remoto, este es un pequeño listado de las agraciadas:
Para PSremote (todas Canon)
Pro series Pro90IS, Pro1
G-series G1, G2, G3, G5, G6, G7
S-series S30, S40, S45, S50, S60, S70, S80, S1 IS, S2 IS, S3 IS
A-series A20, A30, A40, A60, A70, A75, A80, A85, A95, A300, A310, A400, A510, A520, A620, A640
Digital IXUS SD100 (Digital IXUS II), SD110 (Digital IXUS IIs), S230 (Digital IXUS 330), S400 (Digital IXUS 400), S410 (Digital IXUS 430), S500 (Digital IXUS 500)
Atención a las PowerShot A410, A430, A530, A540, A610, A630, A700, A710 IS y las de la serie SD (e.g. SD30, SD40, SD400 (Digital IXUS 50), SD430, SD450 (Digital IXUS 55), SD500 (Digital IXUS 700), SD550 (Digital IXUS 750), SD600, SD630, SD700 IS, SD800 IS, SD900 etc.) no funcionan con PSRemote ya que no permiten control remoto.
Con vm95:
Olympus
C-series Cameras: c-4000 c-4040 c-5050 c-5060 c-700 c-730 c-750 c-765 c-7070 c-8080
D-series Cameras: d-575 d-595
S-series Cameras: sp-350 sp-500 sp-700
E-series Cameras: e-1(evolt) e-300
Kodak* :
DC-series Cameras: dc-120 dc-260 dc-290 dc-4800
Esta lista no está completa, es la que actualmente figuran en las web de los fabricantes del software, pero con el ritmo de publicación de modelos de los fabricantes de cámaras, seguro que hay muchas más que sirven.
Es posible que haya mucha gente que tenga alguna de estas cámaras, sobre todo de los modelos antiguos en algún cajón sin usar, si es así, es el momento de desempolvarla. Si no hay suerte, en Internet se pueden encontrar modelos de segunda mano en buen estado de uso por poco dinero, yo por ejemplo, encontré en Ebay una Canon Powershot A20 por unos 40 €, aunque por mi torpeza al intentar conectarla a un alimentador, pasó a mejor vida.
Tras arduas negociaciones con un familiar, me hice con una powershot a520 de 4 Mpx que es la que uso actualmente.
Otro tema importante es el de la alimentación, evidentemente el funcionamiento con pilas no es muy recomendable, en mis primeras pruebas que hice con este sistema de alimentación, las pilas cascaban a las 6 horas de estar encendida la cámara.
También las webs de pujas en internet te pueden ayudar en esto, yo he comprado el alimentador en:
http://camaras-digitales-fotografia.search.ebay.es/_Accesorios-Camara-Digital_W0QQcatrefZC12QQsacatZ18866QQsassZyewelongComo la cámara iba a estar en la calle, necesitaba algo que la protegiera de la intemperie, lo mas barato y efectivo que se me ocurrió fue utilizar un foco halógeno de los que se encuentran en cualquier tienda de bricolaje (algo menos de 5€ en el Leroy Merlin).
Tras quitar todos los componentes que se encargan de sujetar la bombilla y el cableado del foco, sujete la cámara dentro con un tornillo que encaja en el soporte para el trípode, así queda mas o menos sujeta.
Como la vista que obtenía si fijaba directamente el foco a la pared no era el que mas me gustaba, me hice con un trozo de estantería de Mecalux que tras ser doblado convenientemente, me da la perspectiva que mas me gusta (hacia la sierra de Madrid).
Para la conectividad, hay que pasar dos cables hacia el foco, el de alimentación (unos metros de paralelo bicolor con el conector apropiado en el extremo) y el de Usb para el que me tuve que hacer con un alargador de 3 Metros que compré en Pcbox (unos 2€ y pico).
Como la pared donde está sujeta la cámara, corresponde con la "sala de máquinas", un agujero en la pared fue suficiente para pasar los cables y conectarlos al PC y al alimentador.
Si hay mas distancia con la ubicación de la cámara, existen diversas soluciones que permiten alargar el alcance del USB, transmisores inalámbricos, por PLC o mediante cable UTP de red.
Un último punto en el que estuve trabajando era sobre la forma de evitar que las gotas de agua de lluvia incidieran directamente en cristal del foco, afectando a la imagen en los días que mas nos gustan. Para evitarlo, me hice con un trozo de metacrilato de un expositor que tiró el de la farmacia del barrio, y con unos soportes, lo puse encima del foco, evitando la mayoría del agua sobre el cristal. Hubiese quedado mas protegida si el "tejadito" estuviera mas bajo, pero claro, no quiero que "salga" en la foto.
Este es el resultado del montaje ya en su sitio
2. El software
Lo más importante es el programa que se usa para controlar la cámara y realizar las capturas yo uso Psremote y realmente es el que conozco, en este pantallazo, se puede ver el "interface" del programa y todo lo que se puede controlar desde él:
El software se puede encontrar aquí:
http://www.breezesys.com/PSRemote/index.htmEl programa es realmente completo, aunque las características controlables de la cámara, dependen del modelo.
Lo realmente interesante de este programa es que se puede llamar desde línea de comandos mediante el ejecutable "psremotetest". Mediante este ejecutable, no es solo posible disparar las fotos, también se pueden controlar las características de las fotos que hacemos como velocidad de obturación, apertura, sensibilidad, etc.
Mediante el psremotetest, y mediante el siguiente script al que llamo con una tarea programada de windows, realizo la foto y guardo la anterior para la posteridad:
"C:\Archivos de programa\BreezeSys\PSRemote\PSRemoteTest\psremotetest.exe" -I 0 -e 0
Set CURRDATE=%TEMP%\CURRDATE.TMP
Set CURRTIME=%TEMP%\CURRTIME.TMP
DATE /T > %CURRDATE%
TIME /T > %CURRTIME%
Set PARSEARG="eol=; tokens=1,2,3,4* delims=/, "
For /F %PARSEARG% %%i in (%CURRDATE%) Do SET YYYYMMDD=%%k%%j%%i
Set PARSEARG="eol=; tokens=1,2,3* delims=:, "
For /F %PARSEARG% %%i in (%CURRTIME%) Do Set HHMM=%%i%%j%%k
if exist e:\psremote\0002.jpg (
move e:\psremote\0001.jpg e:\psremote\guardado\%YYYYMMDD%%HHMM%_I.jpg
rename e:\psremote\0002.jpg 0001.jpg)
del e:\psremote\0003.jpg /Q
Como se puede ver, las fotos se renombran al ser guardadas con la fecha y la hora. Por defecto el psremote guarda las fotos de forma numerada, pero como yo quiero usar siempre "0001.jpg" como nombre, renombro la foto recién hecha y guardo la anterior.
La primera línea del archivo es la que hace la foto, -I 0 -e 0 significa ISO 50 y exposición en modo "Program".
Para el script que se ejecuta por la noche, cambio esto a:
"C:\Archivos de programa\BreezeSys\PSRemote\PSRemoteTest\psremotetest.exe" -e 1 -s 3 -I 1
Que significa prioridad de apertura a 8" e ISO 200.
La nomenclatura (ay! Hasta que di cuenta) hace corresponder el valor que asignes al parámetro con su posición en las listas desplegables del programa.
Para ponerle a las fotos el rótulo de "MeteoGetafe" , la fecha y hora y para montar la "Galería":
http://www.meteogetafe.com/gallery/index1.html, utilizo otro programa llamado "WebcamXP"
http://www.webcamxp.com/La única forma que se me ha ocurrido para el el WebcamXP lea el archivo "0001.jpg" y realice su trabajo, ha sido configurando el webcamXP para que se crea que está utilizando una cámara IP (opción Stream from network). Para ello utilizo el Internet information Server que viene incluido en el XP y publico el directorio donde se guarda el archivo de imagen como un directorio virtual, así, el webcamXP coge las imagenes de la URL
Http://localhost/psremote/0001.jpg
.
Seguramente hay alguna manera más fácil, pero esta es la que se me ha ocurrido.
Tengo algún script más para borrar fotos antiguas (mas de 3 días) del Ftp del servidor web tal que este:
rem @ECHO OFF
:: Comprobar si hay contraseña
IF "%1"=="" GOTO Ayuda
Set CURRDATE=%TEMP%\CURRDATE.TMP
DATE /T > %CURRDATE%
Set PARSEARG="eol=; tokens=1,2,3,4* delims=/, "
For /F %PARSEARG% %%i in (%CURRDATE%) Do SET YYYYMMDD=%%k%%j%%i
set /a YYYYMMDD=YYYYMMDD-3
:: crear un archivo temporal llamado script.ftp
:: el signo > y >> es para canalizar el texto.
> script.ftp ECHO usuario del FTP
>>script.ftp ECHO %1
>>script.ftp ECHO cd /html/gallery
>>script.ftp ECHO prompt
>>script.ftp ECHO mdelete gallery_%YYYYMMDD%*
>>script.ftp ECHO mdelete thumb_%YYYYMMDD%*
>>script.ftp ECHO quit
:: Usamos el archivo recien creado:
FTP -s:script.ftp dirección del ftp
:: sobreescribimos el fichero temporal y lo borramos
TYPE NUL >script.ftp
DEL script.ftp
GOTO End
:Ayuda
ECHO Uso: %0 password
:End
A este script lo llamo desde otra tarea programada de windows pasándole como parámetro la password del servidor web.
Bueno, y este es el resultado:
Se me ocurren muchas mejoras, por ejemplo:
- Tengo que solucionar el problema de alimentación de la cámara cuando se va la luz o la tengo que desconectar de la alimentación, la cámara se apaga y tengo que salir a la calle, abrir el foco y darle al botoncito... Estaba pensando en un SAI aunque fuera solo para eso.
- Me gustaría hacer un video con las imágenes, hay algún script muy interesante con el "jsMovieplayer", pero tendría que adaptar nombres de archivo y demás.
Ahora uso el video de Weather Underground:
http://www.meteogetafe.com/video.htmlPero como podéis ver la calidad deja muchísimo que desear.
- Otra mejora que se me ocurre sería que en vez de tener dos tareas para día-noche, que el propio script detectara la hora de amanecer y ocaso para variar las carácterísticas de la exposición.
Bueno, creo que como punto de partida para el que se quiera animar es bastante, de todas formas quedo a vuestra disposición para cualquier duda o sugerencia que pueda surgir.