¿POR QUÉ UNA CASA AUTOMÁTICA?
La Domótica es la aplicación a la vivienda de los sistemas automáticos y de gestión.
La Domótica es la aplicación a la vivienda de los sistemas automáticos y de gestión.
El gran desarrollo de los sistemas Automáticos y de robotización en los procesos industriales también tiene su aplicación en la vivienda, donde existen multitud de sistemas de todo tipo susceptibles de ser controlados, lo que aporta múltiples ventajas como pueden ser una mejora en 5 ámbitos: confort, gestión energética, comunicaciones, seguridad y accesibilidad.
El Departamento de Tecnología del IES GRAN VIA ha desarrollado este proyecto para aplicarlo a nuestros alumnos de 3º y 4º de ESO como un proyecto que podría abarcar todo el curso escolar, ya que comprende una serie de destrezas y conocimientos muy dispares entre los que se encuentran los siguientes:
- Electricidad: por el uso de circuitos eléctricos
- Electrónica analógica: por el uso y control de señales analógicas
- Electrónica digital: conocimiento del sistema binario y la manipulación de la información
- Programación: programación de microcontroladores
- Sensores y transductores: transformación de magnitudes físicas en eléctricas
- Actuadores: control de motores, bombillas, etc.
- Mecanismos: aplicación del sistema programable a sistemas físicos y mecánicos
- Diseño y ejecución de proyectos técnicos
- Otros: habilidades manuales, trabajo en equipo, etc.
El primer paso de cualquier proyecto es definir las necesidades. Después ver el tipo de elementos a controlar, el tipo de actuadores y de elementos de control. En nuestro proyecto definimos seis sistemas a controlar, que se relacionan a continuación:
S1: Accionamiento mediante un pulsador de una puerta de garaje temporizada
S1: Accionamiento mediante un pulsador de una puerta de garaje temporizada
S3.1: Apertura y cierre de una ventana accionada por un motor paso a paso y controlada mediante un sensor de luz con LDR
S3.1: Accionamiento de lucen exteriores controladas mediante un sensor de luz con LDR
S4: Control de las luces interiores por medio de un sensor de movimiento PIR
S5: Apertura y cierre de una puerta abatible accionada por un servomotor y controlada mediante un sensor de obstáculos Sharp
S6: Alarma de incendio accionada por un sensor de llama
Una vez definidas las necesidades, tenemos que construir la maqueta sobre la que desarrollar nuestro proyecto.
Los alumnos realizan el diseño en función de los sistemas a montar (puertas, ventanas, leds, etc.)
Y realizan los planos en Autocad:
A continuación se construyen las maquetas según los planos, utilizando contrachapado de 1 cm e instalando los distintos actuadores.
Colocamos una fuente de alimentación de ordenador reciclada para alimentar todo el sistema y ya tenemos la estructura con los componentes en su sitio.
Luego realizamos el cableado
Y por último se pinta.
Una vez terminada la maqueta hay que preparar los sistemas externos de control, entre los que se encuentran la placa controladora Picaxe y el panel de sensores. Se siguen los siguientes pasos:
1º) Fabricación del panel base
- Cortar un tablero de DM de 4 mm de 40 x 21 cm
- Cortar unos listones y pegarlos en el contorno
- Pintar el panel base
2º) Colocación de la placa controladora Picaxe
- Fijar la placa controladora mediante tornillos.
- Realizar unos taladros para pasar los cables
3º) Manguera de Cables para Conexiones Externas
La forma de conectar los actuadores (motores, leds, altavoz… ) con la placa controladora es por medio de una manguera de cables.
Primero se coloca la manguera en ambos extremos mediante bridas, dejando libres los cables unos 10 o 12 cm.
Después se conectan los cables de alimentación desde la Fuente hasta la placa controladora. Para ello utilizar al menos dos cables juntos para el positivo y otros dos para el negativo.
Y finalmente se conectan el resto de los cables salida de la placa controladora hasta las conexiones de los actuadores.
Para probar el funcionamiento de cada sistema y poder programarlo mediante la placa de Picaxe, vamos a construir cada módulo de sensor por separado, de forma que se puedan programar y probar independientemente.
Pasos para la construcción de los módulos de sensores
1) Medir y cortar una tabla de DM de 4 mm, de 5 x 10 cm
2) Medir y cortar dos listones pequeños, de 5 cm
3) Pegar y clavar los listones a la base
4) Pegar el papel con los datos del sensor
5) Taladrar la base según la posición de los componentes
6) Colocar los componentes
7) Soldar los componentes según el esquema de conexiones
Soldar los cables exteriores y sacarlos a través de pequeños taladros
Una vez terminada toda la parte física, compuesta por la estructura de la casa, el hardware, los sensores y los distintos sistemas a controlar, conectamos uno a uno los distintos sensores y realizamos los programas. A continuación se muestran brevemente los esquemas de los distintos sensores y los programas “basic” que manipulan las señales y activan los actuadores.
El motor de corriente continua cambia de sentido según la polaridad de las conexiones.
Para conectar las bobinas, necesitamos un circuito integrado llamado “puente H”. Nosotros utilizaremos el 9110, que es parecido al L293D. El conjunto de motor y puente H quedaría de la siguiente manera:
Para que el motor gire en un sentido se conectan los transistores T1 y T4. Para que gire en sentido contrario se conectan los transistores T2 yT3
Pero, además, nosotros utilizamos las salidas de la tarjeta Picaxe por medio de un amplificador de colector abierto, el 2803A, por lo que es necesario añadir dos resistencias en las salidas B.0 y B.1 para obtener tensiones positivas (+5V), con lo que el esquema de conexiones quedaría como sigue:
PROGRAMA S1
Sensor1:
if pinc.0 = 1 then high c.6 low c.5
pause 350
low c.5 low c.6
pause 3000
low c.6 high c.5
pause 350
else low c.5 low c.6
endif
goto Sensor1
La NTC es una resistencia que cambia su valor dependiendo de la temperatura. A mayor temperatura menor resistencia y viceversa. Poniendo la NTC en un divisor de tensión obtenernos una tensión proporcional a la temperatura, que se puede leer mediante las entradas analógicas del controlador. El esquema es el siguiente:
El led se conecta a la misma salida que acciona el ventilador (B.2) para ver que está funcionando.
PROGRAMA S2
Sensor2:
readadc A.1, b8 ; lee la lectura del sensor y la guarda en b8
debug
if b8 > 105 then high b.2; ajustar el valor según la posición del potenciómetro
else low b.2
endif
goto Sensor2
Motor Paso a Paso Bipolar (Stepper)
El estator consta de dos bobinas con los extremos accesibles. Para que gire el rotor hay que conectar dichas bobinas en una determinada secuencia.
Para conectar las bobinas, necesitamos un circuito integrado llamado “puente H”. Nosotros utilizaremos el L293D integrado en la placa controladora. El conjunto de motor y puente H quedaría de la siguiente manera:
Como ves, cada bobina del motor está controlada por un pin del picaxe, la bobina (a-b) está controlada por los pines B.6 y B.7, y la bobina (c-d) se controla con los pines B.5 y B.4.
La secuencia necesaria para que gire el motor es la siguiente:
AVANCE B.7 B.6 B.5 B.4
1 0 1 0
1 0 0 1
0 1 0 1
RETROCESO 0 1 0 1
1 0 0 1
1 0 1 0
0 1 1 0
Sensor de iluminación mediante LDR
El LDR es una resistencia que cambia su valor dependiendo de la luz. Su funcionamiento es similar a la NTC.A mayor cantidad de luz menor resistencia y viceversa. Poniendo el LDR en un divisor de tensión obtenernos una tensión proporcional a la temperatura, que se puede leer mediante las entradas analógicas del controlador. El esquema del Sensor de LUZ mediante LDR es el siguiente:
En este caso se ha añadido un LED para observar la variación de luz en el circuito.
Programa Completo con Control por Nivel y Flag de Posición
Sensor3:
b5 = 1; suponemos inicialmente la persiana subida
Analoginput:
debug
readadc A.0, b4 ; lee la lectura del sensor y la guarda en b4
if b4 > 129 and b5 = 0 then goto subeventana
if b4 < 130 and b5 =1 then goto bajaventana
goto Analoginput
bajaventana:
low c.7
for b3 = 0 to 50
high b.7 low b.6 high b.5 low b.4
pause 2
high b.7 low b.6 low b.5 high b.4
pause 2
low b.7 high b.6 low b.5 high b.4
pause 2
low b.7 high b.6 high b.5 low b.4
pause 2
next b3
b5 = 0 ; flag de persiana bajada
goto Analoginput
subeventana:
high c.7
for b3 = 0 to 60
low b.7 high b.6 low b.5 high b.4
pause 2
high b.7 low b.6 low b.5 high b.4
pause 2
high b.7 low b.6 high b.5 low b.4
pause 2
low b.7 high b.6 high b.5 low b.4
pause 2
next b3
b5 = 1 ; flag de persiana subida
goto Analoginput
Sensor de Movimiento PIR Hc-Sr501
Sensor PIR significa Passive InfraRed, o sensor de infrarrojos pasivo. Sirve para detectar cuando una persona o animal se mueve hasta una distancia de 7 metros.
Existe un problema con los retardos de este tipo de sensor que es necesario solucionar para su correcto funcionamiento:
- La primera vez que se conecta tarda entre 30 y 60 segundos en funcionar correctamente
- Cada vez que la salida pasa a cero, el sensor se bloquea durante unos 2 segundos
Prevención de Pulsos Falsos por Software
En el arranque del sistema se dejará inactiva la salida del sensor PIR durante el primer minuto desde que se conecta la alimentación. Utilizaremos el reloj interno (timer3) para contar ese minuto. Además, para prevenir una desconexión repentina de la iluminación cuando no haya movimiento, el led permanecerá encendido durante un cierto tiempo.
La visualización de inactividad durante el primer minuto se muestra mediante un LED conectado a la patilla C.4.
Programa
Sensor4:
tmr3setup %00010011 ; timer3 on, 1:2 prescalar
vertiempo:
low C.4 ; apaga el indicador de 1 minuto
pause 500 ; short delay
debug ; display timer3 value
w5 = timer3/13 ; usamos la variable w7 como contador de segundos
if W5 < 61 then goto vertiempo; anula el sensor durante el primer minuto
main:
high C.4
readadc A.2, b12; lee la lectura del sensor y la guarda en b12
if b12 > 100 then high b.3 wait 10
else low b.3
endif
goto main
Servomotor
Es un motor que ajusta su posición, normalmente entre -180 y +180 grados, dependiendo de una señal eléctrica
Funcionamiento del servomotor:
La señal de entrada es un pulso de tensión cuadrado de longitud variable. Esta tensión se compara con la posición del motor por medio de un circuito electrónico y así se coloca el motor en la posición que queramos.
- Si el pulso es de 0,75 ms, el servo se coloca en un extremo
- Si el pulso es de 1,5 ms, el servo se coloca en el centro
- Si el pulso es de 2,25 ms, el servo se coloca en el otro extremo
Sensor de Distancia Infrarrojo Sharp (Detección 10cm <> 80 Cm)
Da un valor de tensión analógico proporcional a la distancia de un objeto
Conexión del Servomotor a Picaxe
Problemas de conexión:
1º) Para conectar el servo a picaxe solamente se pueden utilizar las salidas “B”, no se pueden utilizar las “C”.
2º) Las 4 salidas B amplificadas en lógica positiva mediante el L293D ya están utilizadas para el motor paso a paso de la ventana.
3º) Las 4 salidas B no utilizadas, están conectadas al amplificador en colector abierto 2803A, por lo que no se pueden conectar directamente.
Solución:
Vamos a utilizar la salida B.1 (colector abierto), conectando una resistencia de 1 KΩ para obtener tensión positiva. Esta tensión se meterá a la patilla de control de un amplificador en puente H 9110, y la salida de este amplificador es el que entra como señal de control al servo.
Calibración del Sensor IR Sharp
Al igual que el servomotor. inicialmento no sabemos cuales son los valores que detecta el sensor. Para conocer los valores según la posición del obstáculo podemos montar un circuito de prueba:
testsharp:
readadc A.3, b14 ; lee la lectura del sensor y la guarda en b14
debug ; muestra la lectura del sensor (b14)
pause 500
goto testsharp
Programa Completo para el Control del Servo
Sensor5: ;IR Sharp para controlar el servo de apertura de puerta
servo b.1,136 ;CUIDADO: para los datos de posición tomar los obtenidos en la prueba de calibración del servo
posicion:
debug
readadc A.3, b14 ; lee la lectura del sensor y la guarda en b14
if b14 > 25 then servopos b.1,250 pause 2000
readadc A.3, b14
if b14 < 25 then servopos b.1,136
endif
endif
pause 500
goto posicion
Funcionamiento de un Altavoz conectado a Picaxe
Un altavoz es un dispositivo que produce sonidos al vibrar una membrana unida a una bobina. Los altavoces no funcionan con corrientes continuas. Para que produzca un sonido vamos a introducir una corriente alterna con una forma de onda cuadrada por la bobina, cuya frecuencia determinaremos por software.
Conexión del Altavoz a Picaxe
Vamos a utilizar una de las salidas amplificadas por medio del C.I.2803A, que es por colector abierto. Además pondremos una resistencia limitadora de corriente para reducir el volumen del altavoz.
Conexión del Sensor de Llama
Este sensor produce una salida digital a nivel alto cuando detecta una llama:
Programa Completo para el Control del Altavoz y las puertas
Vamos a usar una de las tres interrupciones posibles en el Picaxe 28X2. Cuando llega señal del sensor de llama por la entrada C.3, se van a paralizar todos los procesos y va a sonar un sonido de alarma mientras se encienden los led al mismo tiempo. Vamos a usar las instrucciones “setint” y “interrupt”
Sensor6:
setint %00001000,%00001000,C ;interrupcion si el pin C.3 esta alto. El primer número binario (input) indica si el pin está a nivel alto o bajo y el segundo (mask) que bit hay que ver para mirar para la interrupción
ledson: ;si no hay interrupción enciende y apaga los led
high c.7
high b.3
pause 2000
low c.7
low b.3
pause 500
goto ledson
interrupt:
servopos b.1,240 ;abre la puerta de persona
high c.6 low c.5 pause 350 low c.5 low c.6 ;abre puerta de garaje
for b16 = 0 to 2
high c.7 ; si hay interrupcion (c.3 = 1) se ejecuta el bucle
high b.3 ; enciende el Led interior
sound b.0, (85,140)
low c.7
low b.3
sound b.0, (70,120)
if pinC.3 = 1 then interrupt
next
tune B.0, 1, ($80,$84,$87,$90)
if pinC.3 = 1 then interrupt
servopos b.1,136 ; cierra la puerta de persona
high c.5 low c.6 pause 350 low c.5 low c.6 ;cierra puerta de garaje
setint %00001000,%00001000,C ;reactiva la interrupcion
goto ledson