Nota
Ciao, benvenuto nella SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community su Facebook! Immergiti più a fondo nel mondo di Raspberry Pi, Arduino e ESP32 insieme ad altri appassionati.
Perché unirsi a noi?
Supporto esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra comunità e del nostro team.
Impara e condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e alle anteprime.
Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni festive e omaggi: Partecipa a omaggi e promozioni festive.
👉 Sei pronto per esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!
3.1.12 GIOCO - 10 Secondi
Introduzione
Ora, segui me per creare un dispositivo di gioco per sfidare la tua concentrazione. Fissa l’interruttore inclinabile a un bastone per creare una bacchetta magica. Agita la bacchetta e il display a 4 cifre inizierà a contare, agita di nuovo per fermare il conteggio. Se riesci a mantenere il conteggio visualizzato su 10.00, hai vinto. Puoi giocare con i tuoi amici per vedere chi è il mago del tempo.
Componenti necessari
In questo progetto, avremo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un intero kit, ecco il link:
Nome |
OGGETTI IN QUESTO KIT |
LINK |
|---|---|---|
Kit Raphael |
337 |
Puoi anche acquistarli separatamente dai link qui sotto.
INTRODUZIONE COMPONENTI |
LINK ACQUISTO |
|---|---|
- |
|
- |
Schema Elettrico
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 |
Procedure Sperimentali
Passo 1: Costruisci il circuito.
Passo 2: Vai alla cartella del codice.
cd ~/raphael-kit/c/3.1.12/
Passo 3: Compila il codice.
gcc 3.1.12_GAME_10Second.c -lwiringPi
Passo 4: Esegui il file eseguibile.
sudo ./a.out
Agita la bacchetta e il display a 4 cifre inizierà a contare, agita di nuovo per fermare il conteggio. Se riesci a mantenere il conteggio visualizzato su 10.00, hai vinto. Agitala un’altra volta per iniziare un nuovo round del gioco.
Nota
Se dopo l’esecuzione non funziona o compare un messaggio di errore : "wiringPi.h: No such file or directory", fai riferimento a Installa e Controlla wiringPi.
Spiegazione del Codice
void stateChange(){
if (gameState == 0){
counter = 0;
delay(1000);
ualarm(10000,10000);
}else{
alarm(0);
delay(1000);
}
gameState = (gameState + 1)%2;
}
Il gioco è suddiviso in due modalità:
gameState=0 è la modalità «start», in cui il tempo viene cronometrato e visualizzato sul display a segmenti, e scuotendo l’interruttore inclinabile si entra nella modalità «show».
GameState =1 è la modalità «show», che interrompe il cronometraggio e visualizza il tempo sul display a segmenti. Scuotendo nuovamente l’interruttore inclinabile, il timer si resetta e il gioco ricomincia.
void loop(){
int currentState =0;
int lastState=0;
while(1){
display();
currentState=digitalRead(sensorPin);
if((currentState==0)&&(lastState==1)){
stateChange();
}
lastState=currentState;
}
}
Loop() è la funzione principale. Prima viene visualizzato il tempo sul display a 4 cifre e viene letto il valore dell’interruttore inclinabile. Se lo stato dell’interruttore inclinabile è cambiato, viene chiamata la funzione stateChange().
Immagine del fenomeno