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.

../_images/list_GAME_10_Second.png

Es definitivamente conveniente comprar un kit completo, aquí está el enlace:

Nombre

ELEMENTOS EN ESTE KIT

ENLACE

Kit Raphael

337

Raphael Kit

También puedes comprarlos por separado en los enlaces a continuación.

INTRODUCCIÓN AL COMPONENTE

ENLACE DE COMPRA

Placa de Extensión GPIO

COMPRAR

Protoboard

COMPRAR

Cables de Puente

COMPRAR

Resistor

COMPRAR

Pantalla de 7 segmentos y 4 dígitos

-

74HC595

COMPRAR

Interruptor de Inclinación

-

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

../_images/Schematic_three_one13.png

Procedimientos Experimentales

Paso 1: Construir el circuito.

../_images/image277.png

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

../_images/image278.jpeg