Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Apostila de Robótica Educacional, Manuais, Projetos, Pesquisas de Introdução à Robótica

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

2019

Compartilhado em 25/09/2019

prakilzer1
prakilzer1 🇧🇷

5

(1)

1 documento

1 / 51

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Universidade Federal Fluminense
TEE - Departamento de Engenharia Elétrica
Programa de Educação Tutorial da Engenharia Elétrica -
PET-Elétrica
Apostila de Robótica Educacional
Versão 1.0
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
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33

Pré-visualização parcial do texto

Baixe Apostila de Robótica Educacional e outras Manuais, Projetos, Pesquisas em PDF para Introdução à Robótica, somente na Docsity!

Universidade Federal Fluminense TEE - Departamento de Engenharia Elétrica Programa de Educação Tutorial da Engenharia Elétrica - PET-Elétrica

Apostila de Robótica Educacional

Versão 1.

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

Sumário

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.

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.

2 - O QUE É PROGRAMAÇÃO?

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.”

3.1 – NXT

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

3.2 - SERVO-MOTORES

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.

3.3.3- SENSOR ULTRASSÔNICO

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.

3.3.3- SENSOR DE SOM

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

4 - VISÃO GERAL DO SOFTWARE

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

4.2 - CONTROLADOR NXT

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.

5 - 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;

  1. Regula o nível de potência dada para os motores, de 0 a 100%;
  2. Escolhe de qual forma será controlada a Duração do movimento do robô (por rotações do motor, por graus de giro, segundos decorridos ou de forma infinita). Controlando a duração do movimento, é possível controlar a distância percorrida pelo robô.
  3. Escolhe a próxima ação do seu robô (após a duração do movimento ser respeitada). Os motores podem frear ( Brake ) ou estacionar ( Coast ). O comando Brake faz com que o motor pare com mais precisão. Ele também gasta mais energia, visto que realmente trava as engrenagens do seu motor. Já o comando Coast para os motores mais suavemente.
  4. As três caixas de feedback fazem a contagem dos graus de giro ou rotações dadas pelo motores em tempo real, com o programa rodando, mas ainda ligado ao computador pelo cabo USB. Aperte o botão reset para zerar os valores exibidos.

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

  1. Nesse menu você pode escolher se vai exibir uma imagem, texto, ou um desenho próprio; ou escolher a opção Reset , para apagar o display.
  2. A opção Clear serve para apagar o conteúdo da tela.

Para exibir uma imagem (como na imagem acima), você poderá configurar as seguintes opções:

  1. Em File ( Arquivo ), você poderá escolher uma imagem do arquivo de imagens para exibir.
  2. Em Position ( Posição ), você pode arrastar sua imagem exibida para qualquer canto da tela, ou inserir as coordenadas X e Y de onde exatamente você quer que a imagem seja impressa na tela.

Para exibir texto (como na imagem acima), você poderá configurar as seguintes opções:

  1. Escrever o texto desejado na caixa Text.
  2. Em Position ( Posição ), você pode arrastar seu texto para ser exibido em qualquer canto da tela, ou inserir as coordenadas X e Y de onde exatamente você quer que o texto seja impresso na tela.

5.3.1 - Configurando o Touch Sensor Block

  1. Seleciona a porta que o Sensor de Toque está conectado.
  2. O Sensor de Toque pode ser acionado de três formas: Escolha Bumped ( encostado ) se você quer que o sensor seja acionado após ser pressionado e liberto rapidamente (menos de 0,5 segundos). Escolha Pressed ( pressionado ) se você quer que o sensor seja ativado no exato momento em que é pressionado. E por fim, escolha Released ( liberado ) se você quer ativar o valor lógico True quando o sensor for solto (caso contrário da opção Pressed).
  3. A caixa de feedback permite que você teste seu sensor de toque, quando o robô ainda está conectado ao PC pelo cabo USB. Se você apertá-lo, dependendo da opção que marcou em (2), irá surgir o valor 0 ou 1 na caixa. Clique em Reset para limpar a caixa após o sensor ter sido apertado.

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