Skip to content
Igor Fachini edited this page Sep 27, 2016 · 2 revisions

#Como funciona a aplicação

##Controle

O design do controle é baseado no controle do Mega Drive.

Consiste em 4 botoes de direção e 6 botoes para outros comandos, na parte do meio podemos visualizar dados recebidos do Bluetooth que podem ser separados em 7 linhas e 1 coluna no máximo.

##Bluetooth

A comunicação do Bluetooth só pode se realizada com módulos Bluetooth serial.

###Recebendo dados do Bluetooth.

A aplicação foi desenvolvida especialmente para trabalhar com Arduíno, recebemos os dados por meio da conexão pelos módulos Bluetooth HC-05,06 que estarão conectados com o Arduíno.

No Arduíno, se as ligações estiverem conectadas corretamente, podemos mandar dados para o celular apenas com o Serial.print("hello word");, mas nossa aplicação do celular 📱 tem uma logica que pode separar as informações recebidas pelo bluetooth em 7 linhas máximo.

Dentro da aplicação existe um método java chamado '.split();' que pode separar um texto em um array de string pelo carácter informado. **No nosso caso ele separa o as informações recebidas pelo carácter ';' **.

No Arduíno podemos mandar da seguinte forma.

Serial.print("Linha01: bla bla");

Serial.print(";");

Serial.print("Linha02: bla bla");

Serial.print(";");

Serial.println("Linha03: bla bla");

Mandando dados

Os botoes seguem o seguinte esquema de envio. Quando pressionado botão, envia a informação armazenada no correspondente botão pressionado apenas uma vez, e apos isso envia um carácter ' ; ' no final da mensagem, quando qualquer botão é solto, ele envia uma informação igual para todos uma vez.

Enviando esse carácter ' ; ' no final, podemos mandar textos para Arduíno com tranquilidade, já que no Arduíno existe um método de recebimento chamado Serial.readStringUntil();, que recebe como parâmetro um carácter, a função dele é esperar toda a informação chegar ate o carácter informado, no nosso caso o ele espera ate chegar o > ' ; ', depois disso concatena(junta) toda os dados recebidos excluindo o ';' e coloca na sua respectiva variável.

Por exemplo:

String texto = readStringUntil(';');

O objetivo de mandar a mesma informação para quando solto os botoes, é para seguinte logica. Por exemplo no controle, pode ser recebido a direção que o robô deve andar, e quando solto o botão, ele envia ( 0 ) para parar o robô.

Clone this wiki locally