Faire clignoter la LED embarquée
Pour permettre de valider l’environnement de compilation Arduino de la carte Raspberry Pi Pico 2, le plus simple est d’écrire un petit programme faisant clignoter la LED embarquée.
Localisation de la LED embarquée
Sur la carte Raspberry Pi Pico 2 se trouve une LED verte directement soudée au circuit imprimé. Elle est reliée en interne à la broche GP25 du microcontrôleur RP2350, et se situe à proximité du connecteur USB.

Dans l’IDE Arduino, cette LED est accessible à l’aide de la constante prédéfinie LED_BUILTIN, ce qui rend le code portable. Cependant, pour simplifier la compréhension du programme pour les débutants, nous allons utiliser directement le numéro de broche.
Structure de base d’un programme Arduino
Comme pour tous les programmes Arduino, nous utilisons l’ossature standard composée de deux fonctions obligatoires :
// Fonction de démarrage, s'exécute une seule fois au démarrage :
void setup()
{
}
// Fonction principale du programme, s'exécute en boucle infinie :
void loop()
{
}
La fonction setup() s’exécute une seule fois au démarrage du microcontrôleur (à la mise sous tension ou après un reset). C’est l’endroit idéal pour configurer les broches, initialiser les communications série, ou préparer vos variables.
La fonction loop() s’exécute ensuite en boucle indéfiniment, tant que le microcontrôleur est alimenté. C’est le cœur du programme.
Configuration de la broche LED
Avant d’utiliser une broche GPIO, il est indispensable de définir son mode de fonctionnement. Pour contrôler une LED, nous devons configurer la broche en mode sortie (OUTPUT).
Ajoutez la ligne suivante dans la fonction setup() :
pinMode(25, OUTPUT);
La fonction pinMode() accepte deux paramètres :
- Le numéro du port (ici 25)
- Le mode souhaité : OUTPUT (sortie), INPUT (entrée) ou INPUT_PULLUP (entrée avec résistance de tirage interne)
Logique du clignotement
Pour clignoter la LED, le microcontrôleur va successivement l’allumer… attendre un moment… l’éteindre… attendre à nouveau… et ainsi de suite.
L’allumage de la LED s’effectue par une demande de positionnement de la sortie 25 à « HIGH » et son extinction par une demande de positionnement de la sortie 25 à « LOW » en utilisant la fonction « digitalWrite« . Vous effectuez ces demandes par ajout des lignes de code suivantes dans la fonction « loop »:
digitalWrite(25, HIGH); digitalWrite(25, LOW);
Il manque encore une étape pour obtenir le clignotement visible : si on laisse le code tel quel, l’allumage et l’extinction se feront en quelques millisecondes, ce qui sera trop rapide pour que l’œil humain le perçoive.
Il est donc nécessaire de demander au microcontrôleur de marquer une pause après chaque changement d’état de la LED. Pour cela nous appelons la fonction « delay » qui demande au microcontrôleur d’attendre une durée exprimée en millisecondes. Pour attendre 1 seconde après chaque extinction ou allumage, ajoutez la ligne suivante :
delay(1000);
Code complet
Voici le programme complet:
// Fonction de démarrage, s'exécute une seule fois au démarrage :
void setup()
{
pinMode(25, OUTPUT);
}
// Fonction principale du programme, s'exécute en boucle infinie :
void loop()
{
digitalWrite(25, HIGH);
delay(1000);
digitalWrite(25, LOW);
delay(1000);
}
Compilation du code logiciel
Avant de transférer le code sur votre carte Raspberry Pi Pico 2, l’IDE Arduino doit « compiler » le programme : c’est-à-dire le transformer en un fichier binaire (une suite de 0 et de 1) que le microcontrôleur RP2350 peut exécuter.
Assurez-vous d’abord que l’Arduino IDE est bien configuré pour le Pico 2. Dans le menu « Outils », vérifiez que « Carte: » indique bien « Raspberry Pi Pico 2 ». Sinon, référez-vous au chapitre « Sélection de la carte Raspberry Pi Pico 2 ».
Pour compiler votre programme et vérifier sa syntaxe, utilisez le menu « Croquis », en cliquant sur « Vérifier/Compiler »:

L’Aduino IDE affiche le message « Compilation du programme… » et une barre de progression indique qu’il est occupé à compiler votre code source:

Si une erreur a été rencontrée au cours de la compilation, une fenêtre flottante s’affiche sous la zone d’écriture du programme avec affiché « Compilation error » et un bouton « Copier les messages d’erreur ». En exemple, la copie d’écran ci-dessous affiche le message d’erreur produit par un « ; » oublié en fin de la ligne 13.

Conseils pour déboguer :
- Lisez attentivement le message d’erreur, il indique souvent précisément le problème
- Vérifiez les point-virgules en fin de ligne (l’erreur la plus fréquente)
- Contrôlez que toutes les accolades
{sont bien fermées par une accolade} - Assurez-vous que les noms de fonctions sont correctement orthographiés (C++ est sensible à la casse)
Une fois la compilation terminée, si tout s’est bien déroulé vous avez le message « Compilation terminée » qui s’affiche dans une fenêtre flottante:

Transfert du programme dans le Raspberry Pi Pico 2
Lors du tout premier Transfert de programme sur un Raspberry Pi Pico 2 neuf (ou après un effacement complet de la mémoire), une manipulation spéciale est nécessaire. Les transferts suivants seront automatiques et ne nécessiteront plus cette manipulation.
Commencez par débrancher le câble USB du Raspberry Pi Pico 2 s’il est déjà connecté.
Puis branchez le câble USB à votre PC :

Première fois uniquement : Basculement en mode « Transfert de programme »
Sur la carte, localisez le bouton BOOTSEL (petit bouton blanc situé entre le connecteur USB et la puce RP2350):

Enfoncez ce bouton avec votre doigt. Tout en le maintenant enfoncé, branchez le câble USB au Pico 2.

Attendez 2 secondes, puis relâchez le bouton BOOTSEL…
Le Pico 2 apparaît alors comme une clé USB nommée « RP2350 » dans l’explorateur de fichiers.

Vous pouvez fermer cette fenêtre d’explorateur si elle s’ouvre automatiquement. Nous n’allons pas copier de fichier manuellement : nous allons utiliser l’IDE Arduino.
Dans le menu Outils → Port, sélectionnez le port listé nommé « UF2 Board » sous « uf2conv ports » :

Les fois suivantes : Branchement simple
Lors des utilisations suivantes, vous n’avez pas de précaution particulière à prendre. Un simple branchement du câble USB sur le PI Pico 2 suffit.

Pour les transferts ultérieurs, sélectionnez le port série via Outils → Port, puis cliquez sur celui se terminant par « Raspberry Pi Pico 2, Waveshare RP2350 PiZero » :

Lancement du transfert
Vous pouvez maintenant lancer le transfert du programme sur la carte via Croquis → Téléverser dans l’IDE Arduino :

Comme lors de la compilation, l’IDE Arduino affiche d’abord « Compilation du programme… », puis « Téléversement ». Une fois l’opération terminée avec succès, il affiche le message « Téléversement fait. » :

Ça y est, le programme est chargé sur votre carte. Vous pouvez maintenant observer le clignotement de la LED embarquée.
Pour aller plus loin
Pour aller plus loin, je vous invite à adapter votre code. Par exemple, vous pouvez accélérer le clignotement en réduisant la durée d’attente de la fonction « delay » à 300ms:
digitalWrite(25, HIGH); delay(1000); digitalWrite(25, LOW); delay(1000);
Une fois le code modifié, n’oubliez pas de recompiler avant le transfert du programme sur la carte.
