LusoRobótica - Robótica em Português
Robótica => Concursos e Desafios => Eventos e Concurso de robótica => Desafio ajuda o Pai Natal => Tópico iniciado por: Trefoil em 26 de Dezembro de 2009, 17:29
-
Objectivos
Robot seguidor de linha para transportar prendas de 10x10x10 cm.
Desenvolvimento
'segueLinha.bas 'programa para seguimento de linha
symbol IR_ESQ = b2 'cria a variável IR_ESQ no endereço interno b2
symbol IR_DIR = b3 'cria a variável IR_DIR no endereço interno b3
symbol IR_CEN = b4 'cria a variável IR_CEN no endereço interno b4
main:
gosub linha 'chama a subrotina linha
if IR_ESQ = 0 AND IR_DIR = 0 AND IR_CEN = 1 then 'se for uma recta chama a subrotina FRENTE
gosub FRENTE
endif
if IR_DIR = 1 AND IR_ESQ = 0 then 'se curva para a direita chama a subrotina DIREITA
gosub DIREITA
endif
if IR_DIR = 0 AND IR_ESQ = 1 then 'se curva para a esquerda chama a subrotina ESQUERDA
gosub ESQUERDA
endif
if IR_ESQ = 0 AND IR_DIR = 0 AND IR_CEN = 0 then 'se perde contacto com a linha chama a rotina PARA
gosub PARA1
endif
if IR_ESQ = 1 AND IR_DIR = 1 AND IR_CEN = 1 then 'se fundo for todo preto chama a rotina PARA
gosub PARA
endif
let IR_DIR=0 'inicializa a variavel IR_DIR com o valor zero
let IR_ESQ=0 'inicializa a variavel IR_ESQ com o valor zero
let IR_CEN=0 'inicializa a variavel IR_CEN com o valor zero
goto main
linha:
if porta pin0 = 1 then let IR_ESQ=1 'se pin de entrada pin0 detecta a linha entao atribui o valor 1 a variavel IR_ESQ
endif
if porta pin1 = 1 then let IR_CEN=1 'se pin de entrada pin1 detecta a linha entao atribui o valor 1 a variavel IR_CEN
endif
if porta pin2 = 1 then let IR_DIR=1 'se pin de entrada pin2 detecta a linha entao atribui o valor 1 a variavel IR_DIR
endif
return
FRENTE:
let pins = %00000101 'atribui sentido aos dois motores (para a frente)
pwmout 2 , 39, 30 'define velocidade do motor 2
pwmout 1 , 39, 30 'define velocidade do motor 1
return
ESQUERDA:
let pins = %00000110 'atribui sentido aos motores, vira para a esquerda (motor 2 para a frente e motor 1 para tras)
pwmout 2 , 39, 30 'define velocidade do motor 2
pwmout 1 , 39, 10 'define velocidade do motor 1
return
DIREITA:
let pins = %00001001 'atribui sentido aos motores, vira para a direita (motor 2 para tras e motor 1 para a frente)
pwmout 2 , 39, 10 'define velocidade do motor 2
pwmout 1 , 39, 30 'define velocidade do motor 1
return
para1:
let pins = %00001010
pwmout 2,39,20 'define velocidade do motor 2
pwmout 1,39,20 'define velocidade do motor 1
return
PARA:
let pins = %00000000 'para os dois motores
pwmout 2,39,0 'define velocidade do motor 2
pwmout 1,39,0 'define velocidade do motor 1
return
Material Utilizado
- 1 Microcontrolador picaxe 28x1
- 3 Sensores seguidor de linha
Vídeo
Video
Pai Natal - robotica (http://www.youtube.com/watch?v=ksXjDchIAv0#)
-
Ora cá está a primeira rena... :D
O vídeo não se vê muito bem. Se queres um conselho tira umas fotos para depois o juri ver mais pormenores ;)
-
Olá, bem-vindo e desde já parabéns :)
Em relação ao nome do tópico tens que colocar algo deste género: [nick_exemlpo] - [Titulo exemplo]
De resto parece estar bom.
Tenta só apresentar mais informação a nível de electrónica pois será valorizado.
-
Muito bem, parabéns :D
A levar tanta prenda ainda o Rodolfo vai para a reforma mais cedo! ;D