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 |
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º |
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.
Arquivo com o código fonte.
Multimídia
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ô.