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.
Il est très pratique d’acheter un kit complet, voici le lien :
Nom |
ÉLÉMENTS DANS CE KIT |
LIEN |
|---|---|---|
Kit Raphael |
337 |
Vous pouvez également les acheter séparément aux liens ci-dessous.
INTRODUCTION DES COMPOSANTS |
LIEN D’ACHAT |
|---|---|
- |
|
- |
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 |
Procédures expérimentales
Étape 1 : Construisez le circuit.
É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