-
Notifications
You must be signed in to change notification settings - Fork 0
Home
#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");
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ô.