RAYNER DE MELO PIRES ANA PAULA SUZUKI ANDRÉ REIS DE GEUS GABRIELA QUIRINO PEREIRA SALVIANO LUDGÉRIO FELIPE GOMES INTRODUÇÃO À PROGRAMAÇÃO COM ROBÔS LEGO JULHO DE 2010
SUMÁRIO 1 O que é o NXT?...4 2 Explicando o NXT...4 As portas de entrada e saída...5 O visor...6 O alto falante...6 Os botões de navegação...6 3 Explicando os sensores...7 Sensor de luz...7 Sensor de toque...7 Sensor de Ultrassom...8 Sensor de Som...8 4 Explicando os Servomotores...9 Sensor de rotação embutido...9 5 A montagem do nosso modelo...10 6 O que é programação?...43 7 O que é lógica de programação?...43 8 O que é um algoritmo?...43 9 Comandos de Controle...44 Operadores Lógicos...46 Operadores Relacionais...47 10 O que é entrada e saída de dados?...48 11 O software...51 Transferindo um programa para o NXT...53 Paleta Padrão (Common Pallete)...55 Paleta Completa (Complete Pallete)...69 Paleta Personalizada (Custom Pallete)...79
O que é o NXT? O Lego Mindstorms NXT mais se parece com um brinquedo, e é utilizado amplamente em todo o mundo por escolas, universidades, e mesmo por crianças. Na verdade ele é um kit de robô programável, voltado para a educação tecnológica 1, lançado pela Lego em Julho de 2006, substituindo a primeira geração do kit Lego Mindstorms. O nosso kit é o Kit Base 9797 e é composto por 431 peças: 3 servomotores 2, 4 sensores (toque, som, luz e ultrassom), 7 cabos para conexões com motores e sensores, um cabo para interface USB, o Brick Inteligente NXT, que é o corpo central do robô, bateria recarregável, base giratória, rodinhas com pneus e várias peças conhecidas como Lego Technic, como blocos, vigas, eixos, rodas, engrenagens e polias. O Brick NXT (em português, tijolo) é o cérebro dessas pequenas máquinas. Ele viabiliza autonomia na execução de diferentes tarefas tais como a criação, programação e montagem de robôs com noções de distância, capazes de reagir a movimentos, ruídos e cores 3, e de executar movimentos com razoável grau de precisão. O kit também inclui o NXT-G, um ambiente de programação gráfico que possibilita a criação e o download de programas para o NXT. Os novos modelos permitem que se criem não apenas estruturas, mas também comportamentos, permitindo a construção de modelos interativos, com os quais se pode aprender conceitos básicos de ciência e de engenharia. Os empregos didáticos abrangem as áreas de robótica, controle, automação, física, matemática, programação e projetos. 1 O lema da Educação Tecnológica é preparar os estudantes para não serem apenas usuários de ferramentas tecnológicas, mas capazes de criar, solucionar problemas e usar os tipos de tecnologia de forma racional, efetiva e significativa. 2 Servomotor é uma máquina, mecânica ou eletromecânica, que apresenta movimento proporcional a um comando, em vez de girar ou se mover livremente sem um controle mais efetivo de posição como a maioria dos motores. 3 Neste caso, para a percepção de cores é necessário a utilização do sensor de cores, que não acompanha o kit 9797. 6
Explicando o NXT Como já foi dito, o Brick NXT é o corpo central do robô. Nele conectaremos cabos que vão até os motores e cabos que vêm dos sensores. Ele será como o cérebro (e como o coração). Nele está contido o processador, que receberá os programas que criaremos e então os interpretará (executará) fazendo o robô montado ganhar movimentos. Para facilitar a comunicação e melhorar a compreensão dessa apostila pelos leitores, aqui vamos nos referenciar ao Brick NXT somente como NXT. As portas de entrada e saída Como mostrado na figura acima, o NXT possui três portas de saída (output), onde se conectam os motores. Essas portas estão acima do visor (portas A, B e C). Abaixo dos botões estão mais quatro portas, agora as de entrada (input), onde se conectam os sensores (portas 1, 2, 3 e 4). É importante checar com atenção se os motores e sensores estão conectados corretamente pois eles não são permutáveis. 7
A porta USB para comunicação com o software está próxima às portas de comunicação com os motores. Através dela podemos instalar os programas do computador para o robô, e também coletar dados do robô para o computador. Caso não queiramos fazer essa comunicação através de fios, podemos utilizar o bluetooth, também disponível no NXT. Desse modo precisaremos do nome do NXT, que é mostrado no visor. O visor Na parte superior do visor, no canto esquerdo, vemos ícones que informam sobre o status e da conexão bluetooth ou USB do robô. No canto direito vemos o ícone da bateria informando a carga disponível. 8
Na parte de baixo do visor é mostrado os menus disponíveis no NXT. O alto falante O alto falante encontra-se na lateral direita do NXT. Crie programas com sons reais e os ouça quando executar o programa. Os botões de navegação O botão central - laranja - é a tecla Enter do robô. Ele também é usado para ligar o robô. As setas direcionais - em cinza claro - são utilizadas para a navegação nos menus disponíveis no visor. O botão inferior - em cinza escuro - é utilizado para a navegação nos 9
diferentes níveis dos menus. Geralmente é utilizado como o botão Voltar. Também é usado para desligar o robô. Faça você mesmo! Com o NXT na mão veja como ele é ligado e desligado. Explicando os sensores Os sensores biológicos do nosso corpo são células especializadas que são sensíveis a temperatura, luminosidade, vibração, toxinas, hormônios, proteínas, entre outros. No caso dos nossos robôs, podemos pegar a definição do dicionário: "Designação comum de dispositivos elétricos, eletrônicos, mecânicos ou biológicos capazes de responder a estímulos de natureza física (temperatura, pressão, umidade, velocidade, aceleração, luminosidade e etc.). São utilizados em sistemas de controle e monitoramento." No nosso kit temos quatro sensores: o de luz, o de toque, o de ultrassom e o de som. Vamos ver para que serve cada um? Sensor de luz O sensor de luz é um dos dois sensores que dá visão ao robô (o sensor de ultrassom é o outro). É ele que permite que o robô distingua entre claro e escuro branco e preto. Ele pode ler a intensidade de luz numa sala e pode medir a intensidade de luz em superfícies coloridas. Sugestões para uso Você pode usar o sensor de luz para criar um robô alarme de assaltante: quando um intruso entrar numa sala e acender a lâmpada o robô pode reagir e defender sua propriedade. Você também pode usar o sensor de 10
luz para criar um robô que segue linhas ou um robô que classifica coisas por cores. Detectando a luz ambiente Teste a habilidade do sensor de luz em detectar a luz ambiente medindo os níveis de luz em diferentes locais da sala. Por exemplo, aponte o sensor em direção à janela. Então aponte-o para baixo da mesa. Veja como modificam as leituras. Faça você mesmo! Conecte o sensor ao NXT. Selecione no visor o submenu View. Selecione o ícone do sensor de luz e a porta onde você o conectou, e pressione o botão Run (botão laranja). Agora aponte o sensor para as diferentes cores disponíveis na folha de teste de cores. (Caso a sua apostila esteja em preto e branco pergunte ao monitor sobre a folha de teste colorida). Try me O NXT vêm com a função Try Me. Conecte o sensor de luz à porta 3 do NXT e selecione o menu "Try Me" no NXT para testar o sensor de luz. Você terá uma reação divertida. Sensor de toque O sensor de toque concede ao robô o sentido do tato. Ele detecta quando o botão do sensor está sendo pressionado, indicando que está em contato com alguma coisa, e também quando ele é liberado. Sugestões para uso Você pode usar o sensor de toque para fazer seu robô pegar coisas: um braço robótico equipado com um sensor de toque permite o robô saber se há ou não alguma coisa em seu braço para agarrar. Ou você pode fazer seu robô agir a um comando. Por exemplo, pressionando o botão do sensor fazer o 11
robô realizar alguma ação: andar, falar, fechar uma porta ou ligar sua TV. Try me O NXT vêm com a função Try Me. Conecte o sensor de toque à porta 1 do NXT e selecione o menu "Try Me" no NXT para testar o sensor de toque. Você terá uma reação divertida. Sensor de Ultrassom Permite que o robô "veja" e passe a detectar onde os objetos estão. Você pode usá-lo para fazer o robô evitar obstáculos, detectar e medir a distância, e detectar movimentos. O sensor de ultrassom mede distâncias em centímetros e em polegadas. Ele é capaz de medir distâncias de 0 a 255 centímetros com uma precisão de +/- 3 cm. O sensor usa a mesma técnica que os morcegos usam: ele consegue medir a distância calculando o tempo que leva para uma onda sonora bater em um objeto e retornar como se fosse um eco. Objetos maiores com superfícies duras retornam melhores leituras. Enquanto que objetos feitos de tecido macio ou que possuem curvas (como uma bola) ou que são muito finos e pequenos podem ser difíceis para o sensor detectar. * Dois ou mais sensores ultrassônicos atuando no mesmo espaço podem interromper uns aos outros sua leitura. Faça você mesmo! Conecte o sensor de ultrassom ao NXT. Selecione no visor o submenu View. Selecione o ícone do sensor de ultrassom e a porta onde você o conectou, e pressione o botão Run (botão laranja). Para medir a distância de um objeto mova sua mão para perto do sensor e observe a mudança de leitura no visor. 12