f Proyecto: Alarma de carro ~ Ingenieria a nivel industrial

Visita mi canal de youtube

domingo, 16 de julio de 2017

Proyecto: Alarma de carro


Introducción
     La filosofía de diseño detrás de la JI1000 es un simple, pero potente sistema de seguridad basado en microcontroladores móviles. En el corazón de la JI1000 está el Atmel AT90S4414 8-bit RISC microcontrolador. Hemos utilizado el 4414 para este diseño, porque un microcontrolador es muy adecuado para un sistema de seguridad. Las funciones de control básicas de nuestro sistema incluyen la monitorización de entradas (como sensores, pulsadores, etc.) y el control de señales de salida (como sirenas, luces, LEDs, etc.). Estas funciones son fácilmente implementables en un procesador integrado.
     Nuestro diseño implica una combinación de hardware y software. Las funciones de control fueron programadas en lenguaje ensamblador y descargadas en la memoria FLASH del microcontrolador. El hardware constaba de circuitería para ejecutar la sirena y simular los sensores que activan la alarma. Además, diseñamos hardware para proporcionar los niveles de potencia y tensión necesarios a todos los componentes.

Caracteristicas
Nuestro diseño tiene las siguientes características:

Sistema de entrada de 4 botones
Desarmar / Armar, Valet Remoto, Pánico, Programa

Modo de Valet Control Remoto
Una pulsación de un botón pondrá su sistema JI1000 en el modo de aparcacoches para permitir el mantenimiento del vehículo o el estacionamiento del asistente. El sistema confirma de forma audible la salida o entrada del modo de valet remoto con una señal de chirrido de 4 sirenas distinta.

Pánico remoto a tiempo completo con bloqueo y desbloqueo automáticos de puertas
Si se siente amenazado, con sólo una sola pulsación, puede activar remotamente la sirena, las luces intermitentes y desbloquear las cerraduras de las puertas eléctricas de su vehículo para una entrada rápida en su coche sin manipular las llaves. Si está conduciendo el vehículo y presione el botón de pánico, la sirena sonará, las luces parpadearán y las puertas se bloquearán automáticamente para protegerlo del agresor.

Silenciamiento de Chirp
Siempre que arme o desarme remotamente, la sirena "chirridos" y las luces de estacionamiento parpadean para confirmar el estado del sistema. Siempre que lo desee, puede silenciar los chirps a través de una interfaz RS232.

Bloqueo / desbloqueo de la puerta remota
Una pulsación de un botón en el mando a distancia simultáneamente su sistema JI1000 y bloquea las cerraduras de energía de su vehículo. Otra prensa desarma y desbloquea las puertas.

Entrada Deluxe en el modo Valet
Utilice su mando a distancia para bloquear y desbloquear las puertas del coche, incluso mientras el sistema está en modo de valet.

Sirena de alto rendimiento
Una sirena potente (110 dB) pero compacta diseñada exclusivamente por Radio Shack. Para la atención visual adicional, incluye una luz estroboscópica incorporada.

Duración de la sirena seleccionable por el usuario
Usted puede fijar el lamento de la sirena durante 30 o 60 segundos vía interfaz RS232.

Mejora de Auto-selección seleccionable por el usuario
Su sistema JI1000 se armará de manera "pasiva" si se olvida de armarlo. Esta característica puede calificarle para un descuento de seguro que podría pagar por el sistema (consulte a su compañía de seguros).

Activación / desactivación de la activación automática
Puede desactivar o volver a activar la función AutoArming a través de la interfaz RS232.

Alerta previa de intento de intrusión
Cuando regrese a su vehículo y desarme su sistema JI1000 con el mando a distancia, un chirrido especial y una secuencia de luces le alertarán audiblemente y visualmente desde una distancia si un intento de intrusión fue frustrado mientras usted estaba ausente.

Indicador de estado LED de alta luminiscencia
El LED rojo brillante añade disuasión visual e identifica el estado del sistema: armado, desarmado y modo de valet.

Entradas de múltiples sensores
Hasta 4 entradas para monitorear sensores o disparadores.

SmartPowerUp
Cuando se desconecta la alimentación del sistema, la EEPROM del sistema siempre recuerda el último estado (armado, desarmado o modo de valet) y vuelve a ese estado cuando se restablece la alimentación. Así que si un ladrón desconecta la energía y luego la restaura en un intento de arrancar el coche, el sistema volverá a armar y sonará instantáneamente la sirena mientras se inmoviliza el vehículo.

Interfaz programable por el usuario con conexión RS232
Esto le permite conectar su sistema JI1000 a un PC y configurar todas las configuraciones del usuario como silenciamiento de chirp, duración de la sirena y autoarmado. Esta característica incluye un menú fácil de usar. Todas las configuraciones de usuario se conservan en la EEPROM.
Diseño de alto nivel

      La lógica de control para nuestro diseño se implementa dentro de una máquina de estado. El diagrama de estado está disponible en el apéndice. Basamos nuestros estados y transiciones de estado en las especificaciones de los sistemas de alarma reales. Implementamos características de varios productos basados en la utilidad y factibilidad.

La máquina de estado consta de seis estados:
Brazo - Puertas de bloqueo, LED de estado de parpadeo, monitorizar todas las entradas.
Desarmar - Desbloquear las puertas, apagar el LED de estado.
Valet - Activa el LED de estado, desactiva el autoarmado.
Pánico - Activa la sirena, bloquea las cerraduras.
Active - Activar la sirena para la duración de la sirena.
Programa - Apague los LEDs, abra la comunicación RS232.

Asignamos los puertos de la siguiente manera:
Puerto A - LED de control.
Puerto B - pulsadores.
Puerto C - sensor / gatillo y salida de la sirena.
Puerto D - Interfaz RS232.



Diagrama de bloques

Diseño del programa / hardware

Diseño de programa

     Comenzamos nuestro diseño haciendo un diagrama de transición de estado para la lógica de control. Especificamos los seis estados operativos y las transiciones entre ellos. Utilizamos una tabla de ramas para implementar la máquina de estado. La funcionalidad de cada estado se especifica en la sección de diseño de alto nivel. También creamos rutinas de salto que van a segmentos de código que especifican las transiciones de estado.
     Para ahorrar nuestros estados operativos y configuraciones de usuario (en caso de pérdida de potencia), utilizamos las capacidades de lectura / escritura EEPROM de la AT90S4414. Hemos creado una subrutina EERead y EEWrite para manejar operaciones de lectura / escritura en la EEPROM. La dirección EEPROM deseada se escribe en un registro denominado EEaddr. Para una operación de escritura, la información deseada se coloca en un registro denominado EEdwr. A continuación, el programa salta a la subrutina EEWrite. Una vez dentro de la subrutina, se carga la dirección, se establece el bit de habilitación de escritura principal y, a continuación, se activa la habilitación de escritura. Una vez completada la operación, el indicador de habilitación de escritura se restablece mediante hardware. Estudiamos este bit para preservar la atomicidad de escritura. En el caso de la operación de lectura, examinamos el indicador de habilitación de escritura, cargamos la dirección y establecemos el bit de habilitación de lectura. Esto toma solamente un ciclo. Una vez completada la lectura, los datos se almacenan en un registro denominado EEdrd. El estado actual se escribe en la EEPROM en cada transición de estado. Además, la EEPROM se escribe con las configuraciones de usuario al salir del modo de programa. Cada vez que se restablece el sistema, se lee la EEPROM y se carga la configuración del estado y del usuario.
     Utilizamos Timer 0 y Timer 1 para controlar las operaciones dependientes del tiempo. El temporizador 0 se utiliza para controlar la velocidad de parpadeo del LED de estado cuando está en estado armado. TIMSK se configura para habilitar las interrupciones de desbordamiento del temporizador 0 y del temporizador 1. Dentro de la rutina de interrupción t0ovfl, guardamos el registro de estado y decrementamos la variable count. En cada interrupción, restablecemos el TCNT0 a 6 y restauramos el registro de estado. La variable count se utiliza para contar el número de interrupciones. Una vez que el conteo llega a 0, complementamos el registro LED con una instrucción EOR. El nuevo patrón de LED se envía al PUERTO A y la variable de recuento se vuelve a cargar. Utilizamos un valor de prescaler de 5, que es igual al reloj dividido por 1024. Esto nos da una velocidad aproximada de parpadeo de encendido / apagado de dos veces por segundo.
     El temporizador 1 se utiliza como temporizador de duración. Similar al temporizador 0, usamos una variable de conteo llamada count30 para contar el número de interrupciones. En cada interrupción, decrementamos la variable count30 y recargamos TCNT1. Cuando count30 llega a 0, borramos el bit T en el registro de estado y apagamos el temporizador 1. Usando un prescaler de 5 (clk / 1024) y count30 valores 2 y 4, podemos lograr (aproximadamente) intervalos de 30 segundos y 60 segundos, respectivamente. Utilizamos esto para controlar la función de autoarmado y la duración de la sirena.
     Con el fin de cambiar la configuración del usuario, hemos creado una interfaz RS232. Esta interfaz es esencialmente la misma que la interfaz del programa de demostración del laboratorio 4. Para acceder a la interfaz RS232, el sistema debe estar en el estado del programa. Esto se logra poniendo el sistema en estado de valet (botón 2) y luego presionando el botón de programación (botón 3). El programa busca un 'p' desde el puerto RS232. Una vez que se reconoce un 'p' inicial, se envía una cadena de menú (almacenada en FLASH) al programa de terminal del PC. El menú consta de tres configuraciones definibles por el usuario: duración de la sirena (30/60 segundos), armado automático (activación / desactivación) y silenciamiento del chirp (activación / desactivación). Para salir y guardar, el usuario presiona 'p' y cierra la conexión. Cada ajuste se conmuta pulsando '1', '2' o '3'. El nuevo ajuste se visualiza en el terminal después de cada pulsación del teclado. Después de salir, los valores se escriben en la EEPROM y el sistema vuelve al estado de valet.
     Utilizamos una máquina de estado para implementar una rutina de rebote de botón. Nuestra rutina de rebote es muy similar al rebote utilizado en el laboratorio 3, con algunas modificaciones. Utilizamos esta rutina en cada estado para hacer sondeos de pulsadores.

Diseño de Hardware

     Necesitábamos desarrollar hardware para controlar una sirena de 12V a través de un pin de puerto. Las especificaciones de la sirena requerían una fuente de 12VDC capaz de 600 mA. El pin del puerto es como máximo 5VDC y 20 mA. Dado que la funcionalidad de la sirena en nuestro sistema es tal que sólo funciona cuando se encuentra una brecha de seguridad (o se necesita una señal de chirrido), necesitamos implementar algún tipo de mecanismo de conmutación. Utilizamos un relé de 12VDC para encender y apagar la sirena. Este relé particular requirió una señal de encendido de 12VDC capaz de conducir 0.5 A. Para proporcionar el voltaje de encendido necesario al relé, utilizamos un circuito op-amp con la salida del op-amp (LM358) cableado la base De un transistor de potencia NPN (TIP31C). El emisor se conecta a una fuente de alimentación externa de 12 V CC y el colector se conecta al pin de activación del relé. El circuito op-amp es un amplificador de ganancia positiva. La entrada no inversora está conectada al pin de puerto (PORT C4) y la entrada inversora está conectada al circuito divisor de tensión. Con esta configuración, pudimos alcanzar una tensión de salida de 10.5VDC. Esto es suficiente voltaje para encender el transistor, proporciona una señal de 12VDC con suficiente corriente para conducir el relé. Los esquemas se encuentran en el apéndice. Para simular brechas de seguridad (como abrir puertas, etc.) utilizamos un módulo de 4 botones conectado a las entradas del sensor (PORT C 0..3). Las clavijas PORT C relevantes están ajustadas a la entrada y tiradas hacia arriba. El módulo de pulsador está conectado a cada una de las 4 clavijas de puerto y el pin común en el módulo de botón está conectado a tierra. Cuando se presiona un botón, la entrada es bajada hasta 0. En el programa, los pines son interrogados. Al leer un 0 lógico en los pines, el estado pasa al modo activo, que activa la sirena. Los esquemas se encuentran en el apéndice.
Resultados

     Nuestros diseños de proyectos se cumplieron con éxito. La funcionalidad de nuestro sistema cumplió o superó nuestras expectativas. El principal problema en nuestro producto es la confiabilidad y usabilidad. Hemos probado a fondo cada estado y las transiciones del estado en contra de nuestras especificaciones. El interfaz RS232 fue probado usando el hyperterm. Hemos probado la EEPROM apagando y comprobando la configuración de la EEPROM al encender. Durante las pruebas EEPROM, descubrimos que la EEPROM no era 100% fiable. Llegamos a la conclusión de que esto se debe a los estrictos requisitos de estabilidad de potencia de la EEPROM ya la falta de protección contra apagón en el cuadro de evaluación. Al probar el restablecimiento, la EEPROM funcionó correctamente y no tuvimos ningún problema. Por lo tanto, atribuimos nuestras dificultades observadas a las irregularidades en la fuente de alimentación al apagar la placa. En todos los demás casos, nuestras pruebas demostraron que nuestros objetivos de diseño se cumplieron.

Conclusión

     En conclusión, estamos completamente satisfechos con el funcionamiento y diseño de nuestro sistema. Sin embargo, si tuviéramos más recursos, nos hubiera gustado implementar una interfaz RF TX / RX para controlar nuestro sistema en lugar de los 4 pulsadores de cable. Esto nos habría proporcionado una capacidad de control remoto más realista de los sistemas del mundo real. Además, hubiéramos querido implementar funciones configurables por el usuario más avanzadas, tales como Control y Prueba de Alarma Falsa, notificación de buscapersonas, tecnologías de captura y codificación anti-código y medidas de elevación de vehículos. Afortunadamente, nuestro diseño se puede modificar fácilmente para acomodar funciones avanzadas sin cambios significativos de hardware o software. Esto permite que el JI1000 evolucione y cambie con la necesidad del usuario.




Figure 4: Trigger Simulation Circuit


0 comentarios:

Publicar un comentario