• Nenhum resultado encontrado

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INTRODUÇÃO AO LEGO RCX E AO PROGRAMA ROBOLAB

N/A
N/A
Protected

Academic year: 2021

Share "UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INTRODUÇÃO AO LEGO RCX E AO PROGRAMA ROBOLAB"

Copied!
13
0
0

Texto

(1)

I

NSTITUTO DE

I

NFORMÁTICA

I

NTRODUÇÃO AO

L

EGO

RCX

E AO

P

ROGRAMA

R

OBO

L

AB

Material desenvolvido por: Cassiana Chassot Fülber Tyron Wittée Neetzow Scholem

Porto Alegre 2008

(2)

2

Conteúdo

Introdução ... 3

Introdução ao RCX ... 4

Instalando o RoboLab e Preparando o RCX ... 5

Utilizando o RoboLab ... 6

1) Controlando Motores ... 11

a. Movimentos Básicos - Frente... 11

b. Movimentos Básicos – Ré ... 11

c. Controlando Força dos Motores ... 12

d. Fazendo Curva ... 12

2) Sensores ... 13

a. Sensor de Toque ... 13

b. Sensor de Luz ... 13

(3)

3

I

NTRODUÇÃO

Essa apostila é direcionada para alunos que estão tendo seu primeiro contato com o robô RCX da linha LEGO® MINDSTORMS™. Começaremos apresentando o RCX, bem como seus componentes. Em seguida, vamos introduzir o software RoboLab 2.5.4, utilizado na programação do robô.

Esse guia é uma breve introdução, que habilitará o leitor a programar comandos básicos e testá-los no LEGO RCX. Abordaremos apenas a parte de programação do software (item Programmer da tela inicial), apresentando a estrutura Inventor. Este material complementa o guia de referência do RoboLab, sendo mais dinâmico e pragmático.

Auxiliaremos o leitor na instalação do software RoboLab e no preparo do seu RCX para conexão com o computador. A montagem do bloco principal do robô deve ser feita de acordo com o manual do mesmo e não será abordada aqui.

(4)

4

I

NTRODUÇÃO AO

RCX

O Lego RCX é a primeira geração da linha Lego Mindstorms, desenvolvida pela Lego. É um bloco programável que “traduz” um programa desenvolvido no software RoboLab, executando as funções desejadas. Seu público alvo são estudantes, tanto de Ensino Médio quanto Fundamental.

A configuração básica do kit é composta por um bloco programável, uma torre de infravermelho, dois sensores de toque, um sensor de luz, dois motores, um visor de LCD, três portas de conexão de sensores e três saídas para motores ou lâmpada. Em seguida explicaremos cada um desses componentes. O download dos programas escritos no RoboLab é feitos através da torre de infravermelho, que deve estar conectada ao computador.

O bloco programável é a parte principal do robô, pois é responsável pela “interpretação” do programa escrito. A torre de infravermelho serve para transferir os programas do computador para o bloco programável. O visor de LCD disponibiliza dados da bateria, status das entradas e saídas, qual programa está selecionado, entre outras informações. As portas de conexão 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 reflexão de luz, podendo, inclusive, diferenciar cores conforme a reflexão das mesmas. Assim, os sensores são uma ferramenta poderosa na elaboração de programas para o Lego, pois permitem que o aluno explore o ambiente.

Além dos dispositivos que acompanham o Lego RCX, outros podem ser adquiridos e conectados ao bloco. Exemplos destes são: sensor de temperatura, câmera de vídeo, sensor de som, medidor de pH, medidor de umidade relativa, medidor de tensão, entre outros.

Sensor de Toque Sensor de Luz

Sensor de Toque Motores

(5)

5

I

NSTALANDO O

R

OBO

L

AB E

P

REPARANDO O

RCX

1) Insira o CD-ROM do RoboLab no drive de CD de seu computador e inicie a instalação. Siga as instruções de instalação do programa. Todo o processo deve levar cerca de 20 minutos. NÃO conecte a torre de infravermelho ainda!

2) Enquanto espera que a instalação termine, insira seis pilhas AA no seu RCX. Remova a proteção cinza e coloque-as observando os indicadores na parte de baixo do robô. Você pode usar pilhas recarregáveis.

3) Quando o software estiver instalado, você deverá desmarcar a opção “Launch RoboLab”, para que o software ainda não 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 NÃO 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 comunicação infravermelha entre a torre de infravermelho e o RCX alcança até 10 metros de distância. Entretanto, a comunicação pode ser interrompida se diversos RCX estiverem próximos à torre. Portanto, a torre de infravermelho deve ficar sempre próxima ao RCX quando você estiver trabalhando com mais de um RCX na mesma sala. Para a torre USB, ajuste as configurações 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.

(6)

6

U

TILIZANDO O

R

OBO

L

AB

Antes de iniciarmos a construção 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 serão a A e a C para os motores da esquerda e da direita do robô, respectivamente.

Uma vez concluída a etapa de montagem do dispositivo, inicie o programa RoboLab, onde você encontrará as opções Administrator, Programmer e Investigator. A primeira opção oferece ferramentas para configuração do RCX, assim como para sua correta comunicação com o computador. A opção Investigator possibilita a construção de sistemas mais complexos, utilizando os sensores supracitados para coleta de informações, plotagem de gráficos e relatórios, entre outros.

Para as construções que iremos abordar, utilizaremos a função Programmer, que internamente está dividida em Pilot e Inventor. O modo Pilot oferece uma interface mais amigável para usuários iniciantes, mas, devido sua pouca flexibilidade de personalização, não 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 pareça mais complexa, pois apresenta as ferramentas de forma mais estruturada e clara. Com essa interface, o usuário 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 básicas 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 construção dos programas. Por padrão, esta tela é dividida em duas janelas; como os programas são construídos na janela de baixo (Block Diagram), podemos maximizar esta tela para aumentar a área visível. Dois símbolos padrões são automaticamente inseridos, sendo eles:

Início do programa Final do programa

(7)

7

Os símbolos no programa são inseridos, primeiramente, sem as ligações presentes nas imagens acima. Estes “fios” são os conectores entre os símbolos, que permitem as interações das ações escolhidas.

Antes de continuarmos o estudo da tela principal deste modo, no intuito de facilitar a construção das ligações entre os símbolos, devemos mudar uma configuração padrão do programa. Na parte superior da tela, há uma janela (chamada Front Panel) na qual existe um menu Window. Clicando neste menu, selecione a opção Show

Tools Palette. Inicialmente, a ferramenta que abre apresenta a seguinte configuração:

O primeiro item dessa tela configura a “seleção automática de ferramenta”. Com este item ativado, o mouse assume automaticamente a função de arrastar (para mover) os símbolos, quando sobre eles, ou a função de criar novas ligações, quando posicionado sobre o respectivo local no símbolo. Se este item estiver desativado, o usuário deve selecionar manualmente a ação do mouse através da “barra de espaço”, no teclado.

Nessa imagem observamos as funções principais do programa. Vamos apresentar os comandos principais, de forma individual.

Primeiramente mostraremos comandos que seguem o mesmo padrão. Quando o símbolo aparece sozinho, sem nenhuma letra, sua funcionalidade é aplicada sob uma entrada arbitrária. Para selecionarmos a porta,

Configuração após modificação Configuração padrão

(8)

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 símbolo.

Analogamente, definimos diversas funções:

Além dessas funcionalidades, temos também:

Com isso terminamos a parte superior desse menu. Agora vamos analisar a parte inferior. Vamos analisar três desses símbolos, sendo que todos abrem submenus.

1) Tempo 2) Loop

3) Modificadores

Porta Força

Acende bloco lâmpada conectado a uma entrada arbitrária. Porta

Força

Aciona um motor arbitrário para trás.

Porta

Desativa uma entrada arbitrária.

Sem modificador, esse comando desativa todas as entradas

Desativa todas as entradas.

Porta

Inverte a direção do motor, considerando um motor ligado.

Toca som conforme o número digitado: 1) Pressionamento de tecla 2) Beep beep

3) Escala descendente 4) Escala ascendente 5) Buzz

6) Escala ascendente rápida Número

Porta

Comando “float”: pára o motor de forma gradual. Deve ser usado com modificadores.

(9)

9 1) Tempo

Vamos agora analisar o menu interno. As funções de tempo que contém algarismos no símbolo indicam que o comando que os precedem serão executados por aquele tempo determinado.

O segundo bloco de funções corresponde a funções de sensores.

Ligada a um modificador indica tempo de execução de um procedimento em segundos.

Executa as funções por um segundo.

Ligada a um modificador indica tempo de execução de um procedimento em minutos.

Espera até que o sensor de luz identifique aumento da luminosidade.

Espera até que o sensor de luz identifique diminuição da luminosidade. Espera até que o sensor de luz identifique presença de luz.

Espera até que o sensor de luz identifique ausência de luz. Espera que, depois de pressionado, o sensor de toque seja liberado. Espera que o sensor de toque seja pressionado.

(10)

10 2) Loop

3) Modificadores

Loop enquanto o sensor de toque seja pressionado (esquerda) ou liberado (direita).

Loop enquanto o número de toques (esquerda) ou liberações (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.

Início de loop.

Fim de loop.

Esses símbolos indicam os motores conectados a cada uma das portas de entrada do bloco programável, respectivamente.

Usado para definir uma constante numérica.

Indicam os sensores conectados a cada uma das portas de entrada do bloco programável, respectivamente.

(11)

11

1) Controlando Motores

a. Movimentos Básicos - Frente

Nas duas próximas seções mostraremos como movimentar o robô para frente e para trás. Iniciaremos este estudo criando um novo projeto, no qual inseriremos os botões correspondentes às ações dos motores. O símbolo que será utilizado é:

Utilizando as funções acima, iniciaremos o nosso primeiro projeto, que tem como objetivo movimentar o robô para frente. Para isso, logo após o símbolo de Início colocaremos os símbolos correspondentes ao movimento do motor A e C, orientados para frente. Logo após, o símbolo 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 representação, pois reúne em um mesmo símbolo as funcionalidades similares. Desta forma, a escolha da força do motor, assim como a duração do movimento, pode ser escolhida somente uma vez para todo o movimento, no lugar de uma vez para cada símbolo. Adiante, exploraremos melhor este tipo de recurso.

b. Movimentos Básicos – 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 também o sinal de freio para os motores. A figura a seguir demonstra este projeto.

Portas

Força

Aciona um motor arbitrário para frente.

(12)

12

c. Controlando Força dos Motores

O recurso de alterar a força do movimento dos motores é fundamental para a realização de tarefas mais complexas. Além de controlar a velocidade com que o robô se movimenta, no caso da utilização de rodas, pode ser o controle da força com que o RCX segura um objeto, caso o motor esteja ligado a garras. Também permite o movimento em curvas, como será tratado na seção seguinte.

Modificaremos o exemplo anterior para fazer o robô andar mais rapidamente para frente do que para trás.

d. Fazendo Curva

Há diversas maneiras de se configurar uma curva, dependendo da intensidade com que se quer que o robô a realize. As três principais formas são:

1) Manter ambos os motores com movimento para frente, mas um deles com força maior do que o outro. Dessa forma, o robô vai, gradativamente, fazer a curva para o lado do motor que possui menor força;

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 distância muito menor do que na forma anterior;

3) Manter um motor para frente e colocar o outro motor com movimento para trás. Caso esta ação seja realizada com motores na mesma intensidade, deve resultar em um giro de 90° para o lado com o motor reverso. Assim, é possível fazer curvas rápidas, 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 chão da sala e teste se o seu robô consegue andar sobre ele.

O programa liga os motores A e C na força padrão, pára o movimento e já inicia o movimento reverso, encerrando a execução logo após.

O programa liga os motores A e C na força 4, pára o movimento e já inicia o movimento reverso, na força 1, encerrando a execução logo após.

(13)

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 próximo ao sensor. Já o sensor de toque identifica quando o robô colide com objetos. Desse modo, os sensores podem ser usados no controle de laços, ou seja, podemos definir uma rotina de comandos e ordenar que o robô execute essa rotina até que perceba uma mudança no ambiente. Isso significa que o robô deverá executar uma série de comandos até que a condição de um dos sensores (ou de ambos) seja alterada. Não necessariamente o programa deve terminar; podemos alterar a funcionalidade do robô, definindo outro bloco de comandos posterior à mudança.

Como exemplo da aplicação de sensores, podemos estabelecer como finalizador de um procedimento o choque do robô com um objeto (pressionamento do sensor de toque) ou a liberação do sensor de toque. Podemos também utilizar o sensor de luz, definindo uma nova tarefa quando o robô perceber alterações na intensidade de luz ou quando detectar uma intensidade específica de reflexão.

Propomos as seguintes atividades práticas:

a. Sensor de Toque

Desenvolver um programa que mova o RCX (em qualquer direção) até que o sensor de toque seja pressionado. Após o teste do programa e a correção dos possíveis erros, tente programar uma nova tarefa a ser executada quando o sensor de toque for liberado. Teste a eficiência de seu trabalho segurando o sensor por um tempo e observe se o robô executa alguma tarefa nesse período.

b. Sensor de Luz

Use o RoboLab para montar uma tarefa específica que o robô deve executar até encontrar uma região com menor intensidade luminosa. Você pode fazer o robô ficar em movimento cíclico e diminuir a intensidade luminosa da área ou pode fazê-lo andar pela sala em caminhos aleatórios em busca de uma região mais escura. Depois de testar seu programa, procure mudar os níveis 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 são movimentos repetitivos, como andar sempre para frente, ou andar para frente e para trás. Um loop é definido como uma tarefa que é executada indefinidamente até que algo a faça parar. Aqui estamos falando de uma pausa forçada, como, por exemplo, utilizando um contador de tempo ou uma alteração nos sensores.

Loops podem ser utilizados em rotinas nas quais queremos que o robô tenha uma determinada atitude apenas em um momento específico, e que no tempo restante execute uma função padrão.

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 alguém 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 faça 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 saída definitiva da rotina para que possamos desligar o equipamento com segurança. Essa saída pode ser controlada por tempo ou por sensores.

Referências

Documentos relacionados

En así que tanto en países del Sur como del Norte Global surgen percepciones de niñas y niños que podemos englobar como sutiles etiquetas de la pobreza, que confirman

O Documento Orientador da CGEB de 2014 ressalta a importância do Professor Coordenador e sua atuação como forma- dor dos professores e que, para isso, o tempo e

Os principais objectivos definidos foram a observação e realização dos procedimentos nas diferentes vertentes de atividade do cirurgião, aplicação correta da terminologia cirúrgica,

Art. O currículo nas Escolas Municipais em Tempo Integral, respeitadas as Diretrizes e Bases da Educação Nacional e a Política de Ensino da Rede, compreenderá

Neste capítulo foram descritas: a composição e a abrangência da Rede Estadual de Ensino do Estado do Rio de Janeiro; o Programa Estadual de Educação e em especial as

de professores, contudo, os resultados encontrados dão conta de que este aspecto constitui-se em preocupação para gestores de escola e da sede da SEduc/AM, em

La asociación público-privada regida por la Ley n ° 11.079 / 2004 es una modalidad contractual revestida de reglas propias y que puede adoptar dos ropajes de

O tema proposto neste estudo “O exercício da advocacia e o crime de lavagem de dinheiro: responsabilização dos advogados pelo recebimento de honorários advocatícios maculados