Bluetooth - UnbDroid/SEK GitHub Wiki

Vantagens

  • Não precisa de fios e assim ganham-se portas para colocar sensores.

Desvantagens

  • A velocidade de comunicação não é tão alta quanto a com fios. Pode haver também uma quebra de conexão, que ainda não foi observada.

Introdução

Primeira coisa que devemos nos atentar é que se você está interessado em fazer comunicação entre cérebros, significa que você precisa de mais portas: os 4 inputs e 3 output de um cérebro não são suficientes. Não tente implementar isso por luxo: se não há necessidade, não implemente!

Para fazer a comunicação entre cérebros via bluetooth existem dois métodos:

  • Comunicação direta(escravidão), apenas um código para o mestre.
  • Pacotes de mensagem(cooperação), dois códigos: um para cada cérebro.

Na comunicação direta, temos um poder computacional menor pois somente um cérebro em processamento enquanto por pacotes de mensagem os dois cérebros podem processar informações.

No primeiro tipo(escravidão) a implementação é mais simples e consequentemente a depuração fica mais simples também. Conforme veremos mais abaixo, notaremos as diferenças e nem sempre a comunicação direta é pior ou melhor, depende muito do caso.

Escravidão

A ideia principal é que no cérebro mestre, que contém o código, utiliza as portas input(sensores) e as portas output(motores) do escravo como se fossem as próprias portas do mestre. Assim o mestre fica com 8 inputs e 6 outputs. Contudo, como existe limitação de velocidade devido à conexão bluetooth: as portas do escravo são mais devagar.

E por que o nome de escravidão? Simples, apenas o mestre "pensa"(processa) e diz ao escravo o que deve ser feito: Se deve ler algum sensor ou movimentar algum motor. E o escravo simplesmente executa as ações que o seu mestre diz para fazer.

Quando usar

Na utilização deste método fica mais simples implementar e debugar o código. É recomendado quando se não requer muito processamento.

Exemplo

Supomos que tenhamos no mestre 2 outputs conectados: um para cada roda. Suponhamos também que no mestre tenhamos 3 inputs conectados: um giroscópio e dois sensores ultrassônicos nas laterais

Ou seja, até esse momento, podemos fazer um robô que consegue se locomover em uma arena. Mas além dessas portas utilizadas, queremos mais portas para colocar dois sensores de cores. Nesse caso, utilizamos a comunicação direta e conectamos apenas os sensores de cor no cérebro escravo e sempre que é necessário

Cooperação

Para facilitar a explicação, vamos chamar os cérebros de A e B e seus respectivos códigos de a.nxc e b.nxc. Não existe uma ordem hierárquica. A pode processar algumas informações assim como B pode processar. O cérebro A possui seus próprios inputs e outputs assim como o cérebro B possui seus próprios inputs e outputs

A ideia principal é que entre os cérebros A e B existem 10 caixas de correios. Então A pode escrever uma carta e então colocar em alguma dessas caixas de correios. Então B pode verificar alguma caixa de correio e se tiver alguma carta, pode pegar a carta e ler a informação.

Algumas complicações são:

  • Sempre é necessário verificar se existe algo na caixa de correio, e pode estar vazia.
  • Por mais que exista uma carta em uma caixa de correio X, você só descobrirá se há carta se verificar X.
  • As cartas funcionam como uma fila: Você só pode pegar a ultima informação se retirar todas as outras cartas antes.

Quando usar

Quando se há um grande volume de informações, é necessário mais processamento.