











































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
1 - INTRODUÇÃO Organizadas pelo Programa de Educação Tutorial de Engenharia Elétrica da Universidade Federal Fluminense (PET-Elétrica UFF), em parceria com o Departamento de Engenharia Elétrica (TEE) e a Escola de Engenharia da UFF, as aulas de Robótica Educacional Como Ferramenta de Aprendizado para o Ensino Médio têm como objetivo trazer para estudantes de Ensino Médio atividades práticas que tracem paralelos entre disciplinas teóricas apresentadas no Ensino médio, como Física e Matemática.
Tipologia: Manuais, Projetos, Pesquisas
1 / 51
Esta página não é visível na pré-visualização
Não perca as partes importantes!












































Universidade Federal Fluminense TEE - Departamento de Engenharia Elétrica Programa de Educação Tutorial da Engenharia Elétrica - PET-Elétrica
Autores: Elson Antonio Nunes Júnior Hernani Justo da Silva Júnior Marcus Vinicius Bouças Rodrigo De Oliveira Siqueira Niterói – Rio de Janeiro 2013
Organizadas pelo Programa de Educação Tutorial de Engenharia Elétrica da Universidade Federal Fluminense (PET-Elétrica UFF), em parceria com o Departamento de Engenharia Elétrica (TEE) e a Escola de Engenharia da UFF, as aulas de Robótica Educacional Como Ferramenta de Aprendizado para o Ensino Médio têm como objetivo trazer para estudantes de Ensino Médio atividades práticas que tracem paralelos entre disciplinas teóricas apresentadas no Ensino médio, como Física e Matemática.
Com o uso dos kits LEGO MINDSTORMS NXT , os alunos poderão criar experimentos onde será posto em prática a teoria das salas de aulas, aplicada a projetos. Além disso, os alunos terão a chance de se aproximar de certos assuntos, que à primeira vista podem parecer distantes e complicados, mas que com o incentivo certo, se tornam enormes fontes de aprendizado e diversão. Estamos falando de Robótica e Programação.
Nessa apostila estão contidas: informações sobre os componentes do kit LEGO MINDSTORMS NXT 2.0 e suas funções; um tutorial básico sobre a programação envolvida na criação dos modelos, com exercícios, descrição de quatro experimentos com o kit Lego, que serão realizados para o estudante perceber as aplicações de conhecimentos de física e matemática, vistos na prática; e, ao final do curso, um Desafio Final a ser executado pelos alunos, para competirem no I Campeonato de Robôs da UFF, a se realizar em Outubro.
Programas são, basicamente, instruções que um computador recebe e executa conforme lhe foi dito. Algo parecido com uma receita de bolo: você quando quer preparar um bolo, deve seguir uma lista de comandos em uma ordem específica, para que consiga um resultado esperado; você não pode pular etapas, como por exemplo, acrescentar cobertura no bolo antes de levá-lo ao forno; não pode usar 5 ou 6 ovos para fazer a massa do bolo; resumindo, não pode ir além das instruções, se você quiser que o resultado final seja o bolo. Assim como a receita de bolo é para você, o programa será para o robô.
O grande desafio, porém, é que o robô não possui um cérebro como um humano, capaz de interpretar informações; portanto, as instruções que você der para ele têm que ser específicas.
Como pequeno exemplo: Você quer construir um carro robô que desvie de obstáculos a frente dele sozinho. Para um ser humano dirigindo este carro, os comandos que você daria para ele seriam exatamente esses:
Ex.:
“Dirija o carro até que, se encontrar um objeto desvie, e continue a dirigir.”
Mas, para um carro-robô, os comandos precisam ser bem mais específicos:
A programação no software oficial da linha LEGO MINDSTORMS, a linguagem NXT-G, é do tipo “programação em blocos” , isto é, possui um ambiente interativo de arrastar blocos de comandos para fazer a cadeia de programação. Esta apostila cobrirá os comandos básicos existentes no programa, o necessário para se realizar os experimentos contidos no final da apostila.
“Ligue os motores. Siga em frente até que: Se encontrar um objeto a frente: Pare os motores; Gire a direção duas vezes para esquerda; Siga em frente. Se não encontrar um objeto a frente: Siga em frente.”
O NXT é a central de processamento do robô, pois, a partir dele, é que ocorre o trânsito de informações, provenientes da programação que você inseriu nele, como a leitura de sinais do ambiente em que o robô está inserido. Ele possui quatro canais de entrada, onde os sensores são inseridos, três canais de saída, onde os servo-motores são inseridos, e uma entrada USB, por onde se conecta a um computador para inserir o arquivo onde está escrita a programação.
Também possui quatro botões de controle do robô (que também podem ser programados para realizar ações se apertados), um sistema de alto falante do lado esquerdo, para reproduzir sons, e uma tela de LCD que pode ser programada para demonstrar a atividade dentro do NXT. Associados ao NXT estão diversos blocos de programação , como:
NXT Buttons Block, Display Block, entre outros.
Os blocos de programação serão explicados mais adiante no capítulo 5.
Figura 3 .1 - NXT Intelligent Brick
Os servo-motores são pequenos motores que realizam todas as tarefas mecânicas do seu robô. Cada kit vem com três servo-motores, que sempre são conectados aos canais de saída A, B e C do NXT. A eles estão associados blocos de programação tais como:
Move Block; Motor Block ; Calibrate Block; Rotation Sensor Block; Reset Motor Block.
A figura abaixo representa o funcionamento do servo-motor por dentro, composto de várias engrenagens de transmissão:
Figura 3.2 - Servo-motor
Figura 3.3 - Seção lateral do servo-motor NXT, mostrando o sistema de engrenagens de transmissão de movimento.
O sensor ultrassônico é capaz de emitir um leve sonar para rastrear o ambiente a sua frente, agindo como os olhos do robô. Com esse sensor, é possível determinar também a distância de objetos que estejam no caminho do robô.
A ele está associado o bloco Ultrasonic Sensor Block.
O sensor de som funciona como um pequeno microfone, que detecta o valor sonoro em decibéis, e é capaz também de detectar diferentes timbres sonoros, agindo como os ouvidos do robô.
A ele está associado o bloco Sound Sensor Block.
Além desses sensores, também podem ser encontrados diversos outros que complementam o seu robô, deixando cada vez mais autônomo e complexo. Porém, são vendidos separadamente, como Sensores de Som (não necessários a esse kit, já que o próprio NXT possui um microfone interno), Temperatura, de Rotação, Acelerômetros, etc.
Figura 3. 6 - Sensor Ultrassônico
A imagem abaixo exibe a tela inicial de programação do LEGO MINDSTORMS NXT:
A princípio, o programa abre a tela acima, dando as opções Create new program ( Criar novo programa) ou Open recent program ( Abrir programa recente). À direita, aparece a guia Robo Center, que consiste de modelos de montagem de robôs já disponibilizados pela LEGO no software, que não serão abordados pela apostila.
Após abrir um novo arquivo de nome “Untitled-1.rbt” , nome inicial que você pode modificar, estamos prontos para começar a programar. A seguinte tela é aberta, mostrando a Paleta de Comandos e o Controlador do NXT:
Figura 4. 1 - Tela inicial do Programa LEGO MINDSTORMS NXT
Common: Nesse grupo encontram-se os blocos da paleta comum, que são os mais utilizados geralmente em um programa. Com eles podemos acionar os servo- motores, criar algumas repetições, usar o display do NXT para apresentar valores, dentre outras aplicações. Ex: Move Block, Loop Block , etc.
Action: Blocos que realizam ações, bem parecido com os blocos do grupo acima. Destaque para o Motor Block , bloco usado para controlar com mais precisão apenas um servo-motor por vez, e o Send Message Block , usado para controlar remotamente o NXT via Bluetooth (não será utilizado nos exercícios).
Sensor: Blocos usados pelos sensores, já mencionados anteriormente. Destaque para o Timer Block , não mencionado anteriormente, que registra o tempo que o programa está rodando, ou que um dos servo-motores está sendo executado, graças a três contadores internos de tempo, um para cada servo-motor.
Flow: Grupo de blocos que contém Estruturas de Controle , que são blocos que guiam o seu robô a agir de acordo com condições que podem ser estabelecidas por nós, ou pelo local onde ele está. Essas estruturas tornam o programa, e consequente o robô, mais inteligente. Por exemplo, temos o Loop Block , Wait Block, Stop Block , e Switch Block
Data: Blocos lógicos ou matemáticos, usados para fazer cálculos e comparações entre os valores obtidos pelos sensores e servo-motores, e, a partir daí, tomar ações. Como exemplo, temos: Logic Block , Math Block , e Random Block. O uso desses blocos torna seu programa muito mais preciso e dinâmico, como veremos nos exercícios.
Advanced: Esse blocos são usados para funções mais complexas do Lego Mindstorms. Para o uso dessa apostila, serão utilizados somente o Number to Text Block e File Access Block , e seus usos serão devidamente explicados conforme necessário.
Tabela 4.1 – Paleta de comandos e seus grupos de blocos
No canto inferior-direito, encontra-se o Controlador NXT, onde podemos fazer o download dos programas criados para o NXT, além de verificar características do NXT, como bateria restante, memória ocupada, etc.
Agora que você já conhece o layout básico do programa, está na hora de começar a conhecer os Blocos de Programação.
A programação em blocos do LEGO MINDSTORMS NXT-G é a linguagem de programação principal para se programar o Kit LEGO MINDSTORMS. Cada bloco existente no programa possui certas configurações, que precisam ser observadas da mesma forma, para que o bloco faça exatamente o que se quer. Esta seção vai cobrir, além de uma breve descrição dos principais blocos, o conceito de Fios de Dados ( Data Wires ), necessário para trabalhar melhor com informações coletadas pelo programa ou pelos sensores.
5.1 - MOVE BLOCK
O Move Block serve para girar os servo-motores em sentido horário ou anti-horário, e dessa forma, fazer com que seu robô ande para frente ou para trás em uma linha reta, ou girar para poder fazer uma curva. Você pode também definir a distância percorrida pelo seu robô através da configuração de duração do movimento. Ao arrastar o Move Block para a linha de comandos, as seguintes configurações padrão que irão aparecer nele são:
Janela NXT
Fazer download (^) Parar o programa
Fazer download e iniciar
Figura 4.3 - Controlador NXT e descrição dos seus botões
oferecida aos dois sensores de forma automática. Ao deslizar o botão, o motor da esquerda ou da direita receberá mais ou menos potência, o que é útil para fazer curvas;
5.2 - DISPLAY BLOCK
O Display Block serve para poder exibir uma imagem ou texto na tela de LCD do seu NXT. Ao inserir vários Blocos Display em sequência, você pode ir criando imagens mais complexas, ou adicionando mais texto na tela, conforme desejar. O uso da tela de LCD é importante para que você tenha uma espécie de controle do que está acontecendo dentro de seu programa, quando o robô estiver em funcionamento.
5.2.1 - Configurando o Display Block
Para exibir uma imagem (como na imagem acima), você poderá configurar as seguintes opções:
Para exibir texto (como na imagem acima), você poderá configurar as seguintes opções:
5.3.1 - Configurando o Touch Sensor Block
5.4 - LIGHT SENSOR BLOCK:
O sensor de cores do bloco possui dois modos: um para a detecção de cores diferentes e o outro para medir a intensidade da luz. Os modos podem ser usados dentro de condições impostas por loops ou mesmo por comando Wait, as informações podem ser tanto comparação de intensidade de luz quanto tonalidades.
1- Número da porta aonde o Sensor de cor esta ligado, este pode ser mudado pelas configurações do bloco. 2- Este ícone mostra o modo de sensor de cor.
3- O concentrador de dados do bloco irá abrir automaticamente, quando o bloco é colocado na área de trabalho. Você pode arrastar fios que ligam informações dos dados obtidos pelo bloco para outro.
5.4.1 Configurando no modo sensor de cor:
1- O número no canto superior direito do Color Sensor bloco mostra qual porta NXT estará controlando o bloco. Você pode mudar este número no painel de configuração, se você precisar. 2- Este ícone mostra o modo de sensor de luz e da cor selecionada na barra de função: vermelho, verde ou azul. 3- Este ícone indica a tonalidade da cor definida 4 - Use os controles deslizantes direita e esquerda para definir a faixa de cores que irá definir o intervalo de cor: preto, azul, verde, amarelo, vermelho e branco.
5.4.2 - Configurando no modo Light Sensor
1- Use o controle deslizante para definir o valor desejado ou digite um valor diretamente na caixa de entrada. Selecione o botão à direita do controle deslizante com a opção maior ( > ) se você deseja comparar valores maiores do que o escolhido, escolha a opção menor (<) se deseja comparar valores menores que o escolhido. 2- Se você marcar a caixa de seleção "Light", o sensor de luz vai se transformar em sua própria fonte de luz e detectar essa luz, se ela é refletida de volta para ele. A luz padrão gerada será vermelha, mas você pode escolher verde ou azul dependendo da superfície. Se a luz estiver selecionada, a cor a ser acionada será mostrada como um