'Variaveis:
Symbol tocado=bit0
Symbol cont1=b2
Symbol cont2=b3
Symbol meio_pos=b4
Symbol dir_pos=b8
Symbol esq_pos=b9
'Constantes
Symbol max_grau=200
Symbol min_grau=50
Symbol pulsos=20
Symbol pausa=12
'Pin Allocations
Symbol esq_servo=pin1
Symbol meio_servo=pin2
Symbol dir_servo=pin3
Symbol esq_olho=pin4
Symbol dir_olho=pin5
Symbol dir_antena=pin6
Symbol esq_antena=pin7
'Inicio
dirs=%00111110
pins=0
high esq_olho
low dir_olho
principal:
toggle esq_olho
toggle dir_olho
meio_pos=max_grau
esq_pos=max_grau
dir_pos=max_grau
gosub anda
toggle esq_olho
toggle dir_olho
meio_pos=min_grau
esq_pos=min_grau
dir_pos=min_grau
gosub anda
goto principal
antenas:
if tocado=1 then pula
if esq_antena=0 then direita
if dir_antena=0 then esquera
pula:
return
direita:
gosub volta
high dir_olho
low esq_olho
for cont2=1 to 4
meio_pos=max_grau
esq_pos=max_grau
dir_pos=min_grau
gosub anda
meio_pos=min_grau
esq_pos=min_grau
dir_pos=max_grau
gosub anda
next
goto principal
esquerda:
gosub volta
low dir_olho
high esq_olho
for cont2=1 to 4
meio_pos=min_grau
esq_pos=max_grau
dir_pos=min_grau
gosub anda
meio_pos=max_grau
esq_pos=min_grau
dir_pos=max_grau
gosub anda
next
goto principal
anda:
for cont1=1 to pulsos
pulsout meio_servo,meio_pos
gosub antenas
pause pausa
next
for cont1=1 to pulsos
pulsout dir_servo,dir_pos
pulsout esq_servo,esq_pos
pulsout meio_servo,meio_pos
gosub antenas
pause pausa
next
return
volta:
tocado=1
high dir_olho
high esq_olho
for cont2=1 to 4
meio_pos=min_grau
esq_pos=max_grau
dir_pos=max_grau
gosub anda
meio_pos=max_grau
esq_pos=min_grau
dir_pos=min_grau
gosub anda
toggle dir_olho
toggle esq_olho
next
toggle dir_olho
tocado=0
return
|
flag para indicar antena tocada
contador da rotina anda
contador para outras rotinas
posição para perna central
posição para perna direita
posição para perna esquerda
pulso longo para movimento longo
pulso curto para movimento curto
Número de pulsos por passo
Pausa entre pulsos (em ms)
Servomotor esquerdo no pino 1
Servomotor central no pino 2
Servomotor esquerdo no pino 3
Olho esquerdo no pino 4
Olho direito no pino 5
Antena direita no pino 6
Antena esquer da no pino 7
pulsa os olhos
levanta a direita
movimenta a frente
pulsa os olhos
abaixa o lado direito
movimenta a frente
Rotina para checar toque nas antenas
Rotina se antena direita tocada
Volta e vira para a direita
Levanta lado direito
Abaixa lado direito
Rotina se antena esquerda tocada
Volta e vira para a esquerda
Abaixa lado direito
Levanta lado direito
Rotina de andar um passo
Número de pulsos
Verifica antenas
Pausa entre os pulsos
Verifica as antenas
Subrotina de voltar para trás
Seta o flag
Limpa o flag
Fim do programa
|