EsdrasXavier / Trekking

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Criar protocolo de comunicação

EsdrasXavier opened this issue · comments

Definir um protocolo de comunicação utilizando bytes, onde cada byte irá significar uma informação para o robô. Por exemplo: 012, onde:

  • 0 -> Comando
  • 1 -> Byte menos significativo
  • 2 -> Byte mais significativo

Para transformar um int para array de bytes utilize:

int data = 10;
byte arr[2];
arr[0] = data & 0XFF;
arr[1] = (data >> 8) & 0xFF;

Para transformar de bytes para int

int = arr[0] + (arr[1] << 8);
commented

É que isso daí transforma um int em um array de bytes, daí pode ser passado via bluetooth. Aí ao invés de utilizarmos texto utilizamos isso daí o que em teoria seria mais rápido. Porém o arduíno tem que interpretar tbm kkkkk

commented

Assim em teoria isso seria mais rápido pq não vai usar substring nem o objeto da String, mas temos que testar

Concordo com @EsdrasXavier. Não sei que tipo de dados vai ter que ser encoded/decoded no aplicativo e arduino. Porem se esses 3 bytes são o suficiente para transportar a informação não tem com isso ser ineficiente. Afinal são 3 bytes. Como comparativo um int tem tamanho de 4bytes. Curti a ideia de lidar diretamente com bits.

Podemos tirar proveito também de buit-in resources do Android. Como por exemplo o Android Things API

Tem alguns posts na internet e repos no github sobre comunicação Arduino/Android. Podemos tirar algumas ideias para não ter que resolver problemas já resolvidos.
https://proandroiddev.com/android-of-things-%EF%B8%8F-arduino-81845f37922e

https://github.com/Nurgak/Android-Bluetooth-Remote-Control
https://github.com/androidthings/robocar

Uma boa, temos que tentar convencer os professores disso :D

O código para interpretar o protocolo está nesse repositório. O protocolo deve ser melhor definido, porém neste repositórios estará tudo explicado