Faire clignoter le flash
L’ESP32-CAM possède une LED embarquée très puissante servant de flash pour les photos et les vidéos. Cette LED est routée sur la sortie numérique 4 de l’ESP32-CAM:

Comme dans les programmes Arduino précédents, partons de l’ossature de code suivante:
// Fonction de démarrage, s'exécute une seule fois: void setup() { } // Fonction principale du programme, s'exécute en boucle: void loop() { }
Tout d’abord, afin de faciliter la lecture du programme, nous allons définir l’alias “PORT_LED_FLASH” pour désigner la sortie numérique du flash. La directive de préprocesseur “#define” permet de créer cet alias:
// Définition des constantes globales #define PORT_LED_FLASH 4 // Numéro de port auquel est branchée la LED servant de flash.
Nous indiquons ensuite que nous voulons utiliser la broche d’entrée/sortie du flash en mode sortie (“OUTPUT”) à l’aide l’instruction “pinmode” . Il n’est nécessaire d’exécuter cette instruction qu’une seule fois avant l’utilisation de cette sortie, aussi vous l’insérez dans la fonction “setup” :
pinMode(PORT_LED_FLASH, OUTPUT);
L’allumage du flash s’effectue par une demande de positionnement de la sortie à l’état allumé (“HIGH”) et son extinction par une demande de positionnement de la sortie à l’état éteint (“LOW”). Vous allez utiliser la fonction “digitalWrite” pour effectuer ce changement d’état de la sortie du microcontrôleur.
Il est également nécessaire de marquer une pause après avoir modifié l’état allumé/éteint du flash pour permettre sa visualisation. Vous utiliserez pour cela la fonction “delay” avec la valeur de 1000 millisecondes en paramètre.
En utilisant ces instructions dans la fonction “loop”, vous obtiendrez l’effet répétitif:
digitalWrite(PORT_LED_FLASH, HIGH); delay(1000); digitalWrite(PORT_LED_FLASH, LOW); delay(1000);
Maintenant votre programme de clignotement du flash est terminé. Voici le code complet:
// Définition des constantes globales #define PORT_LED_FLASH 4 // Numéro de port auquel est branchée la LED servant de flash. // Fonction de démarrage, s'exécute une seule fois: void setup() { pinMode(PORT_LED_FLASH, OUTPUT); } // Fonction principale du programme, s'exécute en boucle: void loop() { digitalWrite(PORT_LED_FLASH, HIGH); delay(1000); digitalWrite(PORT_LED_FLASH, LOW); delay(1000); }
Compilation du code logiciel
Si vous n’êtes pas familier avec la compilation sous Arduino je vous invite à vous reporter à l’article “Comment écrire un programme sous Arduino ?“.
Pour les autres, la compilation ne pose pas de difficulté particulière une fois le type de carte “AI Thinker ESP32-CAM” sélectionné.
Transfert du programme dans la carte ESP32-CAM
La carte ESP32 et donc le module ES32-CAM ont 2 différents modes de fonctionnement:
- Le mode normal d’exécution de programme
- Le mode de transfert de programme
Le basculement vers l’un ou l’autre de ces 2 modes s’effectue au démarrage:
- Si le bouton de mode de transfert (IO0) est enfoncé, alors l’entrée GPI0 de l’eSP32-CAM est reliée à la masse, ce qui la fait basculer le module en mode Transfert de programme (par liaison, série).
- S’il n’y a pas d’appui sur le bouton mode de transfert, l’entrée GPI0 de l’ESP32-CAM est déconnectée et donc le module bascule en mode Exécution du programme (stocké en mémoire flash).
Pour le transfert du programme que vous venez de compiler, la première chose à faire est de lister les ports USB visibles par l’Arduino IDE avant même le branchement de votre convertisseur USB/TTL à votre PC.
Dans le menu “Outils”, cliquez sur “Port” puis notez les ports listés:

Vous branchez le câble USB à votre PC:

Vous allez maintenant démarrer l’ESP32-CAM en mode Transfert de programme. Voici la procédure:
Vous gardez le doigt appuyé sur le bouton Mode de transfert (IO0) appuyé tout en branchant le câble USB à la carte ESP32-CAM. Vous attendez 3 secondes puis relâchez le bouton.

Maintenant si vous allez dans le menu “Outils” puis cliquez sur “Port” vous voyez un nouveau port référencé. C’est celui qui correspond à notre carte de développement ESP32-CAM. Sélectionnez-le pour indiquer à l’Arduino IDE d’utiliser ce port USB pour le transfert du programme.

Vous pouvez maintenant lancer le transfert de ce programme dans la carte ESP32-CAM en utilisant au choix:
- L’icône représentant une flèche horizontale:

- ou le menu “Croquis”, en cliquant sur “Téléverser”:

Comme lors de l’étape de compilation, l’Aduino IDE affiche le message “Compilation du croquis” et une barre de progression. Une fois ce transfert terminé, si tout s’est bien déroulé, il va afficher le message “Téléversement fait.”:

Il ne vous reste plus qu’à sortir l’ESP32-CAM du mode Transfert de programme. Pour cela, il vous suffit de débrancher le câble USB du module et de le rebrancher.
Eh voilà, le flash clignote ! Cela prouve que vous avez transféré avec succès votre programme Arduino dans l’ESP32-CAM.
Si cet article vous a plu, n’hésitez pas à laisser un commentaire.
Pour continuer:
Si vous souhaitez découvrir un exemple d’utilisation de la caméra et de l’interface Wi-Fi de l’ESP32-CAM en Arduino, je vous invite à vous reporter à l’article suivant: Caméra Wi-Fi ESP32-CAM avec Arduino