banner
Lar / blog / Usando Raspberry Pi Pico W para Bluetooth baixo
blog

Usando Raspberry Pi Pico W para Bluetooth baixo

Jun 16, 2023Jun 16, 2023

Fred Eady | 31 de agosto de 2023

Com o advento da versão 1.5.1, o Raspberry Pi Pico SDK agora oferece suporte a Bluetooth Classic e Bluetooth Low Energy (BLE) na plataforma de desenvolvimento Raspberry Pi Pico W. Como esperado, após o anúncio do suporte ao Bluetooth, vários exemplos do Pico Bluetooth baseados em uma porta do BTstack do BlueKitchen foram disponibilizados. O código de exemplo portado do Raspberry Pi Pico SDK mantém o formato original da linguagem BTstack C. No entanto, a maioria dos exemplos de Pico Bluetooth baseados em BTstack que podem ser encontrados em domínio público foram realizados em MicroPython ou Arduino. Com isso, o objetivo desta discussão será produzir um exemplo funcional do Pico Bluetooth Low-Energy em linguagem C desenvolvido no Ubuntu 22.04 LTS usando Visual Studio Code e o mais recente conjunto de ferramentas Raspberry Pi Pico SDK. Você pode obter o código-fonte do projeto de exemplo no site de download da EDTP Electronics.

Para aqueles que não estão familiarizados com o Raspberry Pi Pico W, o PicoW é uma implementação básica de hardware BLE que consiste em um microcontrolador que supervisiona a transmissão e recepção do tráfego de rádio Bluetooth por meio de um módulo de rádio Bluetooth. O microcontrolador é governado por uma pilha Bluetooth; a inclusão de uma pilha Bluetooth permite que o hardware PicoW assuma o papel de cliente ou servidor em uma aplicação Bluetooth. Assim, o PicoW pode ser programado para atuar como um dispositivo remoto de coleta de dados atendendo sensores ou um dispositivo de armazenamento e encaminhamento de dados que coleta dados de sensores de dispositivos remotos e transfere os dados coletados para um local central de processamento. O hardware PicoW também é capaz de operar em modo autônomo, processando informações Bluetooth recebidas e agindo de acordo por meio de seu banco de pinos GPIO e periféricos no chip.

Iniciamos o processo de desenvolvimento do firmware instalando a versão 1.5.1 do Raspberry Pi Pico SDK. As instruções de instalação do Raspberry Pi Pico SDK e do conjunto de ferramentas GNU para Linux podem ser encontradas no site do Raspberry Pi. A próxima etapa envolve a instalação do Visual Studio Code. Para Ubuntu 22.04 LTS, queremos baixar e instalar a versão Debian do Visual Studio Code. A instalação do Visual Studio Code pode ser realizada usando o instalador de aplicativo Debian integrado do Ubuntu 22.04 LTS.

Após a instalação, o Visual Studio Code requer alguma personalização. Para suportar o processo de compilação, devemos instalar as extensões CMake Tools do Visual Studio Code, que também instala a extensão CMake, e o Serial Monitor. Para uma compilação bem-sucedida, o CMake deve saber onde o Raspberry Pi Pico SDK está instalado. A localização absoluta do Raspberry Pi Pico SDK é identificada pela configuração Cmake:Environment PICO_SDK_PATH, que inserimos manualmente nas configurações de extensão do CMake Tools. Estamos executando o Raspberry Pi Pico SDK e o conjunto de ferramentas associado no Linux. Portanto, também devemos inserir Unix Makefiles no campo CMake Tools Cmake:Generator settings. É isso. O código do Visual Studio está pronto para uso.

O Raspberry Pi Pico SDK utiliza Python e PyCryptodomex para construir uma imagem de banco de dados binária dos serviços e características Bluetooth que devem ser incluídos no código-fonte do nosso aplicativo Bluetooth. Python é instalado com o pacote Ubuntu 22.04 LTS. Devemos instalar manualmente o PyCryptodomex. A instalação do PyCryptodomex é realizada usando o processo padrão sudo apt install do Ubuntu. Instruções detalhadas de instalação do PyCryptodomex podem ser encontradas na página de documentação do PyCryptodomex. Com a adição do PyCryptodomex ao nosso conjunto de ferramentas Raspberry Pi Pico SDK, agora estamos prontos para começar a codificar nosso aplicativo Raspberry Pi Pico W BLE.

Nosso aplicativo BLE será baseado no exemplo nordic_spp_le_counter do Raspberry Pi Pico SDK. O exemplo nordic_spp_le_counter é uma versão semelhante ao Nordic NUS (Nordic UART Service). O Nordic NUS permite que dispositivos BLE se comuniquem usando Bluetooth como se um UART estivesse presente em ambos os lados do link de comunicação. O exemplo Raspberry Pi Pico SDK nordic_spp_le_counter é na verdade uma cópia do exemplo BTstack de mesmo nome. Você não encontrará o bloco completo do código-fonte de exemplo nordic_spp_le_counter na árvore de diretórios do SDK do Raspberry Pi Pico. Portanto, usaremos o código-fonte de exemplo BTstack nordic_spp_le_counter como modelo para nossa construção de firmware.