Nota
¡Hola! Bienvenidos a la Comunidad de Entusiastas de SunFounder Raspberry Pi & Arduino & ESP32 en Facebook. Profundiza en Raspberry Pi, Arduino y ESP32 con otros entusiastas.
¿Por qué unirse?
Soporte de Expertos: Resuelve problemas post-venta y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprende y Comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.
Avances Exclusivos: Obtén acceso anticipado a nuevos anuncios de productos y adelantos.
Descuentos Especiales: Disfruta de descuentos exclusivos en nuestros productos más nuevos.
Promociones y Sorteos Festivos: Participa en sorteos y promociones de temporada.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo!
3.1.12 JUEGO - 10 Segundos
Introducción
A continuación, sigamos para hacer un dispositivo de juego que desafíe tu concentración. Ata el interruptor de inclinación a un palo para hacer una varita mágica. Agita la varita, el display de 4 dígitos comenzará a contar, agítala nuevamente para detener la cuenta. Si logras mantener el contador en 10.00, entonces ganas. Puedes jugar con tus amigos para ver quién es el mago del tiempo.
Componentes Necesarios
En este proyecto, necesitamos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
Nombre |
ELEMENTOS EN ESTE KIT |
ENLACE |
|---|---|---|
Kit Raphael |
337 |
También puedes comprarlos por separado en los enlaces a continuación.
INTRODUCCIÓN AL COMPONENTE |
ENLACE DE COMPRA |
|---|---|
- |
|
- |
Diagrama Esquemático
T-Board Nombre |
físico |
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 |
Procedimientos Experimentales
Paso 1: Construir el circuito.
Paso 2: Ir a la carpeta del código.
cd ~/raphael-kit/c/3.1.12/
Paso 3: Compilar el código.
gcc 3.1.12_GAME_10Second.c -lwiringPi
Paso 4: Ejecutar el archivo ejecutable.
sudo ./a.out
Agita la varita, el display de 4 dígitos comenzará a contar, agítala de nuevo para detener la cuenta. Si logras mantener el contador en 10.00, entonces ganas. Agítala una vez más para comenzar la siguiente ronda del juego.
Nota
Si no funciona después de ejecutarlo, o aparece un mensaje de error: "wiringPi.h: No such file or directory", por favor, consulta Instalar y verificar WiringPi.
Explicación del Código
void stateChange(){
if (gameState == 0){
counter = 0;
delay(1000);
ualarm(10000,10000);
}else{
alarm(0);
delay(1000);
}
gameState = (gameState + 1)%2;
}
El juego se divide en dos modos:
gameState=0 es el modo «inicio», en el cual se cronometra el tiempo y se muestra en el display de segmentos, y al agitar el interruptor de inclinación se entra en el modo «mostrar».
GameState=1 es el modo «mostrar», que detiene el cronometraje y muestra el tiempo en el display de segmentos. Al agitar nuevamente el interruptor de inclinación se reinicia el cronómetro y el juego comienza de nuevo.
void loop(){
int currentState =0;
int lastState=0;
while(1){
display();
currentState=digitalRead(sensorPin);
if((currentState==0)&&(lastState==1)){
stateChange();
}
lastState=currentState;
}
}
Loop() es la función principal. Primero, el tiempo se muestra en el display de 4 dígitos y se lee el valor del interruptor de inclinación. Si el estado del interruptor de inclinación ha cambiado, se llama a stateChange().
Imagen del Fenómeno