O uso de equipamentos eletrônicos sem fio é cada vez mais frequente. isso se deve em grande parte ao Bluetooth. Com o surgimento dos circuitos integrados de baixa potência, o Bluetooth também desenvolveu um padrão para baixa energia, denominado "BLE". o placa micro:bit também pode se comunicar via Bluetooth, ou seja, enviar e receber dados.

Antes de olhar para os blocos que a placa micro:bit usa para BLE bluetooth de baixa energia, é necessário entender alguns conceitos usados ​​por essa tecnologia. No BLE existem duas classes de dispositivos: os centrais e os periféricos. O dispositivo central geralmente é um telefone celular e os dispositivos periféricos geralmente são circuitos de microcontroladores de baixa potência, como a placa micro:bit. (sensores, fones de ouvido, placas micro:bit, etc.) Observe a figura a seguir:

 


| Clique na imagem para ampliar |

 

Agora, é preciso ver os dispositivos periféricos como: servidores e o dispositivo central como: um cliente. Isso porque Bluetooth low energy, crio um protocolo de comunicação baseado em: "client/server". Então, do ponto de vista do protocolo de comunicação, o celular é o cliente e a placa micro:bit é o servidor. 

O protocolo de comunicação BLE é baseado em serviços, que devem estar no dispositivo periférico. Os serviços podem ser, por exemplo: Status da bateria, medições do acelerômetro, medições analógicas, etc. Cada serviço pode ter mais de um valor de dados, por exemplo, o acelerômetro pode ter valores para os eixos X, Y, Z. Os valores de dados são chamados de: feature. Observe a figura a seguir onde existe um serviço de bateria, outro acelerômetro e outros canais analógicos e cada um possui seus respectivos dados ou características:

 


| Clique na imagem para ampliar |

 

Esses serviços podem fazer parte de muitos tipos ou papéis de equipamentos eletrônicos. O exemplo anterior de serviços pode ser uma estação meteorológica, um sistema de análise de água ou um sensor de balão de ar quente. Então é necessário no protocolo Bluetooth de baixa energia, definir outro conceito: O tipo de equipamento e isso no protocolo BLE é conhecido como: "perfil". Assim, o diagrama a seguir mostra um perfil de um analisador de água, com três serviços e cada serviço com suas respectivas características ou atributos.

 


| Clique na imagem para ampliar |

 

 

Assim, exemplos de perfis podem ser:

- Fone de ouvido mãos-livres.

- Medidor de pressão arterial.

- Medidor de glicose.

- Uma pequena estação meteorológica.

- Um relógio.

- Um analisador de água.

- Etc.

 

Por isso é necessário que cada perfil anuncie ou publique via rádio BLE seu perfil específico. Isso no protocolo é conhecido como: GAP ou General Advertising Profile. Isso significa que o periférico ou servidor envia pacotes de dados para algum dispositivo central, por exemplo: um celular, e no pacote envia dados como:

- Nome do dispositivo.

- Identificador (UUID).

- Lista de serviços que você tem.

O dispositivo central (móvel) se encarrega de fazer um scanner e ler os perfis e características e se for do seu interesse pode conectar e estabelecer um canal de comunicação via rádio com o periférico/servidor. A seguir está uma lista de tarefas que um dispositivo host/cliente deve executar para usar o bluetooth:

- Procure outros dispositivos.

- Consultar dispositivo sincronizado.

- Estabelecer canais RFCOMM.

- Descoberta de serviço.

- Transferência de dados.

- Gerenciar várias conexões.

 

Quando o dispositivo host/cliente faz uma "conexão" com o dispositivo/servidor periférico, ele pode gravar, ler e receber atualizações de recursos. Esta parte é conhecida no protocolo como: "Perfil de Atributo Genérico" ou GATT. Assim, cada serviço tem suas características, que como vimos são dados. Além do valor, é necessário que a característica informe o tipo, a largura, o ID, se é leitura, escrita, atualização ou indicação. O protocolo responsável por transportar essas informações é conhecido como ATT ou protocolo de atributo. A figura a seguir mostra a pilha de protocolos:

 


| Clique na imagem para ampliar |

 

 

Na pilha podemos ver que existe uma camada de segurança, isso porque alguns periféricos podem entregar dados sensíveis e é preciso protegê-los, por isso o protocolo BLE oferece essa camada na pilha.

Existe um grupo encarregado de padronizar os perfis, serviços e características/atributos do protocolo BLE chamado: Bluetooth Special Interest Group (SIG). Eles definem identificadores universalmente exclusivos (UUIDs) para perfis, serviços, atributos, empresas, tipos de dados, etc. No protocolo BLE existe outro tipo de informação chamada: "descriptor", que são utilizadas pelas características para dar informações extras, caso necessário. Na imagem a seguir podemos ver como apenas alguns recursos possuem descritores:

 


| Clique na imagem para ampliar |

 

 

A figura a seguir mostra um exemplo de sensor de proximidade, onde podemos observar seus UUIDs, serviços, recursos e descritores:


| Clique na imagem para ampliar |

 

 

 

Blocos Bluetooth para micro:bit em makecode.

Com os conceitos anteriores sobre Bluetooth de baixa potência, podemos entender o significado dos blocos Bluetooth em micro:bit. Para utilizar esses blocos é necessário instalar uma extensão chamada: “Bluetooth”. Para isso, acesse o menu: “Extensões” e clique, conforme a figura a seguir:


| Clique na imagem para ampliar |

 

 

Aparecerá uma janela como a da figura a seguir:

 


| Clique na imagem para ampliar |

 

 

Na caixa de pesquisa, digite a palavra: “Bluetooth”. Selecione-o como mostrado na imagem a seguir:

 


 

 

 

Quando a extensão: “Bluetooth” for selecionada, aparecerá um aviso como o seguinte:

 


| Clique na imagem para ampliar |

 

 

Isso porque as extensões “Rádio” e “Bluetooth” são exclusivas, ou seja, se uma for utilizada, a outra não poderá ser utilizada e vice-versa. Após isso, já podemos visualizar o menu: “Bluetooth”, com seus respectivos blocos, conforme figura a seguir:

 


| Clique na imagem para ampliar |

 

 

O bloco: “Bluetooth I/O pin service”, permite que outro dispositivo se comunique com os pinos de saída ou entrada do placa microbit. A figura a seguir mostra esse bloco:

 


| Clique na imagem para ampliar |

 

 

O bloco: “Bluetooth led service”, permite que outro dispositivo envie strings de texto curto ou padrões para serem exibidos na matriz de LED 5x5 da placa microbit. A figura a seguir mostra esse bloco:

 


 

 

 

O bloco: “serviço de botão Bluetooth”, permite que outro dispositivo receba uma notificação sempre que um botão do placa microbit for pressionado. Os botões do microbit podem apresentar o estado: não pressionado, pressionado ou pressionado por pelo menos 2 segundos. A figura a seguir mostra esse bloco:

 


 

 

 

O bloco: “serviço de temperatura bluetooth”, permite que outro dispositivo leia ou receba um fluxo constante do sensor de temperatura do placa microbit. Este sensor está dentro do microcontrolador do placa microbit e seu valor é em graus Celsius. A figura a seguir mostra esse bloco:

 


 

 

 

O bloco: “serviço de acelerômetro Bluetooth”, possibilita que outro dispositivo leia ou receba informações quando o placa microbit estiver sendo movido. Este sensor mede a aceleração nas direções X, Y, Z. A figura a seguir mostra este bloco:

 


 

 

 

O bloco: “Bluetooth magnetometer service”, permite que outro dispositivo leia ou receba informações sobre a direção e magnitude dos campos magnéticos. Com este sensor é possível ler os campos magnéticos da terra e assim poder fazer uma bússola. A figura a seguir mostra esse bloco:

 


 

 

O bloco: "ao conectar bluetooth" é um evento que é executado quando um dispositivo se conecta via bluetooth com o placa microbit. A figura a seguir mostra esse bloco:

 


 

 

O bloco: "ao desconectar Bluetooth", é um evento que é executado quando um dispositivo é desconectado via Bluetooth com o placa microbit. A figura a seguir mostra esse bloco:

 


 

 

O menu Bluetooth possui mais blocos, que podem ser encontrados clicando no menu: “mais”, localizado abaixo do menu: “Bluetooth”, conforme a imagem a seguir:

 


 

 

A figura a seguir mostra os blocos expostos por este menu:

 


 

 

O bloco: “uart bluetooth write number”, permite que a placa microbit envie um número para outro dispositivo conectado ao bluetooth. A figura a seguir mostra esse bloco:

 


 

 

 

O bloco: “uart bluetooth write string”, permite que a placa microbit envie uma string de texto para outro dispositivo conectado ao Bluetooth. A figura a seguir mostra esse bloco:

 


| Clique na imagem para ampliar |

 

 

O bloco: “uart bluetooth write line”, permite que a placa microbit envie uma linha de texto para outro dispositivo conectado ao Bluetooth. A figura a seguir mostra esse bloco:

 


 

 

O bloco: “bluetooth uart write value”, permite que a placa microbit envie um dado com nome e valor, para outro dispositivo conectado ao Bluetooth. A figura a seguir mostra esse bloco:

 


 

 

 

O bloco: “bluetooth uart read up to”, permite que a placa microbit leia dados de um dispositivo bluetooth conectado. A leitura termina quando o caractere delimitador é encontrado. A figura a seguir mostra esse bloco:

 


 

 

 

Os delimitadores que podem ser usados são mostrados na imagem a seguir:

 


 

 

 

O bloco: “bluetooth uart service”, permite que outro dispositivo troque dados com o placa microbit, de forma muito semelhante às portas seriais UART. A diferença é que essa comunicação é via rádio frequência, por isso é chamada de RFCOMM. A figura a seguir mostra esse bloco:

 


 

 

 

O bloco: “bluetooth estabelece potência de transmissão”, permite alterar o nível de transmissão do bluetooth em uma faixa de 0 a 7, onde zero é o nível mais baixo e 7 é o nível mais alto. A figura a seguir mostra esse bloco:

 

 

FERRAMENTAS DE DESENVOLVIMENTO BLUETOOTH PARA O DISPOSITIVO CENTRAL.

 

A placa microbit seria o dispositivo periférico e um telefone celular seria o dispositivo central.

 


 

 

 

Para desenvolver aplicativos para o dispositivo central, é necessário utilizar alguns programas que permitem criar aplicativos para esses dispositivos. Cada um dos programas mostrados tem exemplos de código para usar o Bluetooth em seus repositórios. Por exemplo, você pode usar: “Android studio” conforme a imagem a seguir:

 


 

 

 

A IDE, ou seja, o ambiente de desenvolvimento, pode ser vista na imagem a seguir:

 


 

 

Outro programa que podemos utilizar para desenvolver aplicativos para celulares é: "Xamarin", que faz parte do pacote de desenvolvimento do Visual Studio, conforme a imagem a seguir:

 


| Clique na imagem para ampliar |

 

 

O IDE ou ambiente de desenvolvimento para: "Xamarin", é mostrado na imagem a seguir:

 


| Clique na imagem para ampliar |

 

 

Outro programa usado para fazer aplicativos no dispositivo central é: "App Inventor" que podemos ver na imagem a seguir:

 


| Clique na imagem para ampliar |

 

 

Este programa usa blocos e você deve estar conectado à internet para usá-lo. Observe a figura a seguir:

 


| Clique na imagem para ampliar |

 

 

Uma ferramenta para analisar dispositivos BLE próximos ao seu celular chama-se: “nRF Connect” e pode ser baixada no Google Play. Esta aplicação foi desenvolvida pelo mesmo fabricante do microcontrolador utilizado no placa microbit, denominado: "Nordic Semiconductor". A figura a seguir mostra a interface deste aplicativo:

 


| Clique na imagem para ampliar |

 

 

A empresa: "Nordic Semiconductor", também disponibiliza o mesmo aplicativo para computadores, que se chama: "nRF Connect for Desktop". Computadores com Bluetooth também podem atuar como um dispositivo central no protocolo BLE. A imagem a seguir mostra este aplicativo:

 


| Clique na imagem para ampliar |

 

Também é necessário parear o placa micro:bit com o dispositivo central (telefone celular). Para fazer isso, você pode baixar um aplicativo do Google Play chamado: “micro:bit”, que pode orientá-lo nesse processo, conforme mostra a imagem a seguir:

 


| Clique na imagem para ampliar |

 

 

A imagem a seguir mostra como é necessário manter pressionados os botões: A e B. Em seguida, pressione o botão reset para iniciar o processo de emparelhamento:

 


| Clique na imagem para ampliar |

 

 

Siga as etapas no aplicativo para concluir o processo de emparelhamento.