Issuu on Google+


Aplicação Pedagógica Curumim A robótica foi desenvolvida com conceitos multidisciplinares correlacionados a diversas áreas como mecânica, elétrica, eletrônica, computação para aplicações em muitas outras áreas como produção, agricultura, automação, entre diversas outras. Indiferentemente de qual área de aplicação deseja-se atuar com robótica, é importante conhecer como ocorre a interação entre as áreas que compõem a robótica para que se possa aproveitar melhor os benefícios que ela é capaz de trazer às aplicações. O Robô Móvel Curumim foi desenvolvido com propósito educacional, buscando conter grande abrangência dos princípios que os Robôs Móveis industriais, de pesquisa,de entretenimento, ou outras áreas possuem. Abaixo seguem alguns exemplos de conteúdos aplicados no Robô Móvel Curumim. Componentes de um Robô Móvel Arquitetura de um Robô Móvel Controle de Movimento Omnidirecional Controle de Velocidade de Motor Controle de Rotações do Motor Projeto Mecânico Estrutural Projeto Mecânico de Dispositivos Desenho em CAD MotoRedutores DC Controle de MotoRedutor DC com PWM Controle por Logica Fuzzi (Lógica Nebulosa) de um MotoRedutor DC Microcontrolador MSP430 da Texas – Programação Microcontrolador MSP430 da Texas – Esquemático para funcionamento Sensores Infravermelho para identificação de Obstáculos

Sinais de Sensores – Filtros Circuito de Potência Fonte Chaveada Comunicação por RF (Radio Frequência) – Hardware Comunicação por RF (Radio Frequência) – Bibliotecas para programação Criação de bibliotecas na programação Programação em Linguagem C/C++ Lógica de Programação Introdução a Programação Trabalho de Conclusão de Curso Processamento de Imagem Transmissão de Imagem Controle Remoto do Robô

A Robótica Móvel como forma pedagógica de ensino utiliza como base o conteúdo abordado em disciplinas que estão ligados a robótica, juntamente com os conteúdos aplicados na robótica, como os mencionados acima. Dessa forma, sugerimos abaixo alguns exemplos de XBot - Extreme Robot Rua Monteiro Lobato, 2479 - São Carlos – SP - 13569-290. (16) 3376-6751 - faleconosco@xbot.com.br www.xbot.com.br


aplicação do Robô Curumim em disciplinas.

Disciplinas Robótica O Curumim possui todas as estruturas que robôs móveis possuem, como mecânica, motor DC com redução e encoder, sensores infravermelho, dispositivos de acionamento, microprocessador, eletrônica para acionamento dos motores, comunicação por rádio frequência, bibliotecas para programação na linguagem C/C++ no PC, entre outros. Por possuir essas áreas desenvolvidas, pode-se utilizar o Curumim como exemplo de como as áreas e estruturas se interagem em um Robô, bem como o estudo específico de cada uma dessas áreas.

Lógica de Programação Exemplo e aplicação prática através de situações-problema para expressões lógicas (lógica booleana), estruturas de decisão (IF/SE), estruturas de repetição (Loop). Realizando a programação em uma interface gráfica o aluno pratica a lógica, sem preocupação com a sintaxe de uma linguagem de programação escrita, entre outros.

Linguagem de Programação C/C++ Facilidade de transição da lógica de programação para a Programação em C/C++ através da visualização do código em linguagem C, do algoritmo que foi programado na linguagem gráfica. Utilizando as bibliotecas do Curumim, pode-se com apenas 1 linha de comandos, controlar o robô Curumim. Aplicação através de solução-problema para os conceitos de constantes, variáveis, operadores aritméticos e lógicos, estruturas de decisão (IF/ELSE – SE/SENAO), estruturas de repetição (FOR/DO/WHILE), entre outros.

Eletrônica O robô curumim pode aplicar o uso de diagrama e esquemáticos de circuitos eletrônicos, circuito SMD, resistências, capacitores, transitores, mosfet, portas lógicas, podendo ser utilizadas em projeto eletrônico, entre outros

Projetos Eletrônicos Projeto eletrônico de circuitos que utilizam os sinais do microcontrolador para acionar motores e dispositivos. O projeto conterá diagramas e esquemáticos eletrônicos, dimensionamento e especificação de componentes, entre outros.

XBot - Extreme Robot Rua Monteiro Lobato, 2479 - São Carlos – SP - 13569-290. (16) 3376-6751 - faleconosco@xbot.com.br www.xbot.com.br


Microcontroladores O robô Curumim possui o microcontrolador da família MSP430 da TEXAS Instrument. O circuito que contém o microcontrolador é modular e pode ser utilizado ou adquirido à parte, para aplicações para programação de microcontrolador. É possível aplicações com circuito eletrônico com microcontrolador e componentes de suporte, diagrama dos pinos Entrada/Saída do microcontrolador, documentação do protocolo de comunicação da biblioteca Curumim para programação e comunicação do microcontrolador com o PC via Radio Frequência, entre outros. A TEXAS possui o MSP430 University Program com objetivo de apoio em cursos acadêmicos.

Desenhos e Projetos em CAD As disciplinas relacionadas a desenho técnico e projetos em CAD, podem utilizar o robô curumim como exemplo de aplicações. O projeto em CAD pode contemplar situações-problema para gerar a habilidade de alunos realizarem modificações como resolução de um problema apresentado. O Curumim possui modelo em CAD no software TOPSolid, empresa que possui parceria com a XBot.

Mecanismos e Projetos de Mecanismos. O robô Curumim possui um espaço reservado para fixação de mecanismos que podem ser utilizados em aplicações como movimentar objetos, entre outras. Pode-se utilizar o robô Curumim e uma aplicação como situação-problema para projeto de mecanismos, tendo como opcional a possibilidade de desenvolver um atuador para ser utilizado como mecanismo acionado pela eletrônica do Curumim.

Trabalho de Conclusão de Curso (TCC) O Curumim é um Robô que pode ser utilizado como trabalho de conclusão de curso, aplicado a uma ou mais disciplinas nas quais foi utilizado previamente como ensino didático. Outra possibilidade é usá-lo em TCCs de disciplinas nas quais havia aplicações robóticas mas que não exploraram o Curumim como ferramenta didática.

XBot - Extreme Robot Rua Monteiro Lobato, 2479 - São Carlos – SP - 13569-290. (16) 3376-6751 - faleconosco@xbot.com.br www.xbot.com.br


A m o s t r a

Apoio ao Professor

Apostila


Apostila Curumim - Apoio ao Professor Programação Capítulo 1 - Apresentação – Programação Como ensinar Lógica de Programação para quem não possui nenhuma experiência ou conhecimento?

Normalmente, as pessoas que desejam aprender programação são motivadas por gostarem de “Computador”. Porem, qual é a experiência delas com programação? Será que alguém que utiliza o computador apenas para mensagens instantâneas no MSN, orkut, blog, entre outros, possui alguma experiência com lógica de programação? Ensino por Competências Uma das formas de ensino para temas abstratos, como lógica de programação, é o ensino por competências. Esse método de ensino apresenta ao aluno uma situação-problema, cujas possíveis soluções aplicam o conteúdo abordado pelo professor. Relacionar o conteúdo estudado com uma situação-problema real ajuda o aluno a fixar os conceitos envolvidos. A Robótica Móvel apresenta todas as características que a colocam como uma excelente ferramenta para Ensino por Competências. Isto se dá ao fato de a robótica móvel ser uma área multidisciplinar por natureza, que possibilita aos seus usuários e educadores a aplicação prática dos conceitos teóricos ensinados. A XBot desenvolveu uma ferramenta robótica especialmente para dar suporte ao professor no momento de ensino. Utilizando o robô Curumim, o professor aplica exemplos práticos depois de transmitir o conteúdo teórico, mostrando as situações-problema em sua própria sala de aula e, consequentemente, aumentando a fixação de conteúdo. Temos como exemplo o Ensino de Programação em Linguagem C/C++. Sabemos que para a realização de uma boa programação, é necessário que o programador tenha total domínio da utilização da lógica de programação e seus conceitos. O domínio deve ser tal que, ao ser apresentado um problema em que a solução seja uma programação, o aluno muito facilmente chegará à sua solução com as ferramentas que conhece. O robô Curumim pode ser utilizado nesse contexto, criando uma ponte para o melhor entendimento dos conceitos e da lógica envolvidos na programação. A motivação para o desenvolvimento da ferramenta de ensino Curumim foi a busca por uma ferramenta de apoio ao professor no ensino de lógica de programação. O caminho encontrado foi utilizar situações-problema, que nada mais são que a concretização dos conceitos abstratos de lógica de programação. O objetivo era que a mesma ferramenta pudesse cobrir as necessidades do aluno iniciante ao aprender o básico da lógica de programação, e também permitisse aplicações mais avançadas como o desenvolvimento e a prática de programação de alto nível (por exemplo, utilizando a linguagem C/C++).




Assim, foi desenvolvida uma interface gráfica bastante simples que permite ao aluno diminuir o tempo gasto com os pormenores da sintaxe da linguagem (como ponto-e-vírgula, chaves, entre outros), e se preocupe apenas com a lógica de programação. Deste modo, o aluno pode verificar imediatamente se o resultado de sua programação é o esperado, o que o ajuda a desenvolver gradativamente sua capacidade de adaptação aos problemas. A mesma interface inclui também a possibilidade de transição da programação gráfica para a linguagem C/C++. Deste modo, o aluno pode visualizar a sua lógica escrita em linguagem de programação, de modo que o programa estará pronto para ser compilado assim que o código for copiado para o compilador escolhido e forem instaladas as bibliotecas do Curumim ao projeto. Abaixo, seguem as imagens que descrevem os passos que podem ser utilizados para o ensino de programação.

Situação Problema

Visualização da Lógica

Programação Gráfica

Transição

Programação Orientada a Objeto ( C/C++ )



C

B

D

A

C

B

D

A


Criando o Projeto em C/C++ para Compilação

Personalize e incremente o seu projeto Situação Problema Apresenta-se ao aluno uma situação-problema onde a solução pode conter os conceitos ensinados pelo professor. Visualização da Lógica(Solução) Como os conceitos para chegar à solução acabaram de ser ensinados pelo professor, o aluno consegue com uma maior rapidez associar a solução do problema à teoria da aula. Programação Gráfica O aluno realiza a programação gráfica de sua lógica de programação e realiza a execução para verificar se o resultado é o esperado. Mesmo que aparentemente não existam erros, não é raro que o resultado seja diferente do esperado, o que acaba por gerar uma discussão entre o grupo de alunos sobre as falhas na lógica de programação. Esse tipo de atividade em equipe desenvolve habilidades muito importantes para os estudantes. Transição Objeto (C/C++)

para

Linguagem

de

Programação

Orientada

a

Após o aluno possuir pleno dominio dos conceitos de lógica de programação, a transição para a programação em linguagem C/C++ é natural, visto que a interface possibilita a visualização da programação gráfica (blocos) em linguagem C/C++. Desde modo, diminui drasticamente a dificuldade de aprendizado das sintaxes de programação. Criando o Projeto em C/C++ para Compilação Criamos um projeto no compilador escolhido a partir do programa em linguagem C/ C++ visualizado na interface gráfica. Incluímos nesse projeto os arquivos relacionados com as bibliotecas de controle do Robô Curumim, que estão disponíveis no CD junto com o Kit. Compilamos e executamos o programa e, então, visualizamos o mesmo resultado obtido com a execução na Interface Gráfica. Personalize e Incremente o seu Projeto Após ter seu projeto executado sem nenhum problema, você pode personalizá-lo, modificá-lo, incrementá-lo, e muito mais, para a utilização do Curumim com a programação




em C/C++. O fato de utilizar a programação em linguagem C/C++ e as bibliotecas de comunicação e controle do Robô Curumim permite que o usuário desfrute de toda a flexibilidade que a linguagem de programação C/C++ oferece. Como resultado da utilização dessa ferramenta para o ensino, ganha-se muito mais rapidez e solidez para o ensino de programação em linguagem C/C++. O capítulo 2 apresenta como utilizar a interface gráfica Curumim. O capítulo 3 apresenta como fazer um projeto no compilador Borland Builder que utilize o curumim. A partir do capítulo 4, encontramos exemplos para serem utilizados pelo professor no apoio ao ensino dos conceitos de programação.

Capítulo 2 – Interface Gráfica Curumim Conteúdo suprimido nesta amostra.

Capítulo 3 – Utilizando o Curumim no Borland Builder Conteúdo suprimido nesta amostra.

Capítulo 4 – Laço Para (For) – Situação-Problema Situação-Problema Suponha que o Robô Curumim precise verificar 4 pontos em um terreno: A, B, C e D, conforme a figura abaixo.

(Sugerimos ao professor que desenhe 4 pontos no chão, pelos quais robô irá caminhar, tal qual vértices de um quadrado)

C

B

D

A

O Curumim está localizado inicialmente no ponto A. Os comandos que precisamos utilizar no Curumim são os seguintes: “Mover para Frente” e “Rotacionar”. Qual seria a seqüência de ações (instruções) que deveríamos programar no curumim para que ele parta do ponto A para o Ponto B, depois para o ponto C, depois para o ponto D, e retorne ao ponto A? Solução



C

B

D

A


forma:

Se formos programar esses passos para a execução, deveríamos fazer da seguinte

Início do Programa -> Anda Reto -> Rotaciona -> Anda Reto -> Rotaciona -> Anda Reto -> Rotaciona -> Anda Reto -> Rotaciona -> Fim do Programa.

Podemos observar que a seqüência de passos andar reto e rotacionar se repete 4 vezes. É bom lembrar que a atividade que o computador executa melhor é a repetição de uma tarefa. Utilizando o conceito aprendido de Laço Para (For), podemos programar essa ação, obtendo o mesmo resultado da programação anteriormente proposta. Deste modo, a programação seria: Inicio do Programa - > REPITA 4 vezes ( Andar Reto -> Rotaciona ) -> Fim do Programa.

(Para inserir o bloco dentro do Laço Para é necessário clicar com botão direito no bloco anterior e escolher a opção – Inserir um bloco depois)

Visualizando o programa em linguagem C/C++ e observando a parte principal dentro do programa, obtemos o seguinte programa. /** Bloco Para (For) **/ for(int i=1; i<=4;i++) { /** Bloco Andar Reto **/ /* Comando */ curumim->move(curumim->getTarget(), curumim->getSource(), 100, 0, 100); curumim->waitStopped(curumim->getTarget(), curumim->getSource()); /** Bloco Rotacionar **/ /* Comando */ curumim->rotate(curumim->getTarget(), curumim->getSource(), -45, 0); curumim->waitStopped(curumim->getTarget(), curumim->getSource()); } // Fim de bloco

(Icones ao lado representão a função correspondente entre a programação gráfica e a programação em linguagem C/C++)




Para consultar o que significa cada parâmetro das funções, consulte o Capítulo 3 – Utilizando o Curumim no Borland Builder. Podemos utilizar no Borland Builder um Form onde, ao clicar em um botão, ele chama esse comando em código C/C++, como ao utilizar um console Win32 que apenas executa o código C/C++.

Capítulo 5 – Desvio Condicional (If) – Situação-Problema Situação-Problema

O Robô Curumim está em um ambiente qualquer e você deseja que ele tome uma decisão ao se deparar com a seguinte situação. Se o Robô Curumim identificar um obstáculo a sua Frente ele deve rotacionar, se posicionando de forma a desviar do obstáculo. Terminada a verificação de obstáculo, ele deve andar para frente uma distância qualquer. Solução A lógica de programação que o usuário deve realizar é a seguinte: Início do Programa -> SE presença de obstáculo na frente ( Rotaciono) -> Ando para Frente -> Fim Programa Quando se clica no Botão DesviaSE



aparece a seguinte janela:

Nessa janela deve-se colocar a expressão lógica, cujo resultado sendo verdadeiro faz com que seja executado o conteúdo do SE. No Curumim, quando utilizamos a informação do sensor de obstáculo, o sensor irá responder Verdadeiro se houver obstáculo.


Função Sensor. Valor Verdadeiro -> Presença de Obstáculo no sensor Valor Falso -> Não possui Obstáculo no sensor

(Lembrando que a faixa de operação do sensor infravermelho do Curumim e de 50mm a 800mm) Como desejamos que o robô rotacione caso haja um obstáculo a sua frente, então a expressão é: S5

E a sua resposta já corresponde à resposta desejada pela expressão. Como resultado final obtemos a seguinte lógica de programação: Inicio do Programa -> SE presença de obstáculo na frente ( Rotaciono) -> Ando para Frente -> Fim Programa

Visualizando o programa em linguagem C/C++ e observando a parte principal dentro do programa, obtemos o seguinte: /** Bloco Se (If) **/ if ( curumim->sensors(curumim->getTarget(), curumim->getSource(), 4, 300) ) { /** Bloco Rotacionar **/ /* Comando */ curumim->rotate(curumim->getTarget(), curumim->getSource(), -90, 0); curumim->waitStopped(curumim->getTarget(), curumim->getSource()); } // Fim de bloco /** Bloco Andar Reto **/ /* Comando */ curumim->move(curumim->getTarget(), curumim->getSource(), 100, 0, 100); curumim->waitStopped(curumim->getTarget(), curumim->getSource());

Para consultar o que significa cada parâmetro das funções, consulte o Capítulo 3 – Utilizando o Curumim no Borland Builder. Podemos utilizar no Borland Builder um Form, onde ao clicar em um botão, ele chama esse comando em código C/C++, como ao utilizar um console Win32 que apenas executa o códigoC/C++.

_____________________________________________________ XBot - Extreme Robot R Monteiro Lobato, 2479 - CEP 13.569-290 - São Carlos - SP Tele: (16) 3376-6751 - email: faleconosco@xbot.com.br www.xbot.com.br




Modelo em CAD e Desenho Técnico

Disponibilizamos os modelos em CAD para o software TOPSolid®, ou arquivos para importação em outros softwares.

XBot - Extreme Robot Rua Monteiro Lobato, 2479 - São Carlos – SP - 13569-290. (16) 3376-6751 - faleconosco@xbot.com.br www.xbot.com.br


Aplicacoes e Material pedagogico