Le Raspberry Pi Pico, un microcontrôleur à 4$ made in Raspberry !
CommentaireLe 21 janvier 2021, la fondation Raspberry Pi a présenté sa propre carte microcontrôleur, le Raspberry Pi Pico, annoncé au prix de 4$ !
Après avoir changé l’industrie des Single Board Computer (ou ordinateurs monocarte en bon français), la fondation entend donc s’attaquer à l’industrie des microcontrôleurs.
Dans cet article nous verrons comment obtenir le Raspberry Pi Pico, la différence entre micro-ordinateur et microcontrôleur, ce que le Raspberry Pico a dans le ventre, et enfin comment l’utiliser et où trouver de la documentation pour débuter.
Où peut-on acheter le Raspberry Pi Pico ?
Comme souvent lors de la sortie d’un nouveau produit par la fondation Raspberry Pi, des ruptures de stock sont à prévoir pendant au moins quelques jours.
Comme pour les versions plus classiques du Raspberry Pi, vous pourrez trouver le Raspberry Pi Pico chez différents vendeurs en ligne.
En France vous le trouverez bien sur chez notre partenaire kubii.fr, probablement aux alentours de 4€.
De façon plus générale vous le trouverez aussi sur Amazon.fr, le prix étant en revanche plus variable, il devrait néanmoins se stabiliser lui aussi aux alentours de 4€ dans les jours ou semaines suivant la sortie, une fois les stocks revenus à la normale.
Par ailleurs, il ne serait pas surprenant de trouver à l’avenir ce microcontrôleur sur les sites des revendeurs spécialisés en électronique.
Acheter le Raspberry Pi Pico chez KubiiAcheter le Raspberry Pi Pico chez AmazonMicrocontrôleur VS. micro-ordinateur, quelle est la différence ?
Si vous avez, sans aucun doute, déjà utilisé un micro-ordinateur (au sens strict du terme vous en utilisez un actuellement si vous utilisez un smartphone par exemple), il y a en revanche de bonnes chances que vous n’ayez jamais utilisé (du moins en le sachant), un microcontrôleur.
Pour résumer grossièrement, un micro-ordinateur est généraliste. Il repose sur l’utilisation d’un microprocesseur généraliste et est capable d’effectuer de multiples tâches : affichage graphique ; connexion internet ; gestion de périphériques et surtout utilisation d’un système d’exploitation. C’est donc un ordinateur comme un autre, il est simplement de très petite taille.
À l’inverse, un microcontrôleur est généralement assez spécialisé. Il ne permet pas d’effectuer de multiples tâches, mais essentiellement de contrôler des périphériques en employant des entrées/sorties électriques programmables. Contrairement au micro-ordinateur, donc, le microcontrôleur n’exécute pas de système d’exploitation et ne fait tourner qu’un seul programme, lequel est chargé en mémoire avant le démarrage.
Le microcontrôleur est donc beaucoup moins souple et puissant en termes de capacités de calculs, etc., mais il consomme en revanche beaucoup moins de courant et est plus adapté à la lecture de sondes, le contrôle de périphériques électriques (LED, moteurs, relais, etc.), ou encore la lecture de signaux électriques analogues plutôt que numériques.
Microcontrôleur ou carte microcontrôleur ?
Par soucis de précision, notons qu’un microcontrôleur au sens strict du terme désigne uniquement la puce électronique regroupant les mémoires, le processeur, les lignes d’entrée/sortie.
Le Raspberry Pi Pico est donc en réalité une carte microcontrôleur. Elle vient ajouter la gestion de l’alimentation, la connectique, etc., au microcontrôleur en tant que tel, qui est la puce RP2040. De la même façon, si nous parlons du Arduino Uno, probablement la plus célèbre des cartes microcontrôleur, l’Arduino est une carte microcontrôleur, et le microcontrôleur lui même est la puce ATmega328P.
Les caractéristiques techniques du Raspberry Pi Pico.
Parlons bien, parlons chiffres, et voyons ce que ce nouveau venu a dans le ventre. Au programme, caractéristiques techniques du microcontrôleur, et format de la carte Pico.
Le microcontrôleur RP2040.
Le Raspberry Pi Pico repose donc sur un tout nouveau microcontrôleur, directement créé par la Raspberry Pi Fondation, le RP2040.
Il faut ici noter l’ambition de la fondation. En effet, là où la facilité aurait été d’utiliser un composant déjà existant, ou de demander à une entreprise spécialisée d’adapter un composant et d’apposer la marque Raspberry Pi , la fondation a préféré créer entièrement son propre composant. Un choix audacieux qui lui permet d’offrir des performances impressionnantes à un prix défiant toute concurrence.
Au niveau technique ce microcontrôleur semble en effet assez impressionnant.
- Dual-core Arm Cortex-M0+ @ 133MHz
- 264KB (remember kilobytes?) of on-chip RAM
- Support for up to 16MB of off-chip Flash memory via dedicated QSPI bus
- DMA controller
- Interpolator and integer divider peripherals
- 30 GPIO pins, 4 of which can be used as analogue inputs
- 2 × UARTs, 2 × SPI controllers, and 2 × I2C controllers
- 16 × PWM channels
- 1 × USB 1.1 controller and PHY, with host and device support
- 8 × Raspberry Pi Programmable I/O (PIO) state machines
- USB mass-storage boot mode with UF2 support, for drag-and-drop programming
Sans entrer dans les détails techniques qui ne parlerons qu’à ceux qui n’ont de toute façon pas besoin d’explications, revenons rapidement sur ces caractéristiques.
Pour le processeur nous avons du dual-core, ce qui devrait donc permettre la programmation parallèle (résoudre deux opérations différentes avec deux cœurs différents en même temps)
Concernant la mémoire vive embarquée, nous avons 264 kilooctets. Si cela peut vous sembler très peu, il faut garder à l’esprit que nous parlons ici d’un microcontrôleur et non pas d’un ordinateur. À titre de comparaison, un Arduino Uno propose uniquement 32 kilooctets, soit environ 8 fois moins… Par ailleurs, cette mémoire est extensible jusqu’à 16 mégaoctets, via un bus QSPI dédié, ce qui devient alors très respectable.
Enfin, niveau connectique nous avons 30 lignes GPIO, dont 4 utilisables comme entrées analogiques, avec le support de communication UART, SPI, I2C et PWM.
La carte Raspberry Pi Pico, alimentation et format.
La carte Raspberry Pi Pico embarque donc le microcontrôleur RP2040 pour offrir un format plus simple à employer, une gestion de l’alimentation électrique intégrée, une mémoire vive étendue, et quelques autres fonctionnalités.
Le Raspberry Pi Pico, une toute petite carte et 26 pins GPIO.
Au niveau physique, le Raspberry Pi Pico se présente comme une carte de 21×51 mm.
Le Pico expose 26 des 30 ports GPIO du RP2040, sous forme de pastilles percées et soudables à l’écartement standard 0.1″ et qui vous rappellerons celles du Raspberry Pi Zéro, avec une partie supplémentaire qui permet une soudure directe sur contacts cuivres.
La carte dispose également d’une LED intégrée. D’un bouton poussoir permettant d’activer le mode stockage USB (utilisé pour copier votre programme sur le Raspberry Pi Pico), et qui sera également utilisable comme un bouton poussoir classique. Ainsi que d’un port USB mini, utilisé pour connecter le Pico à votre ordinateur afin de copier votre code depuis votre PC vers le Pi, et qui pourra aussi servir de port USB classique, par exemple pour relier une sonde au Raspberry.
Enfin, il est à noter que le Pico a été conçu de façon à ce que sa face inférieure soit parfaitement plate, permettant ainsi de l’intégrer à une carte « hôte » directement en le soudant, ce qui est un énorme plus pour la production de produits embarqués.
Alimenter le Raspberry Pi Pico, rien de plus simple !
Le Raspberry Pi Pico a été pensé pour un usage spécifiquement orienté vers l’informatique embarquée, ce qui implique souvent des sources d’alimentation aux tensions parfois peu standards ou instables.
La fondation a donc intégré une gestion de l’alimentation via un circuit a découpage RT6150B, permettant ainsi une plage d’alimentation très large, allant de 1.8V à 5.5V.
Cette gestion intégrée de l’alimentation devrait permettre d’alimenter le Pico avec de très nombreuses sources différentes (piles AA, une batterie lithium-ion, ou une alimentation classique), le tout sans avoir besoin de stabiliser l’alimentation. Énorme gain de simplicité pour de nombreux projets.
2 mégaoctets additionnels de mémoire vive.
En plus des 264 kilooctets de mémoire vive intégrée au RP2040, le Pico intègre une mémoire flash additionnelle de 2Mo, ce qui devrait sufire à la plupart des usages embarqués.
Comment programmer le Raspberry Pi Pico et où trouver de la documentation ?
Mais alors, finalement, comment ça s’utilise un Raspberry Pi Pico ? Eh bien là pas de secrets, il va falloir mettre les mains dans le code !
Comment programmer pour le Pi Pico ?
Comme nous l’avons expliqué plus tôt, un microcontrôleur ne fait que répéter en boucle le même programme, et ce programme… c’est à vous de l’écrire ! Vous voulez faire clignoter une LED ? Il va falloir écrire un programme pour ça :). Vous voulez contrôler un moteur ? Pareil !
Pour programmer le Raspberry Pi Pico vous pouvez utiliser deux langages différents, soit le langage C, soit le langage Python avec son implémentation MicroPython, lequel a l’avantage d’être beaucoup plus simple que le C (vraiment beaucoup plus simple).
Une fois votre code écrit et compilé, il ne vous restera plus qu’à le copier sur le Pico en le branchant en USB à votre ordinateur :).
Où trouver de la documentation pour apprendre à utiliser le Pi Pico ?
Présentée comme ça, l’utilisation du Pi Pico peut sembler impressionnante et compliquée et, soyons honnête, cette impression n’est pas totalement injustifiée. La bonne nouvelle néanmoins, c’est que la fondation a toujours considéré l’éducation à la programmation comme sa priorité. Constante dans sa vocation, elle a donc d’ors et déjà produit une documentation abondante sur le sujet.
Ainsi, vous trouverez une documentation complète pour débuter avec le Raspberry Pi Pico, un livre « Get Started with MicroPython on Raspberry Pi Pico », ainsi que des projets pas à pas pour apprendre à utiliser le Pi Pico.
Un produit intéressant mais destiné à un public moins généraliste.
Avec le Pi Pico, la fondation entend se placer sur le marché des microcontrôleurs, un marché destiné par essence à un public moins généraliste et potentiellement davantage orienté vers les professionnels.
Grâce à une ambition et des moyens forts, la fondation livre ici un produit enthousiasmant et prometteur.
Si le Raspberry Pi Pico touche moins de personnes, il devrait, en revanche, se révéler très intéressant pour les makers et ouvrir de nouveaux usages, tout en étant pensé pour être parfaitement adaptable dans des produits professionnels, notamment via un form-factor très bien pensé.
Par ailleurs, les efforts de documentation déployés par la fondation sont impressionnants et devraient permettre de créer très rapidement une communauté extrêmement active, ce qui permettra à plus de personnes de découvrir la programmation embarquée.
De notre coté, nous sommes prêt à parier que la fondation Raspberry Pi réussira à révolutionner le marché des microcontrôleurs comme il a su le faire avec celui des Single Board Computer par le passé !
» il y a en revanche de bonnes chances que vous n’ayez jamais utilisé (du moins en le sachant), un microcontrôleur. »
Les claviers, souris (machines à café, machines à laver) ont des microcontrôleurs … Depuis 30 ans; ça a dû être enseigné en cours de technologie ou autre!
Le SDK (pour C et C++) est assez difficile à prendre en main; si on veut quelque chose de plus simple -et compilé- pour le pi2040 , on peut utiliser …
a) l’arduino ‘mbedOS pour rp2040 https://blog.arduino.cc/2021/04/27/arduino-mbed-core-for-rp2040-boards/
ou
b) le port de Earl Philover https://github.com/earlephilhower/arduino-pico, maintenu avec beaucoup de talent et d’énergie, qui gère plus de cinquante cartes à base de rp2040 (et pas « seulement » celles de la fondation rapsberry).
Pour micropython,
a) adafruit a son propre dialecte de micropython, circuitpython https://www.adafruit.com/circuitpython -non testé: on peut supposer que les cartes adafruit à base de rp2040 en sont très heureuses-. Un avantage de circuitpython est qu’il peut supporter aussi des rpsberrypi classiques (rend les codes plus faciles à porter)
b)wokwi peut simuler en ligne des cartes picopi/rp2040 sous micropython, et pas mal de périphériques https://wokwi.com/projects/359490482573538305 pour un exemple simple