You are on page 1of 7

INSTITUTO POLITCNICO NACIONAL

Unidad Profesional Interdisciplinaria en Ingeniera


y Tecnologas Avanzadas
INGENIERIA BINICA
SISTEMAS SENSORIALES 4BM2
REPORTE DE PROYECTO
PROYECTO #1
PROFESOR:
HORTA OLIVARES
INTEGRANTES DEL EQUIPO:
Jurez Apolinar Alix Dayane
Martnez Aguilar Yael Rubn
Ramrez Len Vctor Andrs
Mxico, Distrito Federal a 25 de Febrero del 2014
INSTITUTO POLITCNICO NACIONAL
Unidad Profesional Interdisciplinaria en Ingeniera
y Tecnologas Avanzadas
INGENIERIA BINICA
SISTEMAS SENSORIALES 4BM2
REPORTE DE PROYECTO
OBJETIVO
Crear un dispositivo el cual a travs de una
cmara localice una zona de un color en
especfico (rojo) y trate de llegar a l, este
dispositivo a travs de sensores
infrarrojos ser capaz de detectar y evitar
obstculos para llegar a su destino.
MARCO TEORICO
Los sensores infrarrojos son una
tecnologa que inicio en los aos 90s, son
aquellos que detectan la radiacin
emitida por los materiales calientes y la
transforman en una seal elctrica.
El receptor de rayos infrarrojos suele ser
un fototransistor o un fotodiodo. El
circuito de salida utiliza la seal del
receptor para amplificarla y adaptarla a
una salida que el sistema pueda entender.
La seal enviada por el emisor puede ser
codificada para distinguirla de otra y as
identificar varios sensores a la vez esto es
muy utilizado en la robtica
Estn diseados especialmente para la
deteccin, clasificacin y posicionado de
objetos; la deteccin de formas, colores y
diferencias de superficie, incluso bajo
condiciones ambientales extremas. Este
componente puede tener la apariencia de
un LED normal, la diferencia radica en que
la luz emitida por l no es visible para el
ojo humano, nicamente puede ser
percibida por otros dispositivos
electrnicos.
Para realizar el sensado tambin se us
una configuracin de los amplificadores
operacionales como restador, teniendo
como entradas la seal proveniente de los
sensores infrarrojos y una seal continua
para disminuir el offset producido por los
sensores.
Este amplificador usa ambas entradas
invertida y no invertida con una ganancia
de uno, para producir una salida igual a la
diferencia entre las entradas. Es un caso
especial del amplificador diferencial.
Se utiliz adems un amplificador con
ganancia de 68 para amplificar la salida y
poder procesarla en un micropocesador.
Finalmente para el movimiento de los
motores se us el puente H.
Un Puente H o Puente en H es un circuito
electrnico que permite a un motor
elctrico DC girar en ambos sentidos,
avance y retroceso. Son ampliamente
usados en robtica y como convertidores
de potencia. Los puentes H estn
disponibles como circuitos integrados,
pero tambin pueden construirse a partir
de componentes discretos. El diagrama
utilizado es el que se muestra a
continuacin.
INSTITUTO POLITCNICO NACIONAL
Unidad Profesional Interdisciplinaria en Ingeniera
y Tecnologas Avanzadas
INGENIERIA BINICA
SISTEMAS SENSORIALES 4BM2
REPORTE DE PROYECTO
Fig. Diagrama de conexin de Puente H
L293D.
El puente H se usa para invertir el giro de
un motor, pero tambin puede usarse
para frenarlo (de manera brusca), al hacer
un corto entre las bornas del motor, o
incluso puede usarse para permitir que el
motor frene bajo su propia inercia.
Los motores muestran la potencia y la
velocidad con que se va a mover el carro,
se suele utilizar motores con caja
reductora que nos garanticen un buen
torque, para el carro se necesitan dos
motorreductores.
El chasis del carro seguidor de imgenes,
detector de obstculos es la estructura
destinada a brindarnos la movilidad, para
su construccin se eligi un material
resistente que soporta el peso de la
batera, el sistema de control, los motores
y los sensores.
DESARROLLO
Se hizo uso del Arduino para controlar
las entradas y salidas de pulsos que se
enviaban a los motores, a travs de un
puente H, este tambin reciba los datos
que emitan los sensores, se utiliz
adems una cmara USB Logitech modelo
250 montada sobre el carrito para captar
la imagen para posteriormente todo en
conjunto fuera procesado en el programa
realizado en MATLAB.
El programa de control se encuentra en el
apndice 1.
Para la realizacin de los circuitos para la
deteccin de los obstculos se
necesitaron de seis sensores, dos
sensores en la parte central, y los otros
cuatro sensores acomodados en las
partes laterales del carro en pares. Se
requera una distancia mnima de
deteccin de cinco centmetros entre el
carro y el obstculo.
El diseo del circuito para la deteccin de
obstculos, por medio de los sensores
pticos consisti de un emisor infrarrojo y
dos sensores infrarrojos para
posteriormente restarle a la seal de los
sensores el offset por medio de un divisor
INSTITUTO POLITCNICO NACIONAL
Unidad Profesional Interdisciplinaria en Ingeniera
y Tecnologas Avanzadas
INGENIERIA BINICA
SISTEMAS SENSORIALES 4BM2
REPORTE DE PROYECTO
de tensin y amplificada la seal se
ingres al Arduino.
Fig. Conexin de protoboard de sensores
pticos y simulacin.
Mtodo de control.
Primeramente el robot haca un barrido
de su espacio capturando fotogramas
cada cierto tiempo, cuando detectaba un
objeto rojo iniciaba su recorrido hacia l.
Se definieron umbrales de deteccin de
los sensores (2.4V), superado ste umbral
indicaba la deteccin de un objeto y se
aplicaba la lgica programada para evadir
el objeto detectado y continuar su
trayectoria hasta llegar a su objetivo.
Cuando el robot se encontraba lo
suficientemente cerca del objeto rojo,
detena todo mecanismo de accin y
alertaba en pantalla el evento.
RESULTADOS
En las pruebas realizadas el carrito
detectaba satisfactoriamente los objetos
rojos a su alrededor y se acercaba a ellos
evadiendo obstculos en su camino.
INSTITUTO POLITCNICO NACIONAL
Unidad Profesional Interdisciplinaria en Ingeniera
y Tecnologas Avanzadas
INGENIERIA BINICA
SISTEMAS SENSORIALES 4BM2
REPORTE DE PROYECTO
Apndice 1.
Cdigo de Programacin utilizado en Matlab.
close all; clear all; clc;
imaqmem(100000000000);
x = 0; b = 0;
a = arduino('COM3');
a.pinMode(5,'output');
a.pinMode(6,'output');
a.digitalWrite(5,1);
a.digitalWrite(6,1);
vid=videoinput('winvideo',1,'MJPG_640x480');
set(vid, 'FramesPerTrigger', Inf);
set(vid, 'ReturnedColorspace', 'rgb')
vid.FrameGrabInterval = 5;
[x, alto] = imagen(vid)
s1 = a.analogRead(2)
s2 = a.analogRead(3)
s3 = a.analogRead(4)
while(1)
while(s1 < 300 && s2 < 300 && s3 < 300 && x > 220 && x < 420)
a.digitalWrite(6,0);
a.digitalWrite(5,0);
pause(0.3)
a.digitalWrite(6,1);
a.digitalWrite(5,1);
s1 = a.analogRead(2)
s2 = a.analogRead(3)
s3 = a.analogRead(4)
[x, alto] = imagen(vid);
alto
end
if(x > 220 && x < 420)
if(alto > 200)
disp('Detecte rojo y est muy cerca que casi lo toco!!! auxilio!!...')
break
elseif(s1 > 300 || s2 > 300 || s3 > 300)
if(s2 > 500 && s3 < 500)
disp('objeto a la derecha, ahhhh!!!');
a.digitalWrite(5,0);
pause(1);
a.digitalWrite(6,0);
pause(1)
a.digitalWrite(5,1);
pause(1)
a.digitalWrite(6,1);
s1 = a.analogRead(2)
s2 = a.analogRead(3)
s3 = a.analogRead(4)
[x, alto] = imagen(vid);
elseif(s3 > 300 && s2 < 300)
INSTITUTO POLITCNICO NACIONAL
Unidad Profesional Interdisciplinaria en Ingeniera
y Tecnologas Avanzadas
INGENIERIA BINICA
SISTEMAS SENSORIALES 4BM2
REPORTE DE PROYECTO
disp('objeto a la izquierda, ahhhh!!!')
a.digitalWrite(6,0);
pause(1);
a.digitalWrite(5,0);
pause(1)
a.digitalWrite(6,1);
pause(1)
a.digitalWrite(5,1);
s1 = a.analogRead(2)
s2 = a.analogRead(3)
s3 = a.analogRead(4)
[x, alto] = imagen(vid);
elseif(s2 > 300 && s3 > 300)
disp('No s que hacer, no me programaron bien y no puedo
caminar hacia atrs...')
break
else
a.digitalWrite(5,0);
pause(1);
a.digitalWrite(6,0);
pause(1)
a.digitalWrite(5,1);
pause(1)
a.digitalWrite(6,1);
s1 = a.analogRead(2);
s2 = a.analogRead(3);
s3 = a.analogRead(4);
[x, alto] = imagen(vid);
end
end
elseif(x < 220 && x > 0)
a.digitalWrite(5,0);
pause(0.08)
a.digitalWrite(5,1);
[x, alto] = imagen(vid);
s1 = a.analogRead(2);
s2 = a.analogRead(3);
s3 = a.analogRead(4);
elseif(x > 420)
a.digitalWrite(6,0);
pause(0.08);
a.digitalWrite(6,1);
[x, alto] = imagen(vid);
s1 = a.analogRead(2);
s2 = a.analogRead(3);
s3 = a.analogRead(4);
else
if(b <= 3)
a.digitalWrite(5,0);
pause(0.08);
a.digitalWrite(5,1);
b=b+1
[x, alto] = imagen(vid);
INSTITUTO POLITCNICO NACIONAL
Unidad Profesional Interdisciplinaria en Ingeniera
y Tecnologas Avanzadas
INGENIERIA BINICA
SISTEMAS SENSORIALES 4BM2
REPORTE DE PROYECTO
s1 = a.analogRead(2);
s2 = a.analogRead(3);
s3 = a.analogRead(4);
else
b=0;
a.digitalWrite(6,0);
pause(0.7);
a.digitalWrite(6,1);
[x, alto] = imagen(vid);
s1 = a.analogRead(2);
s2 = a.analogRead(3);
s3 = a.analogRead(4);
end
end
hold off
end
stop(vid)
flushdata(vid)
delete(vid)
clear all
Funcin imagen
function [x, alto] = imagen(vid)
x=0;
alto=0;
data = getsnapshot(vid);
diff_im = imsubtract(data(:,:,1), rgb2gray(data));
diff_im = medfilt2(diff_im, [3 3]);
diff_im = im2bw(diff_im,0.18);
diff_im = bwareaopen(diff_im,900);
bw = bwlabel(diff_im, 8);
stats = regionprops(bw, 'BoundingBox', 'Centroid');
imshow(data)
hold on
stats;
for object = 1:length(stats)
bb = stats(object).BoundingBox;
bc = stats(object).Centroid;
rectangle('Position',bb,'EdgeColor','r','LineWidth',2)
plot(bc(1),bc(2), '-m+')
g=text(bc(1)+15,bc(2), strcat('X: ', num2str(round(bc(1))), ' Y: ',
num2str(round(bc(2)))));
set(g, 'FontName', 'Arial', 'FontWeight', 'bold', 'FontSize', 12, 'Color',
'yellow');
x = fix(bc(1));
alto = x - fix(bb(1));
end
end

You might also like