Le Raspberry Pi Pico
Un remplacement pour l’Arduino Nano ?
. Par : Jean-Luc
Vous répondez à :
Bonjour Jean-Luc,
C’est exactement ce que j’ai dit : pour utiliser la carte Arduino Nano RP2040, il faut en avoir le besoin et la connectivité peut en faire partie.
Pour le reste, à ce prix là, la carte Raspberry Pi Pico est imbattable.
10 Messages
-
Le Raspberry Pi Pico 13 avril 2022 15:09, par Christian
Cet article est intéressant car il existe de plus en plus de solutions appartenant à l’écosystème d’Arduino (tout ce qui est programmable avec l’IDE) mais de marques différentes.
Raspberry nous avait habitué à des microsystèmes avec distribution allégée de Linux et le voici qui se lance aujourd’hui dans les nanosystèmes avec cette carte.
Il peut paraître bizarre de comparer les performances d’une carte à base de µC 8 bits avec une autre équipée d’un µC 32 bits ; on peut s’attendre dès le départ au résultat.
La carte est intéressante pour son prix, mais quitte à utiliser le µC RP2040, on peut aussi choisir une carte Nano RP2040 Connect, certes plus chère, mais qui est équipée de 16 MB de flash (pas 2 MB), et d’une puce WiFi BLE Nina W102 Ublox pour le WiFi et le BlueTooth. D’après les images du site Arduino, tout laisse à penser qu’elle est livrée avec les connecteurs déjà soudés, mais je préfère rester prudent sur ce point (voir photo de la carte à la sortie de la boite et comparer avec la carte Nano 33 IoT qui a des connecteurs non soudés).
De plus, cette carte respecte le standard NANO donc une dimension et un brochage identique, ce qui peut être un atout pour upgrader un montage en remplaçant la carte Nano par cette dernière.
Bien évidemment, pour un projet plus basique sans connectivité, la carte Raspberry est intéressante car son prix est très bas et la fabrication est de bonne qualité. Merci à Jean-Luc pour avoir indiqué comment faire pour la programmer. ;-)-
Le Raspberry Pi Pico 17 avril 2022 20:41, par Jean-Luc
Bonjour Christian,
Effectivement, il existe d’autres cartes à base de RP2040, dont la Nano RP2040 Connect. Toutefois, le prix est de 5 à 7 fois plus élevé, le WiFi ou le Bluetooth n’est pas toujours nécessaire et le gyroscope/accéléromètre est inutile pour nos applications. Certes elle est compatible broche à broche mais comme elle en en 3,3V, il ne faut pas espérer la voir remplacer un Nano dans un design existant. Par ailleurs, les modules additionnels de cette carte (WiFi/Bluetooth et gyroscope/accéléromètre) monopolisent un SPI et un I2C si j’en crois la schématique. Je comprends bien la nécessité d’une flash de 16Mo pour loger la pile TCP/IP qui est un gros module logiciel et pour des fichiers si on veut mettre un serveur Web mais en dehors de ce domaine, 2 Mo suffisent largement.
L’article se place du point de vue d’un déploiement en plusieurs exemplaire d’une carte de pilotages de dispositifs en remplacement d’un simple clone Arduino Nano. Le coût est donc important. Je compte utiliser des Raspberry Pi Pico pour piloter des servos 3,3V (signaux mécaniques / portes de remises) et des WS2811. Je n’ai pas besoin de WiFi/Bluetooth car les communications sont en CAN. Au total, j’ai 5 cartes, soit 20€ avec des Pico et 120€ avec des Nano RP2040 Connect. Le choix est vite fait.-
Le Raspberry Pi Pico 18 avril 2022 11:58, par Christian
Bonjour Jean-Luc,
C’est exactement ce que j’ai dit : pour utiliser la carte Arduino Nano RP2040, il faut en avoir le besoin et la connectivité peut en faire partie.
Pour le reste, à ce prix là, la carte Raspberry Pi Pico est imbattable.
-
-
Le Raspberry Pi Pico 18 avril 2022 08:41, par Jean-Luc
Concernant les performances, on peut effectivement s’attendre à ce que le µC 32 bits soit plus véloce que le µC 8 bits mais ce n’est pas aussi simple :
- Quel ordre de grandeur exactement ?
- Les tests incluent des appels aux fonctions de l’API Arduino. Ces fonctions sont implémentées de manières différentes. Par exemple, PJRC (Teensy) utilise directement les registres des périphériques sans couche d’abstraction. ST (Nucleo) utilise la bibliothèque STM Cube (les fcts Arduino sont implémentées au dessus de STM Cube) et Earle (Pico) utilise la bibliothèque fournie par la Fondation Raspberry Pi. Le niveau d’optimisation de ces logiciels Arduino ne sont donc pas identiques.
- Les calculs 8 bits sont moins couteux sur un µC 8 bits que sur un µC 32 bits car sur ces derniers le compilateur doit engendrer des instructions d’extension de signe supplémentaires.
-
Le Raspberry Pi Pico 18 avril 2022 12:08, par Christian
Effectivement, ce n’est pas si simple : une carte 32 bits ne travaille pas quatre fois plus rapidement qu’une carte 8 bits. Ce que je voulais dire, c’est que je ne connais pas de domaine où une carte 32 bits serait plus lente qu’une 8 bits.
Encore une fois, le choix doit se faire en fonction des besoins. Le µC AVR utilise un seul cycle d’horloge par instruction (sauf exception) alors qu’un µC ARM en utilise beaucoup plus. Pour une utilisation simple, le 32 bits ne sera pas beaucoup plus rapide qu’un 8 bits, malgré une horloge plus rapide. Mais dans d’autres cas, le gain sera phénoménal.
Pour nos petits trains, une carte 8 bits est sans doute suffisante, mais les constructeurs arrêteront peut-être d’en produire un jour. C’est le progrès ! Raison de plus pour découvrir les cartes 32 bits dès maintenant.-
Le Raspberry Pi Pico 18 avril 2022 17:26, par Jean-Luc
Les Cortex M0/M0+/M3/M4 exécutent les instructions en 1 cycle ou 2 pour la plupart. Les instructions plus longues correspondent à des instructions qui n’existent pas en AVR (push et pop multiple, multiplication).
-
-
-
Le Raspberry Pi Pico 15 avril 2022 14:58, par Thomas
Merci pour cet article. Je partais du principe que la RP2040 était encore un n-ième RPI à mon goût sans trop d’intérêt. Le petit encadré sur le PIO m’a fait sauter sur deux petites cartes pour réaliser quelques petits développements. Et en grattant un peu, on s’aperçoit qu’on peut le coupler au DMA du RP2040 ! C’est vraiment excellent !
-
Le Raspberry Pi Pico 19 août 2022 11:37, par Marcel
Bonjour à tous
Faire un comparatif entre micros 8bits (PIC ou AVR) et 32bits (ESP,STM ou Pico) n’est pas facile d’autant plus que les compilateurs ont une grande importance. Il suffit de regarder un programme faisant les mêmes fonctions. J’ai testé un simple clignotant entre Arduino et GCbasic (uniquement 8bits), la diffence d’occupation mémoire est très importante, aussi bien PIC que AVR.
L’augentation de puissance des controleurs 32 bits, ainsi que la capacité mémoire et le vitesse d’horloge permettent d’utiliset les nouveaux microcontrolleurs avec un language interprété.
MicroPython (et son dérivé CircuitPython) ainsi que MMBasic(Picomite) en sont des exemples. Ce qui permet de faire des tests rapidement. Je trouve que la compilation des micros 32 bits est très longue (ceci est valable pour ESP32, STM32F411 et aussi la carte PICO).
Votre site est très interressant dans son approche différente de Arduino, par rapport aux sites généraliste, qui en fin de compte disent tous la même chose sans approfondir.
Cordialemnt -
Le Raspberry Pi Pico 5 décembre 2022 20:20, par trimarco232
Bonjour à tous
j’avais écrit en son temps que je ne voyais aucun avantage du pi pico par rapport à l’esp32, + puissant, + complet (CAN), bluetooth, et moins cher ...
j’ai acquis un clone de pi pico (le purple), et fait quelques tests en vue de le réhabiliter :
1) un des défauts (important à mon sens), de l’esp32, c’est la latence des interruptions, c’est à dire le temps qui s’écoule entre le moment où l’interruption est provoquée, et le moment où l’ISR (traitement de l’interruption) démarre : j’ai mesuré 4us, certains parlent de 7us : c’est à la fois très peu, mais aussi beaucoup trop long pour certaines applis, où le timing est serré et critique
avec le pi pico, j’ai pu mesurer 160ns ; il a toutefois fallu que je n’utilise pas pour cette interruption les fonctions arduinos, mais celles du sdk ; il suffit d’écrire le code du sdk tel quel, dans le sketch arduino, et ça compile et s’execute
on peut aussi placer l’ISR en RAM, pour augmenter sa vitesse, et également augmenter la priorité de l’ISR (parmi 4), pour qu’elle puisse interrompre les ISR moins prioritaires, et ne pas se faire interrompre par celles-ci
je n’ai toutefois pas fait de test pour mesurer les avantages de ces 2 dernières possibilités
.
2) les périphériques programmables PIO sont très intéressants : si on n’a pas l’âme de se lancer dans le mini assembleur pour les programmer, on peut se contenter d’utiliser les fonctions ou librairies écrites par des bienfaiteurs
j’ai réalisé le montage suivant : broche tx d’un des 2 uarts, reliée à 8 broches d’io quelconques ; j’ai affecté un PIO programmé en réception uart (ça existe tout fait dans le portage d’Earle) à chacune des 8 broches : ben ça marche , on a un réception simultanée de messages série sur 8 broches différentes, et ce, à 250kb/s ! on pourrait en avoir 10 en utilisant les 2 uart
j’espère qu’on verra apparaitre d’autres fonctions, notamment dédiées à notre loisir
.
à noter l’apparition de la version wifi du pi pico, + cher que l’esp32, mais raisonnable, et qui a donc les 2 avantages que je viens de décrire brièvement -
Le Raspberry Pi Pico 19 octobre 2023 22:55, par Simon
Bonjour tardif...
mais pour ajouter une information qui pourrait peut-être encore être utile, notamment à Jean-Luc vis qui regrettait l’absence de CANDédié au(x) pico, ceci : (lien) sur base de MCP2515, donc compatible ACAN j’imagine (je n’ai pas testé)
Mon avis personnel sur ces PICO (W) : oui pour tout, dont le prix bien sûr, et l’impression de qualité... un véritable bijou.
Surpris aussi, favorablement, par le portage sur Arduino, les librairies que j’ai testées passent comme une lettre à la poste.... mais une énorme déception pour ce qui est de leur utilisation "real-life" (oui oui, j’évoque du non-locoduino !) : je n’ai pas trouvé comment implémenter un deep-sleep avec réveil par interruption externe (sauf peut-être par un RTC DS3231, mais alors pfff sous python et au prix d’une sacrée galère d’après ce que j’ai vu...)
Voir en ligne : https://learn.adafruit.com/adafruit...