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.
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
Potência 60
Potência 80
Potência 100
**Rotação**
Potência 60
Potência 80
Potência 100
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
- 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.
- 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ô.
- Exaustivos testes no olhometro para o robô andar em linha reta. Foram implementadas constantes de correção de potência.
- Medir distância percorrida pelo robô utilizando uma régua de 20 cm.
- 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).


























