Por que eu devo ler este artigo:Este artigo é útil para programadores que não possuem conhecimentos técnicos sobre a utilização das classes e métodos da API do Android responsáveis por acessar os sensores de um smartphone ou tablet, e aos que desejam aprender sobre o protoloco de comunicação bluetooth e o protocolo específico utilizado pelo LEGO Mindstorms para comunicação com outros dispositivos.

Os celulares modernos, mais conhecidos como smartphones, já vêm equipados com inúmeros sensores, entre acelerômetros, giroscópios, bússola, sensores de proximidade e luz, entre outros. O uso de sensores associados a plataformas mobile em código aberto, como a plataforma Android, têm proporcionado aos desenvolvedores construírem aplicativos e tecnologias que integrem hardware e software, proporcionando inúmeros avanços no uso da computação e robótica.

Uma prova da grande revolução da robótica nos dias de hoje está nos brinquedos “robotizados”, sendo um deles o LEGO Mindstorms, uma plataforma voltada para a educação tecnológica na qual é possível montar robôs sem grandes conhecimentos sobre eletrônica. Entretanto, há casos em que os robôs são incapazes de desenvolver determinadas tarefas de forma independente. Uma alternativa para resolver esse tipo de limitação é utilizar um controle remoto.

A comunicação entre smartphones e dispositivos remotos aumenta consideravelmente as possibilidades de aplicações para sistemas móveis, em especial quando se necessita recursos alheios aos smartphones como utilização de impressoras, leitores de códigos de barras ou o controle remoto de dispositivos.

Assim, o foco deste artigo é o desenvolvimento de um aplicativo para a plataforma Android que controle remotamente um LEGO Mindstorms. Para a comunicação foi optada pela tecnologia bluetooth, já para o controle será utilizado o sensor de movimento presente nos smartphones modernos, assim, de acordo com a movimentação do smartphone é esperada uma determinada ação do robô.

Bluetooth é uma tecnologia sem fio usada para conectar e transmitir dados entre dispositivos em rede pessoais (chamadas de Personal Area Networks - PANs). Com velocidades de transmissão que podem se aproximar de 24 Mb/s, o bluetooth é um o padrão em comunicação de curta distância.

Celulares, smartphones, câmeras digitais, teclados, mouses e outros dispositivos adotaram a tecnologia por ser robusta, economizar energia e ter uma fácil implementação. Um dispositivo operando bluetooth pode se conectar com até oito outros dispositivos, que o torna uma ótima opção para uma rede de dispositivos móveis. O bluetooth surgiu como resposta para a necessidade de conectar dispositivos sem a utilização de cabos, visando a econômica de energia, a fácil operação e a comodidade. São utilizadas ondas de rádio de baixa potência, operando em frequências que vão de 2.4Ghz a 2.5 Ghz, na faixa de frequência conhecida como ISM (Industrial, Scientific, Medical). O uso da baixa potência aumenta a economia de energia das baterias e limita o alcance a um máximo de 100m.

Android e Bluetooth

Android é um sistema operacional com código aberto baseado no núcleo do Linux para dispositivos móveis. A primeira versão do Android com suporte a bluetooth foi anunciada em 2009 pela Google, este possuindo nome Eclair. A versão é a 2.0 e conta com suporte ao bluetooth 2.1.

É possível utilizar as classes nativas no Android e suas funções para criar aplicativos que utilizem o bluetooth. Aplicações Android que tem suporte ao bluetooth podem descobrir e se conectar a dispositivos, estabelecer conexões ponto-a-ponto e ponto-multiponto e utilizar conexões RFCOMM para transferir dados.

Através de APIs, os aplicativos desenvolvidos para Android podem configurar conexões, buscar, conectar e transferir dados entre os dispositivos.

As principais classes usadas para configurar conexões bluetooth no Android são:

  • BluetoothAdapter: Representa o adaptador bluetooth local, o hardware de bluetooth. Utilizado para instanciar dispositivos bluetooth usando macs conhecidos e criar soketsbluetooth para receber conexões de outros dispositivos;
  • BluetoothDevice: Usado para requisitar informações e conexões a dispositivos remotos;
  • BluetoothSocket: Representa a interface da conexão;
  • BluetoothServeSocket: Habilita o servidor a receber pedidos de conexão;
  • BluetoothClass: Propriedades de somente leitura que definem as características e os serviços do dispositivo bluetooth;
  • BluetoothProfile: Representa um perfil bluetooth. Existem vários perfis pré-definidos de configuração que podem ser escolhidos para se trabalhar como headset profile e o hands-free profile;
  • BluetoothHeadset: Suporte para headsets utilizando a tecnologia bluetooth;
  • BluetoothA2p: Define a qualidade do áudio que pode ser transmitido em conexões entre dispositivos;
  • BluetoothProfile.ServiceListener: Avisa clientes bluetooth quando são desconectados ou conectados.

Agora que conhecemos algumas definições importantes sobre o bluetooth, vamos entender um pouco mais sobre o uso de sensores no Android.

Sensores

Os smartphones e tablets de última geração possuem uma vasta rede de sensores para controlar algumas funções do dispositivo.

Quando uma ligação está em curso, por exemplo, e o usuário aproxima o smartphone do ouvido, a tela é desligada e os sensores de toque desativados. Isso ocorre devido ao uso do sensor de proximidade. Quando um smartphone ou tablet com Android é rotacionado, a orientação da tela também muda. Isso se deve ao uso do acelerômetro ou giroscópio. Um acelerômetro é um sensor capaz de medir a aceleração a partir da força aplicada sobre ele. Assim, é possível saber qual foi o movimento efetuado pelo usuário, em graus, durante o giro do equipamento. Acelerômetros são os sensores mais comuns dos dispositivos Android e estão presentes na maioria deles.

...
Quer ler esse conteúdo completo? Seja um assinante e descubra as vantagens.
  • 473 Cursos
  • 10K Artigos
  • 100 DevCasts
  • 30 Projetos
  • 80 Guias
Tenha acesso completo