====== Trabalho Prático 1 ====== ===== Programação utilizando a HandyBoard ===== Data de apresentacao: 18/09/08 ===== Objetivos: ===== * Familiarizar o aluno com o desenvolvimento de software para a HandyBoard, * Avaliação experimental dos erros de atuação * Desenvolvimento de controle simples para o robô. ===== Material para consulta: ===== * {{:cursos:introrobotica:2007-2:hbmanual.pdf|The Handy Board Technical Reference}} * Diversos links na página do curso. ===== Instruções: ===== - Registre no site suas idéias, metodologias utilizadas na realização dos experimentos. - O trabalho desenvolvido deve ser mostrado em funcionamento na data marcada para a apresentação e todo grupo deve estar presente e ser capaz de responder perguntas. - O relatório deve ser entregue IMPRESSO para o monitor do curso e postado na página do grupo até a data de apresentação. O relatório deve conter as principais decisões tomadas e desafios encontrados, assim como uma pequena explicação do funcionamento da robô. Fotos e videos podem ser de grande ajuda para ilustrar um determinado ponto. ===== Tarefas: ===== * **1 - Estrutura e Controle**: Desenvolva um robô apenas com peças do kit Lego. Esse robô será controlado apenas pela HandyBoard. * **2 - Menu**: Todas as tarefas devem ser acessadas facilmente por meio de um menu, do potenciômetro e dos botões. A usabilidade dessa interface será avaliada. * **3 - Erros de translação e rotação**: Para auxiliá-lo nessas tarefas, crie um dispositivo que levante e abaixe uma marcador (pincel atômico, marcador de quadro branco, caneta hidrográfica, etc.) sobre a cartolina ou papel sobre o qual o robô trafegará (lembre-se de levar um idêntico para a apresentação). Dessa forma as trajetórias ficarão claramente marcadas e poderão ser medidas e verificadas com maior facilidade e precisão. * Calibração. Para determinar a distância percorrida ou o ângulo de rotação em função do tempo de acionamento dos motores, realize uma "calibração" prévia. Para isso, faça menos **10 testes** para cada potência **P** faça uma tabela onde para cada tempo //t//, haja 10 colunas com valores das distâncias (ângulos) percorridas. Plote um gráfico //t x d// (t-tempo; d-distância percorrida pelo robô ou theta - ângulo de rotação do robô). (//P// e //t// devem ser selecionados no menu). O gráfico deve mostrar o valor médio e a barra de erro correspondente de um desvio padrão em torno da média, como mostrado abaixo. {{ :cursos:introrobotica:2007-2:grafico.jpg }} Com as tabelas de calibração, é possível ajustar-se curvas (polinômios) que podem ser utilizados para se obter distâncias e ângulos quaisquer. * **Experimentos** * **Translação linear** - O valor de distância desejado deve ser informado por meio do potenciômetro e o valor correspondente mostrado no display. Para cada um dos 3 valores de distância: 10cm, 20cm e 30cm, meça a distância real e plote em gráfico como na etapa de calibração. Estime o erro médio e o desvio padrão de suas medidas. * **Rotação** - O valor de ângulo desejado deve ser informado por meio do potenciômetro e o valor correspondente mostrado no display. Para cada um dos 3 valores de ângulo: 30 graus, 60 graus e 90 graus, meça o ângulo real com um transferidor e plote em gráfico como na etapa de calibração. Estime o erro médio e o desvio padrão de suas medidas. **Dica**: para medir o ângulo, monte uma haste próxima ao nível do piso. * **4 - Leds**: Escreva um programa que faça um grupo de 4 leds funcionar em seqüência. Utilize os botões start e stop para inicializar e parar a seqüência dos leds. A cada 'start' o robô deve executar uma seqüência diferente. Dica: Utilize as //Digital Outputs// da Handyboard através do SPI para acionar os Leds. * **5 - Multitarefa**: Utilize a característica multitarefa do IC para ligar os leds enquanto o robô se move (trajetória livre) . O robô e os leds devem ficar em execução durante exatos 30 segundos, interrompendo ambas tarefas após esse tempo. * **Tarefa a ser mostrada no dia da apresentação**: Fazer o robô realizar autonomamente uma trajetória quadrada de 30cm de lado. Logo após, uma trajetória circular de 25 cm de raio, ambos por 3 vezes consecutivas. O robô deve desenhar numa cartolina sobre o chão a trajetória (cada grupo deve trazer sua própria cartolina no dia). As tarefas **2**, **4** e **5** também serão avaliadas no dia da apresentação. * ** OBS **: Não devem ser utilizados sensores.