banner
Casa / Blog / Utilizzo di Raspberry Pi Pico W per un Bluetooth basso
Blog

Utilizzo di Raspberry Pi Pico W per un Bluetooth basso

Jun 16, 2023Jun 16, 2023

Fred Eady | 31 agosto 2023

Con l'avvento della versione 1.5.1, l'SDK Raspberry Pi Pico ora supporta Bluetooth Classic e Bluetooth Low Energy (BLE) sulla piattaforma di sviluppo Raspberry Pi Pico W. Come previsto, in seguito all'annuncio del supporto Bluetooth, sono diventati disponibili numerosi esempi di Pico Bluetooth basati su un port di BTstack di BlueKitchen. Il codice di esempio portato dall'SDK Raspberry Pi Pico mantiene il formato del linguaggio C BTstack originale. Tuttavia, la maggior parte degli esempi Pico Bluetooth basati su BTstack che si possono trovare di pubblico dominio sono stati realizzati in MicroPython o Arduino. Detto ciò, l'oggetto di questa discussione sarà quello di produrre un esempio funzionante di Pico Bluetooth Low-Energy in linguaggio C sviluppato con Ubuntu 22.04 LTS utilizzando Visual Studio Code e l'ultima toolchain Raspberry Pi Pico SDK. È possibile ottenere il codice sorgente del progetto di esempio dal sito di download di EDTP Electronics.

Per quelli di voi che potrebbero non avere familiarità con il Raspberry Pi Pico W, PicoW è un'implementazione hardware BLE di base costituita da un microcontrollore che supervisiona la trasmissione e la ricezione del traffico radio Bluetooth tramite un modulo radio Bluetooth. Il microcontrollore è governato da uno stack Bluetooth; l'inclusione di uno stack Bluetooth consente all'hardware PicoW di assumere il ruolo di client o server in un'applicazione Bluetooth. Pertanto, PicoW può essere programmato per agire come un dispositivo di raccolta dati remoto al servizio dei sensori o un dispositivo di archiviazione e inoltro dei dati che raccoglie i dati dei sensori da dispositivi remoti e trasferisce i dati raccolti a una posizione di elaborazione centrale. L'hardware PicoW è anche in grado di funzionare in modalità standalone elaborando le informazioni Bluetooth in ingresso e agendo di conseguenza tramite il banco di pin GPIO e le periferiche su chip.

Iniziamo il processo di sviluppo del firmware installando la versione 1.5.1 dell'SDK Raspberry Pi Pico. Le istruzioni per l'installazione dell'SDK Raspberry Pi Pico e della toolchain GNU per Linux sono disponibili sul sito Web Raspberry Pi. Il passaggio successivo prevede l'installazione di Visual Studio Code. Per Ubuntu 22.04 LTS, vogliamo scaricare e installare la versione Debian di Visual Studio Code. L'installazione di Visual Studio Code può essere eseguita utilizzando il programma di installazione dell'applicazione Debian integrato in Ubuntu 22.04 LTS.

Dopo l'installazione, Visual Studio Code richiede alcune personalizzazioni. Per supportare il processo di compilazione, dobbiamo installare le estensioni di Visual Studio Code CMake Tools, che installa anche l'estensione CMake, e Serial Monitor. Per una compilazione corretta, CMake deve sapere dove è installato l'SDK Raspberry Pi Pico. La posizione assoluta dell'SDK Raspberry Pi Pico è identificata dall'impostazione Cmake:Environment PICO_SDK_PATH, che inseriamo manualmente nelle impostazioni dell'estensione CMake Tools. Stiamo eseguendo l'SDK Raspberry Pi Pico e la toolchain associata sotto Linux. Quindi, dobbiamo anche inserire Unix Makefiles nel campo delle impostazioni CMake Tools Cmake:Generator. Questo è tutto. Visual Studio Code è pronto per l'uso.

L'SDK Raspberry Pi Pico utilizza Python e PyCryptodomex per creare un'immagine di database binario dei servizi e delle caratteristiche Bluetooth che deve essere inclusa nel codice sorgente dell'applicazione Bluetooth. Python viene installato con il pacchetto Ubuntu 22.04 LTS. Dobbiamo installare manualmente PyCryptodomex. L'installazione di PyCryptodomex viene eseguita utilizzando il processo standard di Ubuntu sudo apt install. Le istruzioni dettagliate per l'installazione di PyCryptodomex sono disponibili nella pagina Web della documentazione di PyCryptodomex. Con l'aggiunta di PyCryptodomex alla nostra toolchain SDK Raspberry Pi Pico, siamo ora pronti per iniziare a codificare la nostra applicazione Raspberry Pi Pico W BLE.

La nostra applicazione BLE sarà basata sull'esempio nordic_spp_le_counter dell'SDK Raspberry Pi Pico. L'esempio nordic_spp_le_counter è una versione simile del Nordic NUS (Nordic UART Service). Il Nordic NUS consente ai dispositivi BLE di comunicare tramite Bluetooth come se fosse presente un UART su entrambi i lati del collegamento di comunicazione. L'esempio nordic_spp_le_counter SDK Raspberry Pi Pico è in realtà una copia dell'esempio BTstack con lo stesso nome. Non troverai il blocco completo del codice sorgente di esempio nordic_spp_le_counter nell'albero della directory dell'SDK Raspberry Pi Pico. Quindi, utilizzeremo il codice sorgente di esempio nordic_spp_le_counter di BTstack come modello per la build del nostro firmware.