CAMPUS DISTRITO
ESTUDO DA TRANSFERÊNCIA AUTOMÁTICA DE DADOS PARA UM ROBÔ MÓVEL NA PLATAFORMA LEGO MINDSTORMS OBJETIVOS Objetivo Geral Luan Leonardo Vieira de Moraes 1 Prof. Dr. José Pinheiro de Queiroz Neto 2 Estudar os métodos de transmissão de dados remotamente e sem conexão física, bem como a interface de comunicação do robô LEGO MINDSTORMS, e desenvolver um sistema de transferência automática de código de navegação para o Robô a partir de um sistema de navegação autônoma. Objetivos Específicos Estudar os métodos de comunicação sem fio e transmissão de dados. Estudar a interface de comunicação do robô LEGO MINDSTORMS. Implementar uma ferramenta para transmissão de código para o robô LEGO MINDSTORMS Escrever um artigo científico sobre o resultado da pesquisa. METODOLOGIA Descrição do Kit Robótico LEGO MINDSTORMS O Sistema de Navegação Autônoma proposto por (PINHEIRO, 2010) adota o Kit robótico da linha LEGO MINDSTORMS destinado à construção de pequenos robôs. Estes kits são compostos por pequenos blocos de plástico (peças tradicionais LEGO) e outras peças complementares como servomotores, sensores de toque, som, luz e ultrasom, bem como uma unidade de controle programável (NXT brick ou Tijolo NXT). Ele foi montado conforme o modelo veículo com três rodas com dois servos-motores, conforme figura 1, mas nenhum sensor foi utilizado, somente uma câmera digital para a aquisição de imagens. Permite a possibilidade de comunicação via Bluetooth, as linguagens de programação do seu sistema operacional é o 1 1 Instituto Federal de Educação, Ciência e Tecnologia do Amazonas IFAM Campus Distrito Industrial E-mail: luan_leonardo@hotmail.com 2 Instituto Federal de Educação, Ciência e Tecnologia do Amazonas IFAM Campus Distrito Industrial E-mail: josepqn@gmail.com 18
NXC (Not exactly C), que é uma linguagem simples da plataforma Lego, NQC, LeJOS e o software para programação utilizado foi o BricX Command Center. (LEGO MIN- DSTORMS, HANSEN, 2007; BENEDETTELLI, 2007). Transmissão de Dados Sem Fio na Plataforma LEGO MINDSTORMS O LEGO MINDSTORMS NXT inclui um ponto sem fio Bluetooth que permite que o brick do NXT comunique-se com outros dispositivos Bluetooth. O Bluetooth e os drivers são os mesmos para todos os tijolos NXT. Sobre o Bluetooth Bluetooth é uma tecnologia que torna possível enviar e receber dados sem usar cabos. Usando o Bluetooth, você pode estabelecer uma ligação sem fios entre o computador e o NXT ou de um para outro. Pode-se transferir programas, ou apenas comandos, entre o seu PC e o tijolo NXT, ou exercer controle sobre o robô enviando-lhe mensagens de outro robô NXT. Funcionalidades do Bluetooth no NXT: Comunica-se com dispositivos Bluetooth em tempo real Conectar-se com até três outros dispositivos no mesmo instante Realizar pesquisa e ligação a outros dispositivos Bluetooth Lembrar de dispositivos conectados anteriormente para reconexão rápida Poder definir o tijolo NXT como visíveis ou invisíveis para outros dispositivos Habilitar ou desabilitar o Bluetooth para economizar energia A Biblioteca de comunicação Bluetooth Utilizada A C++ Communication Library criada por Anders Sóberg disponível em (MINDSTORM PAGE, 2011), é uma biblioteca C++ sob licença GPL (General Public Licence) que torna mais fácil se comunicar com o NXT usando uma conexão Bluetooth ou rede. A biblioteca pode ser usada com a maioria dos compiladores C ++. Com a biblioteca é possível: Abrir e fechar conexões com múltiplas unidades de NXT Ter o controle dos motores Enviar e receber mensagens usando o sistema de correio do NXT Uso de sensores Standard LEGO, incluindo sensores de som e sonar Definir o nome do Brick, obter nível de bateria, ler a versão de firmware etc Tocar um som 19
Tocar arquivos de som Usar o sistema de arquivos NXT Fazer o download e upload de arquivos Iniciar e parar programas no Brick Usar exceções para capturar erros do sensor e conexão Usar classes genéricas de conexão que torna fácil alternar entre Bluetooth ou rede E mais! Sistema de Transmissão Automática de Dados Um Sistema de Transmissão de Comandos Completo deve permitir total controle dos dispositivos do robô NXT, controlar seus motores, realizar leitura dos seus sensores, para só então tomar a decisão que lhe é necessária para sua navegação. Para alcançar esse objetivo a biblioteca de comunicação adotada nos oferece boas ferramentas. O Sistema basicamente divide-se em duas partes principais: estabelecer comunicação entre o computador e o robô NXT e a decisão de qual comando deve-se enviar ao robô para que este realize sua trajetória com sucesso. A Comunicação: Computador vs NXT Para estabelecer comunicação a C++ Communication Library nos oferece uma poderosa classe. A classe da para comunicação com o robô é uma classe Abstrata chamada Connection, esta classe está descrita no arquivo de cabeçalho connection.h. A classe connection nos permite dois tipos de conexão com o NXT, conexão por rede e conexão Bluetooth, através de um enumerador chamado Connection_type que também está incluso no arquivo de cabeçalho connection.h. A classe que nos permitirá o conexão com os dispositivos do NXT via bluetooth é incluída no arquivo de cabeçalho bluetooth.h e tem código aberto no bluetooth.cpp, a bluetooth. A classe bluetooth é uma classe derivada pública da classe connection. Ela a imagem de sua classe-mãe possui, por sobrecarga, os mesmos métodos. Para cada dispositivo do kit LEGO MINDSTORMS como sensores, servos-motores, dispositivo de som e vídeo há uma classe correspondente que permitirá o controle através de algumas das duas conexões disponíveis na C++ Communication Library. No caso do Sistema de Navegação Autônoma do qual este trabalho pretende fazer parte, apenas o controle dos servos-motores é necessário através de uma conexão bluetooth. A Transmissão dos Comandos 20
O método de navegação autônoma proposto por (PINHEIRO,2010), consiste em obter dados em instantes definidos (passo) e gerar uma trajetória parcial para o robô em direção ao alvo, que será obtida novamente a cada passo do robô até atingir o objetivo. Assim uma maneira de transmitir as coordenadas ao robô NXT, seria através de um Sistema de Transmissão Automática, que seria requisitado para envio das coordenadas parciais. A necessidade imposta pelo Sistema de Navegação reduz a capacidade de um Sistema de Transmissão Automática de Dados completo, a apenas o controle de seus motores para que este realize movimentos simples de mover-se para direita, esquerda, frente. Pois o sistema não faz uso de outros recursos da plataforma LEGO. Para desenvolvimento de um Sistema de Transmissão de Comandos via Bluetooth, fez necessário apenas utilizar os recursos das classes já citadas. Onde a conexão Bluetooth foi estabelecida através das classes Connection e Bluetooth e o envio dos comandos de trajetória através da classe Motor. Esses comandos foram passados ao aplicativo de Transmissão Bluetooth por argumentos de linha de comando, o aplicativo então interpretava qual comando deveria ser transmitido ao NXT e então enviava em tempo real. CONSIDERAÇÕES FINAIS Este trabalho apresentou uma proposta de um sistema de transmissão automática de dados para um robô móvel na plataforma LEGO MINDSTORMS. No decorrer do projeto, foram realizados estudos dos métodos de transmissão sem fio, estudo da linguagem de programação do robô NXT, o NXC, bem como o aprendizado das características do robô LEGO MINDSTORMS, adotado para experimentos. Uma das dificuldades encontradas foi, devido às limitações de Hardware e Software, estabelecer uma a conexão entre o computador, com Bluetooth interno, e o robô LEGO NXT. O que foi solucionado com a aquisição de adaptador Bluetooth cujos drivers eram compatíveis. Nos Sistemas Operacionais Windows de 64bits, Seven e Vista, o tráfego de informações via Bluetooth foi instável. O Sistema então foi debugado e compilado em Windows XP Service Pack 3. REFERÊNCIAS BENEDETTELLI, D. Programming LEGO NXT Robots using NXC. Version 2.2, June 21
7, 2007. HANSEN, J. Not exactly C (NXC), Programmer s Guide, Version 1.0.1 b33. October 10, 2007. MINDSTORM PAGE, Anders Sǿberg. Disponível em: <http://www.norgesgade14. dk/bluetoothlibrary.php> Acesso em: 10 Fev. 2011 PINHEIRO, Hayanna S., PINAGÉ, Felipe A. PINAGÉ, QUEIROZ-NETO, José P. Q. Sistema De Navegação Autônoma De Veículos Não Tripulados em Ambiente com Obstáculos em Movimento. In Workshop of Undergraduated Works SIBGRAPI 2010, Submetido, Gramado, RS, 2010. 22