07 noviembre 2019

Lista la cámara con servomotor


Y terminé mi cámara con servo, que ahora la tengo funcionando. desde mi bodega muevo una perilla y la cámara gira haciendo un barrido hasta que la posiciono donde la necesito, no está perfecto pero funciona son algunos detalles que comentaré enseguida.

Me parece que es un proyecto interesante y útil que usa la Raspberry Pi3b y el Arduino Uno para hacr un sistema de video vigilancia con dtección de movimiento, voy a detallarlo aquí para agregarlo luego a mi blog Raspberry Pi y Arduino para Dummies. Algo ideal para un fin de semana.

Una breve introducción a Motion y MotionEye
Hace varios años crearon un software para Linux llamado Motion, para detectar movimiento captado por videocámaras, grabar y gestionar los clips almacenados. Era muy bueno pero como todo lo que se hace en Linux la configuración era un infierno, había que modificar archivos de texto largos y crípticos, una pesadilla muy poco intuitiva, les digo porque yo lo tuve que hacer antes de conocer MotionEye.

Calin Crisan creo que es polaco o algo así y tuvo una idea genial: hacer un front-end para configurar y gestionar el Motion. ¿Que es un front end? Que en lugar de modificar archivos manualmente se entra en una página web con una interfaz muy intuitiva donde se puede cambiar todo en unos minutos, cuando configurar de manera tradicional puede llevar horas y mucha frustración. Como se usa una página web, se puede configurar desde cualquier equipo de la casa, WIndows, Mac, Linux o lo que sea, basta con que tenga un explorador de Internet y esté conectado a nuestra red.

Esto ya era un avance extraordinario, pero su genialidad fue un paso más allá: se le ocurrió compilar una distribución Linux ultra ligera de modo de no tener necesidad de instalarlo en una máquina Linux, ese es el MotionEyeOS -el otro es MotionEye- que incluye un Linux ligero con su servidor Web, soporte Wifi y todo eso, el Software Motion y el front-end Motion Eye ¡todo en uno, llegar y encender el equipo y está funcionando!... Bueno, casi. Crisan escribió este software en 1990 y es la clásica muestra que siempre se puede hacer algo muy genial a partir de ideas bien sencillas.

Hoy el sistema de Calin Crisan es prácticamente el estándar de los software de vigilancia y está siendo incorporado de fábrica en muchos celulares de alta gama, con lo que Calin se debe estar forrando de lo lindo. Se lo merece porque su idea es genial, muy útil, sencilla y además el mimo contesta desde su sitio -personalmente- los problemas de todos los que le preguntan, con una paciencia y buena voluntad admirable. Me saco el sombrero, ese es el verdadero espíritu del Open Source.

Vamos por parte
Veamos primero lo que se necesita para la Raspberry Pi. Existen dos alternativas, la primera es muy sencilla y consiste en Descargar Motioneye OS para Raspberry Pi, en este link salen todas las versiones para descargar, elegimos la que corresponda a nuestra máquina que en mi caso es motioneyeos-raspberrypi3-20190911.img.xz (el 3 indica que es para las Raspberry 3), lo bajamos y luego usando BalenaEtcher lo instalamos en una tarjeta mini SD card, debería funcionar todo inmediatamente.  La primera vez que encendemos la Raspberry debe estar conectada a Internet por cable.

Una vez que la tenemos encendida la Raspberry debemos averiguar cual es la IP en que se está conectando a nuestra red, esta IP es de la forma 192.168.0,x onde x es el número que tenemos que averiguar. Hay varias forma para eso, por ejemplo hacer "ipconfig/all" desde la consola de cualquier máquina conectada, entrando a la configuración de nuestro modem y viendo la IP en "equipos conectados", etc. Pero lo más sencillo es bajar en nuestro celular una app que escanea las IPs, por ejemplo WUM Wifi? La hacemos correr y vemos que IP tiene el MotionEyeOs, en mi caso es el 192.168.0.2

Sabiendo eso y estamos listos. Basta con entrar a 192.168.0.x: 8765 ponemos en Admin Username "admin"y Admin Password lo dejamos en blanco y tendremos la interfaz de motion Eye lista para agregar las cámaras,cambiar los valores, etc (recuerden que x es el número de la IP de cada uno) Saldrá algo así


Lo primero que hay que hacer es ir a Network Settings y colocar el nombre y password de nuestra red Wifi, si hay cámaras conectadas a la Raspberry las detecta automáticamente y si conectamos después las agregmos. En fin, hay muchas opciones de configuración y sería muy largo ver cada una. Al final colocaré  alguno tip para configurar bien. Con eso nuestro sistema estará listo y funcionando.

Ese es el método fácil, el primero que hice y que usé por bastante tiempo. Lo malo es que usando MotionEyeOS la Raspberry no la podemos ocupar para nada más. El segundo método es mejor porque además del sistema de vigilancia podemos usar la Raspberry para cualquier otra cosa que se nos antoje. Consiste en cargar primero el Linux Raspbian normal y en seguida, desde la consola le instalamos MotionEye (no OS) siguiendo el procedimiento que aparece aquí. Es más largo pero tenemos la gran ventaja de poder disponer de la Raspberry para otras cosas, usándola desde cualquier otro equípo con VNC, que es el software de control remoto que nos permite usar un computador remoto desde la ventana de otro, por ejemplo


Desde mi notebook Windows, donde estoy escribiendo esta entrada, puedo usar también la Raspberry Pi para lo que necesite, mientras funciona normalmente el programa de video vigilancia. ¿Qué tal? Pero quería llegar un paso má adelante y poder mover la cámara desde la bodega, sin tener que sacar la maldita escalera y arriesgar una rotura de cráneo. Para eso necesitaba Un Arduino Uno, un potenciómetro y un servomotor, nada más.

El proyecto, que incluye las conexiones y el programa de control aparece en la Wiki de Arduino de los chinos donde compré el kit (US$ 29 por todo). La conexión es super sencilla

Y el código es todavía más simple
Las instrucciones para programar el Arduino desde Windows aparecen aquí, es bastante fácil. El único problema que he encontrado es que a veces la puesta COM del Windows no coincide con la del Arduino, entonces hay que cambiar la de Arduino. Si alguien tiene problemas con eso y su programa no se carga, me manda un mail y le explico como hacerlo..

Lo otro que me dio ciertos problemas fue el montaje. Yo soy muy malo para ensamblar cosas y no quería (ni podía) comprar nada, tuve que hacerlo con lo que había en casa entre los cachureos. Monté el servo en una caja eléctrica anaranjada tipo "chuqui" que tenía en la bodega, me rompí la cabeza buscando como acoplar el brazo del servo a la cámara, hasta que lo encontré: un plástico duro al pie de la cámara y amarras plásticas, quedó perfecto. Aquí van algunas fotos y un video del montaje


Y antes que se me olvide los problemas que he tenido, no son muchos pero importante saberlo. Primero la calidad de la tarjeta SD, la tarjeta "legítima" Sandisk de 32 GB que compré en 4 dólares, nos sirve para instalarle un sistema operativo, si su sistema da muchas fallas inexplicables el candidato Nº1 a problema es la calidad y velocidad de la tarjeta SD, las de mala calidad pueden servir muy bien para guardar fotos documentos y cosas así, pero nada que demande alto rendimiento.

El otro problema que tuve es que el servo hace temblar la cámara mientras está encendido, así es que hay que encenderlo, posicionar la cámara y después apagarlo. Lo perfecto es enemigo de lo bueno. Ah y acá el mini-video con el montaje, sin editar, más fome que choque de caracoles


7 comentarios:

  1. Don Tomas: Insisto. ¡Ud. es un genio!. No quiere ganar $ por que no quiere. No se necesita trabajar. Ud. crea y otro vende. Edison decía: No creo nada que no se pueda vender. Es lo que falta en Chile.

    ResponderBorrar
  2. jaja justamente buenos vendedores son lo fundamental. Yo soy pésimo vendiendo así es que pienso hacer un video curso sobre el rte de vender "si no sabes, enseña"

    ResponderBorrar
  3. Don Tomas: Para ventas le sugiero la película "Adiós, Adios Alemania.

    ResponderBorrar
  4. Buena idea... invertiré en esos materiales para hacer una torreta con sensor de movimiento.

    ResponderBorrar
  5. mecánica popular con bradanovic, está bueno el sistema de vigilancia.

    ResponderBorrar
  6. GRC buena película

    José, es entretenido y barato al menos lo básico es
    Un Raspberry (unas 36 lucas)
    Un adaptador, puede ser de un celular o lo que sea con más de 1 ampere, ideal 2 Amp
    Una tarjeta SD de 16 Gb es suficiente, legítima, una Sandisk Ultra sirve, debe cotar unas 10 lucas
    Unas dos cámaras web USB baratas (las mías costaron como 3.500 cada una)
    Eso es todo para el sistema básico con MotionEyeOS, muy entretenido para hacer

    Anónimo, funciona de perillas, llevo como 4 meses usándolo, le se la vida a toda la cuadra: a que hora salen, llegan, quien las va a dejar, todo jaja

    ResponderBorrar
  7. El próximo paso será enviar los clip grabados a mi servidor por FTP, estoy juntando aburriminiento para empear a hacerlo

    ResponderBorrar

"Send me a postcard, drop me a line
Stating point of view
Indicate precisely what you mean to say
Yours sincerely, wasting away
Give me your answer, fill in a form
Mine for evermore
Will you still need me, will you still feed me
When I'm sixty-four"