Inaugurações de arte em Missoula para setembro: desenhos, miçangas e muito mais
May 26, 2023Michelle Yeoh: Ásia comemora quando o sonho da atriz com o Oscar se torna realidade
May 27, 2023Barbie acadêmica: leituras acadêmicas para inspirar discussões em sala de aula
May 28, 2023Um juiz bloqueou, por enquanto, um show de drag show do Texas que os artistas temem que os feche
May 29, 2023Os melhores brinquedos e colecionáveis de filmes de terror em 2023
May 30, 2023Usando Raspberry Pi Pico W para Bluetooth baixo
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.