[[cursos:introrobotica:2007-2:grupo1:index|Voltar para página anterior]] ===== Trabalho Prático 1 ====== ==== Objetivo principal ==== Montar um robô capaz de desenhar um quadrado com o auxílio de uma caneta. ====Decisões e desenvolvimento==== A primeira versão do robô utilizava três rodas: uma roda na frente e duas atrás (ligadas aos motores). Alguns problemas surgiram: a redução não era suficiente e o robô não virava 90 graus exatos. Ficou decidido então que a segunda versão do Wando utilizaria esteiras. Esta configuração daria ao robô uma maior estabilidade e facilitaria a conversão de 90 graus. Para desenhar um quadrado, foi preso na frente do robô uma caneta hidrográfica, utilizando quatro gominhas. ====Desafios==== Durante a execução do trabalho prático, alguns desafios surgiram: * Os motores, devido possivelmente ao tempo de uso, tinham potências diferentes. Foi preciso criar uma constante para equilibrar e fazer com que o robô andasse reto. * Um motor tinha o eixo voltado para baixo, devido à colocação incorreta da abraçadeira. Isso foi resolvido remontando o conjunto motor/peça de Lego. Os dois motores foram então colados diretamente na peça de Lego, o que acarretou no mal funcionamento de um dos motores, já que a cola interferia nas engrenagens internas. Depois de descobrir o problema, cobrimos a parte inferior do motor com um pedaço de papel. * Outro desafio foi encontrar uma forma de encontrar as frequências da música do Wando. Inicialmente tentamos conseguir as frequências a partir de um MIDI, mas, devido a falta de tempo, tivemos que pegar diretamente as notas musicais e encontrar as frequências de cada nota a partir de uma tabela. ====Funcionamento==== Quando a HandyBoard é ligada, a tela LCD exibe o nome do robô (**Wando**) e **TP1**. Depois, é possível selecionar, com a utilização do knob e do botão start, a opção desejada. O botão stop volta ao menu. As opções são: * Multitarefa: o robô anda para frente enquanto a HandyBoard toca a música. * Música: a HandyBoard toca a música. * Movimento: dentro desta opção é possível selecionar: * Translação: os dois motores irão girar no mesmo sentido. * Rotação: os motores irão girar em sentidos opostos. * Quadrado: os dois motores irão repetir os movimentos descritos na translação e rotação, formando o desenho de um quadrado. Dentro de cada opção, seleciona-se a potência desejada. ====Testes==== Dois testes foram executados: === Teste 1=== Neste teste, medimos a distância percorrida pelo robô em 10 segundos, utilizando as três potências. |Medição ^ Potência 20% ^ Potência 60% ^ Potência 100% ^ ^ 1 | Não andou | 34,0 cm | 62,7 cm | ^ 2 | Não andou | 34,5 cm | 62,6 cm | ^ 3 | Não andou | 34,6 cm | 68,3 cm | ^ 4 | Não andou | 35,7 cm | 68,3 cm | ^ 5 | Não andou | 37,7 cm | 68,5 cm | ^ 6 | Não andou | 38,2 cm | 68,7 cm | ^ 7 | Não andou | 38,3 cm | 68,7 cm | ^ 8 | Não andou | 38,5 cm | 68,7 cm | ^ 9 | Não andou | 38,6 cm | 69,1 cm | ^ 10 | Não andou | 39,5 cm | 70,8 cm | ^ ^^^^ ^ Média | - | 37,0 cm | 67,6 cm | ^ Mínimo | - | 34,0 cm | 62,6 cm | ^ Máximo | - | 39,5 cm | 70,8 cm | {{:cursos:introrobotica:2007-2:grupo1:potenciadistancia.png|:cursos:introrobotica:2007-2:grupo1:potenciadistancia.png}} === Teste 2 === Neste segundo teste, colocamos o robô para girar 90 graus e medimos o ângulo que ele girou realmente. |Medição ^ Potência 20% ^ Potência 60% ^ Potência 100% ^ ^ 1 | Não rodou | 90.39º | 90.69º | ^ 2 | Não rodou | 90.00º | 90.69º | ^ 3 | Não rodou | 88.61º | 90.69º | ^ 4 | Não rodou | 88.61º | 90.00º | ^ 5 | Não rodou | 88.32º | 90.00º | ^ 6 | Não rodou | 88.32º | 89.90º | ^ 7 | Não rodou | 87.43º | 89.78º | ^ 8 | Não rodou | 86.73º | 89.70º | ^ 9 | Não rodou | 86.73º | 89.70º | ^ 10 | Não rodou | 86.54º | 89.61º | ^ ^^^^ ^ Média | - | 88.17º | 90.08º | ^ Mínimo | - | 86.54º | 89.61º | ^ Máximo | - | 90.39º | 90.69º | {{:cursos:introrobotica:2007-2:grupo1:potenciagiro.png|:cursos:introrobotica:2007-2:grupo1:potenciagiro.png}} ====Código==== O código em IC foi divido em quatro arquivos: * principal.ic: Responsável por mostrar o menu e tratar as entradas na HandyBoard (knob e botões start e stop). * music.ic: Possui o método responsável por tocar a música. * movimento.ic: Possui os métodos //translacao//, //rotacao// e //quadrado//. * //translacao//: Liga os dois motores, chamando o método //ligaMotores// * //rotacao//: Liga os dois motores, mas com potências contrárias * //quadrado//: Chama os métodos //translacao// e //rotacao// de forma intercalada. * motor.ic: Neste arquivo há os métodos //ligaMotores// e //desligaMotores//. Quando o motor é ligado/desligado, a potência é aumentada/diminuida aos poucos. {{:cursos:introrobotica:2007-2:grupo1:tp1-fonte.zip|Arquivo}} com o código fonte. ====Multimídia==== **[[http://br.youtube.com/view_play_list?p=8281F41D760CBDEA|Vídeos de WANDO no YouTube]]** ^Versão final:^^^ |{{:cursos:introrobotica:2007-2:grupo1:TP1_-_IMG010.jpg?0x200px| Foto 1}}|{{:cursos:introrobotica:2007-2:grupo1:TP1_-_IMG011.jpg?0x200px|Versão 1.0 - Foto 2}}|{{:cursos:introrobotica:2007-2:grupo1:TP1_-_IMG016.jpg?200px|Versão 1.0 - Foto 7}}| |{{:cursos:introrobotica:2007-2:grupo1:TP1_-_IMG013.jpg?200px|Versão 1.0 - Foto 4}}|{{:cursos:introrobotica:2007-2:grupo1:TP1_-_IMG014.jpg?200px|Versão 1.0 - Foto 5}}|{{:cursos:introrobotica:2007-2:grupo1:TP1_-_IMG015.jpg?200px|Versão 1.0 - Foto 6}}| |{{:cursos:introrobotica:2007-2:grupo1:TP1_-_IMG012.jpg?200px|Versão 1.0 - Foto 7}}| ====Conclusão==== Com este trabalho prático, foi possível perceber as reais dificuldades na construção de um robô. Atrito com a superfície e motores com diferentes potências foram apenas alguns dos fatores que diminuiram o determinismo das ações que planejávamos para o robô. {{:cursos:introrobotica:2007-2:grupo1:tp1doc.pdf|Relatório em PDF}}