Introducción

Seguidor de movimiento
Cuando era pequeño (cosa de unos cuantos ayeres), recuerdo que ví la pelicula de:
El depredador, para tod@s aquell@s personas que no son de los 90's, el depredador era un marciano caza humanos con armamento pesado, entre su armamento tenia un lasser que seguía a su presa, obviamente cuando eres niñ@ te quedas impresionado y te imaginas con uno de esos, la mala noticia es que no los venden en la tienda de la esquina, pero bueno, ya no hay porque seguir soñando, en este proyecto te voy a enseñar a armar el tuyo, eso si, el lasser y el traje de invisibilidad no estan incluidos.
Para este proyecto es necesario la utilizanción de un microcontrolador, yo voy a utilizar el PIC16F1827, pero tu puedes utilizar cualquier otro, solo ten en cuenta que los resultados pueden variar, y tu debes de crear tus propias rutinas.
Como ya es costumbre, lo voy a poner en negritas para que las personas que no leen la introducción sepan de que va el asunto.

IMPORTANTE:

Este proyecto utiliza un microcontrolador, por lo tanto es necesario contar con el hardware necesario para programarlo.


Teoria


Lo primero que hay que establecer es el método por el cual vamos a saber que el objeto/humano/mascota/alien se esta moviendo, una manera podría ser mediante camaras, pero eso complicaria un poco las cosas por lo tanto quedan descartadas, otra manera sería mediante sensores pirolicos, si, los que utilicé en el detector de movimiento, la desventaja es que su pulso dura solamente unos cuantos segundos, aparte solo detecta humanos y animales con respecto a los marcianos no estoy seguro por lo tanto quedan descartados también, ¿y si lo intentamos mediante distancia?.

Si se estan preguntando ¿como sería posible lograr esto mediante la distancia?, la respuesta es:
Sabemos que la distancia es igual a la velocidad por el tiempo, por lo danto despejando la velocidad nos quedaría distancia entre tiempo, ahora bien, si integramos la velocidad con respecto al tiempo obtendriamos la posición, ¡Bingo!....la verdad es que es más fácil que eso, solo era para repasar conceptos básico de fisca.

Una forma de lograrlo, o al menos esa fue la única forma que se me ocurre por el momento, es utilizando cualquier sensor que sea capaz de detectar bordes, lo que hacemos es SCANNEAR/BARRER el objeto/humano/mascota/alien.

Podemos utilizar cualquier sensor reflectivo, esto es, cualquier sensor que mande una onda a una frecuencia lo suficientemente alta para que rebote, no me hagan mucho caso pero si mal no recuerdo de mis clases la frecuencia es apartir de los 25khz, en fin, podemos utilizar sensores de ultrasonido, lasser, o infrarojo.
En el caso de ultrasonido la desventaja que le encuentro es el reflejo de la onda en las superficies con esquinas, aparte va a ser necesario dos modulos para detectar los bordes izquierdo/derecho, por parte del lasser tenemos que considerar dos cosas, longitud de onda y potencia, asi que para utilizarlos requerimos tener de mínimo gafas especiales de lo contrario podría resultar muy peligroso, por lo tanto los ganadores son los infrarojos, obviamente la velocidad de respuesta no se compara con los ultrasonidos ni mucho menos las distancias con el lasser, pero vamos, tampoco estamos haciendo un francotirador.

Voy a utilizar el sensor de sharp 2D120X, el cual es un sensor de distancia basado en infrarojo, aquí les pongo sus caracteristicas:

•Salida analógica.
•Rango efectivo de 4 a 30 cm.
•Tiempo de respuesta 39ms.
•Tiempo de inicialización 44ms.
•Consumo de corriente 33mA.
•Voltaje de operación 4.5 a 5 Volts.

Distancia vs Voltaje de salida:
Distancias Vs Saluda Diagrama de tiempos:
Timing Analizando el sensor, el porcentaje cuando el objeto/humano/mascota/alien viste de blanco es del 90% mientras que si viste de gris es de solo 18% no me quiero imaginar como le va al negro, yo sopongo que el porcentaje esta en -99%, como ya lo había mencionado el tiempo de respuesta no es de lo mejor, para obtener una señal estable durante 5ms deben transcurrir 38.3ms ± 9.6ms, esto es un problema porque limita la frecuencia a la cual podemos movernos.

Ahora veamos como lo vamos a utilizar, en la primer gráfica tenemos los niveles de voltaje respecto a la distancia, entonces solo es necesario establecer un nivel de voltaje, y apartir de este detectar el cambio, voy a tratar de ilustar esto en la siguiente imagen
Barrido
La distancia establecida es de 12cm (algo así como 2 Volts) entonces empezamos a movernos atravez de la superficie (perimetro color rojo) , una vez que el sensor llega al borde la distancia varia de 12cm a 20cm(1.3 Volts aprox.), cuando detectamos este cambio nos movemos en la dirección contraria hasta encontrar el borde y repetimos la secuencia una y otra vez.
Esto sería la magia detras del seguidor de movimiento, ahora solo falta movernos, para ello podemos utilizar motores sin escobillas con encoder, servomotores, motores a pasos, etc...., aquí depende del gusto de cada persona, yo voy a utilizar un motor a pasos, las caracteristicas las pongo en la sección Hardware.

Pues bien hasta este punto ya eres capaz de desarrollar por ti mismo las secuencias y el hardware para hacer tu seguidor de movimiento, o bien puedes seguir mi diseño y cargarle la ROM que se encuentra en la sección Resultado.

Hardware

Esquematico

Lista de materiales:


• Microcontrolador (PIC16F1827)
• Sensor Sharp 2D120X
• Motor*
• Regulador de voltaje (LM7805)
• Driver PaP (L6219)
• 2 resistencia de 1 Ω @ 1/2 watt
• 2 resistencias de 1 kΩ @ 1/4 watt
• 2 resistencias de 56 kΩ @ 1/4 watt
• 4 capacitores de 820pF
• 2 capacitores de .1µF
• 1 capacitor electrolitico de 100µF @ 25 Volts
• Pila o bateria de 9 Volts



El diagrama de conexión está creado en diptrace, presiona sobre la imágen para descargarlo.

*Motor:
•Modelo: KH56KM2R009
•Tipo: Motor a pasos
•Configuración: Bipolar

**No encontré la hoja de datos del motor así que lo tuve que caracterisar de forma manual, si necesitas mas información sobre él dejame un mensaje en la sección Comentarios.

Resultado y palabras finales


Aquí les dejo el video donde se ve el funcionamiento del seguidor de movimiento.

Seguidor de movimiento

En la sección de Teoria mencione que el tiempo de respuesta del sensor nos iba a limitar la velocidad de movimiento, es por eso que es un poco lento, para el caso del motor a pasos la frecuencia máxima son 20hz, si pasamos de esta frecuencia el sensor no va a ser capaz de seguir el objeto.
Aquí les dejo la ROM del microcontrolador para que lo programen.
Archivo Hex: scanner.hex

Esto sería todo en cuanto este proyecto de seguidor de movimiento, espero les sea de utilidad ya solo falta que consigan el camuflaje de invisibilidad, pero eso es relativamente fácil, se lo pueden quitar a snake de metal gear III y listo :v.
No se olviden de recomendar esta pagina en facebook, twitter, google plus o cualquier otra red social, foro, pagina web, o medio de comunicación, tambien pueden seguirme en twitter @edx_twin3 donde pongo las ultimas noticias sobre la página.
Como siempre cualquier duda, sugerencia, comentario, etc ...., la pueden enviar ya sea mediante la pagina de contacto, mediante correo electrónico edx@edx-twin3.org o utilizando la pestaña de Comentarios de este tutorial.
Por último pero no menos importante cualquier donativo es de gran ayuda para seguír haciendo tutoriales como este, gracias :1.

Comentarios, preguntas o sugerencias