.. note::
Bonjour, bienvenue dans la communauté Facebook des passionnés de SunFounder Raspberry Pi & Arduino & ESP32 ! Plongez au cœur des projets avec Raspberry Pi, Arduino et ESP32 aux côtés d’autres amateurs enthousiastes.
**Pourquoi nous rejoindre ?**
- **Support d’experts** : Résolvez les problèmes techniques post-vente avec l’aide de notre communauté et de notre équipe.
- **Apprendre et partager** : Échangez des conseils et des tutoriels pour perfectionner vos compétences.
- **Aperçus exclusifs** : Accédez en avant-première aux annonces de nouveaux produits.
- **Réductions spéciales** : Bénéficiez de réductions exclusives sur nos produits les plus récents.
- **Promotions festives et cadeaux** : Participez à des promotions et concours pendant les fêtes.
👉 Prêt à explorer et créer avec nous ? Cliquez sur [|link_sf_facebook|] pour nous rejoindre dès aujourd'hui !
3.1.13 JEU – 10 Secondes
============================
Introduction
-------------------
Dans ce projet, suivez-moi pour fabriquer un appareil de jeu qui mettra à l
’épreuve votre concentration. Attachez le capteur d’inclinaison à une baguette
pour créer une baguette magique. Agitez la baguette pour démarrer le chronométrage
sur l’afficheur à 4 segments ; agitez à nouveau pour l’arrêter. Si vous parvenez à
stabiliser l’affichage sur **10.00**, vous gagnez. Jouez avec vos amis pour déterminer
qui est le maître du temps.
Composants
----------------
.. image:: img/list_GAME_10_Second.png
:align: center
Schéma de montage
------------------------
============ ======== ======== ===
T-Board Name physical 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
============ ======== ======== ===
.. image:: img/Schematic_three_one13.png
:align: center
Procédures expérimentales
---------------------------------
**Étape 1** : Assemblez le circuit.
.. image:: img/image277.png
:width: 800
**Étape 2** : Accédez au dossier contenant le code.
.. raw:: html
.. code-block::
cd ~/davinci-kit-for-raspberry-pi/c/3.1.13/
**Étape 3** : Compilez le code.
.. raw:: html
.. code-block::
gcc 3.1.13_GAME_10Second.c -lwiringPi
**Étape 4** : Exécutez le fichier compilé.
.. raw:: html
.. code-block::
sudo ./a.out
Agitez la baguette, l’afficheur à 4 segments démarrera le chronométrage ;
secouez-la à nouveau pour arrêter le chronométrage. Si vous réussissez à
arrêter le compteur à **10.00**, vous gagnez. Secouez encore une fois pour
commencer une nouvelle manche.
.. note::
Si cela ne fonctionne pas après l'exécution, ou si un message d'erreur
s'affiche : "wiringPi.h: Aucun fichier ou répertoire de ce type", veuillez
consulter :ref:`faq_c_nowork`.
**Explication du code**
.. code-block:: c
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 « start », où le temps est mesuré et affiché sur
l'afficheur à segments. Lorsque le capteur d'inclinaison est secoué, le
jeu passe au mode « show ».
gameState=1 est le mode « show », qui arrête le chronométrage et affiche
le temps sur l'afficheur. En secouant à nouveau le capteur d'inclinaison,
le minuteur se réinitialise et le jeu redémarre.
.. code-block:: c
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 segments et la valeur du capteur d'inclinaison est lue.
Si l'état du capteur change, stateChange() est appelée.