Cerradura de vibración con Arduino
David Moreno Majuelo
Jaime Muñoz Aparicio
INTRODUCCIÓN
Nuestro
proyecto consiste en una cerradura de vibración, o lo que es lo mismo, una
cerradura que es capaz de abrirse al detectar un número determinado de golpes.
Esta creación puede utilizarse tanto para puertas como para cajas o similares.
proyecto consiste en una cerradura de vibración, o lo que es lo mismo, una
cerradura que es capaz de abrirse al detectar un número determinado de golpes.
Esta creación puede utilizarse tanto para puertas como para cajas o similares.
En nuestro
caso, por simplificar, hemos decidido colocar todos los componentes utilizados
sobre un marco que ejerce la función de puerta. Este marco contiene unas bisagras
que permiten el desplazamiento de la puerta, cuando esta no tiene un tope o cerrojo
accionado. Cabe destacar que este tope o cerrojo no se desbloqueará a la
posición correcta para abrir la puerta hasta que el sistema no detecte el
número de golpes correcto. Para que un golpe se considere como correcto, debe
encontrarse dentro del rango entre el mínimo y máximo valor de vibración
establecidos. A su vez, la secuencia final correcta está definida para un
número de golpes efectivos concreto.
caso, por simplificar, hemos decidido colocar todos los componentes utilizados
sobre un marco que ejerce la función de puerta. Este marco contiene unas bisagras
que permiten el desplazamiento de la puerta, cuando esta no tiene un tope o cerrojo
accionado. Cabe destacar que este tope o cerrojo no se desbloqueará a la
posición correcta para abrir la puerta hasta que el sistema no detecte el
número de golpes correcto. Para que un golpe se considere como correcto, debe
encontrarse dentro del rango entre el mínimo y máximo valor de vibración
establecidos. A su vez, la secuencia final correcta está definida para un
número de golpes efectivos concreto.
Con la ayuda de
dos leds de distintos colores (verde y rojo), podremos saber si la cerradura se
encuentra bloqueada o no. Un tercer led de color amarillo, nos servirá para
saber si el sistema ha detectado como correctos los golpes que se efectúen.
Inicialmente, al conectar el circuito, la cerradura se encuentra desbloqueada,
y por tanto el led verde encendido. Una vez accionado un pulsador, la cerradura
se bloquea (con el consiguiente giro del servomotor) y por tanto el led verde
se apaga para dar paso al rojo. En este preciso instante, comienza el proceso
de detección de golpes correctos, teniendo en cuenta intensidad sonora y número
de golpes determinado. Una vez se ha detectado la secuencia de golpes correcta,
la cerradura se desbloquea, pudiendo en este caso accionar la puerta, y el
proceso vuelve a su punto inicial.
dos leds de distintos colores (verde y rojo), podremos saber si la cerradura se
encuentra bloqueada o no. Un tercer led de color amarillo, nos servirá para
saber si el sistema ha detectado como correctos los golpes que se efectúen.
Inicialmente, al conectar el circuito, la cerradura se encuentra desbloqueada,
y por tanto el led verde encendido. Una vez accionado un pulsador, la cerradura
se bloquea (con el consiguiente giro del servomotor) y por tanto el led verde
se apaga para dar paso al rojo. En este preciso instante, comienza el proceso
de detección de golpes correctos, teniendo en cuenta intensidad sonora y número
de golpes determinado. Una vez se ha detectado la secuencia de golpes correcta,
la cerradura se desbloquea, pudiendo en este caso accionar la puerta, y el
proceso vuelve a su punto inicial.
MATERIALES Y PRESUPUESTO
En la siguiente tabla se pueden
ver todos los componentes necesarios para la realización del proyecto, así como
su precio.
ver todos los componentes necesarios para la realización del proyecto, así como
su precio.
El coste total de todos los
materiales utilizados es de 13,6 euros, aparte por supuesto de la mano de obra,
de los componentes proporcionados por el profesor (placas protoboard y arduino
1) y de la utilización de un ordenador con el software necesario instalado.
materiales utilizados es de 13,6 euros, aparte por supuesto de la mano de obra,
de los componentes proporcionados por el profesor (placas protoboard y arduino
1) y de la utilización de un ordenador con el software necesario instalado.
MONTAJE
Para la realización del proyecto
en primer lugar nos dispusimos a adquirir los componentes necesarios arriba
enumerados y colocarlos en las posiciones exactas de la placa protoboard
quedándonos el siguiente circuito resultante.
en primer lugar nos dispusimos a adquirir los componentes necesarios arriba
enumerados y colocarlos en las posiciones exactas de la placa protoboard
quedándonos el siguiente circuito resultante.
Una vez con el circuito
correctamente montado nos dispusimos a elaborar el código que aparecerá más
abajo y probarlo sobre este circuito colocando el altavoz piezoeléctrico sobre
una mesa con el objetivo de que este detectara los golpes efectuados sobre
dicha mesa.
correctamente montado nos dispusimos a elaborar el código que aparecerá más
abajo y probarlo sobre este circuito colocando el altavoz piezoeléctrico sobre
una mesa con el objetivo de que este detectara los golpes efectuados sobre
dicha mesa.
Tras diferentes probaturas
conseguimos que se detectaran los golpes realizados y que el servo motor
cambiara de posición cuando el número de golpes realizado era el correcto, lo
cual comprobábamos mediante el uso de tres leds diferentes. Uno rojo que se
ilumina cuando la cerradura está bloqueada, otro amarillo que parpadea cada vez
que se produce un golpe con la intensidad adecuada y otro verde que se ilumina
al desbloquearse la cerradura, es decir, cuando se alcanza el número de golpes
correctos.
conseguimos que se detectaran los golpes realizados y que el servo motor
cambiara de posición cuando el número de golpes realizado era el correcto, lo
cual comprobábamos mediante el uso de tres leds diferentes. Uno rojo que se
ilumina cuando la cerradura está bloqueada, otro amarillo que parpadea cada vez
que se produce un golpe con la intensidad adecuada y otro verde que se ilumina
al desbloquearse la cerradura, es decir, cuando se alcanza el número de golpes
correctos.
En el momento en el que todo
funcionaba según nuestras intenciones, debíamos decidir de qué modo poder
recrear una puerta o algo similar que nos permitiera demostrar el correcto funcionamiento
de la cerradura. Para ello y tras realizar diferentes pruebas con cajas y elementos similares, decidimos que lo mejor
era imitar una puerta mediante el uso del marco de una foto de un tamaño
considerable, consiguiendo que este haga la función de puerta mediante el uso
de dos bisagras que permitan que la parte interna se desplace realizando los
movimientos cotidianos de una puerta.
funcionaba según nuestras intenciones, debíamos decidir de qué modo poder
recrear una puerta o algo similar que nos permitiera demostrar el correcto funcionamiento
de la cerradura. Para ello y tras realizar diferentes pruebas con cajas y elementos similares, decidimos que lo mejor
era imitar una puerta mediante el uso del marco de una foto de un tamaño
considerable, consiguiendo que este haga la función de puerta mediante el uso
de dos bisagras que permitan que la parte interna se desplace realizando los
movimientos cotidianos de una puerta.
Llegados a este punto nos faltaba
combinar nuestra puerta con el circuito, lo cual requirió de varias
modificaciones en ambos elementos.
combinar nuestra puerta con el circuito, lo cual requirió de varias
modificaciones en ambos elementos.
Para juntar la puerta con los
elementos de nuestro circuito utilizamos cinta de doble cara para pegar a la
parte posterior de la puerta la placa protoboard, la placa arduino 1, el servo
motor y el altavoz piezoeléctrico.
elementos de nuestro circuito utilizamos cinta de doble cara para pegar a la
parte posterior de la puerta la placa protoboard, la placa arduino 1, el servo
motor y el altavoz piezoeléctrico.
Necesitábamos algún tipo de
mecanismo que nos permitiera bloquear la apertura de la puerta cuando nuestro
circuito determinara que esta estaba cerrada,
y que fuera capaz de permitir que la puerta se abriera cuando el
circuito determinara que la cerradura estaba desbloqueada. Para ello utilizamos
unas pequeñas maderitas que nos permitieron colocar el servo motor a la
distancia exacta respecto a la pieza que actuaría como cerrojo, de tal modo que
según la posición de las palas del servo motor el cerrojo se encontrara
bloqueado o no, permitiendo de este modo la apertura de la puerta solo cuando
esta sea posible.
mecanismo que nos permitiera bloquear la apertura de la puerta cuando nuestro
circuito determinara que esta estaba cerrada,
y que fuera capaz de permitir que la puerta se abriera cuando el
circuito determinara que la cerradura estaba desbloqueada. Para ello utilizamos
unas pequeñas maderitas que nos permitieron colocar el servo motor a la
distancia exacta respecto a la pieza que actuaría como cerrojo, de tal modo que
según la posición de las palas del servo motor el cerrojo se encontrara
bloqueado o no, permitiendo de este modo la apertura de la puerta solo cuando
esta sea posible.
Por ultimo necesitábamos colocar
los leds, que inicialmente estaban conectados directamente con la placa arduino
1, es decir, en la parte posterior de la puerta, en una posición que nos
permitiera verlos desde el lado de la puerta por el que hay que efectuar los
golpes. De este modo podemos ver desde la posición en la que se realizan los
golpes si estos han sido detectados o no, así como el estado de la cerradura,
bloqueada o desbloqueada. Para esto realizamos unos pequeños agujeros en la
parte interna del marco colocando los leds en dichos agujeros y conectándolos
con la placa arduino 1 mediante el uso de cables de una mayor longitud.
los leds, que inicialmente estaban conectados directamente con la placa arduino
1, es decir, en la parte posterior de la puerta, en una posición que nos
permitiera verlos desde el lado de la puerta por el que hay que efectuar los
golpes. De este modo podemos ver desde la posición en la que se realizan los
golpes si estos han sido detectados o no, así como el estado de la cerradura,
bloqueada o desbloqueada. Para esto realizamos unos pequeños agujeros en la
parte interna del marco colocando los leds en dichos agujeros y conectándolos
con la placa arduino 1 mediante el uso de cables de una mayor longitud.
A efectos de mejorar el aspecto
estético colocamos una caja en la parte posterior del marco, de manera de que
esta ejerza la función de tapa para cubrir y ocultar los elementos electrónicos
del circuito.
estético colocamos una caja en la parte posterior del marco, de manera de que
esta ejerza la función de tapa para cubrir y ocultar los elementos electrónicos
del circuito.
FUNCIONAMIENTO
El funcionamiento de la cerradura
es muy básico. Consiste en que nuestro
circuito detecte los golpes realizados sobre la puerta, siempre que estos estén
dentro de los rangos de intensidad preestablecidos. En el momento en el que se alcance el número
de golpes necesarios, la cerradura se desbloqueará, permitiendo que la puerta pueda
abrirse. En caso contrario el servo
motor evitara la apertura de esta.
es muy básico. Consiste en que nuestro
circuito detecte los golpes realizados sobre la puerta, siempre que estos estén
dentro de los rangos de intensidad preestablecidos. En el momento en el que se alcance el número
de golpes necesarios, la cerradura se desbloqueará, permitiendo que la puerta pueda
abrirse. En caso contrario el servo
motor evitara la apertura de esta.
En el siguiente enlace se puede
ver un video en el que se aprecia el funcionamiento de la puerta, donde vemos
que hasta que no efectuamos tres golpes (numero preestablecido) la puerta no
puede ser abierta.
ver un video en el que se aprecia el funcionamiento de la puerta, donde vemos
que hasta que no efectuamos tres golpes (numero preestablecido) la puerta no
puede ser abierta.
PROBLEMAS
A lo largo de la realización del
proyecto nos hemos encontrado con diferentes problemas que hemos tenido que ir
solucionando sobre la marcha.
proyecto nos hemos encontrado con diferentes problemas que hemos tenido que ir
solucionando sobre la marcha.
Altavoz piezoeléctrico.
El primer problema grave que
tuvimos fue que el altavoz piezoeléctrico que habíamos comprado no funcionaba
de la manera esperada debido a que detectaba pequeños golpes como grandes
vibraciones, por lo que por cada golpe que efectuábamos solía detectar más de
uno, o incluso llegaba a detectar vibraciones sin estas haber sido provocadas
por un golpe. Para solucionarlo tuvimos que adquirir otro altavoz
piezoeléctrico, en este caso uno puro, fiándonos de las recomendaciones del
encargado de la tienda. Y efectivamente, al montar el circuito con este nuevo
elemento la detección de los golpes mejoro ostensiblemente.
tuvimos fue que el altavoz piezoeléctrico que habíamos comprado no funcionaba
de la manera esperada debido a que detectaba pequeños golpes como grandes
vibraciones, por lo que por cada golpe que efectuábamos solía detectar más de
uno, o incluso llegaba a detectar vibraciones sin estas haber sido provocadas
por un golpe. Para solucionarlo tuvimos que adquirir otro altavoz
piezoeléctrico, en este caso uno puro, fiándonos de las recomendaciones del
encargado de la tienda. Y efectivamente, al montar el circuito con este nuevo
elemento la detección de los golpes mejoro ostensiblemente.
Servo Motor
Una vez solucionamos este
problema notamos que se seguían detectando vibraciones en momentos en los que
no se realizaban golpes sobre la puerta, lo cual venia provocado por el
incorrecto funcionamiento de nuestro servo motor. Investigando por internet
descubrimos que los servo motores de baja calidad no consiguen colocarse
exactamente en la posición indicada y en este proceso vibran buscando la
posición correcta, provocando esta vibración que se detecten golpes en momentos
en lo que estos no se producen. Tras probar el circuito con diferentes
condensadores y no obtener resultados, decidimos comprar un servo motor nuevo con
el cual obtuvimos mejores resultados, pese a que en ocasiones sigue provocando
vibraciones que son recibidas por nuestro circuito como si fueran golpes sin
realmente serlo. Esto es debido a que el servo motor adquirido pese a ser mejor
que el anterior sigue teniendo una calidad limitada.
problema notamos que se seguían detectando vibraciones en momentos en los que
no se realizaban golpes sobre la puerta, lo cual venia provocado por el
incorrecto funcionamiento de nuestro servo motor. Investigando por internet
descubrimos que los servo motores de baja calidad no consiguen colocarse
exactamente en la posición indicada y en este proceso vibran buscando la
posición correcta, provocando esta vibración que se detecten golpes en momentos
en lo que estos no se producen. Tras probar el circuito con diferentes
condensadores y no obtener resultados, decidimos comprar un servo motor nuevo con
el cual obtuvimos mejores resultados, pese a que en ocasiones sigue provocando
vibraciones que son recibidas por nuestro circuito como si fueran golpes sin
realmente serlo. Esto es debido a que el servo motor adquirido pese a ser mejor
que el anterior sigue teniendo una calidad limitada.
MEJORAS
Una vez finalizamos el proyecto
decidimos que por lo menos teníamos que intentar implementar alguna mejora que
aumentara la calidad y eficacia de nuestra cerradura. La idea era conseguir que
en vez de que nuestra cerradura se abriera al detectar un número exacto de
golpes, se desbloqueara solo si la secuencia de golpes es correcta en función
de la intensidad de cada uno de estos, es decir, una secuencia del tipo: golpe fuerte – golpe flojo – golpe fuerte –
golpe fuerte – golpe flojo.
decidimos que por lo menos teníamos que intentar implementar alguna mejora que
aumentara la calidad y eficacia de nuestra cerradura. La idea era conseguir que
en vez de que nuestra cerradura se abriera al detectar un número exacto de
golpes, se desbloqueara solo si la secuencia de golpes es correcta en función
de la intensidad de cada uno de estos, es decir, una secuencia del tipo: golpe fuerte – golpe flojo – golpe fuerte –
golpe fuerte – golpe flojo.
Finalmente tras muchos intentos y
diversas modificaciones sobre el código conseguimos que la cerradura
funcionara. Para ello tuvimos que implementar un array que fuera almacenando
los diferentes golpes realizados sobre la puerta, insertando un 0 en el array
en caso de que el golpe sea flojo y un 1 en caso de que el golpe sea fuerte, de
modo que la cerradura solo sería desbloqueada en caso de que el array
coincidiera con un array previamente determinado que contenga la combinación
correcta.
diversas modificaciones sobre el código conseguimos que la cerradura
funcionara. Para ello tuvimos que implementar un array que fuera almacenando
los diferentes golpes realizados sobre la puerta, insertando un 0 en el array
en caso de que el golpe sea flojo y un 1 en caso de que el golpe sea fuerte, de
modo que la cerradura solo sería desbloqueada en caso de que el array
coincidiera con un array previamente determinado que contenga la combinación
correcta.
El circuito correspondiente a
esta mejora es el siguiente. No hay apenas diferencias respecto al circuito
explicado anteriormente ya que los cambios básicamente se encuentran en el
código, siendo la principal novedad en el circuito el añadido de un zumbador
que emite sonidos en caso de que la secuencia de golpes no sea correcta.
esta mejora es el siguiente. No hay apenas diferencias respecto al circuito
explicado anteriormente ya que los cambios básicamente se encuentran en el
código, siendo la principal novedad en el circuito el añadido de un zumbador
que emite sonidos en caso de que la secuencia de golpes no sea correcta.
CÓDIGO
Código de la cerradura que se abre
al alcanzar un número de golpes determinado.
https://drive.google.com/file/d/0B7Z1azAi1g8hdnYyQ0xVUTA4Smc/view?usp=sharing
al alcanzar un número de golpes determinado.
https://drive.google.com/file/d/0B7Z1azAi1g8hdnYyQ0xVUTA4Smc/view?usp=sharing
Video demostración:
https://www.youtube.com/watch?v=mLYfzQxGpfk
https://www.youtube.com/watch?v=mLYfzQxGpfk
Código de la cerradura que se abre
al producirse una secuencia concreta de golpes fuertes y flojos.
https://drive.google.com/file/d/0B7Z1azAi1g8hVGlEdXZOYXJjckk/view?usp=sharing
al producirse una secuencia concreta de golpes fuertes y flojos.
https://drive.google.com/file/d/0B7Z1azAi1g8hVGlEdXZOYXJjckk/view?usp=sharing
Video demostración:
Enlace a la Memoria:
Enlace a la Presentación:
https://drive.google.com/file/d/0B7Z1azAi1g8hT2pxVThMdFJoMm8/view?usp=sharing
https://drive.google.com/file/d/0B7Z1azAi1g8hT2pxVThMdFJoMm8/view?usp=sharing
Enlace a Carpeta:
https://drive.google.com/drive/folders/0B7Z1azAi1g8hSnRiSlRVYkt2Wjg?usp=sharing