Universidade Estadual do Oeste do Paraná Foz do Iguaçu Parque Tecnológico Itaipu Centro de Engenharias e Ciências Exatas
Laboratório de Robótica
Bloco Vermelho Espaço 2 Sala 2
Regulamento do IV Concurso Robótico da Unioeste
1.1. Apresentação Tratase de uma atividade lúdica e desafiadora, que une aprendizado e prazer. Além disso, valoriza o trabalho em grupo, a cooperação, melhora a postura diante de problemas e hipóteses, promove o diálogo e o respeito a diferentes opiniões. A robótica envolve um processo de motivação, colaboração, construção, desconstrução e reconstrução . Um processo que ultrapassa os limites da escola tradicional. Uma prática boa para o professor e ótima para o aluno.1.2. Objetivo
O objetivo deste concurso é fazer com que o estudante saia da carteira para virar um observador/inventor e transformar as páginas de um livro em máquinas capazes de interagir com o meio ambiente. Ele passa a aprender através de seus próprios erros e acertos, investigando, explorando, planejando e dando forma ao que se passa em sua cabeça. Promover um espaço para estimular a aplicação de teorias à atividades concretas e para desenvolver a criatividade dos estudantes: "o aprendizado neste tipo de projeto é significativo, pois proporciona a curiosidade pela investigação que, consequentemente, leva ao desenvolvimento intelectual do aluno". 1.3. Desafio Cada equipe deverá desenvolver um algoritmo para controlar o robô, de forma a realizar o caminho correspondente a figura 1, completando 5 voltas no circuito no menor tempo possível, passando pelo trecho denominado “boxes” ao menos uma vez, preferencialmente na terceira volta. O algoritmo deve basearse exclusivamente na leitura de quatro sensores de claro/escuro posicionados na parte frontal do robô, para determinar sobre quais rodas atuar (figura 2). Para a programação do algoritmo de controle, deve ser usado o sistema Bascom Basic , capaz de compilar um código de controle em linguagem de alto nível (linguagem Basic – muito parecida com a linguagem PASCAL) para execução direta no microprocessador do robô. Maiores detalhes podem ser encontrados na HomePage do Concurso, em “http://www.cc.unioestefoz.br/~jfabro/concursorobotico”.
REGRAS:
Das Equipes:
Cada equipe poderá ter até (três) integrantes, regularmente matriculados na disciplina de Computação I (para o caso do curso de Engenharia Elétrica).
Das inscrições:
A inscrição deve ser realizada no Laboratório de Robótica da Unioeste no PTI, até o dia 30/09/2006. Cada equipe deve preencher a ficha de inscrição, sendo necessária a assinatura por parte de todos os integrantes. Não será permitida substituição posterior.
A taxa de inscrição deve ser apresentada no momento da inscrição (1 bateria de 9 Volts, preferencialmente Alcalina). Das regras: Cada equipe deverá desenvolver um algoritmo para controlar o robô de forma a completar 5 voltas em um circuito, representando uma pista, representada na figura 1 em anexo. Em uma das voltas (preferencialmente a terceira), o robô deve passar pela área da pista identificada como “Boxes”, simulando uma parada para troca de pneus/reabastecimento. Passar mais de uma vez pelos boxes não acarreta nenhum tipo de penalização. Entretanto, se o robô entrar apenas uma vez nos boxes, fizer em outra volta, que não a terceira, será penalizado em 5 segundos.
O algoritmo deve basearse exclusivamente na leitura de quatro sensores de claro/escuro para determinar sobre quais rodas atuar (posicionados na parte frontal do robô, identificados na figura 2 em anexo). Para a programação do algoritmo de controle, deve ser usado o sistema Bascom Basic, capaz de compilar um código de controle em linguagem de alto nível (linguagem Basic – muito parecida com a linguagem PASCAL) para execução direta no microprocessador do robô. O robô deve manterse parcial ou totalmente na pista, ou seja, deve estar, na pior hipótese, com uma das roda da frente entre as faixas pretas (inclusive sobre as mesmas) que delimitam a pista (entre as posições apresentadas nas figuras 3, 4, 5, 6 e 7, em anexo). Caso o robô saia da pista (conforme definido no tópico acima), a equipe correspondente será desclassificada. O algoritmo da equipe será “carregado” para o robô, e, em seguida, será realizada a tomada de tempo da mesma, repetindose o procedimento para as demais equipes. Será sagrada vencedora a equipe cujo algoritmo fizer o robô completar a prova no menor tempo, cronometrado pela comissão organizadora.
Segue, em anexo, exemplo de programa, com o acesso aos motores e aos sensores já desenvolvido. Caso o robô não apresente movimento progressivo por tempo maior que 10 segundos, em qualquer ponto do circuito, a equipe correspondente será desclassificada.
Caso nenhuma equipe consiga completar a prova, será considerada vencedora a equipe cujo algoritmo fizer o robô percorrer a maior parte do trajeto total. Fazem parte da participação do concurso robótico o preenchimento de questionários relacionados a conhecimentos de programação, e também de avaliação do concurso. Para cada equipe, ao menos dois dos inscritos precisam preencher cada questionário, para que a equipe se qualifique a receber a premiação. Da Premiação: Como prêmio para a equipe vencedora, todos os seus membros serão contemplados com 2,0 (dois) ponto na média bimestral do segundo bimestre, na disciplina de Computação I. Esta nota de bonificação será adicionada à nota do segundo bimestre, desde que esta soma não ultrapasse a nota máxima (10.0). Patrocínio: Professores Alexssander Siqueira e Alessandra Bussador – Disciplina de Computação I – Engenharia Elétrica. A concessão desta nota a todos os membros da equipe fica condicionada à uma explicação/defesa do código desenvolvido, individual, por cada um dos integrantes da equipe vencedora.
Às equipes participantes que conseguirem realizar o desafio proposto, isto é, que consigam, na data da tomada oficial de tempos, realizar todo o percurso, será acrescido 1.0 (um) ponto na média do segundo bimestre, desde que a equipe tenha participado de todas as etapas do concurso (preenchimento de questionários, e participação nas duas semanas de treinos). Às todas as equipes participantes que realizem todas as etapas do concurso (preenchimento de questionários, e participação nas duas semanas de treinos), mas ainda assim não consigam realizar todo o percurso, será acrescida uma pontuação de 0,5(meio) ponto na média do segundo bimestre. O não cumprimento de qualquer etapa implica no não recebimento desta pontuação. Dos Treinos: Cada equipe terá um total de dois horários de treino de uma hora e meia. Estes horários de treino deverão ser agendados nas semanas 1 e 2 de treino (um período em cada semana). Nestes horários, os membros da equipe terão acesso ao laboratório de robótica, e contarão com o auxílio da comissão organizadora para realizar a programação do robô, e os testes de seus algoritmos de controle. É recomendável projetar o algoritmo anteriormente ao horário de treino, pois este horário será seguido rigorosamente. Da Tomada Oficial de Tempo: No dia da tomada de tempo oficial, cada equipe terá 15 minutos para instalação do programa no robô e testes, seguido pela tomada de tempo, em uma única tentativa.
Da certificação: Todas as equipes participantes da tomada oficial de tempo receberão certificados de participação. Os campeões receberão um certificado comprovando sua classificação em primeiro lugar (segundos, terceiros e etc não receberão este certificado). Dos casos omissos: Os casos não contemplados neste regulamento serão decididos pela comissão organizadora. Comissão Organizadora Prof. João Alberto Fabro, coordenador do Laboratório de Robótica. Prof. Alexssander Siqueira Professora da Disciplina de Computação I Profa. Alessandra Bussador Professora da Disciplina de Computação I Daniel Costa Ramos (4° EE) – Estagiário do Lab. Robótica Thiago Morais Furuchima (3° CC) – Bolsista de IC José Lu (3° CC) – Estagiário do Lab. Robótica Este projeto tem o apoio do GER – Grupo de Estudos em Robótica da Unioeste. Eventuais dúvidas sobre quaisquer ponto não detalhado neste regulamento serão dirimidas pela Comissão Organizadora.
Anexos:
Figura 3 – Posição aceita como válida
Figura 4 – Posição aceita como válida
Figura 5 – Posição inválida
Programa Exemplo (Linguagem BASIC) $crystal = 10000000 $regfile = "2313def.dat" Config Portb = Output Config Portd = Input Open "COMD.1:9600,8,N,1,inverted" For Output As #1 Const Robo_parado = 0 Const Robo_p_frente = 10 Const Robo_p_tras = 5 Const Robo_p_direita = 2 Const Robo_p_esquerda = 8 Const Robo_p_direita_rapido = 6 Const Robo_p_esquerda_rapido = 9 Defbit Sensor_extremo_esquerdo Defbit Sensor_interno_esquerdo Defbit Sensor_extremo_direito Defbit Sensor_interno_direito 'até aqui são feitas definições: favor não alterar Do 'atualização das leituras dos sensores Sensor_extremo_esquerdo = Pind.3 Sensor_interno_esquerdo = Pind.5 Sensor_extremo_direito = Pind.4 Sensor_interno_direito = Pind.2 Portb = Robo_p_frente If Sensor_extremo_esquerdo = 1 Then Portb = Robo_p_direita_rapido Waitms 250 Elseif Sensor_extremo_direito = 1 Then Portb = Robo_p_esquerda_rapido Waitms 250 Elseif Sensor_interno_direito = 1 Then Portb = Robo_p_esquerda_rapido Waitms 250 Elseif Sensor_interno_esquerdo = 1 Then Portb = Robo_p_direita_rapido Waitms 250 Elseif Sensor_interno_esquerdo = 1 And Sensor_extremo_esquerdo = 1 Then Portb = Robo_p_direita_rapido Waitms 250 Elseif Sensor_interno_direito = 1 And Sensor_extremo_direito = 1 Then Portb = Robo_p_esquerda_rapido Waitms 250 Elseif Sensor_interno_direito = 1 And Sensor_extremo_direito = 1 And Sensor_interno_esquerdo = 1 And Sensor_extremo_esquerdo = 1 Then Portb = Robo_p_frente Waitms 250 End If Loop End
Universidade Estadual do Oeste do Paraná Foz do Iguaçu Parque Tecnológico Itaipu Centro de Engenharias e Ciências Exatas