• Labs experts
  • Comunicação

Expert - Bluetooth

Lab Expert - Bluetooth
Deadline: (02/06) (dia da prova)
Repositório no Classroom
💰 100% nota de lab

Neste laboratório vamos explorar os recursos de conectividade Bluetooth da Raspberry Pi Pico W.

Definições

Já conhecemos a tecnologia Bluetooth, inclusive usamos em nosso curso por meio do módulo HC05/HC06.

Se já conhecemos e usamos bluetooth, por que vamos voltar nesse assunto? Bem, é chegada a hora de aprofundarmos nosso conhecimento um pouco mais na tecnologia bluetooth e aproveitar para conhecer como usar o modulo bluetooth da pico W.

A Raspberry Pi Pico W possui a versão 5.2 do Bluetooth, que é a especificação do módulo CYW43439 de wifi/bt. O modulo possui o modo BLE (Bluetooth Low Energy) que oferece melhorias em termos de velocidade, alcance e eficiência energética.

Característica CYW43439 (Pico W) HC-05/HC-06
Versão Bluetooth Bluetooth 5.2 Bluetooth 2.0
Modos de Operação BLE (Bluetooth Low Energy) Bluetooth Clássico
Taxa de Transferência Mais alta devido ao BLE e Bluetooth 5.2 Limitada (Bluetooth 2.0)
Energia Mais eficiente (BLE) Menos eficiente
Alcance Maior alcance (BLE e Bluetooth 5.2) Menor alcance
Facilidade de Uso Mais complexo, mas mais funcionalidades Mais simples, ideal para iniciantes
Modos de Conexão Central e Periférico Mestre (HC-05) e Escravo
Interfacing SPI UART (serial)

Comunicação Bluetooth LE

Bluetooth Low Energy (BLE) foi introduzido como parte da especificação Bluetooth 4.0, projetado para oferecer uma alternativa de baixo consumo de energia ao Bluetooth clássico, e tenta ser uma alternativa para aplicações que requerem comunicação sem fio eficiente em termos de energia, como dispositivos vestíveis, sensores e dispositivos IoT (Internet das Coisas).

A medida que começamos a nos aprofundar no sistema bluetooth, vamos nos deparar com uma verdadeira sopa de letrinhas, isso por que o sistema bluetooth é bem complexo e requer conhecimento e diversos protocolos aplicados em diversas camadas.

De acordo com a propria especificação, o sistema Bluetooth é composto por um Host, um Controlador Primário e zero ou mais Controladores Secundários. Uma implementação mínima do sistema core Bluetooth BR/EDR cobre as quatro camadas mais baixas e os protocolos associados definidos pela especificação Bluetooth, bem como um protocolo de camada de serviço comum; o Service Discovery Protocol (SDP). Os requisitos gerais do perfil são especificados no Generic Access Profile (GAP). O sistema core BR/EDR inclui suporte para Alternate MAC/PHYs (AMPs), incluindo um AMP Manager Protocol e Protocol Adaptation Layers (PALs) que suportam MAC/PHYs referenciados externamente. Uma implementação mínima de um sistema core apenas Bluetooth LE cobre as quatro camadas mais baixas e os protocolos associados definidos pela especificação Bluetooth, bem como dois protocolos comuns de camada de serviço; o Security Manager (SM) e o Attribute Protocol (ATT). Os requisitos gerais do perfil são especificados no Generic Attribute Profile (GATT) e no Generic Access Profile (GAP).

btstack

A pico W utiliza da stack opensource btsatck que implementa os protocolos bluetooth comentandos anteriormente.

A stack possui diversos exemplos e estão disponíveis no repositório ofical da pico de exemplos:

Os exemplos são todos muito bem documentados no site da stack:

PICO

O problema é que executar esses exemplos é um pesadelo, então para facilitar a nossa vida já configuramos um repositório com um exemplo da pico simulando um teclado/mouse

Ao execcutar esse exemplo a pico vira um device bluetooth com nome HID Keyboard Demo (que é definido nessa linha). Uma vez conectado no computador, abra o monitor serial e digite uma sequência de caracteres, a PICO irá reproduzir essa mesma sequência, como se você estivesse apertando as teclas.

Entrega

A entrega deve ser um sistema com 4 botões que eumulem as teclas A, S, W, D via bluetooth. Um LED azul deve ficar piscando enquanto nenhum device está pareado, e ficar aceso quando um computador se conectar na pico.