Testar um spoonBot#
o spoonBot é um robô simples de tração diferencial com uma colher ligada a um servo que lhe permite fazer pan e tilt. Consulte a página spoonBot-Construction para obter informações sobre a construção do spoonBot. O programa de exemplo que acompanha a distribuição cc3 mais recente contém código de exemplo que demonstra como mover o spoonBot, bem como executar o modo Demo do spoonBot. O modo Demo do spoonBot é semelhante ao modo demo da CMUcam2, só que usa o spoonBot para fazer pan e tilt.
Calibrar o spoonBot#
Antes de utilizar o spoonBot, precisa de calibrar as configurações dos seus servos. Isto é feito definindo a seguinte estrutura de dados no início de main:
// SpoonBot Calibration Points
// Assume Left = Servo 0
// Assume Right = Servo 1
// Assume Spoon = Servo 2
my_cal.left_mid = 71;
my_cal.right_mid = 77;
my_cal.spoon_down = 100;
my_cal.spoon_mid = 202;
my_cal.spoon_up = 255;
my_cal.left_dir = 1;
my_cal.right_dir = -1;
my_cal.spoon_dir = 1;
// Set the calibration points
spoonBot_calibrate (my_cal);
Grave o firmware de emulação da cmucam2 na câmara
Abra o CMUcam3 Frame Grabber ou um Programa de Terminal
Utilizando o Frame Grabber, vá ao painel «Settings» e arraste as barras dos servos para alterar os valores
Num terminal, escreva «sv <servo-id> <servo-value>» para definir os servos, por exemplo:
:sv 0 77 ACK
Encontre a posição central dos Servos 0 e 1 ajustando-os até as rodas pararem
my_cal.left_mid = <valor do servo 0>
my_cal.righ_mid = <valor do servo 1>
Agora precisa de encontrar o sinal das direções
Olhando para o spoonBot pela traseira (colher virada para si), experimente baixar o número do servo 0, que deverá ser a roda esquerda
se o servo girar no sentido horário / para trás (na sua direção) então left_dir deve ser definido como 1
se o servo girar no sentido anti-horário, left_dir deve ser definido como -1
Repita para o servo 1 (que deverá ser a roda direita do ponto de vista do spoonBot)
se o servo girar no sentido horário / para trás (na sua direção) então right_dir deve ser definido como 1
se o servo girar no sentido anti-horário, right_dir deve ser definido como -1
Normalmente, um servo deve ser definido como negativo!
Agora encontre as posições Min, Middle e Max da colher ajustando o Servo 2
O Min deverá ser o menor valor que empurra a colher para baixo e, por conseguinte, inclina o spoonBot para a frente
Defina spoon_down em conformidade
O Max é normalmente 255 e deverá posicionar o spoonBot a olhar o mais para cima possível
Defina spoon_up em conformidade
O Middle é o valor que deixa o servo nivelado
Defina spoon_mid em conformidade
Se o Min e o Max parecerem invertidos, altere spoon_dir para -1
Assim que a calibração estiver concluída, recompile o projeto e GRAVE a CMUcam3. O spoonBot passará primeiro por uma sequência de movimentos programados para garantir que os servos estão configurados corretamente. Depois, o spoonBot aguardará que se prima um botão para começar a seguir uma cor. É apresentado texto através da porta série a notificá-lo das várias fases de funcionamento.
O movimento programado deverá ser o seguinte:
Ficar Parado
Olhar para Baixo
Olhar para Cima
Voltar à Posição Central
Rodar no Sentido Horário (visto de cima)
Rodar no Sentido Anti-Horário
Led vermelho apagado enquanto a câmara se prepara
O Led vermelho acende quando está pronto para seguir
Se isto parecer correto, experimente segurar um objeto de cor viva a alguns centímetros à frente da câmara e depois prima o botão. À medida que afasta o objeto, o spoonBot deverá rodar na sua direção. Utilize objetos de cores vivas que sejam o mais uniformes possível na cor. Um objeto como um pano vermelho vivo funcionaria bem, uma vez que reflete muito pouca luz (para além do vermelho puro). Certifique-se de que há iluminação suficiente na sala. Experimente capturar um frame para ver como estão as condições.
Nota: Se pretender desativar os servos sem os desligar, desligue o servo-power-jumper.