Você está na página 1de 6

ROBTICA RELATRIO FINAL CORRIDA ENTRE ROBS - LEGO

NOME:Carolina Carvalho Flvio Bernardes Andr Victor TURMA: MCT-3A 2 Bimestre

Belo Horizonte, 03 de Julho de 2011

SUMRIO

Pag. RESUMO........................................................................................ ...................................3 1.INTRODUO..............................................................................................................4 2.PROGRAMAO.........................................................................................................5

RESUMO

Este trabalho tcnico-cientfico de um modo geral visa adquirir e desenvolver conhecimentos tericos fundamentais para melhor entendimento sobre o controle, programao e montagem de um rob, atravs do kit didtico da LEGO. Apresentaremos no decorrer deste trabalho, informaes prticas observadas e colhidas atravs de experimentao. Embasados nessas experincias, descobrimos qual a melhor posio dos sensores, dos motores, dos eixos dos mesmos. Descobrimos tambm como estruturar uma programao em C atravs do Bricx para o movimento e sensoriamento do rob. Verificamos a importncia do kit didtico da LEGO (RCX), pois todos componentes mecnicos apresentados por esses nos do certa base para a construo de um mecanismo slido e prprio.

1. INT

Trata-se de um trabal de concluso da disci lina de robtica. Foi usado o kit didtico para montar um rob que deveria efetuar um percurso de robtica da LEGO (RC delimitado por uma linha preta no menor tempo possvel. A corrida era composta por quatro equipes de trs membros cada, as quais deveriam montar um rob para percorrer o trajeto no menor tempo possvel seguindo a linha preta. Neste trabalho, demos nfase parte estrutural do rob, bem como sua programao e mtodos adotados para a conquista do 2 lugar.

Figura 1 Percurso delimitado pela linha preta

2. PROGRAMA

A programao do rob foi estruturada com base nos sensores de luminosidade usados no rob. Foram usados dois sensores de luminosidade que deveriam identificar a linha preta que compunha o trajeto. Para estruturao do programa, colhemos os dados de luminosidade fornec idos pelos sensores e descobrimos que o SENSOR 1 oferecia um valor entre 35 e 45 quando no preto, e 50 a 60 no branco; enquanto que o SENSOR 2 oferecia um valor entre 30 e 40 quando no preto, e 45 a 55 no branco. Desta forma, estruturamos o programa condicionalmente a estes valores: #define VALOR_LIMITE_1 45 #define VALOR_LIMITE_2 40 taskmain () { SetSensor (SENSOR_1, SENSOR_LIGHT); SetSensor (SENSOR_3, SENSOR_LIGHT); SetPower (OUT_A+OUT_C, 7); OnFwd(OUT_C); if (SENSOR_1 < VALOR_LIMITE_1) //desligar motor da direita, aciona da esquerda (OUT_A); if (SENSOR_2 <VALOR_LIMITE_2) //desligar motor da esquerda, aciona da direita (OUT_C); A pista possua um loop que atrapalhava completamente o percurso, pois, dificilmente os sensores identificavam o loop, ou quando identificavam acabavam prejudicando o percurso. Para resoluo deste problema analisamos cuidadosamente o trajeto do rob at o loop, e identificamos que os dois sensores eram atuados quando chegado o loop. Desta forma, implementamos o cdigo ao programa: if (SENSOR_2 < VALOR_LIMITE_2 && SENSOR_1 < VALOR_LIMITE_1) //Ligar ambos motores Assim, o trajeto fora concertado. Entretanto, no era sempre que os dois sensores eram atuados no loop, provocando um mal contato, por assim dizer. O programa funcionou. Porm, os sensores no tinham uma preciso de 100% como esperado, e o motor do rob no possua uma boa potencia, inicialment . Assim, fora e implementado o cdigo: SetPower (OUT_A+OUT_B,7);
5

Com este, mudava-se a potencia do motor para mxima, atravs do 7 no comando SetPower. As reverses de motores foram outro problema encontrado A principio pensamos . que a melhor soluo seria reverter um dos motores enquanto outro estava ligada, porm vimos que assim o atrito aumentava e decidimos desligar um dos motores em vez de reverter. Assim o cdigo fora: task main () { SetSensor (SENSOR_1, SENSOR_LIGHT); SetSensor (SENSOR_3, SENSOR_LIGHT); SetPower (OUT_A+OUT_C, 7); OnFwd (OUT_A+OUT_C); if (SENSOR_1 < VALOR_LIMITE_1) off (OUT_A); until (SENSOR_1>VALOR_LIMITE_1);

if (SENSOR_2 <VALOR_LIMITE_2) off (OUT_C); until (SENSOR_2 > VALOR_LIMITE_2); Com isto, o rob ficava o tempo inteiro revertendo ambos os motores, e tentando identificar a todo momento algum sinal da linha preta. Portanto, o algoritmo consiste em: Ligar um motor; identificar linha? y Sim: ligar motor seguinte, e desligar o acionado y No: Seguir trajeto Identificar linha dupla?
y y

Sim: Ligar ambos motores No: Seguir trajeto.

Você também pode gostar