Como será lido os sensores:
Isto varia, vi um vídeo que um sensor
de luminosidade de 0 a 5 volts, interpreta em bits ate 1025, suponho que metade
para cima seja 1(positivo) e metade para baixo seja 0(negativo);
Caso trabalhe com o mouse mais 2
sensores, acredito que funcionara o projeto sendo sensor da direita, sensor da
esquerda e mouse verificando se esta indo reto(aumentando Y
positivo), virando a esquerda( diminuindo X negativo), virando para
direita(aumentando X positivo), e tendo que retroceder(aumentando Y negativo);
Considerando os fatos acima, terá uma
tabela verdade para os sensores:
Esquerda
|
Direita
|
Resultado
|
1
|
1
|
Acelera
|
1
|
0
|
Desacelera e aumenta o grau para Esquerda
|
0
|
1
|
Desacelera e aumenta o grau para Direita
|
0
|
0
|
Retrocede
|
Teoricamente, poderíamos começar um
laço de repetição assim:
Inteiro Esquerda, Direita;
Float Aceleração;
Enquanto (motor estiver ligado){
Se (Esquerda=1,
Direita=1){
Aceleração
+=1;
}
Se(Esquerda=1,
Direita=0){
Aceleração
= Aceleração*0.6;
InclinaçãoEsquerda
+30°;
Aceleração
+=1;
}
Se(Esquerda=0,
Direita=1) ){
Aceleração
= Aceleração*0.6;
InclinaçãoDireita
+30°;
Aceleração
+=1;
}
Se(Esquerda=0,
Direita=0) ){
Aceleração
= Aceleração*0.2;
Retrocede;
}
}
No caso a Aceleração, seria com uma
formula com base no motor e no tempo, considerando que o tempo seja a cada
segundo, a aceleração seria aumentando a força do motor e desaceleração
diminuindo, a inclinação seria com base nas rodas, nesse ponto necessito que
expliquem como seria, pois não entendo.
Acredito que assim não precisaria,
guardar os dados para a segunda volta, pois automaticamente ele estaria
acelerando e desacelerando no próprio percurso, mas caso precise guardar,
teríamos que guardar as posições de X e Y em um Array, e numa próxima rodada,
resetar as posições iniciais para 0,0 no inicio e seguir:
Y Aumenta, X = anterior (
Acelera)
Y Aumenta, X Aumenta ( Diminui
Aceleração, Inclinação a Direita)
Y Aumenta, X Diminui (Diminui
Aceleração, Inclinação a Esquerda)
Y Diminui ( Diminui Aceleração,
retrocede).
O Acionamento dos Motores será
automático com a aceleração, mas acredito que um botão que ative a energia
seria o primeiro passo, para considerar que a corrida já começou.
Poderia também ter um segundo botão para ativar a segunda volta, que assim poderia pegar as coordenadas guardadas de x e y para o novo percurso.
Estes 2 links são interessantes:
O primeiro demonstra como funciona o sensor de luminosidade e como o software interpreta os sinais:
http://engcomper.blogspot.com.br/2011/08/tutorial-sensor-de-luminosidade-com.html
http://engcomper.blogspot.com.br/2011/08/tutorial-sensor-de-luminosidade-com.html
Já o segundo é um trabalho pronto sobre um robô seguidor de percurso mas com uma teoria diferente:
http://vivaolinux.com.br/artigo/Robotica-com-Android-e-Arduino/?pagina=1
Muito bom Johne,
ResponderExcluirFicou bem legal a lógica que vocẽ fez. Mas o que falta é decidirmos como faremos a parte estrutural do dispositivo para que possa acertar essas dúvidas da parte lógica. Acredito que teve dificuldade devido a ausẽncia de informações. Mas estamos no caminho certo.
Abraço