Lego Mindstorms, e uma pequena introdução a robótica

Bom dia pessoal, espero que todos tenham uma ótima semana! No primeiro artigo desta semana quero falar um pouco sobre um produto que tive contato a pouco mais de dois meses, durante minhas aulas, introdutórias, de robótica. Trata-se do Lego MindStorms, que apesar de ser um produto da famosa Lego  é muito mais do que um brinquedo.

Mas o que é o Lego MindStorms?

Bom, de forma bem simples trata-se de kit composto de um controlador, alguns motores, eixos, e centenas de peças de Lego que permitem ao usuário construir dezenas de robôs diferentes, sim robôs, e o melhor de tudo:  programáveis.

Ou seja, você monta o robô escreve o programa para eles executar, transfere via Usb ou infravermelho e pronto! Daí basta usar a imaginação.

Veja abaixo alguns vídeos de robôs MindStorms em ação:

E aí curtiu? Demais né, bom mas e como programar o Lego MindStorms? Bom vamos a alguns conceitos básicos, primeiro a linguangem de programação, trata-se do NQC, uma linguagem escrita por Dave Baum, projetada especialmente para os robôs Lego.

Apesar de pouco conhecida a linguagem pode ser considerada simples e de fácil aprendizado, bastando um pouco de prática para que você possa domina-la, a IDE de desenvolvimento utilizada será o RCX Command Center, ele vai ajudar você a escrever o código, compilar e enviar aos robôs.

Bom, até aí tudo bem, mas que tal darmos uma olhada em um programa simples?

task main() {

 OnFwd(OUT_A); 
 OnFwd(OUT_C); 
 Wait(400); 
 OnRev(OUT_A+OUT_C); 
 Wait(400); 
 Off(OUT_A+OUT_C); 

Algo bem simples para começar , os programas NQC sempre são compostos de tarefas daí o código estar englobado em “task” sendo “main” a sua tarefa inicial. A partir desse ponto temos as instruções (statements), sempre finalizados por ; como qualquer boa linguagem de programação 🙂

Analisado as instruções temos:

OnFwd(OUT_A);
Este comando diz ao robô para habilitar (energizar) a saída A, isto é, o motor conectado à saída A do RCX girará para frente. Ele moverá com a velocidade máxima, a menos que a velocidade seja configurada antes da execução deste comando

OnFwd(OUT_C);
Semelhante à instrução anterior, porém agora girará o motor C. Após a execução desses dois comandos, ambos os motores estarão girando e o robô se move para frente.

Wait(400);
Agora é hora de esperar por um período de tempo. Esta instrução nos diz para aguardar pelo período de 4 segundos.

OnRev(OUT_A+OUT_C);
Tendo o robô se movimentado o suficiente para frente, diremos a ele para se mover no sentido reverso, ou seja, para trás. Observe que nós podemos configurar ambos os motores de uma única vez, utilizando OUT_A+OUT_C como argumento. Nós poderíamos ter combinado as duas primeiras instruções desta maneira.

Wait(400);
Novamente, esperamos por 4 segundos.

Off(OUT_A+OUT_C);
E, finalmente, desligamos ambos os motores.

Bem simples, bem direto, mas esse é apenas o começo dentro da infinidade de possibilidades que o kit Mindstorms nos dá, nos próximos dias vou trazer aqui mais algumas dicas sobre a linguagem NQC e a utilização de robôs MindStorms!

Um Abraço e até a próxima.


	

Leave a Reply

Your email address will not be published. Required fields are marked *