31 de octubre de 2014

Arduino Halloween

Pues para divertirnos en HalloWeen se me ha ocurrido hacer una ArduinoCalabaza con los trastos que tengo por casa: un Led RGG que cambie de color, el medidor de distancia ultrasónica para que detecte si alguien o algo se acerca, un buzzer para hacer sonido y arduino.
De momento no he conseguido que diga "trick-or-treat".

Materiales:
Arduino Nano Rev3 ó Arduino UNO Rev3
Altavoz piezoeléctrico
Led RGB de cátodo comun.
3 resistencias de 100 Ohmnios
Modulo medidor ultrasónico HC-SR04
Unos Cables.
Fuente de alimentación o mediante usb de ordenador.

Esquema:



Código Arduino:


/* ## ARDUINO-HALLOWEEN ###################################### -- by www.misnotaslinux.blogspot.com - 2014 -- Led RGB que cambia de color cada tiempo. Detector de proximidad que activa el buzzer.
Programado con un condicional con millis()
para que simule interrupciones. Para meterlo dentro de una calabaza de Halloween.
########################################################### */ #include const int Trig = 3; // pin "Trig" del HC-SR04 conectado al pin digital 3 de arduino const int Echo = 2; // pin "Echo" del HC-SR04 conectado al pin digital 3 de arduino long cm = 1000; // variable que almacena la medicion de distancia del sensor. Le doy un valor inicial alto para que no suene Ultrasonic HCSR04(Trig,Echo); int pinLedR = 11; // pin Rojo del led RGB int pinLedV = 10; // pin Verde del led RGB int pinLedA = 9; // pin Azul del led RGB long lapso = 2000; // Milisegundos que cambiará de color el led RGB long cuenta = millis() + lapso; // Control del tiempo int dist = 100; // distancia en cm a la que se activa la calabaza int frec = 2500; // frecuencia inicial del sonido void setup(){ pinMode(pinLedR, OUTPUT); // pone el pinLedR como output pinMode(pinLedV, OUTPUT); // pone el pinLedV como output pinMode(pinLedA, OUTPUT); // pone el pinLedA como output } void loop(){ delay(10); // damos un tiempo para que mida el sensor ultrasónico y por efecto sonido cm = HCSR04.convert(HCSR04.timing(), 1); // medimos distnacia frente al sensor if (cm < dist) { tone(8, frec-(cm*20)); } // si hay algo cerca, hace sonar el buzzer con un frecuencia segun la distancia else { noTone(8); } // si no hay nada o nadie callamos el buzzer if ( millis() - cuenta > lapso) { // vemos si el contador ha llegado al tiempo para cambiar color del led analogWrite(pinLedR, 255 * random(0,2)); // colores básicos 0 o 255 al azar en cada canal RGB analogWrite(pinLedV, 255 * random(0,2)); analogWrite(pinLedA, 255 * random(0,2)); cuenta = millis(); // actualizamos el contador } }


La Calabaza:
Hecho esto, el prototipo, el programa ... ahora queda lo mas difícil: "Hacer la La Calabaza".

... y este es el resultado:

video



En el código se puede cambiar la frecuencia (variable frec) para conseguir diferentes sonidos y el delay( ) para cambiar los efecto de sonido. Con delays de unos 15-20ms se consiguen sonidos parecidos a los de R2D2!!.


Una mente ociosa es el taller del diablo.
Northern Exposure, Temporada 6, Cap.: 5.

Terrorífico!!!!



30 de octubre de 2014

Instalar y configurar ZoneMinder en Debian 7 Wheezy

En mi caso se trata de un sistema Debian 7 Wheezy, con apache2, MySQL, V4L2, y los módulos
necesarios para que funcione la cámara web.

Ahora, vamos instalar y configurar ZoneMinder:

1) Actualizamos la base de datos de paquetes y el sistema:
# aptitude update
# aptitude upgrade

2) Instalamos Zoneminder y sus dependencias:
# aptitude install zoneminder

3) Modificamos el inicio de Zoneminder:
# nano /etc/init.d/zoneminder

          Añadir el sleep de la siguiente forma:

          start() {
              sleep 15
           echo -n "Starting $prog: "

          Salvar (ctrl+o) y salir (ctrl+x).

Con esto zoneminder esperará 15 segundos para aseguarar que la red esta activa.


4) Creamos enlaces simbólicos en apache2:
# ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf
# ln -s /etc/zm/apache.conf /etc/apache2/mods-enabled/zoneminder.conf

5) Activamos CGI:
# a2enmod cgi

6) Creamos el nuevo usuario:
# adduser www-data video

7) Reiniciamos apache2 y zoneminder
# service apache2 restart
# service zoneminder restart

8) Accediendo a ZM con el navegador web:
http://[tu dirección o ip]/zm/

...ok, con esto debemos ver la partalla de zone minder desde nuestro navegador.



9) Conectar la web cam al USB del ordenador:
Para ver si se ha conectado:
     # lsusb
     Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
     Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
     Bus 001 Device 002: ID 0951:162f Kingston Technology
     Bus 001 Device 004: ID 18e8:6238 Qcom
     Bus 002 Device 002: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)
     Bus 001 Device 005: ID 0c45:62c0 Microdia Sonix USB 2.0 Camera

ok, aqui la tenemos.

Para ver el dev que le ha asignado debian:
     # ls /dev
     ...
     ...
     video0

En mi ordenador es /dev/video0.

10) Configurar cámara en ZoneMinder:
Desde el panel de ZM en el navegador web: Add New Monitor.



Instalar y configurar Zoneminder en Xubuntu 14.04

Instalando ZpneMinder en Xubuntu 14.04:

1) Instalacion:
# aptitude install zoneminder

2) Post instalacion:
http://www.zoneminder.com/wiki/index.php/Ubuntu_Server_14.04_64-bit_with_Zoneminder_1.26.5_the_easy_way

3) Acceso a zoneminder: http://host/zm
Ok, ahora ya se puede acceder

4) Configuración y cámaras
No detecta camaras usb ?
http://www.zoneminder.com/forums/viewtopic.php?p=63801

Ok!; funciona.
v4l ya lo tenia instalado, añadiendo la linea en /usr/bin/zmcd.pl
y reiniciando zoneminder.

5) Reiniciando zoneminder:
# service zoneminder restart

6) Añadiendo camaras ip:
http://www.linux-party.com/index.php/53-privacidad/9048-instrucciones-de-uso-para-espiar-con-zoneminder-en-linux-parte-1

7) Activado autentificacion para acceder:
Desde el navegador accedemos al panel de ZoneMInder
http://yourip/zm
- Options
- Pestaña System.
- activar: OPT_USE_AUTH
- Salvar, cerrar.

Reiniciar ZoneMinder:
# service zoneminder restart

8) Crear y cambiar contraseña de usuarios:
Por defecto la contraseña y password de acceso es admin/admin.
Esto conviene cambiarlo.

Desde el navegador accedemos al panel de ZoneMInder
http://yourip/zm
- Options
- Pestaña Users.
- Hacer click en el usuario.
- Modificar el formulario del susuario donde esta su password.
- Salvar.

Comandos para buscar las cámaras:
# v4l2-ctl --list-devices

Comado para ver si zm puede comunicar con la cámara.
Ref.: http://forums.fedoraforum.org/showthread.php?t=154003)

#  zmu -d /dev/video0 -q -v

Ref.:
http://www.tuxradar.com/content/build-your-own-surveillance-zoneminder
http://www.zoneminder.com/wiki/index.php/Add_a_user_to_ZoneMinder