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:
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ô.
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.
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.
Para translação de potência 20% e rotação de potência 20% e 40%, o robô não se moveu.
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).
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.