Controle de Sistemas Embarcados Através de Bluetooth Aplicado a Robótica

6

Click here to load reader

description

Este artigo trata do sistema de comunicação para um mecanismo embarcado (robô) da classe ROVER. Usa-se o protocolo Bluetooth para controle por celular. Uma das vantagens deste sistema é servir como alternativa ao controle do robô quando existir a necessidade de melhor mobilidade, independente de sua estação, além da alta taxa de bits para transferência de dados. Essa necessidade está voltada diretamente ao auxílio na exploração de ambientes hostis.

Transcript of Controle de Sistemas Embarcados Através de Bluetooth Aplicado a Robótica

Page 1: Controle de Sistemas Embarcados Através de Bluetooth Aplicado a Robótica

Controle de Sistemas Embarcados Através de Bluetooth Aplicado a Robótica André Luiz Guerreiro Modesto e Marcos Henrique Kumagai Sampaio

Instituto de Estudos Superiores da Amazônia (IESAM), Avenida Gov. José Malcher, 1148 - Nazaré - Belém-PA. Telefone: 91 – 40055400.Orientador: Prof.Dr José Felipe Almeida

Resumo Este artigo trata do sistema de comunicação para um mecanismo embarcado (robô) da classe ROVER. Usa-se o protocolo Bluetooth para controle por celular. Uma das vantagens deste sistema é servir como alternativa ao controle do robô quando existir a necessidade de melhor mobilidade, independente de sua estação, além da alta taxa de bits para transferência de dados. Essa necessidade está voltada diretamente ao auxílio na exploração de ambientes hostis.

Palavras-chaves Controle, Robô, Bluetooth.

I. INTRODUÇÃO

Nos últimos anos ocorreu um grande crescimento no desenvolvimento e pesquisa de robôs móveis [1]. Isso ocorreu, principalmente devido ao grande leque de aplicações da robótica móvel, sendo utilizada em tarefas de alto risco ao homem como: em indústrias mineradoras, manejo e manipulação de materiais perigosos [1,2]; em áreas de difícil acesso, tais como: exploração espacial, áreas de atividade vulcânica e também em outras atividades, tais como: o setor médico, meio ambiente e ainda utilizado em tarefas domésticas [3].

Este projeto tem como proposta um robô controlado via Bluetooth. Isto é feito devido à necessidade de agilidade, pois pode ser controlado por um celular. Além disto, este tipo de tecnologia, em comparação a outras [4,5], tem a vantagem de altas taxas de bits para transferência de dados. Também, oferece resistência a impactos e não é inflamável, por isto pode ser utilizado nas brigadas de incêndio para ajudar nos trabalhos de resgates, registrarem imagens do local, identificar vítimas e registrar as temperaturas dos locais.

II. TECNOLOGIA BLUETOOTH

Bluetooth é uma tecnologia de curto alcance via rádio, que propicia uma conexão wireless para terminais móveis como notebooks, impressoras, telefones móveis, e PDA’s (Personal Data Assistent). Isto é feito de tal modo que é capaz de conectar dispositivos distintos através de um protocolo de comunicação [6]. Ou seja, a tecnologia Bluetooth veio para tentar resolver problemas como a necessidade de uso de cabos para realizar a conexão e a substituição dos diferentes tipos de entrada de hardware utilizados por esses dispositivos.

Marcos Henrique Kumagai Sampaio, [email protected], André Luiz Guerreiro Modesto, [email protected], José Felipe Almeida, [email protected].

Cada dispositivo Bluetooth pode se comunicar com quaisquer outros dispositivos dentro de uma pequena rede wireless. Isto é feito por uma arquitetura de rede chamada de piconet [7], que consiste em um nó mestre e até sete nós escravos ativos, situados dentro de um raio de cobertura de 10 metros. Dessa forma, todos os dispositivos mantém uma conexão lógica entre si. De outro modo, essa conexão lógica apenas é convertida em uma conexão física quando existe a necessidade de troca de dados entre os dispositivos.

A tecnologia Bluetooth é um sistema completo, desde a camada física até a camada de aplicação. Sua comunicação é feita na faixa de freqüência que varia entre 2,402 e 2,480 GHz, essa banda ISM6 é livre e não é licenciada em todo o mundo [4]. E, por ser uma técnica de mudança de faixas de freqüências muito rápida, é usada para fazer com que a freqüência escolhida, para a troca de dados, seja enviada e recebida em várias vezes a cada segundo. Com isso, o Bluetooth evita a interferência e o choque de dados causados pela troca de dados entre vários dispositivos numa mesma piconet.

Os componentes da rede Bluetooth, são identificados através de um endereço único, de uma forma bastante parecida com o endereço MAC numa rede Ethernet. Esse endereçamento e identificação são usados para regular autorização, funcionalidades e segurança dos vários participantes.

A velocidade sinalizada é de 1Mbit/s das quais 721Kbit/s estão disponíveis para transferência de voz e de dados. O alcance máximo do Bluetooth é de 10 ou 100 metros, dependendo da potência utilizada pelo dispositivo. No entanto, existem problemas no que se diz respeito às barreiras físicas, que ocasiona uma redução do alcance da piconet.

Para o controle próprio e comunicação entre dispositivos, o Bluetooth usa uma pilha de protocolos, sendo dividida em dois itens: Camada e Perfis [8]. Dividindo cada um dos elementos da pilha Bluetooth em componentes individuais, poderemos chamar esses elementos de camada da pilha, ou seja, todas as camadas do protocolo Bluetooth formam a pilha de protocolos.

Um dos elementos, o protocolo RFCOMM (Radio Frequency Communication), é assim chamado, pois faz referência às portas seriais COMM1 e COMM2. Esse protocolo é conhecido como uma porta serial para comunicação wireless ou protocolo de substituição de cabos. Um exemplo de como o RFCOMM funciona é quando um PDA está com sua pilha de Bluetooth ativa e sincroniza seus dados com um computador através de um dispositivo Bluetooth usando a camada RFCOMM. Dessa maneira, eles

Page 2: Controle de Sistemas Embarcados Através de Bluetooth Aplicado a Robótica

irão trocar seus dados como se estivessem interligados através de cabos físicos e utilizando a porta serial. Outro exemplo seria a sincronização de um celular para enviar dados para um módulo Bluetooth acoplado ao circuito, para que assim envie as informações ao microcontrolador e execute a determina ação desejada.

III. DESENVOLVIMENTO DA APLICAÇÃO USANDO J2ME BLUETOOTH

Para a sicronização de dados do celular com o robô, foi

utilizada o Java 2 Micro Edition (J2ME) que é a edição da linguagem Java para ser usada em dispositivos de computação portáteis e móveis, que possuem as seguintes características: mobilidade, baixa capacidade de processamento e pouca memória disponível, alimentação elétrica por baterias, pequenas áreas de display, e limitados e variados métodos de entrada e saída [9].

Para a integração do J2ME com Bluetooth foi definida uma arquitetura com a especificação da JSR-82 que é o nome formal para a API Bluetooth Wireless Technology (JABWT). [10] A API JSR-82 é baseada nas configurações CLDC, que consiste de uma máquina virtual, a KVM, e um conjunto de bibliotecas de classes para serem utilizados dentro de um perfil definido pela indústria, tal como o MIDP. Por sua vez o MIDP, Mobile Information Device Profile (Perfil de Dispositivo de Informações Móvel), é um perfil J2ME direcionado a pequenos dispositivos, ligado ao CLDC.

JSR-82 opera na camada CLDC da arquitetura de implementação da plataforma J2ME, mas na prática, ela é usada como uma extensão de funcionalidades da camada de profiles do J2ME.

Referência [11] apresenta o desenvolvimento Bluetooth, pois são necessários alguns componentes básicos como:

Stack initialization (Inicialização da pilha Bluetooth, onde se define a porta serial, baud rate e etc.)

Device Inquiry (Descoberta de serviços que estão dentro do alcance do dispositivo inicializado)

Device management (Gerenciamento das funcionalidades dos dispositivos definidas pelo Generic Access Profile)

Name Discovery (Descoberta dos nomes dos dispositivos)

Service Discovery (Descoberta dos serviços disponíveis)

RFComm (Provê conexões de confiança, bidirecionais e orientadas a stream)

L2CAP (Define as interfaces L2CAPConnection e L2CAPConnectionNotifier para o envio e recebimento de pacotes)

IV. MODULO BLUETOOTH

Os comandos AT foram criados por Dennis C. Hayes e Dale Heatherington em 1977, quando Hayes construiu na mesa da sua sala de jantar um modulador-demodulador controlado por microprocessador para uso em computadores - primeiro modem inteligente da história. O usuário podia enviar comandos do computador para o modem utilizando uma linguagem simples de comandos de controle em ASCII, todos começando com “AT”.

A interface do módulo KcSerial é similar ao padrão de Hayes. O módulo possui dois modos de operação, um modo de comando e um modo de comunicação de dados denominado bypass. Em modo de comando, o dispositivo no final da malha de comunicação (host) pode emitir strings denominadas comandos. Estes comandos podem ser usados para configuração ou gerenciamento de conexão com um dispositivo remoto. Contudo este módulo não suporta o "Conjunto padrão Hayes de comandos AT" (Hayes Standard AT Command Set). Em vez disso, ele tem comandos especificados pelo fabricante, que se assemelham ao padrão de Hayes.

Quando o modulo é ligado, entra em modo de comando para ser configurado e gerenciar as conexões. Após estabelecer conexão, entra automaticamente em modo de comunicação (bypass), assim, os dados enviados do host serão transmitidos através do Link Bluetooth até o dispositivo remoto. Qualquer dado recebido será entregue ao host.

Todos os dados recebidos pela UART (Universal asynchronous receiver/transmitter) do host serão transmitidos, exceto a seqüência Escape. Enquanto em modo bypass, o modulo fica buscando a seqüência Escape (“^#^$^%”). Se esta seqüência for achada, o modulo entrará em modo de comando. Enquanto em modo de comando, toda informação recebida neste intervalo será descartada e a interface vai enviar as respostas de volta ao host para os comandos recebidos.

Page 3: Controle de Sistemas Embarcados Através de Bluetooth Aplicado a Robótica

Fig. 1. Fluxo de dados entre kcSerial, host, e dispositivo Bluetooth remoto.

IV. CÁLCULO DE ESTRUTURA DO ROBÔ

A. Tração Diferencial

O tipo de tração diferencial com duas rodas motrizes (com 2 motores DC dotados de caixa de redução e alto torque) e uma roda boba de acordo com a Figura 2. Este sistema é estável e de construção mecânica simples e robusta. Dessa forma, a estabilidade está garantida, pois o centro de gravidade cai dentro do triângulo constituído pelos três pontos de contacto das rodas com o solo.

A principal vantagem deste tipo de tração está na facilidade de manobra – é possível realizar uma rotação completa em um ponto na mesma posição.

Fig. 2. Tração diferencial.

1) Forma geométrica

As dimensões máximas estabelecidas no projeto do IESAMBOT I estão descritas na Figura 3.

Fig.3. Planta de estrutura do robô.

B. Escolha dos motores.

O Motor escolhido foi do tipo DC, com alimentação de 12V e alto torque, com capacidade de desenvolver até 50 rpm. A regra para a escolha deste tipo de motor foi feita com base em estudos e experimentos preliminares. Este tipo de sistema mecânico não desenvolve altas velocidades, contudo, é um sistema robusto e preciso, capaz de suportar uma considerável quantidade de carga.

Assim, as principais preocupações no projeto de acordo com a figura 4, foram:

1. ter força suficiente para entrar no estado de eminência, adquirir movimento no solo e atingir uma velocidade adequada ao piso;

2. ter força suficiente para subir uma rampa de leve inclinação (max.25°).

Fig. 4. Diagrama da Pista para inclinação de 25°.

Os motores escolhidos cumpriram perfeitamente estas especificações, para os dados considerados de:

1. peso do carro entre 1,5Kg até 3,0Kg;

Page 4: Controle de Sistemas Embarcados Através de Bluetooth Aplicado a Robótica

2. diâmetro das rodas 12,0 cm.

V. SENTIDO DO MOVIMENTO E SEU COMPORTAMENTO DINÂMICO

O sentido do movimento, juntamente com o controle via computador através do usuário para a ação dos motores é muito importante. Para desviar de um obstáculo e efetuar uma curva em relação à pista, um dos motores deve estar em velocidade maior que o outro (o outro fica em velocidade menor) e, logo, chega-se a conclusão de que esta solução leva a um ângulo menor de rotação, portanto, mais estabilidade e menores oscilações de acordo com a Figura 5.

Fig. 5. Problema da Estabilidade Dinâmica – Alta oscilação em desvios e

veículo instável.

VII. OPERAÇÃO DO ROBÔ

O controle deste Sistema Embarcado e feito em duas etapas: primeiro, o software de controle envia instruções através de um modulo de comunicação ou através de um celular, tal como Bluetooth; segundo, o robô recebe estas instruções, as interpreta e posteriormente as executa. Desta forma, na ultima etapa, o módulo de recepção envia as instruções para o barramento de comunicação RS-485. Assim, cada microcontrolador, munido de uma firmware (programa do PIC), interpreta os dados recebidos de acordo com a sua função no sistema em geral. Isto envolve o controle de movimento (motores DC) e o controle de giro da câmera (motor de passo). Pela sua arquitetura com dois motores DC, o robô possui dois graus de liberdade.

São usados módulos de comunicação sem fio na freqüência de 433 MHz, com modulação ASK, ou na freqüência de 2,4 GHz, com o Bluetooth.Também foi utilizado uma câmera sem fio para transmissão de vídeo na faixa 900MHz até 1200MHz (microondas). O Programa para controlar o robô por computador foi desenvolvido em C++ pelo ambiente de desenvolvimento Microsoft Visual C++ com classes MFC e DirectX para recepção dos frames de vídeo pelo computador. O robô pode ser operado também por um controle microcontrolado construído para ele, sem auxílio do computador, logo é necessário um aparelho de televisão ou adaptador de aquisição RCA para computador na recepção dos frames de imagem.

V. CONSIDERAÇÕES FINAIS

Este trabalho tratou sobre a implementação de um sistema de comunicação de um mecanismo embarcado para Rovers. Para isto um modelo dessa classe de robôs foi construído. O principal sistema de comunicação utilizado foi o Bluetooth, pois tem a vantagem de manter o sistema embarcado funcionando mesmo em situações de difícil acesso. O uso de uma rede de microcontroladores facilita o controle do sistema que se torna modular e incremental, ou seja, não é necessário reconfigurar o circuito na adição de mais funções ao robô e sim adicionar um microcontrolador que irá controlar a nova função à rede RS-485.

REFERÊNCIAS

[1] Lages, W. F. (1998). Controle e Estimação de Posição e Orientação de Robôs Móveis, Tese de doutorado, Instituto Tecnológico de Aeronáutica, São José dos Campos, SP. Disponível em http://www.eletro.ufrgs.br/ fetter/artigos.html.

[2] SILVA JÚNIOR, TREVISAN, M., E. P., IDIART, M. A. P., ENGEL, P. M. BVP-Exploration: further improvements. In: IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2003,Las Vegas. IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE,2003.

[3] Azinheira, J.R.; De Paiva, E.C.; Ramos, J.J.G.; Bueno, S.S. (2000). “Mission Path Following for an Autonomous Unmanned Airship.” IEEE Int. Conference on Robotics and Automation, São Francisco, USA, April 2000.

[4] Bluetooth – Disponível em <http://www.bluetooth.com/>Elfes, A.; Bueno, S.S.; Bergerman, M.; Ramos, J.J.G. (1998a) “A semi-

autonomous robotic airship for environmental monitoring missions.” IEEE International Conference on Robotics and Automation, Leuven, Bélgica, Maio de 1998, pp. 3449-3455.

[5] Datasheet – RF Módulo RX TX – Disponível em < http://www.tato.ind.br/>, acesso em 20/08/2008.

[6] RFI Mobile Technologies AG – Bluetooth Technology: Manufacturer-independent information on Bluetooth™ Technology and its economic aspects, 2001.

[7] TANENBAUM, ANDREW. Distributed Systems – Principles and Paradigms. Prentice Hall, 3a. Edição, 2002.

[8] Hopkins, B.; Antony, R. – Bluetooth for Java ISBN:1590590783 Edição 2003.

[9] Java 2 Platform Micro Edition (J2ME ) Technology for Creating Mobile 85.

[10] JSR 82: JavaTM APIs for Bluetooth. Disponivel em <http://www.jcp.org/en/jsr/detail?id=82> , acesso em 22/04/2008.

Page 5: Controle de Sistemas Embarcados Através de Bluetooth Aplicado a Robótica

[11] Getting Started with Java and Bluetooth – Disponivel em <http://today.java.net/pub/a/today/2004/07/27/bluetooth.html >, acesso 05/06/2008.