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 uns 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 son entrée GPI0 est reliée à la masse, l’ESP32-CAM bascule en mode transfert de programme par liaison série.
- Dans les autre cas (GPI0 déconnectée ou alimentée en +3,3V), l’ESP32-CAM bascule en mode d’exécution du programme stocké sur sa 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:

Le schéma de câblage fourni au début de cet article permet de basculer l’ESP32-CAM en mode de transfert de programme. Pour transférer votre programme Arduino dans l’ESP32-CAM, vous allez donc réaliser ce câblage puis brancher le convertisseur USB/TTL à votre PC:

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.

Afin que l’état de l’entrée GPI0 soit bien pris en compte par l’ESP32-CAM, vous débranchez puis rebranchez l’alimentation de l’ESP32-CAM (broche 5V, fil rouge du schéma de câblage) pour le redémarrer.
Vous pouvez maintenant lancer le transfert de ce programme dans la carte ESP32-CAM par 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 terminé »:

Il ne vous reste plus qu’à sortir l’ESP32-CAM du mode de transfert de programme. Pour cela:
- débranchez l’entrée GPI0 de la masse ( fil jaune du schéma de câblage)
- débranchez puis rebrancher l’alimentation de l’ESP32-CAM (fil rouge du schéma de câblage) pour le redémarrer.
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