Professional Documents
Culture Documents
Proyecto de Grado
Para optar por el ttulo de Ingeniero Electrnico
_________________________________________________
_________________________________________________
_________________________________________________
_________________________________________________
FIRMA DEL DIRECTOR DEL PROYECTO
_________________________________________________
FIRMA DEL REVISOR
Dedico este proyecto a toda mi familia, especialmente a mis padres, Clara y Misael, a mis
abuelos, Magdalena y Jos Antonio y a mi ta Paola, gracias por todo el amor y el apoyo que me
han brindado.
Michael Guzmn
No creo que haya alguna emocin ms intensa para un inventor que ver alguna de sus
creaciones funcionando. Esa emocin hace que uno se olvide de comer, de dormir, de todo
Nikola Tesla
Agradecimientos
Este proyecto es el resultado del esfuerzo conjunto de los que formamos este grupo de trabajo,
por esto agradecemos sinceramente:
A Dios, por protegernos durante todo nuestro camino y darnos la sabidura y fuerzas para
superar obstculos y dificultades.
A nuestras familias, quienes a lo largo de toda nuestras vidas han apoyado y motivado nuestra
formacin acadmica, creyeron en nosotros y no dudaron de nuestras habilidades.
Al director del proyecto, por su confianza y orientacin a lo largo del proyecto para el
cumplimiento de los objetivos.
A la Universidad Distrital Francisco Jos de Caldas, la cual abri sus puertas a jvenes como
nosotros, preparndonos para un futuro competitivo y formndonos como personas de bien.
Resumen
Palabras Clave: Sensores, aplicacin Android, sistema embebido, Internet de las cosas
IOT, Raspberri PI.
Abstract
This project aims to develop a Smartphone application to warn the user about any
irregularity with the integrity of an automobile by using the internet of things (IOT). To achieve
this objective, it was proposed to work in several stages. Initially, it was necessary to identify the
problem and through it, to seek a practical, affordable and accessible solution. Objectives and
guiding work in general were established. The selection, performance tests of the sensors that
were used in the proposed system and connection to the embedded RASPBERRY PI B + through
PYTHON system was performed. Then, the facial recognition algorithm was used in the opening
of doors, and it was also made in PYTHON. Once validated the behavior described above, the
mobile application for user interaction was made through ANDROID STUDIO, integrated
development environment for the Android platform. Finally, the sensors integration with
embedded system was done and thus, with the application for the complete operation of the
security system. Tests placing the sensor network strategically in a car system were made,
checking the operation of each one of the sensors and the connection was also established with
the embedded system responsible of uploading to the cloud the obtained data, finally, the proper
functioning of the application responsible for generating an action was verified because of the
cloud data. Documentation of each of the stages and processes that developed was performed.
The results show that the system has a very good response, since the application interface allows
its simple handling. Also, it sends alerts satisfactorily and its hardware and software features in
raspberry pi allowed us to design the planned opening doors system.
ndice de Tablas
TABLA 1. ESPECIFICACIONES TCNICAS MDULO WIFIERROR! MARCADOR NO
DEFINIDO.
TABLA 2. COSTOS. ....................................................................................................... 43
TABLA 3. RESPUESTA DE LOS SENSORES ULTRASONIDO Y ACELERMETRO.84
TABLA 4. NIVEL DE CONFIANZA DEL RECONOCIMIENTO FACIAL. .................. 86
TABLA 5. TIEMPO DE RESPUESTA DE LOS SENSORES A LAS NOTIFICACIONES.86
Introduccin
El uso de automviles es muy comn en el mundo actual, pues existe una gran
variedad de ellos en el mercado y es por esta razn que la industria automovilstica se
renueva a pasos agigantados realizando mejoras a sus productos. La mayora de estas mejoras
estn dirigidas al campo de la seguridad garantizando la integridad del automvil y
agregando un valor importante al vehculo [1].
Hasta la dcada de 1960 un auto convencional estaba bsicamente conformado por
componentes mecnicos; la integracin de componentes electrnicos inicia su ascenso en los
aos setenta En promedio, un nuevo vehculo integra ms de 40 millones de unidades de
control electrnico, 8 mil metros de cables y ms de 10 millones de lneas de cdigo software
[2]. Por esta razn se puede afirmar que el vehculo actual se parece cada vez ms a una
computadora y cada vez menos a los diseos surgidos al principio del siglo XX. Esta nueva
capacidad de los vehculos de procesar informacin y de adaptarse al ambiente convierte a
este sistema complejo en un sistema complejo adaptable [3].
El amplio desarrollo electrnico en el sector vehicular ha trado consigo mltiples
estudios y avances tecnolgicos en el rea de los sistemas de seguridad. Es por esto que el
presente proyecto documenta el diseo y la implementacin de un sistema de seguridad para
automviles, que a partir de una red de sensores conectada a un sistema embebido que se
encarga de subir a la nube informacin adquirida por los sensores (IoT) [4], permite advertir
al usuario que su vehculo est en peligro y puede realizar algn tipo de accin como activar
una alarma, obtener una imagen o advertir a la polica, por medio de una aplicacin para
Smartphone con plataforma Android. Adems el proyecto incluye tambin un sistema de
apertura de puertas por medio del reconocimiento facial y un lector y sensor RFID.
Finalmente este sistema es validado a partir de datos experimentales en un automvil y es
documentada cada etapa de desarrollo.
1. Fundamentos Preliminares
Esta problemtica se nutre, en gran medida, del aumento del parque automotor a nivel
mundial, la insercin del vehculo como parte de la cotidianidad y su uso cada vez ms
extendido; todo sumado a la connotacin social que tiene la adquisicin y uso de un vehculo
(considerado como un sinnimo de estatus). Este fenmeno de incremento es origen de recursos
para los criminales y organizaciones delincuenciales, y tambin fuente de atencin analtica para
los criminlogos y las autoridades [5].
Debido al alto costo del uso de parqueaderos pblicos es muy frecuente que la gente
estacione su auto en las aceras de la calle por cuestin de economa pero se expone a situaciones
de inseguridad y se arriesga la integridad del auto, haciendo importante el papel de los sistemas
de alarmas y seguridad de los vehculos.
Las ltimas generaciones de autos se hacen cada vez ms dependientes del uso de una
CPU que controla sus aspectos principales e interaccin con el usuario. Los vehculos actuales
(segn modelo) ya incorporan un sistema de alarma original de fbrica. Este puede ser bsico o
completo segn la gama del vehculo. Todas los sistemas de alarma tienen funciones de
monitoreo normalizadas que se basan en el monitoreo de puertas, cap y bal y disparo por
apertura. Tambin incluyen un sistema de disparo por rotura de cristales que puede ser por
sonido, ultrasonido, rotura de pista sensible, etc.
Los vehculos modernos incorporan tambin un sistema de bloqueo de arranque en la
llave original llamado transponder. Con este sistema el vehculo no puede ser encendido con otra
llave que no sea la original. Pero a pesar de la existencia de este tipo de sistemas de seguridad, a
nivel local los autos que posee la poblacin son en su mayora de gama media y gama baja por lo
que no tienen sistemas de seguridad completos y eficaces. Al instalar una alarma convencional se
requiere en muchas ocasiones intervenir el sistema elctrico, lo que puede causar conflictos y
costos elevados, y pueden llegar a ser ineficaces si el usuario se encuentra a una distancia
considerable.
Este trabajo propone un sistema de seguridad basado en el concepto del internet de las
cosas (IOT) que definido por CISCO es la reunin de personas, procesos, datos y cosas para
hacer conexiones en red ms relevantes y valiosas que nunca, convirtiendo la informacin en
acciones que crean nuevas capacidades, experiencias ms enriquecedoras, y oportunidades
econmicas sin precedentes para las empresas, los individuos y los pases [6].
Para la interaccin con el usuario se desarrollar una aplicacin para Smartphone la cual
permitir dar aviso sobre algn riesgo para la integridad del auto, aprovechando de esta forma la
permanente conexin a internet mvil con que, segn el Ministerio de Tecnologas de la
Informacin y las comunicaciones (TIC), cuentan aproximadamente 5.170.887 usuarios en el
pas [7].
1.2. JUSTIFICACIN
El desarrollo de este proyecto propicia espacios de trabajo que cubren diferentes reas del
conocimiento todas ellas relacionadas directamente con la Ingeniera Electrnica. El desarrollo
de un sistema de seguridad para un automvil que permita, por medio de una aplicacin, para
Smartphone advertir cualquier irregularidad con la integridad del auto, garantiza poner en
prctica el manejo de tarjetas de desarrollo como microcontroladores y sistemas embebidos,
obtencin de datos conseguidos a partir de las herramientas que ofrece la instrumentacin
industrial como los sensores, y el uso del procesamiento digital de imgenes para reconocimiento
facial.
Por tal circunstancia, este proyecto debe encadenar las mltiples reas de conocimiento
de la ingeniera electrnica enfocndolas a un objetivo comn que es el desarrollar un sistema de
seguridad que mejorar las condiciones de vida de las familias que posean un vehculo en las
ciudades donde se presentan graves problemas de inseguridad.
1.3. OBJETIVOS
Desarrollar un sistema de seguridad basado en el concepto del internet de las cosas (IOT)
haciendo uso de la adquisicin de datos proporcionados por sensores instalados en el vehculo y
una aplicacin para Smartphone que permite la interaccin con usuario.
1.4. METODOLOGA:
Para alcanzar los objetivos propuestos en este proyecto que en general busca desarrollar
una aplicacin para Smartphone para advertir cualquier irregularidad con la integridad del
automvil, se propuso trabajar en tres fases. (i) Fase de diseo, (ii) Fase de Implementacin y,
(iii) Fase de Evaluacin.
Conexin entre la red de sensores y el sistema embebido. Durante esta etapa se realiz
la conexin entre la red de sensores y el sistema embebido RASPBERRY PI.
- Prueba en un automvil.
Se har una presentacin a partir de un video, del sistema funcionado correctamente en
un automvil, demostrando todas las ventajas que conlleva. Se respondern preguntas y se
aclararn todas las dudas que puedan surgir frente al proceso de desarrollo y el funcionamiento
de nuestro sistema de seguridad.
- Documentacin.
A lo largo de las diferentes etapas mencionadas anteriormente se llev a cabo la
compilacin de los avances y resultados obtenidos en el transcurso del proyecto. Para ello se
tendrn en cuenta las referencias bibliogrficas requeridas durante el desarrollo del mismo, y se
prosigui a la redaccin de un informe que describa detalladamente la construccin desarrollo y
pruebas del sistema propuesto.
2. Marco Referencial
Actualmente existen varios tipos de alarmas y sistemas de seguridad para automvil tales
como alarmas de sonido y parpadeo de luz, diversos sistemas que permiten bloquear el volante o
la palanca de cambios, sistemas con GPS, entre otros. La clasificacin de sistemas de seguridad y
alarmas que se brinda en la pgina web Moto Rusa en Argentina al usuario actualmente. Por
ejemplo, en cuanto a una alarma bsica se ofrece con servicio de sirena y bloqueo de motor que
se activa y se desactiva usando un control remoto manual. En las alarmas de dos vas, se presenta
un sistema de seguridad vehicular que puede contar con controles bidireccionales, estos mtodos
de alarma cuentan con un sistema de comunicacin muy eficiente entre el dispositivo de
seguridad y el mando que lo controla y asimismo, el mando recibe rdenes de la alarma y sta
tambin puede recibir rdenes del mando para conocer el estado del vehculo.
Moto Rusa tambin cuenta con el servicio de alarma con presencia en la cual el usuario
debe cargar consigo el mando remoto y la alarma se activa y desactiva solo con la proximidad
del control, sin presionar botones. Adems ofrece la posibilidad de instalar una alarma de 2 vas
GSM en la que combinan controles bidireccionales con sistemas de rastreo (GPS), en estos
sistemas el propietario recibe en su celular mensajes de texto (SMS) en su telfono celular y
puede controlar la alarma mediante el telfono va GMS. Finalmente, tambin se ofrece la alarma
con localizador GPS que se encarga de comunicar las coordenadas GPS del auto enviando SMS
al mvil.
Los sensores que incluyen las alarmas para auto pueden ser de diversos tipos. Sensores de
impacto que detectan cualquier golpe que reciba el auto. Sensores de proximidad estos mediante
un radar perimetral vigilan el entorno del auto, sin necesidad de que nadie la toque. Sensores de
movimiento e inclinacin que emplean detectores de mercurio para proteger al auto contra
ladrones con gra y hoy en da ya se encuentran disponibles los sensores por acelermetro que
detectan diferencias de aceleracin lo que hacen que se detecten movimientos en cualquier
sentido incluso protegiendo el robo de las ruedas del auto.
En este momento, las aplicaciones del internet de las cosas son muy numerosas, ya que es
un concepto relativamente nuevo (ms que todo en Latinoamrica), cada da los ingenieros
experimentan ms y ms con nuevos posibles aplicativos en esta rea. Por ejemplo Dave Evans
de Cisco (2011) menciona algunos ejemplos en su documento Internet de las cosas Cmo la
prxima evolucin de Internet lo cambia todo [9]. A continuacin se mencionan estos ejemplos:
La vaca sagrada: en esta idea se plantea insertar sensores en las orejas del ganado, la idea
de este proceso es que el dueo del ganado pueda monitorear la salud y el movimiento de este
para poder obtener carne ms saludable y de mejor calidad. En promedio cada vaca genera
alrededor de 200 Megabytes de informacin al ao [9].
Mejor calidad de vida para los ancianos: ya que la poblacin de ancianos es bastante
elevada, se puede crear un dispositivo porttil que permita monitorear los signos vitales de una
persona y enve alertas a los mdicos encargados de su salud, o pueda percibir si alguna persona
que algn impedimento tenga algn inobediente y pueda ser asistido [9].
Las anteriores son tan solo ideas que Dave Evans, de Cisco, menciona que se pueden
llevar a cabo con IOT. Como se mencion anteriormente las aplicaciones que puede surgir con
IOT son innumerables, existen algunas empresas que ya cuentan con varios dispositivos que
desarrollaron con este concepto. Un ejemplo de estas empresas es Postscapes [9]. Baby check,
traking deportivo, termostatos inteligentes, recordatorio de pastillas, domtica, traking de objetos
perdidos, pastillas inteligentes, enchufes conectados, son algunos de los dispositivos que
podemos encontrar en postscapes.com (2015).
En cuanto al rea automovilstica, se ha usado IOT para crear varios dispositivos, como
asistentes de conduccin y dispositivos que contribuyan a la seguridad. Algunos ejemplos de
dispositivos como estos sern mencionados a continuacin:
En cuanto a lo que con seguridad tiene que ver esta empresa fbrica algunos dispositivos
de rastreo y asistentes de conduccin como lo que se mencionan continuacin:
Carlock: da la ubicacin del vehculo al usuario por medio de GPS y enva los datos a su
telfono celular (smartphone) [10].
SplitSecond: este dispositivo se encarga de enviar alertas para enviar cualquier tipo de
asistencia requerida en caso de que el conductor sufra algn tipo de accidente [10]. Estos
dispositivos son de un tamao bastante cmodo y claramente su diseo permite una instalacin
simple en cualquier automvil. A pesar de que son dispositivos bastante tiles, en Colombia son
muy pocas las empresas que actualmente prestan servicios de este tipo, adems que sus limitan a
funciones concretas. Adems su precio es considerablemente alto ya que cada uno de estos
cuesta alrededor de unos 100 dlares americanos.
2.2.MARCO TERICO.
- Tolerancia a Fallos:
Algunos nodos de sensores pueden fallar o ser bloqueada por falta de energa, tener dao
fsico o la interferencia ambiental. El fracaso de los nodos de sensores no debe afectar a la tarea
general de la red de sensores. Esta es la cuestin de tolerancia fiabilidad o culpa. La tolerancia a
fallos es la capacidad de mantener las funcionalidades de redes de sensores sin ninguna
interrupcin debido a fallos en los nodos de sensores [20].
- Escalabilidad.
- Costos de produccin
Dado que las redes de sensores consisten en un gran nmero de nodos de sensores, el
costo de un solo nodo es muy importante para justificar el coste global de las redes. Si el coste de
la red es ms caro que el despliegue de sensores tradicionales, tampoco costar-justific la red de
sensores. Como resultado, el costo de cada nodo sensor tiene que ser mantenido bajo [20].
- Limitaciones de hardware:
- Sensor ultrasonido.
Los ultrasonidos son antes que nada sonido, exactamente igual que los que omos
normalmente, salvo que tienen una frecuencia mayor que la mxima audible por el odo humano.
sta comienza desde unos 16 Hz y tiene un lmite superior de aproximadamente 20 KHz,
mientras que nosotros vamos a utilizar sonido con una frecuencia de 40 KHz. A este tipo de
sonidos es a lo que llamamos Ultrasonidos.
- Sensor Capacitivo.
El sensor capacitivo se comporta como un capacitor abierto y el material a detectar acta
como dielctrico, tal y como se muestra en la figura 2 en donde se pueden ver las lneas de
campo.
Figura 2. Funcionamiento interno sensor capacitivo [42].
Cuando se acerca un material frente a los electrodos, las lneas de campo comienzan a
ejercer influencia sobre el material, realizndose as la polarizacin [42].
- Acelermetro.
Los acelermetros son dispositivos electromecnicos que detectan las fuerzas de
aceleracin, ya sea esttica o dinmica. Las fuerzas estticas incluyen la gravedad, mientras que
las fuerzas dinmicas pueden incluir vibraciones y movimiento. Los acelermetros pueden medir
la aceleracin en uno, dos o tres ejes. Los de tres ejes son ms comunes conforme los costos de
produccin de los mismos baja [43].
- Sensor de movimiento.
- Sensores RFID.
(1)
Con (xc, yc) como pixel central con intensidad ic Y ip siendo la intensidad del pixel
vecino. Y s es la funcin definida como:
(2)
Esta descripcin le permite capturar los detalles de grano muy fino en las imgenes. De
hecho, los autores fueron capaces de competir con el estado de los resultados de la tcnica para la
clasificacin de la textura. Poco despus se public el operador se observ, que un vecindario
fijo deja de codificar datos que difieren en escala. As que el operador se extendi a usar un
vecino. La idea es alinear un nmero arbitrario de vecinos en un crculo con un radio variable, lo
que permite capturar los vecinos presentados en la siguiente figura
Figura 6. Vecinos calculados con el operador [46].
El operador es una extensin de los cdigos LBP originales, por lo que a veces se llama
LBP extendido (tambin conocida como Circular LBP). Si un punto de coordenadas en el crculo
no se corresponde con las coordenadas de imagen, interpolacin el punto de LET. La informtica
tiene un montn de esquemas de interpolacin inteligentes, la aplicacin Open CV hace una
interpolacin bilineal:
(3)
Por definicin el operador LBP es robusto frente a las transformaciones de escala de
grises montonas. Podemos comprobar fcilmente esto mirando la imagen LBP de una imagen
modificada artificialmente como se muestra en la figura 7
Figura 7. Imgenes LBP de una imagen modificada artificialmente [46].
2.2.4.1. Hardware.
Normalmente un sistema embebido se trata de un mdulo electrnico alojado dentro de
un sistema de mayor entidad (host o anfitrin) al que ayuda en la realizacin tareas tales como
el procesamiento de informacin generada por sensores, el control de determinados actuadores,
etc. El mdulo o tarjeta, adems puede haber sido desarrollado para satisfacer una serie de
requisitos especficos de la aplicacin a la que est dirigido. Entre stos, podemos citar:
- Tamao: por lo general deber ser reducido, aunque tambin es posible que se desee
que adopte un formato estndar: PC-104, Eurocard, etc.
- Margen de temperatura especifico del mbito de aplicacin: o Gran consumo (0C
hasta 70C) o Industrial y automocin. Mrgenes de temperatura hasta 125C o
Aeroespacial o Militar o Electro medicina.
- Consumo de energa: En aplicaciones en las que es necesario el empleo de bateras, se
buscar minimizar ste.
- Robustez mecnica: Existen aplicaciones donde los dispositivos sufren un alto nivel de
vibraciones, golpes bruscos, etc. En el diseo se deber tener en cuenta dicha
posibilidad.
- Coste: No es lo mismo disear un producto a medida con pocas unidades que disear
un producto para el competitivo mercado del gran consumo. La calibracin de los
costes es esencial y es tarea de los ingenieros de diseo [34].
2.2.4.2. Software.
En lo que se refiere al software, se tendrn requisitos especficos segn la aplicacin. En
general para el diseo de un SE no se dispone de recursos ilimitados sino que la cantidad de
memoria ser escasa, la capacidad de clculo y dispositivos externos ser limitada, etc. Podemos
hablar de las siguientes necesidades:
2.2.4.3. Arquitectura.
En la figura 8 se muestra un diagrama de bloques de lo que puede ser un modelo general
de un sistema embebido [34].
Figura 8. Diagrama de bloques simplificado de un mdulo tpico de SE [34].
Por lo tanto, las cosas son fciles de ser ledas, reconocibles, localizables, direccionales y
o controlable a travs de Internet. Por otra parte, esta nueva generacin de dispositivos
inteligentes son gracias a los componentes electrnicos integrados que les permiten sentir como
la computacin, comunicacin, y se integran a la perfeccin con el entorno circundante. La
asociacin ''un dispositivo / una funcin'' desaparece, sino todo el conjunto de objetos se
convierte en el lugar en el que se activa la funcin, resultando todo ampliamente distribuidos
[39].
2.2.5.1. UBIDOTS
El internet de las cosas, una tendencia mundial que integra en la red millones de datos
desde mquinas, dispositivos mviles e interfaces para conectar a los objetos, se ha hecho
realidad en Colombia con UBIDOTS, una empresa que busca facilitar la vida diaria de personas
y compaas [50].
Figura 10. Logo UBIDOTS [50].
3. DISEO
Para la creacin de esta idea fue necesario identificar el problema descrito anteriormente
y por medio de ste buscar una solucin prctica, econmica y accesible. En esta etapa se
describi el problema, los objetivos, alcances, limitaciones y la gua de trabajo en general as
como se hizo necesaria la escritura del anteproyecto escrito anteriormente.
Figura 22. Diagrama de Bloques funcionamiento del sistema de seguridad para automviles.
- Sensores.
Los sensores ubicados en el vehculo tendrn la funcin de, en primer lugar, detectar las
posibles perturbaciones en el medio en donde estn ubicados y luego se encargarn de convertir
estas perturbaciones en seales elctricas que sern utilizadas para generar alertas. Tambin se
har uso de una cmara que permita por medio de reconocimiento facial la apertura de puertas.
- Cmara digital.
La cmara utilizada en este proyecto se encarga de obtener imgenes para poder entrenar el
sistema de reconocimiento facial y de obtener imagen del entorno donde se encuentra el vehculo
cada cierto tiempo. La cmara utilizada es la cmara estndar para RASPBERRY Pi que cuenta
con una gran resolucin y alta definicin para aplicaciones de seguridad [63].
- Administracin de energa.
Se requiere una fuente de alimentacin que provea a los dispositivos (sensores, y tarjeta
principal) ubicados en el automvil, energa para su activacin y funcionamiento. Por esta razn
se utilizar la fuente de energa con la que cuentan los automviles, para el suministro de energa
que necesita cada dispositivo. En caso de que los sensores estn demasiado alejados de la fuente
principal, se podra considerar una fuente de energa externa de ser necesario.
Ya que el dispositivo embebido no cuenta con una tarjeta de red WIFI, se utilizar un
adaptador de red para proporcionarle conexin inalmbrica haciendo uso de uno de los puertos
USB. Se seleccion el adaptador de 150Mbps Wireless N Nano USB AdapterTL-WN725N.
A partir de los datos obtenidos de UBIDOTS, la aplicacin permitir tomar alguna clase de
decisin al respecto, como por ejemplo, si el vehculo est siendo intervenido, se puede obtener
una imagen, encender una alerta o enviar un mensaje de auxilio por medio de redes sociales y
mensajes de texto. Este tipo de acciones se realizan enviando datos a la nube que son adquiridos
de all por la RASPBERRY.
3.2.1. ALCANCES:
El proyecto abarca nicamente la implementacin del sistema de seguridad en
automotores de gama media y baja en Bogot, Colombia. A pesar de que existen
opciones similares en el mercado, la gran mayora de ellas se encuentran centradas
nicamente para los usuarios de carros gama alta.
Se plantea un diseo ms acorde a las herramientas con las que cuentan las personas en
Colombia actualmente para la solucin de la inseguridad citadina. Como ya se ha
mencionado anteriormente, existe un grupo cada vez mayor de personas en Colombia que
tienen la posibilidad de permanecer conectados a internet por medio de un Smartphone o
una Tablet y estas seran las formas de utilizar el servicio de alertas.
3.2.2. LIMITACIONES
El proyecto se restringe a realizar la parte electrnica del sistema de seguridad y
realizar una prueba ubicando los sensores adecuadamente en el auto, pero no se
implementar la parte mecnica del vehculo, como abrir partes internas del auto
para ingresar los cables, debido a que no se cuenta con el conocimiento requerido
para este trabajo.
El proyecto se limita a un sensor de cada tipo para realizar la prueba y
presentacin. Para trabajos futuros se pueden implementar dos o ms de ellos.
Este sistema se limita a las personas que tengan la capacidad econmica de
costear la conexin a internet para su correcto funcionamiento. En caso de que el
usuario no tenga conectividad a la red, quedara excluido de la proteccin del
sistema puesto que las notificaciones llegaran tarde y se perdera su verdadera
funcin.
En la primera parte de la creacin de sistema, slo se implementar para el
sistema operativo Android. Aunque se tiene planeado que a un futuro se pueda
implementar para otros sistemas operativos, en principio se disear
exclusivamente para el sistema Android, debido a que es ms simple, ms
econmico y tiene un mayor nmero de consumidores.
El sistema de apertura de puertas a partir del reconocimiento facial estar
diseado nicamente para automviles cuyas puertas cuentan con mecanismos de
apertura manual. Para los automotores que cuentan con apertura con asistencia
elctrica, no ser posible de implementar debido a que las puertas estn
conectadas a la unidad de control del auto.
3.3. RECURSOS
3.3.1. HUMANOS.
Se cont con la asesora del ingeniero Julin Camargo, y el desarrollo del proyecto se
llev a cabo por los estudiantes de ingeniera electrnica de la Universidad Distrital Michael
Guzmn y Lina Toquica. Adems de las contribuciones hechas por el revisor en la evaluacin
que realiz, Ingeniero Gustavo Puerto.
3.3.3. ECONMICOS
Para el desarrollo adecuado del sistema propuesto, se contar con el presente
presupuesto en el que se muestra el clculo de los gastos para la obtencin de los equipos y
materiales necesarios para lograr el objetivo tal y como se muestra a continuacin:
Tabla 1. COSTOS.
4. Implementacin
Figura 33. Circuito del sensor TTP223B [64]. Figura 44. Sensor TTP223B [64].
Este sensor cuenta con 2 pines de alimentacin (+power y GND) y un pin que
proporciona la seal digital de salida. A continuacin se muestran las principales caractersticas
de este sensor.
Este sensor cuenta con 4 pines (figura 21), 2 pines de alimentacin (Vcc y GND), un pin
que se encarga de recibir el pulso que le indica cundo emitir la rfaga de ultrasonido (Trig) y el
pin que enva la seal al recibir la rfaga (echo). A continuacin se muestran las principales
caractersticas del HC - SR0.
Voltaje de operacin: 5V DC
Corriente de operacin: 15mA
Tiempo de respuesta: < 100mS
Dimensiones: 45*20*15 mm [66].
Este acelermetro cuenta con 8 pines, 2 pines de alimentacin (VCC y GND), dos pines
de interrupcin (INT1 e INT2) y los pines de los protocolos de comunicacin, para SPI se
utilizan los pines CS, MOSI, MISO y SCK y para I 2C se utilizan los pines SDA y SCL y sus
principales caractersticas son [67].
4.1.5. RFID
En el desarrollo del proyecto se utiliza el lector RFID-RC522 como primera validacin.
Este mdulo da la opcin de controlarse con SPI o comunicacin serial UART. Este dispositivo
cuenta con 64 bloques de memoria que permiten su configuracin y cada bloque tiene una
capacidad de 16 bytes. Al realizar la lectura de un dispositivo pasivo obtiene su nmero de serie
(5 valores hexadecimales), sus principales caractersticas son las siguientes [71].
Para ser un usuario en UBIDOTS se debe ingresar un nombre usuario, una contrasea y
un correo electrnico.
Creacin de variables.
El siguiente paso es crear las variables en la fuente creada, al crear la variable se tendr dar un
nombre, adems se pueden poner otros datos opcionales como la unidad de la variable, una
descripcin y un tag como se muestra en la siguiente figura.
A cada variable creada, UBIDOTS le asigna un ID nico que servir para modificar o
acceder a la variable.
Figura 123. ID de la variable [70].
Al crear una cuenta UBIDOTS le asigna al usuario una llave nica (Api Key) que es
necesaria para identificar al usuario al momento de subir o descargar datos de las variables.
Se entiende que es un producto con propiedad registrada pero de libre uso. En cambio el
software s es cdigo abierto, siendo su sistema operativo oficial una versin adaptada de
Debian, denominada RaspBian, aunque permite otros sistemas operativos, incluido una versin
de Windows 10.
En realidad, se trata de una diminuta placa base de 85 x 54 milmetros (del tamao
aproximado de una tarjeta de crdito) en el que se aloja un chip Broadcom BCM2835 con
procesador ARM hasta a 1 GHz de velocidad (modo Turbo haciendo overclock), GPU
VideoCore IV y 512 Mbyte de memoria RAM (Las primeras placas contaban con slo 256MB
de RAM).
Una vez instalado el sistema operativo Linux, en este caso Raspbian, se puede acceder a
los pines de propsito general y otros componentes de la tarjeta con IDLE que es un ambiente de
desarrollo integrado para el lenguaje de programacin de cdigo abierto Python. En la figura 26
se muestra la distribucin de los 40 pines en la RASPBERRY PI B+.
Estos dos comandos permiten actualizar los componentes de la tarjeta, entre estos Python.
Instalacin de las libreras de UBIDOTS
Una vez termine la instalacin, se puede usar las libreras de UBIDOTS en Python.
- WIFI en RASPBERRY Pi
A pesar de que las RASPBERRY cuenta con un puerto Ethernet que le proporciona
conexin a internet, en este proyecto se requiere que la conexin de la tarjeta a internet sea de
forma inalmbrica. Por esta razn se ha instalado en uno de los puertos USB 2.0 el adaptador
WIFI TL-WN725N de Tp-link.
$ wget https://dl.dropboxusercontent.com/u/80256631/8188eu-20151215.tar.gz
$tar xzf 8188eu-20151215.tar.gz
$./install.sh
Una vez se ejecutan estas lneas en la consola de la RASPBERRY, el driver queda instalado y al
reiniciar la RASPBERRY pi el mdulo proporciona conexin inalmbrica a internet.
Luego de realizar la conexin del sensor con la tarjeta, se procede a realizar el cdigo en
Python, como se observa en la figura 29.
(3)
Antes de realizar el cdigo hay que tener en cuenta que la interfaz I2C de la
RASPBERRY pi est encendida, este proceso se realiza en el men de configuracin de
RASPBERRY pi en la opcin de Advanced optinon. El men se despliega digitando el comando
sudo raspi-config en consola.
4.4.1. RFID
Para este proyecto se escogi como protocolo de comunicacin el SPI para realizar la
conexin entre la RASPBERRY Pi y el lector RFID-RC522. Se deben conectar los pines SDA,
SCK, MOSI y MISO a los pines SDA (pin24), SCK (pin 23), MOSI (pin 19) y MISO (pin 21) y
el pin de reset del mdulo RFID a un pin de propsito general de la RASPBERRY (pin 22), La
conexin se muestra en la siguiente figura.
$ Sudo raspi-config
Figura 314. Men de configuracin de RASPBERRY PI
Para realizar el reconocimiento facial se instal el software Open CV. Open CV es
software libre, y permite hacer anlisis digital de imgenes. La instalacin se ilustra en el anexo
B. A continuacin se ensean los pasos que se siguieron para lograr hacer el reconocimiento
facial:
En todos los casos anteriores la obtencin del valor de la caracterstica consiste en la resta
entre el valor de una o ms subzonas dentro de la zona analizada. Es decir, se resta el valor que
se le una subzona, mediante la integral sumada, con el de otra subzona. En las figuras anteriores
se puede ver como la comparacin consiste en la resta entre las zonas grises y las zonas blancas
de la imagen. [72]
Open CV permite realizar este algoritmo y tiene un porcentaje de acierto bastante alto. El
cdigo que se implement para realizar el reconocimiento del rostro en una imagen se muestra
en la siguiente figura.
Para hacer la etapa entrenamiento se debe tener una base de datos con imgenes de la
persona, el algoritmo encuentra caractersticas particulares en las imgenes que conforman la
base de dato y este entrenamiento se puede guardar en un archivo.
El cdigo adquiere una imagen con la cmara, la convierte a blanco y negro, extrae el
rostro en la imagen, lo convierte a una matriz y carga el entrenamiento que se hizo previamente.
Ya con los datos del entrenamiento se puede realizar la prediccin, la cual arroja un valor de
confiabilidad, con el que se puede discriminar si es la persona de la imagen recin adquirida es la
misma persona de la base de datos.
Figura 371. Prueba del Reconocimiento facial del personaje entrenado.
- Android.
El sistema operativo Android presentaba un inconveniente importante a la hora de decidir
cmo empezar a crear la aplicacin. Este problema se denomina segmentacin y consiste en la
existencia en el mercado de una gran cantidad de versiones distintas de Android instaladas en los
dispositivos que adems presentan trabas relacionadas con la retro compatibilidad entre ellas. A
diferencia de Apple, cuyo sistema operativo es exclusivo del dispositivo que la propia compaa
fabrica, Android se instala en una gran variedad de marcas y son estas las que controlas las
versiones a instalar en el telfono, produciendo que sigan en funcionamiento versiones antiguas
que no son compatibles con las aplicaciones si estas se desarrollan directamente para las
versiones ms modernas del sistema operativo.
En la poca de inicio de este proyecto el ltimo lanzamiento del sistema operativo era
Android Marshmallow 6.0, pero esta versin es inestable por el momento. En el grafico
mostrado a continuacin puede verse la cuota de mercado de cada versin de Android a fecha de
enero de 2016, cuatro meses antes del inicio de este proyecto [74].
Figura 382. Datos porcentuales sobre la distribucin de versiones de Android, Enero de 2016 [73].
Es por esta razn que al inicio de este proyecto se tom la decisin de comenzar el
desarrollo de la aplicacin Android eligiendo la versin Lollipop 5.0 y 5.1, ya que de este modo
se puede cubrir el 32.6% de distribuciones existentes. Haber seleccionado las versiones
posteriores hubiese puesto en pblico potencial menos del 10% para esta plataforma. Tras tomar
esta decisin se dio comienzo el trabajo en Android utilizando para ello el entorno de desarrollo
ANDROID STUDIO [53].
Para la programacin se utiliz el lenguaje Java. Este lenguaje orientado a objetos est
pensado para poder ser compilado una vez y ejecutado en una gran variedad de dispositivos en
los que debe estar instalada la denominada "Mquina virtual Java" que interpreta el cdigo
independientemente de la arquitectura del dispositivo en que se encuentra. Para el aspecto visual
ANDROID STUDIO utiliza el lenguaje de marcado XML.
- MySQL:
La base de datos utilizada para la versin de Android es la llamada MySQL remota
almacenada en un servidor pblico, 000webhost.com [75], quien posee la licencia de MySQL. El
motor de base de datos MySQL [58], contiene todo lo necesario para realizar las tareas de
gestin necesarias y que es rpido y eficiente para la gestin del tipo de informacin requerido en
esta aplicacin.
4.5.2. FASES DE IMPLEMENTACIN
En el caso de la aplicacin mvil, uno de los objetivos de este proyecto, el principal
problema estaba en el tiempo. Debido a compaginar la realizacin del proyecto con el sistema de
seguridad implementado con la tarjeta de desarrollo RASPBERRY PI, el nmero posible de
horas semanales a dedicar planteaba un problema si se decida realizar toda la funcionalidad a la
vez. La decisin consisti en seguir el mtodo iterativo dividiendo el proyecto en las etapas
necesarias para ir consiguiendo secciones completas hasta la creacin de la primera fase de la
aplicacin (Interfaz grfica de Bienvenida, interfaz de registro e ingreso). Tras finalizar esta
primera fase, se comenzara la creacin de la parte final (interfaz principal del sistema de
seguridad). Tras cada etapa se realizaron pruebas tanto en emuladores de dispositivos como en
dispositivos fsicos.
En esta etapa se crea una interfaz grfica a partir de sintaxis XML autogenerada por
Android Studio y conectada directamente a una Actividad (Una clase relacionada con la interfaz
grfica creada), donde se puede programar los botones y acciones requeridas en lenguaje Java
(Ver Anexo C).
En esta pgina el usuario puede encontrar un mensaje de Bienvenida, un botn que le
permite al usuario ver la siguiente pgina para el acceso a la pgina principal. Esta pgina tiene
como funcionalidad adicional verificar la correcta conexin de internet del celular. De ser fallida
esta conexin el botn de comenzar quedara inhabilitado.
En esta etapa se har uso de un servidor pblico que tiene funcionalidades como
almacenamiento de archivos y bases de datos online.
Host: mysql6.000webhost.com
Nombre de usuario: a7156801_prueba
Contrasea: *******
Nombre de la base de datos: a7156801_prueba
- Creacin de tablas.
Por ltimo se prosigui a crear una tabla para almacenar la informacin de registro de
usuarios: nombre, edad, correo electrnico, contrasea. Esto se realiza desde la opcin
phpMyAdmin, aqu se puede editar el tipo y tamao de campo que ser creado.
Para comprobar la correcta conexin, se guarda el archivo de texto con una extensin
.php, en este caso init.php y se guarda en el administrador de archivos (File Manager) de
000webhost.com:
Figura 442. Conexin base de datos y cadena JSON para obtener datos.
La cadena JSON usada obtiene los campos de la tabla donde se han guardado los usuarios de la
base de datos con la que se ha realizado la conexin.
Para comprobar el funcionamiento de la cadena JSON existen varios servicios online. En este
caso se hizo uso de JSONLINT [77]:
Figura 63. Validacin de cadena JSON.
Se puede obtener entonces un arreglo con los campos que se encuentran en la base de datos.
De esta forma, si los datos ingresados en los campos correo electrnico Y contrasea,
coinciden con los datos consultados en la base de datos, el software permitir el ingreso a la
pgina principal del sistema de seguridad, en caso contrario enviar un mensaje de usuario o
contrasea incorrecta.
Figura 64.Usuario Registrado en la base de datos.
(a) (b)
Figura 65. (a) Ingreso Usuario registrado. (b) Usuario y contrasea incorrecta.
Desarrollo de una interfaz de acciones que pueden ser realizadas por el usuario como
encender una alerta, obtener una imagen del entorno del vehculo.
- Obtener imagen:
Para la obtencin de la imagen el sistema est tomando fotos cada minuto y son subidas
a la nube DROPBOX [79] instalada en la RASPBERRY y para ser visualizada en la aplicacin
se obtiene el link de la imagen que es compartido por Dropbox:
https://dl.dropboxusercontent.com/s/dzrnxhj022y8p87/screen.png
SENSOR DE ULTRASONIDO.
SENSOR CAPACITIVO.
Aprovechando el pequeo tamao del sensor capacitivo, se propone ubicarlo bajo las
manijas de las puertas. De esta forma si alguien trata de abrir la puerta con la alarma activa, el
sensor se activar y enviar una alerta al telfono mvil.
SENSOR DE MOVIMIENTO.
El sensor de movimiento est pensado para alertar al dueo si existe movimiento dentro de
auto, por lo que se propone que su ubicacin sea debajo del volante.
ACELERMETRO.
El nico objetivo del acelermetro es identificar si el auto est en movimiento por lo que
se propone ubicar en el suelo del auto, bajo la silla del conductor.
MDULO RFID.
Ya que el lector o funciona si se pone tras un cuerpo metlico, se propone ubicarlo detrs
de la ventana del conductor, de esta forma el lector podr leer el ID del sensor RFID.
CMARA.
De igual forma se propone ubicar la cmara detrs de la ventana del conductor en la parte
superior, de esta forma la cmara puede tener un mejor ngulo y capturar el rostro al momento de
adquirir la imagen.
Las pruebas realizadas mostraron una muy buena respuesta de los sensores, ya que por su
pequeo tamao son ideales para aplicaciones mviles con en este caso, adems sus
requerimientos de alimentacin son muy comunes y en general su consumo es muy bajo (menor
a 100mA entre todos). Ya que la mayora de estos sensores tienen circuitos que adecan su seal,
la conexin de la tarjeta se puede hacer de forma directa.
En la siguiente tabla se muestran los resultados obtenidos al activar todos los sensores en
el cdigo principal.
Ultrasonido Acelermetro
Prueba/Sensor
(cm) (eje Y)
1 5.69 0.176
2 5.65 0.172
3 5.76 0.172
4 5.74 0.184
RASPBERRY PI
La RASPBERRY Pi es una excelente eleccin ya que permite realizar innumerables
proyectos gracias a todas sus caractersticas. Para este proyecto fue bastante til, ya que el
mdulo de la cmara permite realizar la tarea del reconocimiento facial con una muy buena
calidad de imagen. A pesar de no contar con WIFI, gracias a que cuenta con cuatro puertos USB
2.0, la adicin de un mdulo para agregarle esta caracterstica, es muy sencilla. Adems cuenta
con todos protocolos que utilizan actualmente algunos sensores y un considerable de pines lo que
permite realizar proyectos importantes con ella.
El hecho de que cuente con el sistema operativo Linux permite que la interaccin con el
usuario sea mucho ms cmoda que con otras tarjetas de desarrollo. A esto se le suma que para
realizar proyectos cuenta con el lenguaje de programacin Python que le permite al desarrollador
acceder a todas las caractersticas programables de la tarjeta.
A pesar de que la tarjeta cuenta con un procesador potente (700MHz) y 512MB de RAM,
le toma tiempo realizar procesamiento de imgenes, por lo que para proyectos que tengan mucho
ms procesamiento de imgenes y/o video se recomienda utilizar el modelo 2 de RASPBERRY.
UBIDOTS
Se utiliz UBIDOTS como sistema de almacenamiento en la nube para guardar los datos
que se obtienen de los sensores ya que, gracias las libreras que tiene para la RASPBERRY Pi,
permite que el acceso y la modificacin de la informacin de los sensores sea muy simple.
Adems de tener libreras para la RASPBERRY Pi, tambin es compatible con Android, lo que
ayud a que el desarrollo de la aplicacin fuera un poco ms sencillo.
A pesar de ser una herramienta muy til, sus servicios solo son gratuitos si el nmero de
variables que se crean es menor a 15. Por lo tanto, si se quiere utilizar en un proyecto con un
nmero de sensores considerable, se deber pagar una cuota mensual que depende del nmero de
variables.
Las pruebas que se ilustran en la tabla anterior se realizaron con diferentes expresiones
faciales, por esta razn cambia el valor de confiabilidad. Se defini un umbral para definir a
partir de qu valor del nivel de confiabilidad es o no la persona. Este valor se defini en 90 segn
las pruebas realizadas. Se calcul el error tomando como valor esperado el umbral definido.
El uso del IDE (entorno de desarrollo integrado) Android Studio para realizar de la
aplicacin que interacta con el usuario, permiti crear una interfaz grfica intuitiva y fcil de
manejar para cualquier persona que cuente con un Smartphone. La integracin de UBIDOTS a
este entorno de desarrollo es muy simple y facilita que el manejo y la obtencin de informacin
obtenida por los sensores. En cuanto a resultados cuantitativos de la aplicacin, se tienen las
siguientes pruebas:
Al hacer uso del algoritmo de reconocimiento LBP adquirido desde la librera OpenCV,
se pudo implementar de una manera eficaz y sencilla el sistema de apertura de puertas por
reconocimiento facial haciendo uso nicamente de una etapa de entrenamiento y la de
validacin. El sistema arroj como resultado un reconocimiento facial con un nivel de error
menor al 5%, con lo que se otorga un alto nivel de confiabilidad al sistema de seguridad para
automviles.
Trabajos Futuros
- Teniendo las bases electrnicas del sistema de seguridad, solo queda como trabajo
futuro implementar la parte mecnica para el completo funcionamiento y esttica del sistema.
- Como mejora para el sistema se pueden integrar ms sensores en otras partes del
carro como la tapa de la gasolina, la puerta del bal y dems puertas del vehculo.
- El buzzer usado en este proyecto se puede reemplazar por la integracin del
sistema de seguridad con la alarma sonora propia del automvil.
- En cuanto a la aplicacin se espera que esta pueda ser comercializada en su
versin Android por medio de la Google Play y se pueda generar la versin IOS para Iphone
y se comercialice en la AppStore.
- Se pueden implementar ms acciones en la pgina de alertas de la aplicacin
como acceder al sistema de frenos y si el vehculo ha sido interferido, que se mantenga el
freno de mano activado e imposibilite al ladrn mover el auto.
- Se puede incrementar la seguridad y confiabilidad de datos de la aplicacin
comprando un dominio Premium del servidor 000webhost.
- Para incrementar la velocidad de llegada de las notificaciones se recomienda hacer
uso de una nube propia para el almacenamiento de datos otorgados por los sensores.
- La implementacin de un sistema de seguridad como este, no solo se limita a
vehculos, sino puede ser usado en casas, almacenes y fbricas gracias a su facilidad de
implementacin, ubicacin y costo.
Referencias
[1] Toribio, L. (2008). Diseo y construccin de un prototipo mecatrnico de navegacin
autnoma y simulacin del control. Universidad de las Amricas Puebla.
[2] Klier, T. & J. Rubenstein (2008). Who really made your car? Restructuring and geographic
change in the auto industry. Michigan: W.E. Upjohn Institute for Employment Research.
[3] Lara Rivero, A. (2012). De sistema mecnico a sistema tecnolgico complejo. El caso de los
automviles. Divisin de Investigacin de la Facultad de Contadura y Administracin
de la UNAM. Mxico D.F.
#!/usr/bin/env python
# -*- coding: utf8 -*-
import RPi.GPIO as GPIO
import spi
import signal
import time
class MFRC522:
NRSTPD = 22
MAX_LEN = 16
PCD_IDLE = 0x00
PCD_AUTHENT = 0x0E
PCD_RECEIVE = 0x08
PCD_TRANSMIT = 0x04
PCD_TRANSCEIVE = 0x0C
PCD_RESETPHASE = 0x0F
PCD_CALCCRC = 0x03
PICC_REQIDL = 0x26
PICC_REQALL = 0x52
PICC_ANTICOLL = 0x93
PICC_SElECTTAG = 0x93
PICC_AUTHENT1A = 0x60
PICC_AUTHENT1B = 0x61
PICC_READ = 0x30
PICC_WRITE = 0xA0
PICC_DECREMENT = 0xC0
PICC_INCREMENT = 0xC1
PICC_RESTORE = 0xC2
PICC_TRANSFER = 0xB0
PICC_HALT = 0x50
MI_OK = 0
MI_NOTAGERR = 1
MI_ERR = 2
Reserved00 = 0x00
CommandReg = 0x01
CommIEnReg = 0x02
DivlEnReg = 0x03
CommIrqReg = 0x04
DivIrqReg = 0x05
ErrorReg = 0x06
Status1Reg = 0x07
Status2Reg = 0x08
FIFODataReg = 0x09
FIFOLevelReg = 0x0A
WaterLevelReg = 0x0B
ControlReg = 0x0C
BitFramingReg = 0x0D
CollReg = 0x0E
Reserved01 = 0x0F
Reserved10 = 0x10
ModeReg = 0x11
TxModeReg = 0x12
RxModeReg = 0x13
TxControlReg = 0x14
TxAutoReg = 0x15
TxSelReg = 0x16
RxSelReg = 0x17
RxThresholdReg = 0x18
DemodReg = 0x19
Reserved11 = 0x1A
Reserved12 = 0x1B
MifareReg = 0x1C
Reserved13 = 0x1D
Reserved14 = 0x1E
SerialSpeedReg = 0x1F
Reserved20 = 0x20
CRCResultRegM = 0x21
CRCResultRegL = 0x22
Reserved21 = 0x23
ModWidthReg = 0x24
Reserved22 = 0x25
RFCfgReg = 0x26
GsNReg = 0x27
CWGsPReg = 0x28
ModGsPReg = 0x29
TModeReg = 0x2A
TPrescalerReg = 0x2B
TReloadRegH = 0x2C
TReloadRegL = 0x2D
TCounterValueRegH = 0x2E
TCounterValueRegL = 0x2F
Reserved30 = 0x30
TestSel1Reg = 0x31
TestSel2Reg = 0x32
TestPinEnReg = 0x33
TestPinValueReg = 0x34
TestBusReg = 0x35
AutoTestReg = 0x36
VersionReg = 0x37
AnalogTestReg = 0x38
TestDAC1Reg = 0x39
TestDAC2Reg = 0x3A
TestADCReg = 0x3B
Reserved31 = 0x3C
Reserved32 = 0x3D
Reserved33 = 0x3E
Reserved34 = 0x3F
serNum = []
def MFRC522_Reset(self):
self.Write_MFRC522(self.CommandReg, self.PCD_RESETPHASE)
def AntennaOn(self):
temp = self.Read_MFRC522(self.TxControlReg)
if(~(temp & 0x03)):
self.SetBitMask(self.TxControlReg, 0x03)
def AntennaOff(self):
self.ClearBitMask(self.TxControlReg, 0x03)
def MFRC522_ToCard(self,command,sendData):
backData = []
backLen = 0
status = self.MI_ERR
irqEn = 0x00
waitIRq = 0x00
lastBits = None
n = 0
i = 0
if command == self.PCD_AUTHENT:
irqEn = 0x12
waitIRq = 0x10
if command == self.PCD_TRANSCEIVE:
irqEn = 0x77
waitIRq = 0x30
self.Write_MFRC522(self.CommIEnReg, irqEn|0x80)
self.ClearBitMask(self.CommIrqReg, 0x80)
self.SetBitMask(self.FIFOLevelReg, 0x80)
self.Write_MFRC522(self.CommandReg, self.PCD_IDLE);
while(i<len(sendData)):
self.Write_MFRC522(self.FIFODataReg, sendData[i])
i = i+1
self.Write_MFRC522(self.CommandReg, command)
if command == self.PCD_TRANSCEIVE:
self.SetBitMask(self.BitFramingReg, 0x80)
i = 2000
while True:
n = self.Read_MFRC522(self.CommIrqReg)
i = i - 1
if ~((i!=0) and ~(n&0x01) and ~(n&waitIRq)):
break
self.ClearBitMask(self.BitFramingReg, 0x80)
if i != 0:
if (self.Read_MFRC522(self.ErrorReg) & 0x1B)==0x00:
status = self.MI_OK
if command == self.PCD_TRANSCEIVE:
n = self.Read_MFRC522(self.FIFOLevelReg)
lastBits = self.Read_MFRC522(self.ControlReg) & 0x07
if lastBits != 0:
backLen = (n-1)*8 + lastBits
else:
backLen = n*8
if n == 0:
n = 1
if n > self.MAX_LEN:
n = self.MAX_LEN
i = 0
while i<n:
backData.append(self.Read_MFRC522(self.FIFODataReg))
i = i + 1;
else:
status = self.MI_ERR
return (status,backData,backLen)
self.Write_MFRC522(self.BitFramingReg, 0x07)
TagType.append(reqMode);
(status,backData,backBits) = self.MFRC522_ToCard(self.PCD_TRANSCEIVE, TagType)
return (status,backBits)
def MFRC522_Anticoll(self):
backData = []
serNumCheck = 0
serNum = []
self.Write_MFRC522(self.BitFramingReg, 0x00)
serNum.append(self.PICC_ANTICOLL)
serNum.append(0x20)
(status,backData,backBits) = self.MFRC522_ToCard(self.PCD_TRANSCEIVE,serNum)
if(status == self.MI_OK):
i = 0
if len(backData)==5:
while i<4:
serNumCheck = serNumCheck ^ backData[i]
i = i + 1
if serNumCheck != backData[i]:
status = self.MI_ERR
else:
status = self.MI_ERR
return (status,backData)
def MFRC522_StopCrypto1(self):
self.ClearBitMask(self.Status2Reg, 0x08)
def MFRC522_Init(self):
GPIO.output(self.NRSTPD, 1)
self.MFRC522_Reset();
self.Write_MFRC522(self.TModeReg, 0x8D)
self.Write_MFRC522(self.TPrescalerReg, 0x3E)
self.Write_MFRC522(self.TReloadRegL, 30)
self.Write_MFRC522(self.TReloadRegH, 0)
self.Write_MFRC522(self.TxAutoReg, 0x40)
self.Write_MFRC522(self.ModeReg, 0x3D)
self.AntennaOn()