Comment programmer l’ESP32-CAM avec l’Arduino IDE ?

  • Auteur/autrice de la publication :
  • Post category:Arduino
  • Post comments:1 commentaire

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:

Emplacement du flash embarqué sur la carte de développement 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 digitalWritepour 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
Modes de fonctionnement de l'ESP32

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:

Liste des ports USB avant le branchement de la carte de l'ESP32-CAM

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:

Branchement du cable USB au 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.

Liste des ports USB après le branchement de la carte de l'ESP32-CAM

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”:

Transférer le programme compilé sur la carte de développement ESP32-CAM

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é”:

Le transfert du programme dans la carte de développement ESP32-CAM est terminé

Il ne vous reste plus qu’à sortir l’ESP32-CAM du mode de transfert de programme. Pour cela:

  1. débranchez l’entrée GPI0 de la masse ( fil jaune du schéma de câblage)
  2. 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

La publication a un commentaire

  1. RandomGuy

    COMMENT C’EST TROPRATIK CE TRUC

Laisser un commentaire