Port. strong> et sélectionnez le port approprié. 3. Cliquez sur Compiler, et une fois la compilation terminée, cliquez sur Télécharger.">
Aller au contenu

+49 1626571232

info@openelab.io

🚀 Livraison gratuite à partir de 50€ dans l'UE / 80€ dans le monde entier

FAQ

Projet de mini machine à sous avec M5StickC Plus2 -3

17 Oct 2024 0 commentaires

Félicitations, vous avez atteint la étape finale de votre projet de machine à sous ! Dans cette étape, nous vous guiderons dans la mise en œuvre d'une fonctionnalité super intéressante : passer de l'arrêt manuel à l'arrêt automatique. arrête. Mais ce n’est pas tout ! Nous allons également vous montrer comment utiliser les définitions de macro pour créer un changement de mode à un seul bouton. Grâce à cette fonctionnalité, vous pouvez facilement basculer entre les modes automatique et manuel simplement en modifiant une seule valeur.

C'est comme par magie, ajouter plus de flexibilité et de amusant à votre projet ! Alors, êtes-vous prêt à faire passer votre machine à sous au niveau supérieur ? Plongeons-nous ensemble et réalisons-le !

  

Installation et fonctionnement

Précondition

Dépendance logicielle : Arduino IDE, VScode ou texte, etc.

Configuration matérielle requise : câble USB-C, M5StickCPlus2, etc.

Dépendances : Bibliothèque M5StickCPlus2, Bibliothèque Arduino, etc.

Installation des dépendances

1. Ce changement implique deux parties principales. Parcourons d'abord la première partie, en nous appuyant sur les modifications introduites dans la section précédente. Nous analyserons chaque changement étape par étape, en commençant par le haut.

  • Définition de l'automatisation : Nous avons défini le commutateur d'automatisation, qui vous permet de basculer entre les modes automatiques et non automatiques.

  • Paramètres d'intervalle :

    • time_MAX et time_MIN : ces variables représentent la plage de l'intervalle de temps d'arrêt.

    • initTime_MAX et initTime_MIN : ils indiquent l'intervalle de temps d'arrêt initial pendant les premières étapes du jeu.

  • Limites de comptage d'arrêt :

    • startCount_MAX : Ceci définit le nombre maximum d'arrêts depuis le début de la partie.

    • initTime_MAX et initTime_MIN : (Réitération) Ceux-ci représentent les paramètres d'intervalle initiaux pour la sélection de l'heure d'arrêt.

    • startCount_MAX : cette variable contrôle également le combien d'arrêts peuvent avoir lieu depuis le début.

Avec ces variables, vous avez plus de contrôle sur le timing et l'automatisation, permettant des transitions plus fluides entre les modes manuel et automatique. Dans la partie suivante, nous explorerons comment implémenter ces intervalles et commutateurs dans le code, apportant ainsi de la flexibilité à votre projet.

2. Examinons ensuite la fonction setup(). Nous avons ajouté srand(time(0)) pour initialiser la fonction aléatoire avec l'heure actuelle, garantissant ainsi des valeurs aléatoires uniques à chaque exécution.

Examinons maintenant la fonction loop(). Tout d'abord, nous utilisons l'Automation comme commutateur pour déterminer si le système fonctionne en mode automatique ou manuel. Si le mode manuel est sélectionné, aucune modification n’est requise. Nous nous concentrons toutefois sur le mode automatique.

En mode automatique, la tâche principale est de décider si les broches doivent s'arrêter. Les broches s'arrêtent progressivement en fonction d'un temps d'arrêt généré aléatoirement (Count_Num), l'utilisateur n'a donc pas besoin de pour appuyer plusieurs fois sur le bouton.

Lorsque le bouton A (BtnA) est enfoncé ou que le compteur atteint la condition d'arrêt, les broches s'arrêteront une par une automatiquement.

  • État : SLOTS_INIT Dans cet état, toutes les broches commencent à tourner simultanément et un compte aléatoire détermine quand elles s'arrêtent.

  • Les broches s'arrêtent automatiquement dans deux conditions :

    • Le bouton A est enfoncé.

    • Le compteur aléatoire atteint l'heure d'arrêt désignée.

Cette logique garantit un fonctionnement fluide en mode automatique, arrêtant les broches sans intervention manuelle, améliorant ainsi l'expérience de jeu de la machine à sous.

// Initialize M5StickC Plus2
 #include "time.h"
#define Automation 1
#define Time_MAX 80
#define Time_MIN 45
#define InitTime_MAX 100
#define InitTime_MIN 80
#define StartCount_MAX 6

void setup() {
        srand(time(0));//added on top of the original few
}

void loop()  {
  static int Slot_Start = 0; // Control the number of spindle starts
  static int Slot_Stop = 0; // Whether to stop the spindle
  static int Count_Stop = 0; //Count the heartbeats of the stop spindle
  static int Count_Num; // Randomly generated stop times in automatic mode

  M5.update(); //Update button status

  if (Automation) { // If automatic mode is enabled
    if (M5.BtnA.wasPressed() || Slot_Stop == 1) { // button press or auto mode trigger stop
      if (state == SLOTS_INIT) { // If in the initialization state
        for (int i = 0; i < SLOT_COUNT; i++) {
          slots[i].start(); // Activate each spindle
        }
        state++;
        Slot_Start = 1; // Record startup status
        Count_Num = rand() % (InitTime_MAX - InitTime_MIN - 1) + InitTime_MIN;// Randomly generated stop times
      } else if (state < SLOTS_STOP) { // If the spindle is running
        Slot_Start++;
        slots[state - 1].stop(); //Stop the current axis
        state++;
      }
    }
    Slot_Stop = 0; // Reset stop sign
  } else { // manual mode
    if (M5.BtnA.wasPressed()) { //Press the button to start or stop the spindle
      if (state == SLOTS_INIT) {
        for (int i = 0; i < SLOT_COUNT; i++) {
          slots[i].start(); // Activate each spindle
        }
        state++;
      } else if (state < SLOTS_STOP) {
        slots[state - 1].stop(); // stop spindle
        state++;
      }
    }
  }
}
        
✔ Copié !

 

3. Examinons ensuite la deuxième partie, qui vise à faire en sorte que chaque colonne s'arrête de manière aléatoire. Cette section est placée à la fin de la fonction de boucle et ne peut pas être déplacée. Nous nous concentrons ici uniquement sur le mode automatique.

Dans cette partie, le mode automatique est activé lorsque la macro Automation est défini comme 1. En mode automatique, l'utilisateur n'a pas besoin d'appuyer sur un bouton pour démarrer ou arrêter chaque broche. Au lieu de cela, le code gère ​​automatiquement le processus de démarrage et d'arrêt pour chaque broche.

Lorsque le Mode automatique est activé :

  • Le système démarre automatiquement les broches et utilise le compteur Count_Stop pour suivre le temps écoulé.
  • Chaque fois que le compteur atteint un temps d'arrêt aléatoire pré-généré (Count_Num), le système déclenche le arrêt d'une broche.
  • Une fois toutes les broches arrêtées, le système réinitialise son état et se prépare pour le prochain cycle d'opération.
Cette implémentation garantit un jeu fluide et mains libres en automatisant le démarrage et l'arrêt des broches, améliorant ainsi les performances et l'expérience utilisateur de la machine à sous.
// Initialize M5StickC Plus2
 if (Automation) { // If in automatic mode
  if (Slot_Start && Slot_Start < StartCount_MAX) { //When at least one shaft has been started and the maximum number of starts has not yet been reached
    Count_Stop++; // Counter increments to record time progress
    if (Count_Stop == Count_Num && state < SLOTS_STOP) { //If the counter reaches a randomly generated stop time
      Slot_Stop = 1; // Trigger auto-stop spindle
      Count_Stop = 0; //Counter resets to zero in preparation for the next stop
      Count_Num = rand() % (Time_MAX - Time_MIN - 1) + Time_MIN; //Randomly generate the next stop interval
    }
  } else if (Slot_Start == StartCount_MAX) { // If all spindles have been activated
    Slot_Start = 0; // Zero the startup counter in preparation for the next startup
  }
}


        
✔ Copié !

 

Compiler et exécuter

 1. Après avoir terminé l'installation des dépendances, ouvrez l'archive zip téléchargée.

2. Connectez le M5StickC Plus 2 à votre ordinateur à l'aide d'un câble USB-C, puis accédez à Outils -> Port. strong> et sélectionnez le port approprié.

3. Cliquez sur Compiler, et une fois la compilation terminée, cliquez sur Télécharger.

Article précédent
Prochain article

laissez un commentaire

Tous les commentaires du blog sont vérifiés avant la publication

Quelqu'un a récemment acheté un

Achetez le look

Choisissez les options

Modifier l'option
Notification de retour en stock
this is just a warning
Se connecter
Panier
0 articles