Bueno pues esta es la ultima entrada de este proyecto, actualmente esta completo e instalado en un Maverick 1971.
Conocimientos necesarios.
Programación. Se requiere para programar el arduino, se usaron los lenguajes Processing y C++.
Electrónica. Necesario para realizar las conexiones de manera optima ya que de otra forma no va a funcionar y en el peor de los casos puedes quemar los componentes.
Mecánica. Necesitas saber como enciende el auto y a donde debes mandar el pulso para no dañar la computadora del auto y evitar rebotes en los pulsos.
Diagrama de conexiones
Parte del código.
Processing
Vídeo demostrativo
Posteriormente prepararemos un vídeo explicativo.
Dudas, preguntas, consejos o criticas constructivas son bien recibidas.
Como se vio en clase, el auto ajuste de parametros es la modificacion automatica
de un parametro de acuerdo al entorno.
Un parametro es una variable que influye en la ejecucion de un sistema.
A continuacion se muestra el codigo generado para la simulacion de el apagado/encendido de un ventilador de acuerdo al clima que se presenta en ese momento.
Cuales son los parametros?
Los parametros que se modificaran seran:
-El encendido/apagado
import time, thread,
#Se crea el array de temperaturas
temperaturas = [16,17,20,21,23,24,27,28,31,33,36,34,30,26,25,23,20,16,16,13]
dias={1:"Lunes",2:"Martes",3:"Miercoles",4:"Jueves",5:"Viernes",6:"Sabado",7:"Domingo"}
#Claves para el ventilador
claves ={0:"Apagado",1:"Encendido velocidad baja",2:"Encendido velocidad media",3:"Encendido velocidad alta"}
Aqui se crearon dos metodos uno que se encargara de monitorear si es necesario o no que se encienda el ventilador y en que intensidad.
def Monitor(clave, temperatura):
if clave == 0:
print "La temperatura es:",temperatura
print "El ventilador se encuentra:",claves[clave],"\n"
return
elif clave == 1:
print "La temperatura es:",temperatura
print "El ventilador se encuentra:",claves[clave],"\n"
return
elif clave == 2:
print "La temperatura es:",temperatura
print "El ventilador se encuentra:",claves[clave],"\n"
return
elif clave == 3:
print "La temperatura es:",temperatura
print "El ventilador se encuentra:",claves[clave],"\n"
return
time.sleep(2)
#Se recorre el array
def principal():
contador=1
while True:
print"Dia ",dias[contador]
for temperatura in temperaturas:
if temperatura > 10 and temperatura <= 16:
llave=0
Monitor(llave,temperatura)
elif temperatura > 16 and temperatura <= 20:
llave=1
Monitor(llave,temperatura)
elif temperatura >20 and temperatura <= 28:
llave =2
Monitor(llave,temperatura)
elif temperatura >28 and temperatura <= 37:
llave = 3
Monitor(llave,temperatura)
time.sleep(1)
contador=contador+1
if contador==8 or contador>=9:
break
thread.exit()
thread.start_new_thread(principal, (llave,temperatura,))
principal()
En el contexto de la teoría de redes una red compleja se refiere a una red (grafo) que posee cierta característica topológicas no triviales que no ocurren en redes simples.
La mayoría de redes sociales, biológicas, y tecnológicas pueden ser consideradas complejas en virtud de su topología estructural no trivial (por ejemplo, las redes sociales, de ordenadores, neurológicas y la epidemiología) Estas características no triviales incluyen: una cola pesada en la distribución de grado, un alto coeficiente de agrupamiento, una estructura comunitaria a muchas escalas, y evidencias de una estructura jerarquizada.
Recordando un poco sobre lo que trata nuestro proyecto. Es
sobre el encendido por medio del reconocimiento de huella dactilar de un
automóvil. No hemos realizado ningún cambio con respecto a la entrega anterior.
Avance con respecto a la planeación.
Hasta el día de hoy hemos avanzado significativamente en
nuestro proyecto, luego de 2 meses de espera por la llegada del fingerprinter.
Hemos estado realizando investigaciones sobre el uso de
huellas dactilares en la seguridad y hemos encontrado datos importantes que
sustentan nuestro proyecto, alguna de ellas son:
· * La Huella es única
· *Las características usadas para la
identificación no varían con el tiempo
La técnica a utilizar es el reconocimiento de patrones.
Existen métodos manuales para la búsqueda de huellas
dactilares en colecciones, también existen métodos automatizados de búsqueda
precisa de una representación.
Hay características primarias para el reconocimiento que son
las crestas y los valles.
También hemos encontrado que existen 6 diferentes tipos de
huella como vemos a continuación.
Para compararlas se crea una imagen o se toma una fotografía de la huella y se
comparan ciertos puntos antes mencionados que hacen característica a esa
huella.
Nos hemos encontrado con algunos problemas como lo ha sido
la alimentación de el arduino ya dentro del vehículo para ello la solución que
tenemos al día de hoy es utilizar una pila de 9V con la desventaja que se tendría
que estar cambiando cada vez que se le agote la pila.
Lo que nos falta al día de hoy es empezar a realizar pruebas
e instalar el sistema en el vehículo.
Las herramientas utilizadas siguen siendo las mismas que ya
se han mencionado en la entrega anterior, de igual manera las mencionamos
nuevamente a continuación:
· * Fingerprinter
· *Arduino UNO
· * Librerías Fingerprinter
· *Arduino IDE
· * Lenguaje de programación Processing y C++
* Información respecto a reconocimiento de patrones.
El código esta casi listo, aun tiene algunos muchos bugs que necesitan reparase pero la función esta prácticamente terminada, el código esta extraño porque esta construido en base a la librería de arduino y la librería del fingerpinter, colocaremos algunos pedazos del mismo por cuestiones educativas.
El Perceptrón es un tipo de red neuronal artificial desarrollado por Frank Rosenblatt, también puede entenderse como perceptrón la neurona artificial y unidad básica de inferencia en forma de discriminador lineal, que constituye este modelo de red neuronal artificial, esto debido a que el perceptrón puede usarse como neurona dentro de un perceptrón más grande u otro tipo de red neuronal artificial.
En esta entrada presentamos el segundo avance del proyecto de programación de sistemas adaptativos, que como lo mencionabamos en la entrada anterior se trata de el encendido de un automóvil por medio de reconocimiento de huella digital.
Por lo pronto no hemos realizado ningún cambio a la idea del proyecto, sigue siendo la misma a pesar de las complicaciones que hemos tenido con el envió del detector de huellas digitales.
Avance
A pesar de la complicación antes mencionada, seguimos trabajando con el diseño del programa, así como también organizando y comprobando los tiempos antes dispuestos en la siguiente tabla:
Lo que hemos realizado hasta el día de hoy ha sido básicamente realizar diagramas y formularnos una idea de como se va a resolver este problema.
Lo que nos ha detenido es la llegada del detector de huellas digitales, ya que es la parte mas importante de este proyecto y asi poder comenzar a realizar las pruebas del codigo, que basicamente se trata de reconocer la huella digital y si existe en la memoria enviar un impulso para encender el vehiculo.
Diagrama Proyecto
Recursos
Los recursos no han cambiado, seguimos utilizando:
Nuestro
proyecto consta en desarrollar un sistema para realizar el encendido de un
automóvil mediante el reconocimiento de huellas digitales, esto brindaría
seguridad y confianza.
Solución:
Programar
un arduino en
C++ con reconocimiento de patrones.
Un
lector recibe una imagen de la huella digital, el arduino,
previamente entrenado, verifica que esa imagen exista en la memoria, si es así
envía una señal para el encendido del auto.