Lego-Mindstorms

MINDSTORMS é o nome de uma das linha de produtos vendido pela LEGO. O carro chefe dessa linha de produtos é o Robotic Invention System (RIS), que é um conjunto de peças que permite a construção de robôs. Com este conjunto é possivel a construção de robôs de maneira simples e rápida .

O (Kit) RIS possui um conjunto de "tijolo" que pode ser considerado o cérebro do robô, o qual é chamado de Robotic Command Explorer (RCX). O RCX é na verdade um pequeno computador encapsulado num tijolo LEGO. O conjunto inclui também 2 sensores de toque, ums senso de luz e 2 motores. Além dessas peças, que em conjunto com o RCX permitirão que o robô possa "sentir" e se locomover no meio em que encontra, o RIS oferece 700 peças LEGO podem ser utilizadas para construir o corpo do robô.

Ainda mais, é possível escrever programas que rodam no RCX utilizando linguagem de alto nível. Estes programas uma vez escritos, podem ser carregados no RCX através de um conexão feita por raios inframermelhos. Para tal, o conjunto é provido de um dispositivo que uma vez conectado a porta serial de um microcomputador realiza esta tarefa. Este dipositivo é chamado de torre IR (do inglês Infrared Tower).

A figura 1 apresenta o esquema básico de comunicação entre um microcomputador e o RCX. A construção de um robô utilizando RCX consiste basicamente de qutro passo.

figura 1: Comunicação entre microcomputador e RCX

3.2.1 O RCX

O RCX é o cérebro do robo que está emcapsulado num tijolo LEGO. A figura 2 mostra a fotografia do RCX.

Figura 2: O RCX

O RCX é um pequeno computador com as seguintes características:

Saídas

Três porta de saída, chamadas de A, B e C, que estão localizadas quaze no meio do tijolo. Os atuadores do robô (motores ou luzes) podem ser conectadas a estas portas.

Entradas

Três portas de entrada, chamadas de 1, 2 e 3 são fornecidas. Variados tipos de sensores podem ser conectados a estas portas, permitindo com que o RCX sentir o ambiente em que se encontra,

Tela

O RCX inclui uma pequena tela de cristal líquido. Esta tela apresenta informações úteis tais como o valor da leitura dos sensores e estado das portas de saída.

Som

O RCX é capaz de produzir alguns bips em diferentes frequências

Botões do painel

Existem 4 botões no RCX. Através deles se permite selecionar programas, inicia-los, para-los. Pode-se também escolher visualizar o valor dos sensores conectados ou o estado das portas de saída.

Comunicação Inframermelho

O RCX se comunica com o microcomputador através de uma conexão feita por infravermelho. Ele também pode-se comunicar com outros tijolos RCX através desta conexão.

3.2.2 Considerações sobre Software

Existe um CD_ROM que vem no conjunto RIS e contêm o software destinado como ferramenta para a programação dos robôs. Desta forma, o conteúdo do CD_ROM pode ser divido em 3 partes:

Documentação

O software do RIS inclui uns tutoriais para programação do RCX. Este material inclui animações, filmes e instruções detalhadas passo a passo de como utilizar o software.

Ambiente de Programação

O software do RIS inclui um ambiente que permite escrever programas que podem ser executados no RCX. Esta técnica é chamada de cross-compiling, o que significa escrever um programa num computador porém este programa será executado em um outro. Neste caso, o programa é escrito num microcomputador e executado no RCX.

Algo que devemos enfatizar é que existem vários ambientes de programação para o RCX. O ambiente oficial de programação, o qual faz parte do conjunto RIS, é apenas um deste ambientes.

Carregador de Programas

Uma vez escrito o programa para o RCX, este deve ser carregado no RCX. O carregador de programas do RIS é um aplicativo que é executado apartir do microcomputador e transmite, através da torre IR o programa que o RCX irá executar.

3.2.3 Arquiterura do Software do RCX

Escrever programas para o RCX envolve a passar por várias camadas de software, tanto no microcomputador como no próprio RCX.

A figura 3 apresenta de modo geral dessas camadas.

Figura 3: Arquitetura de Software do RCX

3.2.3.1 ROM

O RCX é um pequeno computador baseado no microcontrolador Hitachi H8/3292. O RCX possui dois tipos de memórias: Memória Somente de Leitura (ROM) e Memória de Acesso Aleatório (RAM). Como o próprio nome indica, a ROM não pode ser escrita. Esta é já vem programada de fábrica e não pode ser mudada. Por outro lado, a RAM pode ser escrita e lida quantas vezes for necesário, com apenas único porém: ela precisa ter uma fonte de força. Isto significa que se as bateria do RCX são retiradas, o conteúdo da RAM é apagado. Sobre circunstancias normais, as baterias preservam a informação armazenada na RAM.

3.2.3.2 Firmware e Bytecode

Uma das primeiras coisa que devem ser realizadas antes de poder utilizar o RCX é carregar o firmware. O firmaware é, esencialmente, o sistema operacional do RCX. As rotinas da ROM sabem como carregar as rotinas do firmware a partir da porta da torre IR e armazena-las na RAM. O firmware é capaz mais do que simplesmente processar as rotinas da ROM. Este pode reconhecer e responder as operações realizada pelos botões do painel do RCX. E o mais importante, pode receber os programas do robô através da porta da torre IR e executá-los.

Embora a primeira vista o firmaware e os programas do robô pareçam a mesma coisa, isto não é verdade. O firmware é na verdade código de máquina do Hitachi H8. Em conjunto com o código de máquina do H8 existente na ROM, o firmware define o sistema operacional do RCX. Este provê acesso as portas de entrada e saída do RCX. Esta provê também o meio que os programas de robô são carregados, armazenados, inicializados e parados.

Os programas de robô que são carregados no RCX não são código de máquina do H8. Eles são definidos num nível mais alto de programação e são chamados de bytecodes. Desta forma, um código de máquina do H8 é bastante rudimentar, tal como "mova este valor para o registrador 1", por outro lado uma instrução em bytecodes é muito poderosa, tal como "ligue o motor 2 a potência máxima". O firmware interpreta o bytecode e executa a ação apropriada.