Le microcontrôleur du Raspberry Pi RP2040 est un processeur qui offre un équilibre entre puissance et flexibilité. Il s’agit également du premier système sur puce (SoC) de la société, qui utilisait jusqu’à présent des processeurs standard.
Basé sur un Arm Cortex M0 double cœur fonctionnant à 133 MHz, il dispose de 264 KB de mémoire sur puce. Conçue pour être intégrée au matériel, chaque puce comporte également 26 broches GPIO, avec une foule d’outils de contrôle supplémentaire, notamment huit machines d’état d’E/S programmables.
En plus de vendre des RP2040 à ses clients pour qu’ils les intègrent dans leurs propres appareils, Raspberry Pi l’utilise dans ses propres cartes Pico – des appareils à bas prix destinés aux fabricants, amateurs et bidouilleurs. En plus du RP2040, le Pico dispose de 2 Mo de mémoire flash supplémentaire pour votre code et le firmware du périphérique. L’appareil se présente sous la forme d’une carte de circuit imprimé de 21 mm sur 51 mm, avec 40 broches prêtes à être équipées de broches d’en-tête pour une utilisation sur une platine de prototypage ou à être connectées directement à des capteurs et des actionneurs.
Caractéristiques techniques
- Dimensions : 21 mm × 51 mm
- SoC : Raspberry Pi RP2040 (dual-core Arm Cortex-M0+ @ 133MHz)
- RAM : 264 KB (sur la puce)
- Stockage : 2 MB (on-board QSPI flash)
- Interface : 26 broches GPIO, dont 3 entrées analogiques
- Périphériques : 2 UART, 2 contrôleurs SPI, 2 contrôleurs I2C, 16 canaux PWM, 1 contrôleur USB 1.1 et PHY (avec prise en charge de l’hôte et du dispositif), 8 machines d’état PIO (entrées/sorties programmables)
- Connectivité : 2,4 GHz 802.11b/g/n Wi-Fi (antenne intégrée utilisant le CYW43439 d’Infineon)
- Alimentation électrique : 1,8 – 5,5 V DC
- Température de fonctionnement : – 20°C à + 70°C
- Durée de vie : le Raspberry Pi Pico W restera en production au moins jusqu’en janvier 2028
Nouveau Pico – cette fois sans fil
Raspberry Pi a récemment présenté deux nouvelles versions du Pico, et une troisième est prévue pour la fin de l’année. Le Pico H ajoute un ensemble de broches présoudées, destinées au prototypage et à l’expérimentation, tandis que le Pico W apporte le Wi-Fi à la carte, ce qui vous permet de l’utiliser pour des applications connectées autonomes. Ils seront éventuellement rejoints par le WH, qui ajoute des connecteurs au W. Comme pour le Pico original, le Pico W peut être acheté en vrac, et est prêt à être utilisé dans des projets commerciaux.
Raspberry Pi Pico W : la puce Infineon CYW43439 Wi-Fi sous le boîtier argenté supporte également le Bluetooth, bien que celui-ci ne soit pas encore activé. Image : Simon Bisson.
Le Pico W est un changement important, car il ajoute une puce Wi-Fi 802.11b/g/n de 2,4 GHz et une antenne intégrée. Tout cela sans modifier la forme de l’appareil, de sorte que vous pouvez échanger un Pico W contre un Pico standard dans les projets existants. Comme pour le Pico standard, l’alimentation et la connectivité de base passent par un port micro-USB, mais vous pouvez également utiliser les broches de la carte pour alimenter l’appareil, ce qui vous permet de le connecter à des boîtiers et d’utiliser des piles comme sources d’alimentation alternatives.
La puce utilisée pour ajouter le Wi-Fi au Pico W, la Infineon CYW43439, prend également en charge Bluetooth et Bluetooth Low Energy (LE). Bien que cette première version ne prenne en charge que le Wi-Fi, Raspberry Pi précise qu’il pourrait ajouter le support Bluetooth à l’avenir. Actuellement, la batterie sans fil est basée sur l’implémentation TCP/IP lwIP, utilisant libcyw43 pour contrôler le matériel sans fil. Heureusement, Raspberry Pi a négocié une licence libre d’utilisation commerciale pour la libcyw43, normalement non commerciale, de sorte que vous pouvez continuer à construire du matériel commercial en utilisant le Pico W ou même construire vos propres cartes autour de la combinaison du RP2040 et du CYW43439.
Il existe quelques différences mineures entre le W et le Pico original, en dehors de l’ajout du support du Wi-Fi. La plus évidente est que la LED intégrée n’est plus connectée aux broches GPIO du RP2040, mais fonctionne à travers le GPIO de la puce Wi-Fi. Si vous avez utilisé cette LED comme indicateur pour C ou en MicroPython, vous devrez modifier votre code pour tirer parti des nouvelles options matérielles.
Raspberry Pi est en train de forker son build de MicroPython en conséquence. Vous trouverez des versions distinctes du firmware, assurez-vous donc d’installer la version correcte pour le Pico W. Raspberry Pi fournit deux modèles de développement pour le Pico, en utilisant C pour intégrer votre propre code dans son firmware, ou en travaillant avec le propre firmware de Raspberry Pi, qui est configuré avec MicroPython et comprend la plupart des modules nécessaires.
Programmation du Pico W
Vous pouvez développer pour le Pico W à l’aide de votre PC ou Mac de bureau, ou vous y connecter à partir d’un Raspberry Pi. J’ai utilisé une connexion USB à partir d’un PC Windows, d’abord en appuyant sur le bouton BOOTSEL du Pico W pour le mettre en mode téléchargement, puis en installant le firmware du Raspberry Pi en déposant le fichier dans la mémoire du Pico W. Une fois installé, le Pico redémarre automatiquement, utilisant son port USB comme une connexion série à votre PC de développement ou au Pi.
Vous pouvez utiliser un programme de terminal pour vous connecter au Pico W, en utilisant son REPL MicroPython pour essayer du code (et pour les nostalgiques de l’informatique 8 bits et de la génération X), mais il est préférable de travailler avec un environnement de développement prêt pour MicroPython comme Thonny. Vous pouvez l’utiliser comme éditeur de développement et comme moyen d’installer du code Python sur votre Pico.
Branchez votre Pico W sur un PC de développement et lancez Thonny. Dans le volet Shell situé sous l’éditeur, vous verrez le REPL MicroPython du Pico où vous pourrez rapidement essayer du code. Cependant, la majeure partie de votre travail se fera dans l’éditeur principal.
Utilisation du shell MicroPython du Pico W pour rechercher des réseaux sans fil. Capture d’écran : Simon Bisson.
La première chose que vous êtes susceptible de faire avec un Pico W est d’essayer de le connecter à un réseau sans fil. Si vous utilisez MicroPython, c’est assez facile, grâce au nouveau module réseau. Commencez par créer un objet wlan, puis configurez-le pour qu’il soit actif et utilisez sa méthode connect pour vous connecter à un SSID et un mot de passe. Attendez un peu et récupérez la configuration de la connexion pour voir l’adresse IP actuelle, le serveur DNS et les adresses de passerelle. La documentation de Raspberry Pi contient un script de base pour se connecter à votre réseau Wi-Fi local. D’autres méthodes vous permettent de rechercher les points d’accès à proximité, comme un test rapide pour voir si votre appareil fonctionne.
Utilisation du Pico W avec le Web
Que pouvez-vous donc faire avec un Pico W connecté ? Deux modules MicroPython utiles, socket et urequests, vous permettent de commencer à communiquer avec des services externes via HTTP. urequests est sans doute le plus utile, car il permet d’envoyer et de recevoir des fichiers JSON à un service externe. Cette approche offre à votre Pico W connecté de nombreuses options : il peut recevoir des messages d’une application ou lui renvoyer des données. La possibilité d’utiliser JSON augmente considérablement l’utilité, car vos appareils peuvent désormais fonctionner avec des points d’extrémité de webhook communs dans le cadre de la domotique et de l’automatisation industrielle, en se connectant à toutes sortes de flux de travail.
La connexion d’un tel microcontrôleur à un réseau supprime bon nombre de ses limites, car il devient alors un simple rouage dans un écosystème connecté plus vaste. Dans une maison, il pourrait automatiser l’arrosage de votre plante d’intérieur, ou dans un jardin, fournir des capteurs qui vous aident à décider du moment de la récolte de vos fruits. Vous pouvez également utiliser ses machines d’état PIO en conjonction avec les broches GPIO pour piloter des actionneurs dans vos propres circuits externes.
Il est même possible de construire un simple serveur web alimenté par MicroPython sur un Pico W, afin de doter vos projets matériels d’un tableau de bord de base. Dans ce cas, vous devrez utiliser le module socket pour écouter les requêtes HTTP et y répondre si nécessaire. Votre serveur web peut être connecté à un matériel externe, ce qui vous permet d’étendre vos périphériques au web en consommant peu d’énergie. Il est probablement exagéré d’utiliser les sockets pour construire un serveur web avec un support de formulaires pour que les utilisateurs puissent configurer n’importe quelle application, mais ajouter le support HTTP au code pour que les utilisateurs puissent télécharger des fichiers de configuration a beaucoup de sens.
Conclusions
Il y a beaucoup de choses à aimer dans le Raspberry Pi Pico W. Il prend un appareil simple et familier et étend son utilité de manière significative en ajoutant le support du réseau sans fil. En vous proposant une connectivité à faible puissance, vous n’avez pas besoin d’une alimentation lourde : vous pouvez fonctionner sur batterie pour construire du matériel connecté qui peut fonctionner partout où vous pouvez obtenir un signal Wi-Fi.
Parallèlement, le firmware par défaut et MicroPython facilitent la création de votre propre logiciel. Il s’agit donc d’une plateforme de prototypage idéale pour les produits commerciaux qui utilisent le RP2020 et le CYW43439. Vous pouvez même choisir de les acheter en gros auprès de Raspberry Pi et de les inclure dans vos propres cartes.
Un Pico sans fil est un outil étonnamment puissant, que je recommande sans réserve. Pour un prix faible, vous pouvez construire des appareils connectés qui peuvent faire, eh bien, à peu près tout ce que vous pouvez imaginer.
Source : ZDNet.com
(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/fr_FR/all.js#appId=243265768935&xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));