El siguiente proyecto consiste en la construcción de un Robot que avanza y al encontrarse un obstáculo se para, entonces mediante un sensor de infrarrojos acoplado a un servo-motor, valora la mejor opción de giro, midiendo hacia que lado la distancia a un obstáculo es mayor y tomando la decisión de giro hacia dicho lado.
El Robot está compuesto por:
- 1 Placa Picaxe CHI 035 con chip 18M2+ y driver L293D.
- 1 Servo-Motor.
- 1 Sensor de Infrarrojos SHARP analógico.
- 2 Motorreductores.
- 1 Batería LiPo 7.4v
- 1 Regulador de tensión (Salida 5v).
- 1 Batería LiPo 7.4v
- 1 Regulador de tensión (Salida 5v).
Detalle del servo con el sensor acoplado
Detalle del motorreductor.
Detalle de la placa Picaxe.
El esquema de conexión en la placa Picaxe CHI035 es el siguiente:
Vista de conjunto
VÍDEO DE FUNCIONAMIENTO
CÓDIGO DEL PROGRAMA
servo 0,150 'Servo conectado a la salida 0 directa del chip y en posición central.
setfreq m4
inicio:
b7=150 'variable del servo motor
readadc C.0,b0
pause 10
medida:
if b0<40 then goto avance 'No hay obstáculo. Hemos calibrado el sensor de infrarrojos
if b0>40 then goto evaluacion 'Encontramos un obstáculo
avance:
low B.4
high B.5
high B.6
low B.7
pause 150
goto inicio
evaluacion:
low B.4 'paramos el coche
low B.5
low B.6
low B.7
pause 50
evaluacion_derecha:
b7=150
derecha:
servo 0,b7
pause 200
let b7=b7+5
pause 10
readadc C.0, b0
pause 10
if b0<40 then goto giroderecha 'si la distancia es grande, movemos el coche hacia la derecha
if b7<225 and b7>219 then goto evaluacion_izquierda
pause 10
goto derecha
evaluacion_izquierda:
b7=150
izquierda:
servo 0,b7
pause 200
let b7=b7-5
pause 10
readadc C.0, b0
pause 10
if b0<40 then goto giroizquierda 'si la distancia es grande, movemos el coche hacia la izquierda
pause 10
if b7<81 and b7>75 then goto evaluacion_derecha
pause 10
goto izquierda
giroderecha:
servo 0,150
pause 100
low B.4 'derecha
high B.5
low B.6
high B.7
pause 300
low B.4
low B.5
high B.6
high B.7
readadc C.0,b0
if b0<40 then goto inicio
goto giroderecha
giroizquierda:
servo 0,150
high B.4 'izquierda
low B.5
high B.6
low B.7
pause 300
low B.4
low B.5
high B.6
high B.7
readadc C.0,b0
if b0<40 then goto inicio
goto giroizquierda
Proyecto realizado por Francisco Díaz y Francisco Montiel.
No hay comentarios:
Publicar un comentario
En este espacio puedes comentar la entrada publicada o hacer preguntas o sugerencias