Testando um spoonBot#
spoonBot é um robô simples de tração diferencial com uma colher conectada a um servo que permite que ele faça pan e tilt. Veja a página Construção do spoonBot para informações sobre como construir o spoonBot. O programa de exemplo que vem com a distribuição mais recente do cc3 contém código de exemplo demonstrando como mover o spoonBot bem como executar o modo Demo do spoonBot. O modo Demo do spoonBot é similar ao modo demo da CMUcam2, só que usa o spoonBot para fazer pan e tilt.
Calibrando o spoonBot#
Antes de usar o spoonBot, você precisa calibrar suas configurações de servo. Isso é feito definindo a seguinte estrutura de dados no início do 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 cmucam2 na câmera
Abra o CMUcam3 Frame Grabber ou um Programa de Terminal
Usando o Frame Grabber, vá até o painel “Settings” e arraste as barras de servo para alterar os valores
Em um terminal, digite “sv <servo-id> <servo-value>” para configurar os servos, por exemplo:
:sv 0 77 ACK
Encontre a posição central dos Servos 0 e 1 ajustando-os até que as rodas parem
my_cal.left_mid = <valor do servo 0>
my_cal.righ_mid = <valor do servo 1>
Agora você precisa encontrar o sinal das direções
Olhando o spoonBot por trás (colher voltada para você), tente diminuir o número do servo 0, que deve ser a roda esquerda
se o servo girar no sentido horário / para trás (em 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 deve ser a roda direita do ponto de vista do spoonBot)
se o servo girar no sentido horário / para trás (em 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
Geralmente, um servo deve ser definido como negativo!
Agora encontre as posições Min, Middle e Max da colher ajustando o Servo 2
Min deve ser o menor valor que empurra a colher para baixo e, portanto, inclina o spoonBot para frente
Defina spoon_down de acordo
Max é geralmente 255 e deve posicionar o spoonBot olhando o mais para cima possível
Defina spoon_up de acordo
Middle é o valor que deixa o servo nivelado
Defina spoon_mid de acordo
Se Min e Max parecerem invertidos, altere spoon_dir para -1
Uma vez concluída a calibração, recompile o projeto e GRAVE (FLASH) a CMUcam3. O spoonBot primeiro passará por uma sequência de movimentos programados para garantir que os servos estão configurados corretamente. Em seguida, o spoonBot aguardará o pressionar de um botão para começar a rastrear uma cor. Um texto é exibido pela porta serial notificando você sobre os vários estágios de operação.
O movimento programado deve ser o seguinte:
Ficar Parado
Olhar para Baixo
Olhar para Cima
De Volta à Posição Central
Girar no Sentido Horário (visto de cima)
Girar no Sentido Anti-Horário
Led vermelho apagado enquanto a câmera se prepara
Led vermelho acende quando pronto para rastrear
Se isso parecer correto, tente segurar um objeto de cor viva a alguns centímetros na frente da câmera e depois pressione o botão. À medida que você afasta o objeto, o spoonBot deve girar em direção a ele. Use objetos de cores vivas que sejam o mais uniformes possível em cor. Um objeto como um pano vermelho vivo funcionaria bem, já que reflete muito pouca luz (além do vermelho puro). Certifique-se de que há iluminação suficiente na sala. Tente capturar um quadro para ver como estão as condições.
Nota: Se você deseja desabilitar os servos sem desconectá-los, remova o jumper de alimentação dos servos (servo-power-jumper).