Este proyecto consiste en la construcción de un robot que debe permanecer junto a la pared independientemente de la forma que tenga ésta.El sentido de circulación del vehículo es siempre horario ya que los sensores que poseen, así están dispuestos.
Su funcionamiento es:
Cuando el robot se separa demasiado, debe girar para acercarse.
cuando el robot se junta demasiado, debe girar para alejarse.
cuando encuentra un obstáculo de frente, debe pararse y girar hacia atrás de tal forma que evite dicho obstáculo y siga junto a la pared.
El sensor lateral se ha girado para que no esté perpendicular a la pared ya que de ese modo se falseaban los datos obtenidos y no se sabía si se separaba o alejaba.
El sensor lateral se ha girado para que no esté perpendicular a la pared ya que de ese modo se falseaban los datos obtenidos y no se sabía si se separaba o alejaba.
El Robot está compuesto por:
- 1 Placa Picaxe CHI 035 con chip 18M2+ y driver L293D.
- 2 Sensores de Ultrasonidos HC-SR04. (Su conexión aparece en prácticas anteriores)
- 2 Motorreductores.
- 1 Led Rojo (indicador de marcha atrás).
- 1 Batería LiPo 7.4v
- 1 Regulador de tensión (Salida 5v)
Imagen del sensor HC-SR04
Motor-Reductor
El esquema de conexión en la placa es el siguiente:
VÍDEO DEL FUNCIONAMIENTO
CÓDIGO DEL PROGRAMA
setfreq m8 '%%%%%%Cambio frecuancia a 8MHz debido a ultrasonidos
'Cambio de variables
symbol frontal=w1
symbol lateral=w3
inicio:
'""""""LECTURA DEL SENSOR FRONTAL""""
Sensorfrontal:
pulsout C.1,2
pulsin C.1,1,w0
pause 10
frontal=w0*5/58
debug frontal
'""""""LECTURA DEL SENSOR LATERAL""""""
Sensorlateral:
pulsout C.0,2
pulsin C.0,1,w2
pause 10
lateral=w2*5/58
debug lateral
if frontal<45 then goto giroesquina 'Pegado de frente
if lateral>=30 and lateral<=50 and frontal>=30 then goto recto 'Distancia correcta
if lateral>50 or lateral =0 and frontal>=30 then goto giroizquierda 'Muy separado de la pared lateral
if lateral<30 and lateral >0 and frontal>=30 then goto giroderecha 'Muy cerca de la pared lateral
recto:'$$$$$$$$$$$$$$$$$$$AVANZA RECTO
low B.4 'avanza el motor 1
high B.5
high B.6 'avanza el motor 2
low B.7
pause 30
goto inicio
giroderecha: '$$$$$$$$$$$$$$$$$$$$GIRO A DERECHAS
low B.4 'Se para
low B.5
low B.6
low B.7
pause 200
low B.4 'Giro hacia la derecha
high B.5
low B.6
high B.7
pause 100
low B.4 'Se para
low B.5
low B.6
low B.7
pause 200
low B.4 'Recto
high B.5
high B.6
low B.7
pause 30
goto inicio
giroizquierda: '$$$$$$$$$$$$$$$$$$$$GIRO A IZQUIERDAS
low B.4 'Se para
low B.5
low B.6
low B.7
pause 200
high B.6
low B.7
high B.4 'Giro hacia la izquierda
low B.5
pause 100
low B.4
low B.5
low B.6
low B.7
pause 200
low B.4 'Recto durante unos segundos
high B.5
high B.6
low B.7
pause 30
goto inicio
giroesquina: '$$$$$$$$$$$$$$$$$$$$GIRO DE ESQUINA A DERECHAS
high B.0 'enciende un led rojo
low B.4 'el coche se para
low B.5
low B.6
low B.7
pause 300
low B.4 'gira usando la rueda derecha marcha atrás
low B.5
low B.6
high B.7
pause 450
low B.4 'el coche se para
low B.5
low B.6
low B.7
pause 100
low B.0 'apaga el led rojo
goto inicio
Realizado por: David Legaz y Jaime Hernández.
- 1 Led Rojo (indicador de marcha atrás).
- 1 Batería LiPo 7.4v
- 1 Regulador de tensión (Salida 5v)
Imagen del sensor HC-SR04
Motor-Reductor
El esquema de conexión en la placa es el siguiente:
CÓDIGO DEL PROGRAMA
setfreq m8 '%%%%%%Cambio frecuancia a 8MHz debido a ultrasonidos
'Cambio de variables
symbol frontal=w1
symbol lateral=w3
inicio:
'""""""LECTURA DEL SENSOR FRONTAL""""
Sensorfrontal:
pulsout C.1,2
pulsin C.1,1,w0
pause 10
frontal=w0*5/58
debug frontal
'""""""LECTURA DEL SENSOR LATERAL""""""
Sensorlateral:
pulsout C.0,2
pulsin C.0,1,w2
pause 10
lateral=w2*5/58
debug lateral
if frontal<45 then goto giroesquina 'Pegado de frente
if lateral>=30 and lateral<=50 and frontal>=30 then goto recto 'Distancia correcta
if lateral>50 or lateral =0 and frontal>=30 then goto giroizquierda 'Muy separado de la pared lateral
if lateral<30 and lateral >0 and frontal>=30 then goto giroderecha 'Muy cerca de la pared lateral
recto:'$$$$$$$$$$$$$$$$$$$AVANZA RECTO
low B.4 'avanza el motor 1
high B.5
high B.6 'avanza el motor 2
low B.7
pause 30
goto inicio
giroderecha: '$$$$$$$$$$$$$$$$$$$$GIRO A DERECHAS
low B.4 'Se para
low B.5
low B.6
low B.7
pause 200
low B.4 'Giro hacia la derecha
high B.5
low B.6
high B.7
pause 100
low B.4 'Se para
low B.5
low B.6
low B.7
pause 200
low B.4 'Recto
high B.5
high B.6
low B.7
pause 30
goto inicio
giroizquierda: '$$$$$$$$$$$$$$$$$$$$GIRO A IZQUIERDAS
low B.4 'Se para
low B.5
low B.6
low B.7
pause 200
high B.6
low B.7
high B.4 'Giro hacia la izquierda
low B.5
pause 100
low B.4
low B.5
low B.6
low B.7
pause 200
low B.4 'Recto durante unos segundos
high B.5
high B.6
low B.7
pause 30
goto inicio
giroesquina: '$$$$$$$$$$$$$$$$$$$$GIRO DE ESQUINA A DERECHAS
high B.0 'enciende un led rojo
low B.4 'el coche se para
low B.5
low B.6
low B.7
pause 300
low B.4 'gira usando la rueda derecha marcha atrás
low B.5
low B.6
high B.7
pause 450
low B.4 'el coche se para
low B.5
low B.6
low B.7
pause 100
low B.0 'apaga el led rojo
goto inicio
Realizado por: David Legaz y Jaime Hernández.
No hay comentarios:
Publicar un comentario
En este espacio puedes comentar la entrada publicada o hacer preguntas o sugerencias