Tutoriel ESP32 36/55 - Jeu de devinette de nombres | Kit d'apprentissage IoT ESP32 de SunFounder

Tutoriel ESP32 36/55 - Jeu de devinette de nombres | Kit d'apprentissage IoT ESP32 de SunFounder

Dans ce tutoriel, nous allons créer un jeu amusant de devinette de nombres en utilisant le microcontrôleur ESP32 avec une télécommande infrarouge et un écran LCD. Le joueur tentera de deviner un nombre généré au hasard entre 0 et 99, le jeu fournissant des indices sur le fait que la devinette est trop élevée ou trop basse. Grâce à ce projet, vous apprendrez à utiliser le récepteur infrarouge, à afficher des valeurs sur un écran LCD et à gérer les entrées utilisateur à partir d'une télécommande. Vous pouvez vous référer à la vidéo pour plus de clarté (dans la vidéo à 00:00).

ESP32_36_guessing_numbe-1
ESP32_36_guessing_numbe-2

Matériel expliqué

Les principaux composants utilisés dans ce projet incluent le microcontrôleur ESP32, une télécommande infrarouge, un récepteur infrarouge et un écran LCD. L'ESP32 sert d'unité de traitement principale et est capable de gérer la communication sans fil, ce qui en fait un choix polyvalent pour les projets IoT. La télécommande infrarouge permet aux utilisateurs de faire des suppositions sans nécessiter d'interaction physique avec la carte, tandis que l'écran LCD affiche le statut du jeu et les messages.

Le récepteur infrarouge détecte les signaux de la télécommande et les décode pour une utilisation dans le jeu. Chaque pression sur un bouton de la télécommande correspond à une valeur spécifique que l'ESP32 peut interpréter. L'écran LCD fournit une interface visuelle pour l'utilisateur, affichant la plage de suppositions actuelle et si la supposition était correcte.

Détails de la fiche technique

Fabricant SunFounder
Numéro de pièce ESP32
Tension logique/IO 3,3 V
Tension d'alimentation 5 V (via USB)
Courant de sortie (par canal) 12 mA (max)
Guide sur la fréquence PWM 1 kHz
Seuils de logique d'entrée 0,3 * Vcc à 0,7 * Vcc
Chute de tension / RDS(on)/ saturation 0,2 V
Limites thermiques Température de fonctionnement : -40 à 85 °C
Colis Module WROOM-32
Remarques / variantes Prend en charge le Wi-Fi et le Bluetooth

  • Assurez-vous que tous les composants sont évalués pour 3,3 V et 5 V lorsque cela est applicable.
  • Utilisez des résistances de tirage appropriées pour le récepteur IR afin d'éviter les entrées flottantes.
  • Envisagez d'utiliser un dissipateur thermique si vous fonctionnez à courant de sortie maximal pendant de longues périodes.
  • Lors de l'utilisation du PWM, maintenez une fréquence d'environ 1 kHz pour des performances optimales.
  • Soyez prudent avec le câblage ; assurez-vous que les connexions sont sécurisées pour éviter les pannes intermittentes.

Instructions de câblage

ESP32_36_guessing_number_wiring

Pour configurer le câblage du jeu de devinette de nombres, commencez par connecter le récepteur infrarouge. Connectez le fil rouge de la broche droite du récepteur à l'alimentation de 3,3 V sur l'ESP32. Le fil noir doit aller à la masse, tandis que la broche gauche du récepteur infrarouge se connecte à la broche.14sur l'ESP32.

ESP32_36_schéma_de_devine_number

Ensuite, câblez l'afficheur LCD. Connectez la broche VCC de l_LCD à l'alimentation de 5 V sur l'ESP32 et la broche de masse à la terre. Les broches SDA et SCL de l_LCD doivent être connectées aux broches21et22respectivement. Assurez-vous qu'il y a deux espaces vides entre les connexions SDA et SCL pour éviter les conflits de broches. Enfin, assurez-vous de retirer tous les couvercles en plastique de la batterie avant d'alimenter la carte.

Exemples de code et guide étape par étape

Les extraits de code suivants illustrent les parties essentielles du programme utilisé pour le jeu de devinette de nombres. Nous commençons par inclure les bibliothèques nécessaires et à définir les identifiants clés.

#include 
#include 
#include 
#include 

const uint16_t IR_RECEIVE_PIN = 14;
IRrecv irrecv(IR_RECEIVE_PIN);
decode_results results;

Dans cet extrait, nous incluons des bibliothèques pour gérer la fonctionnalité de l'écran LCD et du récepteur IR. La broche pour le récepteur infrarouge est définie comme14, et nous créons des instances des objets nécessaires pour gérer l'entrée et la sortie.

void setup() {
  lcd.init();
  lcd.backlight();
  Serial.begin(9600);
  irrecv.enableIRIn();
  initNewValue();
}

Ce extrait montre la fonction de configuration où nous initialisons l'écran LCD, démarrons la communication série et activons le récepteur IR. La fonctioninitNewValue()est appelé à générer un nouveau nombre aléatoire que le joueur doit deviner.

bool detectPoint() {
  if (count > pointValue) {
    if (count < upper) upper = count;
  } else if (count < pointValue) {
    if (count > lower) lower = count;
  } else if (count == pointValue) {
    count = 0;
    return 1;
  }
  count = 0;
  return 0;
}

Cette fonction vérifie la supposition du joueur par rapport au nombre généré aléatoirement, ajustant les limites supérieures et inférieures en conséquence. Si la supposition est correcte, elle réinitialise le compteur et retourne vrai.

Le code complet est chargé ci-dessous l'article pour votre référence.

Démonstration / À quoi s'attendre

Une fois que tout est câblé et que le code est téléchargé, le jeu vous indiquera d'appuyer sur n'importe quel numéro de la télécommande. Le jeu fournira ensuite des retours sur vos réponses, mettant à jour la plage des numéros possibles jusqu'à ce que vous deviniez correctement le numéro cible. Si vous appuyez sur le bouton POWER, le jeu se réinitialise et recommence (dans la vidéo à 02:30).

Les pièges courants incluent s'assurer que le récepteur infrarouge est correctement orienté et que toutes les connexions sont sécurisées. Si le jeu ne répond pas, vérifiez l'alimentation et assurez-vous que la bonne carte et le bon port sont sélectionnés dans l'IDE Arduino.

Horodatages vidéo

  • 00:00 Début
  • 2:17 Introduction au projet de jeu
  • 4:37 Câblage
  • 6:15 Code Arduino expliqué
  • 12:32 Sélectionner la carte ESP32 et le port COM dans l'IDE Arduino
  • 16:16 Jouer au jeu de deviner le nombre

Images

ESP32_36_guessing_number_schematic
ESP32_36_guessing_number_schematic
ESP32_36_guessing_number_wiring
ESP32_36_guessing_number_wiring
ESP32_36_guessing_numbe-1
ESP32_36_guessing_numbe-1
ESP32_36_guessing_numbe-2
ESP32_36_guessing_numbe-2
837-ESP32 Tutorial 36/55- Arduino code for guessing number
Langue: C++
Copié !

Ressources et références

Fichiers📁

Aucun fichier disponible.