banner
Maison / Blog / Utiliser Raspberry Pi Pico W pour un Bluetooth Low
Blog

Utiliser Raspberry Pi Pico W pour un Bluetooth Low

Jun 16, 2023Jun 16, 2023

Fred Eady | 31 août 2023

Avec l'avènement de la version 1.5.1, le SDK Raspberry Pi Pico prend désormais en charge Bluetooth Classic et Bluetooth Low Energy (BLE) sur la plateforme de développement Raspberry Pi Pico W. Comme prévu, suite à l'annonce du support Bluetooth, un certain nombre d'exemples Pico Bluetooth basés sur un port de BTstack de BlueKitchen sont devenus disponibles. L'exemple de code porté par le SDK Raspberry Pi Pico conserve le format de langage BTstack C d'origine. Cependant, la plupart des exemples Pico Bluetooth basés sur BTstack que l'on peut trouver dans le domaine public ont été réalisés en MicroPython ou Arduino. Avec cela, l'objet de cette discussion sera de produire un exemple fonctionnel Pico Bluetooth Low-Energy en langage C développé sous Ubuntu 22.04 LTS à l'aide de Visual Studio Code et de la dernière chaîne d'outils Raspberry Pi Pico SDK. Vous pouvez obtenir l'exemple de code source du projet sur le site de téléchargement d'EDTP Electronics.

Pour ceux d'entre vous qui ne connaissent peut-être pas le Raspberry Pi Pico W, le PicoW est une implémentation matérielle BLE de base composée d'un microcontrôleur supervisant la transmission et la réception du trafic radio Bluetooth via un module radio Bluetooth. Le microcontrôleur est régi par une pile Bluetooth ; l'inclusion d'une pile Bluetooth permet au matériel PicoW d'assumer le rôle de client ou de serveur dans une application Bluetooth. Ainsi, le PicoW peut être programmé pour agir comme un dispositif de collecte de données à distance desservant les capteurs ou un dispositif de stockage et de transfert de données qui collecte les données des capteurs à partir d'appareils distants et transfère les données collectées vers un emplacement de traitement central. Le matériel PicoW est également capable de fonctionner en mode autonome, de traiter les informations Bluetooth entrantes et d'agir en conséquence via sa banque de broches GPIO et ses périphériques sur puce.

Nous commençons le processus de développement du firmware en installant la version 1.5.1 du SDK Raspberry Pi Pico. Les instructions d'installation du SDK Raspberry Pi Pico et de la chaîne d'outils GNU pour Linux sont disponibles sur le site Web Raspberry Pi. L'étape suivante implique l'installation de Visual Studio Code. Pour Ubuntu 22.04 LTS, nous souhaitons télécharger et installer la version Debian de Visual Studio Code. L'installation de Visual Studio Code peut être effectuée à l'aide du programme d'installation de l'application Debian intégrée à Ubuntu 22.04 LTS.

Après l'installation, Visual Studio Code nécessite une certaine personnalisation. Pour prendre en charge le processus de compilation, nous devons installer les extensions Visual Studio Code CMake Tools, qui installe également l'extension CMake, et Serial Monitor. Pour une compilation réussie, CMake doit savoir où est installé le SDK Raspberry Pi Pico. L'emplacement absolu du SDK Raspberry Pi Pico est identifié par le paramètre Cmake:Environment PICO_SDK_PATH, que nous saisissons manuellement dans les paramètres de l'extension CMake Tools. Nous exécutons le SDK Raspberry Pi Pico et la chaîne d'outils associée sous Linux. Nous devons donc également saisir les Makefiles Unix dans le champ des paramètres CMake Tools Cmake:Generator. C'est ça. Visual Studio Code est prêt à être utilisé.

Le SDK Raspberry Pi Pico utilise Python et PyCryptodomex pour créer une image de base de données binaire des services et caractéristiques Bluetooth qui doivent être inclus dans le code source de notre application Bluetooth. Python est installé avec le package Ubuntu 22.04 LTS. Nous devons installer manuellement PyCryptodomex. L'installation de PyCryptodomex est effectuée à l'aide du processus d'installation standard Ubuntu sudo apt. Des instructions d'installation détaillées de PyCryptodomex sont disponibles sur la page Web de documentation de PyCryptodomex. Avec l'ajout de PyCryptodomex à notre chaîne d'outils Raspberry Pi Pico SDK, nous sommes maintenant prêts à commencer à coder notre application Raspberry Pi Pico W BLE.

Notre application BLE sera basée sur l'exemple nordic_spp_le_counter du Raspberry Pi Pico SDK. L'exemple nordic_spp_le_counter est une version similaire du Nordic NUS (Nordic UART Service). Le Nordic NUS permet aux appareils BLE de communiquer via Bluetooth comme si un UART était présent des deux côtés de la liaison de communication. L'exemple Raspberry Pi Pico SDK nordic_spp_le_counter est en fait une copie de l'exemple BTstack du même nom. Vous ne trouverez pas le bloc complet de l’exemple de code source nordic_spp_le_counter dans l’arborescence du répertoire Raspberry Pi Pico SDK. Nous utiliserons donc l'exemple de code source BTstack nordic_spp_le_counter comme modèle pour notre version de firmware.