Joo Vilhete Viegas dAbreu jvilhete@unicamp.br NIED/UNICAMP 1 1. RESUMO Esta apostila tem por objetivo bsico apresentar o tijolo programvell LEGO/RCX e, um ambiente para utiliz-lo, baseado no software Robolab. Ambos, associados a um conjunto de outros tijolos, elementos mecnicos e componentes eltricos LEGO, so os principais dispositivos utilizados para se desenvolver atividades de robtica pedaggica. No contexto do que denominamos de ambiente de robtica pedaggica o RCX mais um conjunto de peas e componentes eltricos LEGO permitiro a montagem/construo de robs (mquinas e animais). Com o software Robolab, uma linguagem de programao grfica, elaboraremos programas que controlam estes robs. 2. Constituio do Robotic Command Explorer -RCX
Figura 1: Tijolo Programvel RCX O RCX (veja figura 1) possui as seguintes caractersticas: Sadas Trs portas de sada, identificadas pelas letras A, B e C. Os atuadores do rob, motores ou luzes, podem ser conectadas a estas portas. 2 Entradas Trs portas de entrada, identificadas pelos nmeros de 1, 2 e 3. Sensores podem ser conectados a estas portas, permitindo com que o RCX perceba o ambiente onde ele se encontra. Tela Faz parte do RCX uma pequena tela de cristal lquido. Esta tela exibe/mostra informaes teis ao usurio do RCX, tais como o valor da leitura dos sensores e o estado das portas de sada. Som O RCX capaz de produzir alguns bips em diferentes freqncias, atravs de um pequeno alto-falante nele embutido. Existem alguns sons j pr-programados na memria do RCX que so emitidos antes dele executar algumas tarefas, como por exemplo, carregar um programa. Botes do Painel Existem 4 botes no RCX: On-Off, View, Prgm, Run. Estes botes possibilitam respectivamente, ligar e desligar o RCX, visualizar os estados atuais dos sensores, selecionar o programa que desejamos executar, iniciar e interromper a execuo de um programa. Comunicao Infravermelho O RCX se comunica com o microcomputador por intermdio de uma conexo, sem fio, feita a partir de uma torre que emite sinais na faixa de infravermelho (veja figura 2). Esta torre, que se conecta a porta serial do microcomputador, permite tambm a comunicao entre dois RCX. 3 2.1 Software Um CD-ROM acompanha o kit RIS. Ele contm o software destinado programao dos robs. Uma vez escrito um programa, para controle de um determinado dispositivo robtico, este programa tem que ser carregado no RCX, por intermdio da torre, para ser executado. Figura 2: Comunicao entre microcomputador e RCX A figura 2 apresenta o esquema bsico de comunicao entre um microcomputador e o RCX. A implementao de um rob utilizando RCX consiste basicamente de quatro passos. 3. ROBOLAB ROBOLAB um software de programao, desenvolvido especificamente para ser utilizado na programao do RCX e, que utiliza uma linguagem totalmente grfica, baseada em cones. O ROBOLAB foi desenvolvido em parceria entre a National Instruments e a Tufts University - College of Engineering. Este software que baseia-se no LabVIEW da Nationall Instruments, possui duas reas principais, uma chamada Administrador e a outra chamada Programador. 4 3.1 TELA PRINCIPAL OU TELA DE INTRODUO Ao iniciar o Robolab, uma tela de introduo aberta, apresentando duas opes: Administrador e Programador. A opo Administrador serve para fazer as configuraes do RCX e do software Robolab. A opo Programador serve para abrir a tela do Menu Principal, a partir da qual pode-se optar em programar no modo Piloto ou no modo Inventor. Tambm faz parte da tela principal os seguintes botes: Sobre (About), Sair (Quit) e Ajuda (Help). Sobre - mostra os crditos para o software ROBOLAB. Sair - fecha o ROBOLAB. Ajuda - fornece ajuda, descrevendo os itens para o qual o cursor est apontando. 5 3.2 REA ADMINISTRADOR (REA DE CONFIGURAES) A opo Administrador possui trs sub-sees: Administrador propriamente dita, Robolab Ajustes e RCX Ajustes. 3.2.1 - Administrador, composta de: a) Selecionar a Porta Serial Seleciona a porta onde a comunicao entre o computador e o bloco RCX realizada. b) Transferir Firmware - O firmware o sistema operacional que controla o RCX . Para transferir os programas elaborados no computador para o RCX, necessrio transferir primeiro o firmware. O firmware fica na memria do RCX at que as pilhas sejam trocadas. Uma vez feita a transferncia do firmware, o RCX fica pronto para receber, interpretar e executar os programas. c) Testar Comunicao com o RCX - Realiza um teste de comunicao para verificar se o RCX responde aos sinais enviados 6 pelo computador por intermdio da torre infravermelho. Para realizar o teste preciso que a torre de infravermelho esteja conectada ao computador e que o RCX esteja ligado e prximo a torre (10 a 20 cm). d) Esconder Boto Administrador - Retira o boto Administrador da tela principal. e) Rodar Vdeo Exibe um vdeo sobre Robolab, aps a instalao do mesmo.
3.2.2 Robolab Ajustes - permite configurar os locais dos arquivos de programa e a criao ou excluso de colees. Nesta tela, veja a figura a seguir, existe trs objetos: a) Quadro de temas denominado Tema: So colees de programas gravados. Estes Temas so pastas que podem ser criadas para organizar arquivos. Abaixo do quadro existe uma caixa com um sinal de mais e uma outra caixa com uma lixeira. Ao clicar sobre o sinal de mais podemos criar um novo tema. O ROBOLAB ir pedir o nome deste novo tema e ao clicar no boto ( ), o nome que voc digitou aparecer dentro do quadro abaixo dos nomes que j existem. Existem dois temas que so padro no ROBOLAB e so criados na instalao do software, so eles: Parque de Diverses e Meus Programas. Por padro os programas so gravados em Meus Programas.
Ao clicar sobre a lixeira podemos excluir um tema. Para realizar esta excluso preciso primeiro selecionar o nome do tema e depois clicar na lixeira, o ROBOLAB pede confirmao da excluso. Caso no tenha 7 nenhum nome selecionado, o Robolab avisa dizendo que o tema no existe. Os dois temas padro no podem ser excludos.
b) Caminho para Robolab: Mostra o caminho para o ROBOLAB no disco rgido. Este no pode ser mudado.
c)Caminho para Galeria de Programas: Mostra o caminho para os programas do usurio no disco rgido. Clicar sobre ele permite que voc mude o local onde ficam os programas do usurio.
3.2.3 - RCX Ajustes - Ao selecionar esta tela o Robolab automaticamente estabelece a comunicao com o RCX. Caso este esteja desligado, ou fora do alcance do sinal emitido pela torre, aparece a mensagem de erro de comunicao. Se a comunicao for possvel, o Robolab automaticamente configura os dados presentes nesta tela. Ao sair desta tela, o Robolab ajusta o RCX para a nova configurao.
Esta tela, veja a figura a seguir, apresenta os seguintes dados:
a) RCX Ajuste de potncia do Infravermelho (IV): 8 Regula a potncia do IV do RCX em alto ou baixo. O valor alto s deve ser usada quando o RCX e o transmissor IV estiverem a mais de 30 centmetros. O valor baixo deve ser usado normalmente. A potncia alta consome mais energia das pilhas. O transmissor IV (torre de transmisso) tambm tem um ajuste de potncia do IV; h um interruptor localizado na frente do transmissor para este fim.
b) RCX Programs 1 & 2: Bloqueia ou no as posies 1 & 2 da memria do RCX. Se as posies estiverem bloqueadas, ao tentar descarregar novos programas para essas posies, o ROBOLAB automaticamente descarrega para a posio 3 da memria. c) RCX Tempo de Desligamento: Define o tempo que o RCX ficar inativo antes de desligar. A variao de 0 a 255 minutos. Por definio, o valor 0 significa que o RCX ficar sempre ligado, neste caso ele s se desligar ao pressionar o boto On-Off do RCX.
d) RCX Carga das Pilhas: 9 Mostra o nvel atual da bateria do RCX. e) RCX Verso Firmware: Mostra verso do firmware em uso no RCX. 4. REA DE PROGRAMAO O software de programao do RCX no Robolab apresenta duas opes chamadas de Pilot e Inventor cada uma com 4 nveis. Cada seo apresenta 3 janelas: Nvel, Tema e Programa. Em Nvel pode-se selecionar o nvel de trabalho. Um clique em Nvel faz a janela Tema mostrar os temas disponveis. Um clique num tema faz a janela Programa mostrar o conjunto de programas disponveis para o tema e nvel selecionados. 10 Um duplo-clique num programa, abre-o diretamente, enquanto que um duplo-clique num nvel abre um programa padro para aquele nvel. Pilot A programao Pilot a fase introdutria e apresenta 4 nveis, sendo o Pilot 1 o mais simples e o Pilot 4 o mais flexvel. Inventor A programao Inventor uma seqncia da fase Pilot e tambm apresenta 4 nveis, sendo o Inventor 1 o mais simples e o Inventor 4 o que apresenta total flexibilidade e possibilidades ilimitadas. 11 4.1 - PROGRAMAO PILOT A fase Pilot compreende uma srie de modelos com um formato fixo associado a eles. Trata-se de um modo eficiente de apresentar a seqncia lgica, pois impossvel modificar qualquer dos modelos de modo a criar um programa que falhe. O programa pode no fazer o que se espera, mas funcionar sempre e realizar exatamente a seqncia de comandos listados. A programao Pilot usa uma interface fcil, do tipo Clique & Escolha, num modelo que pode ser alterado conforme suas necessidades de aprendizado. Abaixo segue uma descrio do programa padro (modelo) encontrado em cada um dos nveis. O programa Pilot Nvel 1 uma tarefa simples que fornece potncia mxima Porta de Sada A do RCX durante um determinado tempo. O programa Pilot Nvel 2 usa as Portas de Sada A e C do RCX. Os nveis de potncia para cada porta pode ser ajustado. A potncia fornecida, ou por um tempo especfico, ou at que o sensor de toque na Porta de Entrada 1 seja empurrado ou solto. 12 O programa Pilot Nvel 3 usa as Portas de Sada A, B e C. As portas podem receber potncia de diferentes nveis. introduzido a idia de uma tarefa com dois passos. Todos os itens de um passo devem ser completados antes de iniciar o prximo. O primeiro passo liga o Motor A, a Lmpada B e o Motor C por 6 segundos. Aps esse tempo, comea o segundo passo. A Lmpada B permanece ligada e os motores A e C invertem o sentido de rotao e funcionam at que o sensor de toque conectado na Porta 1 seja pressionado. O programa Pilot Nvel 4 permite realizar um nmero ilimitado de passos seqenciais. Entretanto, embora o programa possa conter vrios passos, somente um passo fica visvel na tela do computador de cada vez. O programa comea com dois passos: o primeiro liga o Motor A, a Lmpada B e o Motor C at que o sensor de toque seja pressionado; o segundo, mantm a Lmpada B ligada e inverte a direo dos Motores A e C, e funcionam at que o sensor de luz (luminosidade) da Porta 3 leia um valor maior que 55. 13 Nota: Cada cone um comando para o RCX fazer alguma coisa. Como exemplos de comandos temos: ligar o motor, esperar por um tempo, esperar que o sensor de toque seja pressionado. As informaes que entram (input) nos comandos (como a quantidade de tempo ou onde o dispositivo est conectado) so chamadas de modificadores. 4.2 - PROGRAMAO INVENTOR A fase Inventor usa os mesmos cones de comandos da fase Pilot. Alm disso, so acrescentadas vrias opes de comando conforme o usurio avana pelos nveis. O nvel Inventor uma modalidade de uso que evidencia o potencial do RCX. A interface de programao do Inventor diferente da utilizada no Pilot. A interface do tipo Pegar & Colocar. Nesta interface, pode-se trabalhar com pelo menos 3 janelas. A janela Painel usada na programao do Inventor. Ela precisa estar aberta para que o programa possa rodar. 14 A janela utilizada para programar chamada de Diagrama e nela que se cria as tarefas a serem executadas pelo RCX. A outra janela chamada de Paleta Functions (paleta de funes), a qual apresenta todos os comandos ou funes disponveis para a montagem do seu programa. Esta paleta tambm contm os comandos de Espera, os de Estrutura, os Modificadores e outros mais. 15 Os programas so criados na janela Diagrama Janela Diagrama A paleta Funes contm os cones de comando usados para programar. Os cones so pegos da paleta Funes e colocados na janela Diagrama. Boto Rodar 16 5. - FERRAMENTAS Durante a programao na fase Inventor, existe a necessidade de se trabalhar com algumas ferramentas: Ferramenta Selecionar - Usada para pegar os cones & colocar na janela Diagrama ou para mover os cones. Ferramenta Conectar Usada para colocar cones de comando na janela Diagrama Ferramenta Texto - Usada para mudar valores ou acrescentar textos ou legendas ao seu programa. Ferramenta Conectar - Usada para conectar os cones na seqncia lgica a ser executada. Ferramenta Mudar Valores - Usada para mudar os valores numricos. Para trocar de ferramenta utilizar a barra de espao ou a tecla Tab. Barra de Espao Pressionar a barra de espao faz o cursor alternar entre as ferramentas Selecionar e Conectar. Estas duas ferramentas so, provavelmente, as mais utilizadas. Tecla Tab Ao pressionar esta tecla o cursor circula entre as ferramentas Slecionar, Colocar, Texto e Conectar. Tecla Delete Apaga o item selecionado (cone ou conexo) da janela Diagrama. 17 7. Ajuda Caso seja necessrio algum auxlio, durante a programao, pode-se ativar a funo ajuda partir da barra de menu da janela de programao. A funo ajuda fornece informaes sobre o cone de comando sobre o qual o cursor est. A ajuda faz uma descrio do comando, assim como os pontos de conexo da seqncia. 8. CONES - LISTA DE CONSULTA Incio & Fim do Programa Incio No incio do programa, exigido como o primeiro comando em qualquer programa Inventor. Fim No fim do programa, exigido como o ltimo comando de cada tarefa no programa Inventor. Parar A Interrompe a potncia da Porta A do RCX. Parar tudo Interrompe a potncia das portas A, B e C do RCX. Sadas Simples Motor A (sentido horrio) Liga a Porta A do RCX no sentido horrio com potncia total. Motor A (sentido anti-horrio) Liga a Porta A do RCX no sentido anti-horrio com potncia total. Lmpada A Acende a Lmpada conectada na Porta A do RCX com potncia total. Sadas Gerais Lmpada Acende a lmpada. Padro: Potncia total nas Portas A, B e C. Motor (sentido horrio) Liga o motor no sentido horrio. Padro: Potncia total nas Portas A, B e C. Motor (sentido anti-horrio) Liga o motor no sentido anti-horrio. Padro: Potncia total nas Portas A, B e C. Direcionar Direciona a potncia para as portas especificadas, invertendo a direo anterior. Padro: Portas A, B e C. Toca um som no RCX. Os sons disponveis so: 1-Clique de chave 4-Silvo ascendente (Padro) 2-BeepBeep 5-Bzzzz Tocar Som 3-Silvo descendente 6-Silvo ascendente rpido Esperar por? (Wait For) Espera 1 segundo Espera 1 segundo antes de continuar o programa. 18 Espera por tempo Espera por um tempo especificado. Padro: 1 segundo. Espera tempo aleatrio Espera por um tempo aleatrio. Tempo entre 1 e 8 segundos. Espera empurrar Espera at que o sensor de toque seja pressionado. Padro: Porta de Entrada 1. Espera no pressionado Espera at que o sensor de toque no seja pressionado. Padro: Porta 1. Espera por luz Espera at que o sensor de luz leia um valor mais brilhante que o nmero especificado. Padro = 55. Espera por escuro Espera at que o sensor de luz leia um valor mais escuro que o nmero especificado. Padro = 55. Mais claro Espera at que o sensor de luz leia um valor maior que o atual. Padro: Porta 1, diferena de valor = 5. Mais escuro Espera at que o sensor de luz leia um valor menor que o atual. Padro: Porta 1, diferena de valor = 5. Modificadores Entrada 1 Anexe este modificador a um comando para selecionar a Porta de Entrada 1. Sada A Anexe este modificador a um comando para selecionar a Porta de Sada A. Potncia Nvel 3 Anexe este modificador a um motor ou lmpada para ajustar a potncia no nvel 3. Constante Numrica Anexe este modificador a um sensor ou temporizador para ajustar o valor da constante. Valor do Container vermelho Retorna o valor do container vermelho Container vermelho Anexe-o a um comando container, para selecionar o container vermelho. Nmero ? Um nmero aleatrio entre 1 e 8. Valor da Porta 1 Retorna o valor da Porta de Entrada 1. Temporizador vermelho Anexe-o a um comando de temporizador para selecionar o temporizador vermelho. Valor do Temporizador vermelho Retorna o valor do temporizador vemelho. Valor da Carta Retorna o valor da carta (carta). Msica Nota musical Toca notas musicais no RCX. Padro: semnimas na escala normal. Pausa musical Insere uma pausa na msica. Durao musical Especifica quanto tempo uma nota deve tocar. 19 Uma oitava acima Anexado a um comando musical, eleva o tom em uma oitava ou mais se mais de um for anexado. Estruturas Condio do Sensor de Toque Faz o programa escolher entre dois caminhos, dependendo dos dados do sensor de toque. Padro: Porta 1. Juno Usada sempre com uma condio para unir os dois caminhos da condio. Comear Tarefa Comea uma nova tarefa. Permite realizar tarefas mltiplas simultaneamente. O RCX permite um mximo de 10 tarefas. Comear Loop Comea um estrutura de "loop". Padro: 1 vez. Fim do Loop Pula de volta ao incio do "loop". Jump (pulo) Faz o programa pular para um lugar especfico da seqncia. Land (pouso) Indica o lugar da seqncia onde o comando Jump vai pular. Container Acrescentar ao Container Adiciona um nmero ao container. Padro: adiciona 1 ao container vermelho. Retirar do Container Subtrai um nmero do container. Padro: subtrai 1 do container vermelho. Encher Container Ajusta o container para um certo valor. Padro: Container vermelho com valor 1. Container Toque Ajusta o container para o valor do sensor de toque. Container Temporizador Ajusta o valor do container do temporizador. Padro: container vermelho com o valor do temporizador vermelho. RCX para RCX RCX envia carta Envia carta (mensagem) para outro RCX. A mensagem deve ser um nmero entre 1 e 255. Padro: envia o nmero 1. Reset Zera Container Zera o valor do container. Padro: container vermelho para zero. Zera Relgio Zera o valor do despertador. Padro: despertador vermelho para zero. Zera Sensor de Rotao Zera o sensor de rotao. Padro: Porta 1. Zera Caixa postal Zera o valor da caixa postal do RCX. 20 Espera Avanada Espera Aumento de Temperatura Espera at que a temperatura esteja mais alta que o nmero especificado. Padro: 30 Celsius na Porta 1. Espera Rotao Espera at que o valor do sensor de rotao seja maior que o nmero de rotaes especificadas. Padro: 16 (uma rotao) na Porta 1. Espera por Posio Espera at que o valor do sensor de rotao seja maior que o ngulo especificado em qualquer direo. Padro: 180 graus na Porta 1. Espera Container Espera at que o container esteja igual ao nmero especificado. Padro: container vermelho igual a 1. Espera Despertador Espera at que o temporizador seja igual ao nmero especificado. Padro: despertador vermelho igual a 1. Precisa zerar o despertador primeiro! Espera Carta Espera at que a mensagem do outro RCX seja recebida.