TP 1 (Tê pê Um)

Introdução

Este trabalho prático consiste em criar um robô que se movimente sobre rodas e fazer o uso de programação, utilizando uma HandyBoard, para que o robô realize movimentos diversos. A HandyBoard é um controlador muito utilizado em robótica. Os objetivos principais deste trabalho são:

  • Familiarizar o aluno com o desenvolvimento de software para HandyBoard;
  • Avaliação experimental dos erros de atuação;
  • Desenvolvimento de controle simples para o robô.

Desenvolvimento

Estrutura

Precisávamos construir um robô com o LEGO que fosse controlado pela HandyBoard. Conectamos um motor a cada roda, através de engrenagens e correntes, e para o robô ter equilíbrio, colocamos um roll-on na parte da frente. Logo o robô possuía três pontos de apoio, as duas rodas e o roll-on. Tudo isso foi feito ao redor de uma pequena estrutura onde a HandyBoard se localizaria. Feito isso, fizemos um suporte para a caneta. Tentamos colocar no eixo de rotação do robô.

Menu

O menu foi facilmente implementado. As bibliotecas do IC facilitaram demais nessa parte. O menu possui opções de fácil manuseio. Escolhemos a tarefa que o robô fará, através dos botões START e STOP, e o potenciometro é usado para mudar entre as opções.

árvore com figuras geométricas

Calibração

Primeiro foi necessário calibrar no olho uma potência para cada motor que fizesse o robô andar em linha reta. Depois, para cada potência (20%, 40%, 60%, 80% e 100%) e tempo (1, 1.5, 2, 2.5 e 3 segundos) foram feitas 10 medições de distância/ângulo. Os gráficos obtidos podem ser visualizados abaixo na sub-seção Experimentos. Com essas medições pudemos obter equações que nos ajudassem a informar uma distância/ângulo a ser percorrida pelo robô, ao invés de utilizar tempo e potência como parâmetros. Isso auxiliou na execução da trajetória em forma de quadrado e círculo.

Experimentos

Para translação de potência 20% e rotação de potência 20% e 40%, o robô não se moveu.

**Translação**

Potência 40

medições

média

gráfico supimpa

Equação: y = 2,494x - 1,224

Potência 60

medições

média

gráfico supimpa

Equação: y = 19,596x - 9,094

Potência 80

medições

média

gráfico supimpa

Equação: y = 69,442x - 1,136

Potência 100

medições

média

gráfico supimpa

Equação: y = 98,574x + 20,247

**Rotação**

Potência 60

medições

média

gráfico supimpa

Equação: y = 2,4x - 4,3

Potência 80

medições

média

gráfico supimpa

Equação: y = 12,18x -4,14

Potência 100

medições

média

gráfico supimpa

Equação: y = 71,82x - 13,5

LEDS

A tarefa dos Leds consistiu em escrever um programa que faça um grupo de quatro leds funcionar em sequência. Para ligar os Leds na Handyboard decidimos adotar a dica dada na especificação do trabalho de utilizar saídas digitais da placa. Porém surgiu um desafio, pois de início não encontramos saída digitais, mas apenas entradas digitais. Porém pesquisamos e encontramos a seguinte solução descrita no manual da Handyboard: os pinos SPI, localizados na parte direita superior da placa, logo abaixo do visor, podem ser configurados como saídas digitais. Para isso bastava usar a função poke do IC da forma poke(0x1009,0x3c). Então eles seriam mapeados no endereço 0x1008 e para acionar cada um dos leds bastava usar, por exemplo poke(0x1008,0x04) ou poke(0x1008,0x08). É possível ainda acionar mais de um led ao mesmo tempo somando-se os bytes do segundo argumento, como poke(0x1008,0xc). Para desligar os leds bastava usar poke(0x1008,0x01).

Multitarefa

Utilizando a multitarefa do IC o robô deve ficar por 30 segundos andando de forma livre com os LEDS ligados. E logo após passar o tempo, ambos devem parar. Um processo com os LEDS é executado, usando a função start_process um processo em paralelo é criado, nesse caso, a função de translação, fazendo com que o robô se mova de forma pré-definida.

Desafios encontrados e Decisões

  1. Após construir a primeira estrutura do robô, nos deparamos com o problema da redução. O motor não conseguia impulsionar o robô quando ligado diretamente na roda. Isso foi contornado colocando algumas engrenagens e correntes.
  2. Para desenhar o trajeto no papel, precisaríamos de um suporte para a caneta. Porém inicialmente o suporte pressionava a caneta demais para baixo, aumentando o atrito e fazendo com que o robô não se locomovesse direito nem com potência 80%. Para solucionar, fizemos um outro suporte, que não pressionasse a caneta para baixo, assim o atrito foi minimizado para o peso da própria caneta. Para anexar esse novo suporte, por falta de espaço foi preciso estender a estrutura do robô.
  3. Exaustivos testes no olhometro para o robô andar em linha reta. Foram implementadas constantes de correção de potência.
  4. Medir distância percorrida pelo robô utilizando uma régua de 20 cm.
  5. Talvez o maior desafio de todos foi realizar as calibrações, pois com o passar dos testes a HandyBoard ia descarregando, afetando as medições (com altas variações).

Resultado

Vídeo da apresentação

Fotos do robô (clique para ampliar):

fronteiraperfil... que gato! traseira, ui... visão aérea visão subterrânea

cursos/introrobotica/2008-2/grupo10/trabalho_pratico_1.txt · Última modificação: 2008/09/23 18:40 (edição externa)