Lego Mindstorms

 

O kit de Robótica Educacional com o qual esta sequência didática foi elaborada é o kit 9797 LEGO MINDSTORMS. Diferente dos blocos de montar Lego mais comuns, o kit consiste, além de suas peças, de três servo-motores que fazem o robô se mover, vários sensores que o robô usa para interagir com o ambiente ao seu redor, e do NXT Intelligent Brick (ou somente NXT, visto na figura 1), considerado o cérebro do robô.

 

 

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.

O lego Mindstorms possui uma ferramenta de programação baseada no sistema LabView, da National Instruments, uma linguagem para prototipação rápida.

Quando estamos lidando com robótica, surge a necessidade de adicionarmos comando específicos para controlarmos motores sensores, além dos comandos sobe dados abstratos como operações matemáticas e etc.

A imagem abaixo (figura 2) 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:

 

 

Programar no Mindstorms é muito similar a descrever um fluxograma, bastando arrastar blocos das paletas de comando para a área de trabalho, em ordem.

Ao programar o lego Mindstorms, não se esqueça que, apesar de toda a estrutura construída, o NXT controla apenas os sensores e motores instalados dentro dele (figura 4). Deve-se adequar a programação a essa realidade, e não supor que o robô irá adaptar seus comandos a sua forma.

 

 

Quando for programar no Lego Mindstorm, é importante conhecer exatamente o que está fazendo para isso vamos ver aqui alguns dos blocos que serão usados na aula prática desta sequência didática, como já havíamos mencionado no início o nosso objetivo principal não é ensinar a programar e sim dar uma noção básica para a realização da aula prática.

O NXT é o centro do Lego Mindstorm, o cérebro das operações. Todos os sensores e motores utilizados devem ser ligados nele. O bloco possui quatro botões (três deles podem ser usados nos programas) e um pequeno alto-falante.

Como mostrado na figura 5, o NXT possui tres portas de saída(output), onde se conectam os motores. Essas portas estão acima do visor (portas A, B e C). Abaixo dos botões estão mais quatro portas, as de entrada (input), onde se conectam os sensores (portas 1, 2, 3, e 4).

A porta USB para comunicação com o software está próxima às portas de comunicação com os motores. Através dela podemos instalar os programas do computador para o robô, e também coletar dados do robô para o computador.

 

 

 

 

Na parte superior do visor, no canto esquerdo, vemos ícones que informam sobre o status e da conexão bluetooth ou USB do robô. No canto direito vemos o ícone da bateria informando a carga disponível.

 

 

 

O botão central laranja é a tecla Enter do robô. Ele também é usado para ligar o robô. As setas direcionais, em cinza claro, são utilizados para a navegação nos menus disponíveis no visor.

O botão inferior, em cinza escuro, é utilizado para a navegação nos diferentes níveis dos menus. Também pode ser usado como o botão voltar e desligar.

No canto esquerdo do ambiente de programação, encontram-se a Paleta de Comandos, onde estão os blocos que iremos usar para programar. Ela pode ser exibida de três formas: Common, Complete, e Custom. Usaremos apenas a exibição common (comum) em nossa proposta de aula (figura 7).

 

 

Para execução da atividade usaremos apenas dois tipos de bloco desta paleta o bloco move e wait (figura 8).

 

 

 

 

 

 

Comando move:

Use este bloco para configurar seu robô para ir para frente ou para trás em uma linha reta ou girar seguindo uma curva. Defina quanto longe o robô irá usando a propriedade duração.

 

  1. As letras que estão no canto superior direito do bloco mostram quais as portas do NXT que serão controladas.
  2. Este ícone mostra em qual direção o robô irá.
  3. Este ícone mostra o nível da força. A velocidade do robô poderá ser afetada por outras condições, como o tipo de superfície esteja se movendo ou se ele está subindo ou descendo uma ladeira.
  4. Este ícone mostra se você ajustou a propriedade de Duração para ilimitada, graus, rotações ou segundos.

 

  1. Este ícone mostra que a propriedade Direção está "parada". Este ajuste parará todos os motores.

Configurando o Bloco de Movimento

 

 

  1. Selecione os motores que você gostaria de controlar. Se você escolher controlar dois motores (Exemplo: B e C), os motores serão sincronizados, indo para frente ou para trás com exatamente a mesma força. Se você selecionar três motores, os motores B e C estarão sincronizados.
  2. Escolha se o motor vai rodar para frente, para trás ou permanecer parado. Selecionar Parar também reiniciará os motores. (Veja também o arquivo Reiniciar o Bloco do Motor.)
  3. Se você estiver usando dois motores para conduzir um veículo (um em cada lado), o controle deslizante de Direção aparecerá com as letras das portas selecionadas em cada lado. Movimente o controle deslizante para ajustar o caminho em forma de curva para o robô. Com o controle deslizante todo para um lado fará o veículo rodar no mesmo lugar.
  4. Este controle deslizante e a caixa de edição de entrada permitirão que você configure o nível da força [0-100%].
  5. Usando o menu de contexto Duração, ajuste os motores para rodar por um tempo indeterminado ou para um número de rotações [padrão], graus ou segundos. Se escolher Tempo, Rotação ou Graus você pode controlar o quão distante o robô andará. (Veja as Sugestões abaixo.)
  6. Escolha se os motores vão parar ou desacelerar após terminarem sua ação. Se você quiser que o robô pare precisamente numa posição exata, ajuste os motores para frear. Configurando os motores para frear também pode manter o robô lentamente andando para trás numa rampa mas este ajuste consumirá as baterias do NXT rapidamente pois os motores estão fazendo um trabalho para manter o robô no lugar.
  7. As caixas de retorno contarão quantos graus ou rotações completas os motores executaram. Pressione o botão reiniciar para retornar os valores para zero. (Para receber um retorno, certifique-se de que os motores estejam conectados na porta escolhida e que a comunicação foi estabelecida com o NXT.)

 

 

 

Bloco wait:

O bloco wait determina uma espera, que pode ser em função do tempo do evento de um dos sensores. Em nossa atividade usaremos apenas dois tipos de sensores, o sensor de distância e o sensor de som.

 

 

Sensor de distância:

Este bloco pode detectar objetos a uma distância máxima de cerca de 100 polegadas (250 cm). Usando fios de dados, ele pode enviar a leitura de ultra-som e um sinal lógico (true / false) com base na leitura de ultra-som atual, verificando se esta se situa acima ou abaixo de um ponto escolhido.

 

 

1- O número mostra qual das portas está conectado ao sensor ultra-sônico. Você pode mudar este número no painel de configuração, se você precisar.

2- Este ícone mostra se o sensor de ultra-som está definido para detectar objetos próximos ou distantes. As barras mais coloridas indicam distâncias maiores de detecção.

3- O concentrador de dados do bloco irá abrir automaticamente quando o bloco for colocado na área de trabalho. Você pode arrastar fios que ligam informações dos dados obtidos pelo bloco para outro.

Configurando o Bloco do Sensor Ultrassônico

 

Define em qual porta você deseja por o sensor, por padrão este está na 4.

2- Nesta opção você pode usar a barra deslizante para escolher a distância de comparação que você deseja medir; na opção logo abaixo da barra você decide se irá procurar por valores maiores ou menores em relação ao escolhido.

3- Nesta opção você escolhe a unidade de comprimento, centímetros ou polegadas.

4- A caixa de diálogo te mostra qual a maior e a menor medida que pode ser mensurada, de acordo com cada unidade.