Anda di halaman 1dari 13

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL

INSTITUTO DE INFORMTICA




















INTRODUO AO LEGO RCX E AO PROGRAMA ROBOLAB


















Material desenvolvido por:
Cassiana Chassot Flber
Tyron Witte Neetzow Scholem





Porto Alegre
2008




2

Contedo
Introduo .................................................................................................................................................... 3
Introduo ao RCX ........................................................................................................................................ 4
Instalando o RoboLab e Preparando o RCX .................................................................................................... 5
Utilizando o RoboLab .................................................................................................................................... 6
1) Controlando Motores .......................................................................................................................... 11
a. Movimentos Bsicos - Frente........................................................................................................... 11
b. Movimentos Bsicos R ................................................................................................................ 11
c. Controlando Fora dos Motores ...................................................................................................... 12
d. Fazendo Curva ................................................................................................................................ 12
2) Sensores ............................................................................................................................................. 13
a. Sensor de Toque ............................................................................................................................. 13
b. Sensor de Luz .................................................................................................................................. 13
3) Loops .................................................................................................................................................. 13






3

INTRODUO
Essa apostila direcionada para alunos que esto tendo seu primeiro contato com o rob RCX da linha
LEGO MINDSTORMS. Comearemos apresentando o RCX, bem como seus componentes. Em seguida, vamos
introduzir o software RoboLab 2.5.4, utilizado na programao do rob.
Esse guia uma breve introduo, que habilitar o leitor a programar comandos bsicos e test-los no LEGO
RCX. Abordaremos apenas a parte de programao do software (item Programmer da tela inicial), apresentando a
estrutura Inventor. Este material complementa o guia de referncia do RoboLab, sendo mais dinmico e pragmtico.
Auxiliaremos o leitor na instalao do software RoboLab e no preparo do seu RCX para conexo com o
computador. A montagem do bloco principal do rob deve ser feita de acordo com o manual do mesmo e no ser
abordada aqui.




4

INTRODUO AO RCX
O Lego RCX a primeira gerao da linha Lego Mindstorms, desenvolvida pela Lego. um bloco programvel
que traduz um programa desenvolvido no software RoboLab, executando as funes desejadas. Seu pblico alvo
so estudantes, tanto de Ensino Mdio quanto Fundamental.
A configurao bsica do kit composta por um bloco programvel, uma torre de infravermelho, dois
sensores de toque, um sensor de luz, dois motores, um visor de LCD, trs portas de conexo de sensores e trs sadas
para motores ou lmpada. Em seguida explicaremos cada um desses componentes. O download dos programas
escritos no RoboLab feitos atravs da torre de infravermelho, que deve estar conectada ao computador.












O bloco programvel a parte principal do rob, pois responsvel pela interpretao do programa
escrito. A torre de infravermelho serve para transferir os programas do computador para o bloco programvel. O
visor de LCD disponibiliza dados da bateria, status das entradas e sadas, qual programa est selecionado, entre
outras informaes. As portas de conexo servem para conectar os dispositivos, como os sensores e os motores. Os
motores, por sua vez, fornecem energia para que o rob se movimente e realize demais funcionalidades.
Os sensores de toque indicam quando o rob encosta ou colide com algum objeto que esteja em seu
caminho. O sensor de luz identifica diferentes intensidades de reflexo de luz, podendo, inclusive, diferenciar cores
conforme a reflexo das mesmas. Assim, os sensores so uma ferramenta poderosa na elaborao de programas para
o Lego, pois permitem que o aluno explore o ambiente.
Alm dos dispositivos que acompanham o Lego RCX, outros podem ser adquiridos e conectados ao bloco.
Exemplos destes so: sensor de temperatura, cmera de vdeo, sensor de som, medidor de pH, medidor de umidade
relativa, medidor de tenso, entre outros.

Sensor de Toque
Sensor de Luz
Sensor de Toque
Motores




5

INSTALANDO O ROBOLAB E PREPARANDO O RCX
1) Insira o CD-ROM do RoboLab no drive de CD de seu computador e inicie a instalao. Siga as instrues
de instalao do programa. Todo o processo deve levar cerca de 20 minutos. NO conecte a torre de infravermelho
ainda!
2) Enquanto espera que a instalao termine, insira seis pilhas AA no seu RCX. Remova a proteo cinza e
coloque-as observando os indicadores na parte de baixo do rob. Voc pode usar pilhas recarregveis.
3) Quando o software estiver instalado, voc dever desmarcar a opo Launch RoboLab, para que o
software ainda no inicie.
4) Agora voc deve conectar a torre de infravermelho ao computador. Verifique se o RoboLab est
desativado antes de conectar a torre de infravermelho. O RoboLab NO ir reconhecer a torre se voc conect-la
enquanto o software estiver ligado. Se voc possui uma porta USB infravermelho, simplesmente conecte-a na porta
USB.
5) Se voc tem um infravermelho serial voc deve inserir uma bateria de 9 volts antes de conectar com a
porta serial (porta COM).
NOTA: A comunicao infravermelha entre a torre de infravermelho e o RCX alcana at 10 metros de
distncia. Entretanto, a comunicao pode ser interrompida se diversos RCX estiverem prximos torre. Portanto, a
torre de infravermelho deve ficar sempre prxima ao RCX quando voc estiver trabalhando com mais de um RCX na
mesma sala. Para a torre USB, ajuste as configuraes no Painel de Controle do Windows. Clique no cone Iniciar no
seu desktop, abra o Painel de Controle, selecione o cone Lego USB Tower e selecione a Infrared Range para Short.

Para selecionar o curto alcance na torre de infravermelho mova a chave da torre para a esquerda.









6

UTILIZANDO O ROBOLAB
Antes de iniciarmos a construo de programas para o RCX, devemos montar o rob de teste e conectar os
motores s portas de entrada A, B e/ou C. Ao longo deste guia, iremos padronizar que as portas utilizadas sero a A e
a C para os motores da esquerda e da direita do rob, respectivamente.
Uma vez concluda a etapa de montagem do dispositivo, inicie o programa RoboLab, onde voc encontrar
as opes Administrator, Programmer e Investigator. A primeira opo oferece ferramentas para configurao do
RCX, assim como para sua correta comunicao com o computador. A opo Investigator possibilita a construo de
sistemas mais complexos, utilizando os sensores supracitados para coleta de informaes, plotagem de grficos e
relatrios, entre outros.
Para as construes que iremos abordar, utilizaremos a funo Programmer, que internamente est dividida
em Pilot e Inventor. O modo Pilot oferece uma interface mais amigvel para usurios iniciantes, mas, devido sua
pouca flexibilidade de personalizao, no ser utilizado nos exemplos deste guia. Em contrapartida, incentivamos os
leitores a explorar as possibilidades oferecidas por este recurso, pois pode ser uma tima ferramenta para o trabalho
com aluno do Ensino Fundamental.
A interface Inventor oferece mais recursos do que o modo Pilot, embora primeira vista parea mais
complexa, pois apresenta as ferramentas de forma mais estruturada e clara. Com essa interface, o usurio pode ver
seu programa de forma linear, todo em uma tela, diferentemente do que acontece no modo Pilot.
A seguir, utilizaremos algumas imagens demonstrar as funcionalidades mais bsicas do programa. Nessa
etapa, apresentaremos apenas o modo Inventor, que ser o utilizado durante o curso.
Na tela acima podemos visualizar a rea de trabalho que oferecida para a construo dos programas. Por
padro, esta tela dividida em duas janelas; como os programas so construdos na janela de baixo (Block Diagram),
podemos maximizar esta tela para aumentar a rea visvel. Dois smbolos padres so automaticamente inseridos,
sendo eles:
Incio do programa Final do programa
Tela principal do modo Inventor




7

Os smbolos no programa so inseridos, primeiramente, sem as ligaes presentes nas imagens acima. Estes
fios so os conectores entre os smbolos, que permitem as interaes das aes escolhidas.
Antes de continuarmos o estudo da tela principal deste modo, no intuito de facilitar a construo das
ligaes entre os smbolos, devemos mudar uma configurao padro do programa. Na parte superior da tela, h
uma janela (chamada Front Panel) na qual existe um menu Window. Clicando neste menu, selecione a opo Show
Tools Palette. Inicialmente, a ferramenta que abre apresenta a seguinte configurao:

O primeiro item dessa tela configura a seleo automtica de ferramenta. Com este item ativado, o mouse
assume automaticamente a funo de arrastar (para mover) os smbolos, quando sobre eles, ou a funo de criar
novas ligaes, quando posicionado sobre o respectivo local no smbolo. Se este item estiver desativado, o usurio
deve selecionar manualmente a ao do mouse atravs da barra de espao, no teclado.

Nessa imagem observamos as funes principais do programa. Vamos apresentar os comandos principais, de
forma individual.
Primeiramente mostraremos comandos que seguem o mesmo padro. Quando o smbolo aparece sozinho,
sem nenhuma letra, sua funcionalidade aplicada sob uma entrada arbitrria. Para selecionarmos a porta,
Configurao aps modificao

Configurao padro




8

precisamos acrescentar um modificador (Modifier), sendo que a letra do modificador corresponde porta a qual o
dispositivo est conectado. Outra forma semelhante aparece com a letra correspondente diretamente no smbolo.

Analogamente, definimos diversas funes:



Alm dessas funcionalidades, temos tambm:









Com isso terminamos a parte superior desse menu. Agora vamos analisar a parte inferior. Vamos analisar
trs desses smbolos, sendo que todos abrem submenus.
1) Tempo
2) Loop
3) Modificadores

Porta
Fora
Acende bloco lmpada conectado a uma entrada arbitrria.
Porta
Fora
Aciona um motor arbitrrio para trs.
Porta
Desativa uma entrada arbitrria.
Sem modificador, esse comando desativa todas as entradas
Desativa todas as entradas.
Porta
Inverte a direo do motor, considerando um motor ligado.
Toca som conforme o nmero digitado:
1) Pressionamento de tecla
2) Beep beep
3) Escala descendente
4) Escala ascendente
5) Buzz
6) Escala ascendente rpida
Nmero
Porta
Comando float: pra o motor de forma gradual. Deve ser usado
com modificadores.




9

1) Tempo










Vamos agora analisar o menu interno. As funes de tempo que contm algarismos no smbolo indicam que
o comando que os precedem sero executados por aquele tempo determinado.






O segundo bloco de funes corresponde a funes de sensores.










Ligada a um modificador indica tempo de execuo de um
procedimento em segundos.
Executa as funes por um segundo.
Ligada a um modificador indica tempo de execuo de um
procedimento em minutos.
Espera at que o sensor de luz identifique aumento da luminosidade.
Espera at que o sensor de luz identifique diminuio da luminosidade.
Espera at que o sensor de luz identifique presena de luz.
Espera at que o sensor de luz identifique ausncia de luz.
Espera que, depois de pressionado, o sensor de toque seja liberado.
Espera que o sensor de toque seja pressionado.




10

2) Loop















3) Modificadores












Loop enquanto o sensor de toque seja pressionado
(esquerda) ou liberado (direita).
Loop enquanto o nmero de toques (esquerda) ou liberaes
(direita) for menor que o valor indicado.
.
Loop enquanto o sensor de luz indicar intensidade luminosa menor (esquerda) ou
maior (direita) do que o indicado.
Incio de loop.
Fim de loop.
Esses smbolos indicam os motores conectados a cada uma das portas de entrada do bloco
programvel, respectivamente.
Usado para definir uma constante numrica.
Indicam os sensores conectados a cada uma das portas de entrada do bloco programvel,
respectivamente.
Indicam a intensidade da fora de motores programvel, respectivamente.




11

1) Controlando Motores
a. Movimentos Bsicos - Frente
Nas duas prximas sees mostraremos como movimentar o rob para frente e para trs. Iniciaremos este
estudo criando um novo projeto, no qual inseriremos os botes correspondentes s aes dos motores. O smbolo
que ser utilizado :

Utilizando as funes acima, iniciaremos o nosso primeiro projeto, que tem como objetivo movimentar o
rob para frente. Para isso, logo aps o smbolo de Incio colocaremos os smbolos correspondentes ao movimento
do motor A e C, orientados para frente. Logo aps, o smbolo de Fim encerra o programa.


importante observar que o programa acima pode ser escrito de outras maneiras, como as representadas
abaixo.
Particularmente, iremos explorar esta terceira maneira de representao, pois rene em um mesmo smbolo
as funcionalidades similares. Desta forma, a escolha da fora do motor, assim como a durao do movimento, pode
ser escolhida somente uma vez para todo o movimento, no lugar de uma vez para cada smbolo. Adiante,
exploraremos melhor este tipo de recurso.
b. Movimentos Bsicos R
Para um segundo exemplo, introduziremos o conceito de r para o rob. Como o nosso movimento ser
iniciado conforme exemplo anterior (para frente), devemos abordar tambm o sinal de freio para os motores. A
figura a seguir demonstra este projeto.
Portas
Fora
Aciona um motor arbitrrio para frente.
O programa liga os motores A e C na fora padro (5) e encerra a sua execuo.




12



c. Controlando Fora dos Motores
O recurso de alterar a fora do movimento dos motores fundamental para a realizao de tarefas mais
complexas. Alm de controlar a velocidade com que o rob se movimenta, no caso da utilizao de rodas, pode ser o
controle da fora com que o RCX segura um objeto, caso o motor esteja ligado a garras. Tambm permite o
movimento em curvas, como ser tratado na seo seguinte.
Modificaremos o exemplo anterior para fazer o rob andar mais rapidamente para frente do que para trs.
d. Fazendo Curva
H diversas maneiras de se configurar uma curva, dependendo da intensidade com que se quer que o rob a
realize. As trs principais formas so:
1) Manter ambos os motores com movimento para frente, mas um deles com fora maior do que o
outro. Dessa forma, o rob vai, gradativamente, fazer a curva para o lado do motor que possui
menor fora;
2) Manter um motor ligado para frente enquanto freia o outro. Realizando este procedimento, o rob
ir virar para o lado que possui o motor parado, percorrendo uma distncia muito menor do que na
forma anterior;
3) Manter um motor para frente e colocar o outro motor com movimento para trs. Caso esta ao
seja realizada com motores na mesma intensidade, deve resultar em um giro de 90 para o lado
com o motor reverso. Assim, possvel fazer curvas rpidas, sem um deslocamento significativo
para frente.
Para fixar o aprendizado relativo a motores, propomos como atividade fazer o rob andar em um quadrado.
Delimite um quadrado no cho da sala e teste se o seu rob consegue andar sobre ele.
O programa liga os motores A e C na fora padro, pra o movimento e
j inicia o movimento reverso, encerrando a execuo logo aps.
O programa liga os motores A e C na fora 4, pra o movimento e j inicia o
movimento reverso, na fora 1, encerrando a execuo logo aps.




13

2) Sensores
Conforme j mencionamos, o conjunto Lego RCX inclui dois sensores de toque e um sensor de luz. O sensor
de luz avalia a intensidade de luz local, ou seja, a quantidade de luz refletida pelo material prximo ao sensor. J o
sensor de toque identifica quando o rob colide com objetos. Desse modo, os sensores podem ser usados no
controle de laos, ou seja, podemos definir uma rotina de comandos e ordenar que o rob execute essa rotina at
que perceba uma mudana no ambiente. Isso significa que o rob dever executar uma srie de comandos at que a
condio de um dos sensores (ou de ambos) seja alterada. No necessariamente o programa deve terminar;
podemos alterar a funcionalidade do rob, definindo outro bloco de comandos posterior mudana.
Como exemplo da aplicao de sensores, podemos estabelecer como finalizador de um procedimento o
choque do rob com um objeto (pressionamento do sensor de toque) ou a liberao do sensor de toque. Podemos
tambm utilizar o sensor de luz, definindo uma nova tarefa quando o rob perceber alteraes na intensidade de luz
ou quando detectar uma intensidade especfica de reflexo.
Propomos as seguintes atividades prticas:
a. Sensor de Toque
Desenvolver um programa que mova o RCX (em qualquer direo) at que o sensor de toque seja
pressionado. Aps o teste do programa e a correo dos possveis erros, tente programar uma nova tarefa a ser
executada quando o sensor de toque for liberado. Teste a eficincia de seu trabalho segurando o sensor por um
tempo e observe se o rob executa alguma tarefa nesse perodo.
b. Sensor de Luz
Use o RoboLab para montar uma tarefa especfica que o rob deve executar at encontrar uma regio com
menor intensidade luminosa. Voc pode fazer o rob ficar em movimento cclico e diminuir a intensidade luminosa
da rea ou pode faz-lo andar pela sala em caminhos aleatrios em busca de uma regio mais escura. Depois de
testar seu programa, procure mudar os nveis de intensidade de luz que fazem com que o rob pare. Aumente e
diminua esse valor e veja o comportamento do Lego.
3) Loops
Movimentos em loop so movimentos repetitivos, como andar sempre para frente, ou andar para frente e
para trs. Um loop definido como uma tarefa que executada indefinidamente at que algo a faa parar. Aqui
estamos falando de uma pausa forada, como, por exemplo, utilizando um contador de tempo ou uma alterao nos
sensores.
Loops podem ser utilizados em rotinas nas quais queremos que o rob tenha uma determinada atitude
apenas em um momento especfico, e que no tempo restante execute uma funo padro.
Por exemplo, podemos programar um RCX para ficar vigiando a porta de uma sala de aula. O rob ficar
andando de um lado para o outro da porta e, cada vez que uma pessoa passar ele dever emitir um som. Em seguida,
dever retornar a sua tarefa de vigia. Nesse caso utilizamos o loop, pois queremos que o rob fique sempre vigiando
a porta, mesmo depois de avisar que algum entrou ou saiu da sala.
Para fixar esse conceito e aprimorar o uso dos comandos de loop, propomos a seguinte atividade: fazer um
programa que faa o rob andar para frente. Caso encontre um objeto no caminho, o RCX dever desviar e retornar
ao loop. Teste seu programa adicionando objetos no caminho do rob e observe os desvios de rota que ele far.
Lembre-se de que o rob est em loop e, portanto, teremos de estabelecer uma sada definitiva da rotina para que
possamos desligar o equipamento com segurana. Essa sada pode ser controlada por tempo ou por sensores.