You are on page 1of 11

SENSORES Y ACONDICIONAMIENTO DE SEALES.

DRA. IRCE LEAL CABRERA


5 C MECATRNICA
ABRIL TEHOZOL LPEZ REYNA RAMIREZ TELLEZ ALEXIS MORALES GONZLEZ RICARDO PALMA MADRIGAL

SEGUIDOR DE LINEA HACHIKO

Objetivo: En esta prctica se pudo utilizar varios componentes electrnicos para poder controlar un sensor infrarrojo de corto alcance para disear un seguidor de lnea controlado mediante la programacin de Arduino.

Marco terico: Cny70. CNY70 es un pequeo dispositivo con forma de cubo y cuatro patitas que aloja en su interior un diodo emisor de infrarrojos que trabaja a una longitud de onda de 950 nm. y un fototransistor (recetor) estando ambos dispuestos en paralelo y apuntando ambos en la misma direccin, la distancia entre emisor y receptor es de 2.8 mm. y estn separados del frontal del encapsulado por 1 mm. El fototransistor conducir ms, contra ms luz reflejada del emisor capte por su base. La salida de este dispositivo es analgica y viene determinada por la cantidad de luz reflejada, as pues para tener una salida digital se podra poner un disparador Trigger Schmitt y as obtener la salida digital pero esto tiene un problema, y es que no es ajustable la sensibilidad del dispositivo y los puntos de activacin de histerisis distan algunos milivoltios uno del otro (ver explicacin en el esquema de la LDR ). Para solventar este problema muestro el siguiente circuito basado en un amplificador operacional configurado en modo comparador, en la salida del circuito obtendremos una seal cuadrada lista para su interconexin con la entrada de cualquier Controlador.

El CNY70 devuelve por la pata de salida correspondiente, segn el montaje, un voltaje relacionado con la cantidad de rayo reflectado por el objeto. Para el montaje A, se leer del emisor un '1' cuando se refleje luz y un '0' cuando no se refleje. Para el montaje B los valores se leen del colector, y son los contrarios al montaje A. Si conectamos la salida a una entrada digital del microcontrolador, entonces obtendremos un '1' o un '0' en funcin del nivel al que el microcontrolador establece la distincin entre ambos niveles lgicos. Este nivel se puede controlar introduciendo un buffer trigger-schmitt (por ejemplo el 74HC14, ojo que es un inversor!) entre la salida del CNY70 y la entrada del microcontrolador. Este sistema es el que se emplea para distinguir entre blanco y negro, en la conocida aplicacin del robot seguidor de lnea.

Arduino Ss una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseada para facilitar el uso de la electrnica en proyectos multidisciplinares.2 3 El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida.4 Los microcontroladores ms usados son el Atmega168, Atmega328, Atmega1280, ATmega8 por su sencillez y bajo coste que permiten el desarrollo de mltiples diseos. Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programacin Processing/Wiring y elcargador de arranque (boot loader) que corre en la placa.4 Arduino puede detectar el medio ambiente mediante la recepcin de la entrada de una variedad de sensores y puede afectar a sus alrededores por controlar luces, motores y otros actuadores. El microcontrolador de la placa se programa mediante el lenguaje de programacin Arduino (basado enWiring ) y el entorno de desarrollo Arduino (basado en Processing ). Proyectos Arduino puede ser independiente o se pueden comunicar con el software que se ejecuta en un ordenador (por ejemplo, Flash, Processing, MaxMSP).

Resistencia

Se le llama resistencia elctrica a la mayor o menor oposicin que tienen los electrones para desplazarse a travs de un conductor. la unidad de resistencia en el sistema internacionales ohm, que se representa con la letra griega omega (), en honor al fsico alemn George Ohm, quien descubri el principio que ahora lleva su nombre. Esta ley enuncia de la siguiente manera: "la intensidad de la corriente que pasa por un conductor es directamente proporcional a la longitud e inversamente proporcional a su resistencia"

En donde es el coeficiente de proporcionalidad o la resistividad del material.

Servomotor Un servomotor (tambin llamado servo) es un dispositivo similar a un motor de corriente continua que tiene la capacidad de ubicarse en cualquier posicin dentro de su rango de operacin, y mantenerse estable en dicha posicin.1 Un servomotor es un motor elctrico que consta con la capacidad de ser controlado, tanto en velocidad como en posicin. Los servos se utilizan frecuentemente en sistemas de radio control y en robtica, pero su uso no est limitado a estos. Es posible modificar un servomotor para obtener un motor de corriente continua que, si bien ya no tiene la capacidad de control del servo, conserva la fuerza, velocidad y baja inercia que caracteriza a estos dispositivos. Los servomotores hacen uso de la modulacin por ancho de pulsos (PWM) para controlar la direccin o posicin de los motores de corriente continua. La mayora trabaja en la frecuencia de los cincuenta hercios, as las seales PWM tendrn un periodo de veinte milisegundos. La electrnica dentro del servomotor responder al ancho de la seal modulada. Si los circuitos dentro del servomotor reciben una seal de entre 0,5 a 1,4 milisegundos, este se mover en sentido horario; entre 1,6 a 2 milisegundos mover el servomotor en sentido antihorario; 1,5 milisegundos representa un estado neutro para los servomotores estndares.

Desarrollo: Primero elegimos el material adecuado. 2 resistencias de 330 y 4.7K 1 tarjeta Arduino Batera de 6V a 1A 2 CNY70 2 servomotores 2 llantas adaptadas para servo 1 rueda loca PVC para chasis Cables con pines

1. Volamos los topes para que el servo gire 360 y desoldamos el potencimetro y hacemos un divisor de voltaje.

2. Soldamos las resistencias a los pines del CNY70 correspondientes 3. Hacemos el chasis para el seguidor de lnea pegando los servos y montando las llantas y pegar los CNY70

4. Armamos el siguiente circuito con el arduino

5. Alimentamos con 6V a la tarjeta (como no es mucha demanda de corriente funciona correctamente los servos conectados al Arduino).

6. Hacemos el programa para controlar el seguidor de lnea


//////////////////////////////////////////////////// const int encendido = 2; // asociamos el encendido al pin 2 const int sender = A0; // asociamos el sensor qrd derecha al pin 12 const int senizq = A1; // asociamos el sensor qrd izquierda al pin 13 int fuego = 0; // variable que leera el estado de encendido int estadoder = 0; // variable que leera el estado del sensor qrd derecha int estadoizq = 0; // variable que leera el estado del sensor qrd izquierda #include <Servo.h> // insertamos la libreria servo para poder manipular los servos Servo myservo; // creamos los nombres que llevaran nuestros servos myservo uno es el motor1 Servo myservo1; // myservo1 es el motor 2 void setup() { Serial.begin(9600); // inicia comunicacion serial para verificar el trabajo de los sensores pinMode(sender, INPUT); // configuramos como entrada a sender pinMode(senizq, INPUT); // configuramos como enrada a senizq pinMode(encendido, INPUT); // configuramos como entrada a encendido digitalWrite(encendido,HIGH); // habilitamos el pull up digitalWrite(10, HIGH); /* do // 5 segundos antes de empezar { fuego = digitalRead(encendido);

}while(fuego==HIGH); delay(500);*/ myservo.attach(5); // asociamos al servo a un pin, en este caso el pin 9 myservo1.attach(6); // asociamos al servo1 al pin 10 } void loop() { fuego = digitalRead(encendido); // fuego adquirira el valor de encendido si inicia o no Serial.print(fuego); Serial.print("\t"); estadoder = analogRead(sender); // estadoder adquirira el valor de sender si detecta o no estadoizq = analogRead(senizq); // estadoizq adquirira el valor de senizq si detecta o no Serial.print(estadoder); Serial.print("\t"); Serial.print(estadoizq); Serial.print("\t"); if (estadoizq <=950 && estadoder <= 950) // configuracion donde los sensores de linea detectan el color blanco { myservo.write(180); myservo1.write(0); }

else if (estadoizq >= 950 && estadoder <= 950 ) // configuracion donde los sensores de linea detectan el color negro { myservo.write(0); myservo1.write(0); } else if (estadoizq <= 950 && estadoder >= 950) // configuracion donde los sensores de linea detectan el color blanco { myservo.write(180); myservo1.write(180); } else if (estadoizq >= 950 && estadoder >= 950) // configuracion donde los sensores de linea detecta el limite del dollo { myservo.write(0); myservo1.write(180); } } /////////////////////////////////////////////////////////////////

7.- lo cargamos al Arduino y conectamos a la batera de 6V para que funcione y esta listo!.

Conclusin: En esta prctica se hizo con la finalidad de presentar un proyecto para el 2 concurso de Mecatrnica en la UPTLAX, tomando como referencia los temas aprendidos en clase de Sensores y Acondicionamiento de Seales. Este seguidor de lneas funciono correctamente sin ningn fall en la lectura tomada por los CNY70 pero con una reducida velocidad por los servomotores. Ahora tras esta experiencia podemos realizar cambios en nuestro seguidor de lneas HACHIKO para que obtenga una mayor velocidad.

You might also like