Trabalho Prático 1

Utilizando a HandyBoard

Objetivos

Desenvolver um robô capaz de descrever movimentos circular e quadrangular de forma autônoma. Além disso, o robô deve ser capaz de realizar múltiplas tarefas simultaneamente através dos recursos multi-thread disponíveis pela interface de programação.

Desenvolvimento

Pode-se dividir o processo de desenvolvimento do trabalho em 4 etapas distintas, definidas por conjuntos de funcionalidades e momentos no tempo. Algumas etapas foram realizadas individualmente por integrantes do grupo.

Etapa 1

Os primeiros esforços foram focados em compreender a plataforma de programação usada. Estudamos como os programas são inseridos e executados na handyboard. Testamos as funções de acesso aos butões start, stop e o knob, assim como a função de impressão na tela LCD. Estudamos as funções de acionamento de dispositivos, como motores e leds.

A compreensão inicial desses recursos possibilitou a implementação da interface de interação do robô com o usuário. A interface definiu um fluxo de execução para o robô e ajudou na fase inicial de testes informais para algumas funcionalidades básicas.

Ainda nesse etapa, providenciamos todo o material necessário para se concluir o trabalho, como fios, solda, isolamento termo-retráctil, leds, resistores, etc.

Etapa 2

Concluída a compreensão da plataforma de programação, era necessário iniciar-se o processo de montagem. Optou-se por um modelo no estilo triciclo, com torque independente nas rodas traseiras e uma roda biruta como dispositivo omidirecional. Utilizou-se uma redução de 1:125 por razões de adequação à montagem. Essa redução mostrou-se insuficiente para os propósitos do trabalho, pois quando uma velocidade muito baixa era necessária, o torque do motor tinha que ser muito baixo, e portanto se tornava instável. Como isso foi observado no após o término da montagem, mantivemos a redução.

Outra complicação encontrada foi a utilização da roda biruta. A roda biruta deve, idealmente, viabilizar a rotação do robô com atrito mínino. Na prática, entretanto, a posição inicial da roda influencia bastante o movimento do robô. Apesar desse fato, após uma calibração cuidadosa conseguimos um desempenho razoável usando a roda biruta, gerando uma trajetória semelhante a um quadrado suavizado.

Etapa 3

A terceira etapa foi realizada em duas reuniões da dupla. Todas as funcionalidades restantes foram implementadas nessa etapa. Relativo à montagem, as seguintes tarefas foram realizadas:

  • Concluímos a estrutura e a fiação que suportariam os leds, soldando-os aos resistores de modo a criar circuitos apropriados às correntes suportadas, adequando-os também a montagem do robô.

  • Alguns ajustes foram feitos na roda biruta de modo a diminuir sua interferência na movimentação.

  • Peças de travamentos foram inseridas para aumentar a robustez do robô.
  • Por fim, a parte superior do robô foi adequada para conter a handy board.

Em termos de programação, as seguintes funcionalidades foram concluídas:

  • Ativação correta e sincronizada dos leds. Isso pode ser feito apenas com escritas em posições de memória, sendo uma tarefa simples. Uma complicação emergiu da necessidade de ativar de desativar a sequência de leds enquanto diferentes tarefas ocorriam. Isso foi solucionado utilizando-se novas threads de controle, sendo o processo explicado em detalhes no documento do trabalho.
  • Implementação das funções de acionamento dos motores. Adotamos o uso de uma constante que multiplica um dos valores de motor, sendo essa constante na verdade um valor ajustável. Ou seja, essa constante controla a calibração dos motores e pode ser configurada em tempo de execução.
  • Com as funções de acionamento implementadas e a calibração abstraída, para se criar as trajetórias necessárias bastou-se fazer algumas chamadas de funções durante intervalos de tempo bem definidos. Todo esse mecanismo de acionamento funcionou sem grandes problemas.
  • Por fim, realizamos alguns testes preliminares afim de se obter uma calibração razoável, ajustamos o menu para a apresentação final e carregamos a bateria.

Etapa 4

Essa última etapa foi realiza após a apresentação do trabalho a fim de se coletar todas as informações necessárias e concluir o documento do trabalho. Utilizamos um barbante para realizar as medições da movimentação, e um transferidor para medir as rotações pra cada caso. Em ambas medições usamos uma carga de caneta pressionada contra a superfície com um elástico para marcar a trajetória.

Documento

cursos/introrobotica/2008-2/grupo4/tp1.txt · Última modificação: 2008/10/07 17:22 por introrobg04