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.