Note

Bonjour et bienvenue dans la Communauté Facebook des passionnés de Raspberry Pi, Arduino et ESP32 de SunFounder ! Plongez plus profondément dans l’univers des Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.

Pourquoi rejoindre ?

  • Support d’experts : Résolvez les problèmes après-vente et les défis techniques avec l’aide de notre communauté et de notre équipe.

  • Apprendre et partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.

  • Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus.

  • Réductions spéciales : Profitez de réductions exclusives sur nos produits les plus récents.

  • Promotions festives et cadeaux : Participez à des cadeaux et des promotions de vacances.

👉 Prêt à explorer et à créer avec nous ? Cliquez [Ici] et rejoignez-nous aujourd’hui !

3.1.12 JEU - 10 Secondes

Introduction

Suivez-moi pour créer un dispositif de jeu afin de tester votre concentration. Attachez l’interrupteur à bascule à un bâton pour en faire une baguette magique. Secouez la baguette, l’affichage à 4 chiffres commencera à compter ; secouez à nouveau pour arrêter le comptage. Si vous réussissez à maintenir le compte affiché à 10.00, vous gagnez. Vous pouvez jouer avec vos amis pour voir qui est le maître du temps.

Composants nécessaires

Pour ce projet, nous avons besoin des composants suivants.

../_images/list_GAME_10_Second.png

Il est très pratique d’acheter un kit complet, voici le lien :

Nom

ÉLÉMENTS DANS CE KIT

LIEN

Kit Raphael

337

Raphael Kit

Vous pouvez également les acheter séparément aux liens ci-dessous.

INTRODUCTION DES COMPOSANTS

LIEN D’ACHAT

Carte d’extension GPIO

ACHETER

Plaque d’expérimentation (Breadboard)

ACHETER

Fils de Liaison

ACHETER

Résistance

ACHETER

Affichage à 7 segments 4 chiffres

-

74HC595

ACHETER

Interrupteur à Inclinaison

-

Schéma de câblage

Nom de la carte

Physique

WiringPi

BCM

GPIO17

Pin 11

0

17

GPIO27

Pin 13

2

27

GPIO22

Pin 15

3

22

SPIMOSI

Pin 19

12

10

GPIO18

Pin 12

1

18

GPIO23

Pin 16

4

23

GPIO24

Pin 18

5

24

GPIO26

Pin 37

25

26

../_images/Schematic_three_one13.png

Procédures expérimentales

Étape 1 : Construisez le circuit.

../_images/image277.png

Étape 2 : Accédez au dossier du code.

cd ~/raphael-kit/c/3.1.12/

Étape 3 : Compilez le code.

gcc 3.1.12_GAME_10Second.c -lwiringPi

Étape 4 : Exécutez le fichier exécutable.

sudo ./a.out

Secouez la baguette, l’affichage à 4 chiffres commencera à compter ; secouez à nouveau pour arrêter le comptage. Si vous réussissez à maintenir le compte affiché à 10.00, vous gagnez. Secouez-la une fois de plus pour commencer la prochaine partie.

Note

Si cela ne fonctionne pas après l’exécution ou s’il y a un message d’erreur : « wiringPi.h: No such file or directory », veuillez consulter Installer et vérifier WiringPi.

Explication du code

void stateChange(){
    if (gameState == 0){
        counter = 0;
        delay(1000);
        ualarm(10000,10000);
    }else{
        alarm(0);
        delay(1000);
    }
    gameState = (gameState + 1)%2;
}

Le jeu est divisé en deux modes :

gameState=0 est le mode « démarrer », où le temps est chronométré et affiché sur l’afficheur à segments, et l’interrupteur à bascule est secoué pour entrer dans le mode « afficher ».

gameState=1 est le mode « afficher », qui arrête le chronométrage et affiche le temps sur l’afficheur à segments. Secouer à nouveau l’interrupteur à bascule réinitialise le chronomètre et redémarre le jeu.

void loop(){
    int currentState =0;
    int lastState=0;
    while(1){
        display();
        currentState=digitalRead(sensorPin);
        if((currentState==0)&&(lastState==1)){
            stateChange();
        }
        lastState=currentState;
    }
}

Loop() est la fonction principale. Tout d’abord, le temps est affiché sur l’afficheur à 4 chiffres et la valeur de l’interrupteur à bascule est lue. Si l’état de l’interrupteur à bascule a changé, stateChange() est appelé.

Image du phénomène

../_images/image278.jpeg