Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Pixel Chaser: Juego LED Interactivo de Un Toque con Arduino Nano

Componentes y suministros

ComponenteCantidad
Arduino Nano R31
Anillo Adafruit NeoPixel: WS2812 5050 RGB LED1
Protoboard sin soldar (media)1
Resistencia 10k ohm1
Pulsador SparkFun 12mm1
Cables jumper (genéricos)1

Aplicaciones y servicios en línea

Sobre el proyecto

Fui desarrollador de juegos, y uno de los santos griales en desarrollo móvil es hacer el definitivo juego «un toque».

Quería ver si podía hacer un genial juego de «física» de un clic usando un microcontrolador, un botón y alguna retroalimentación visual.

¡Presentando PIXEL CHASER!

Es un montaje bastante fácil, ¡vamos al lío!

¿Qué piezas necesitamos?

Pixel Chaser: Juego LED Interactivo de Un Toque con Arduino Nano

Paso 1

Coloca el Nano en un extremo de la protoboard con el conector USB al borde.

Pixel Chaser: Juego LED Interactivo de Un Toque con Arduino Nano

Paso 2

Coloca el botón en el otro extremo, lo más cerca del borde posible para fácil acceso.

Pixel Chaser: Juego LED Interactivo de Un Toque con Arduino Nano

Paso 3

Conecta la resistencia 10k entre un lado del botón y el rail GND. Este será el estado LOW por defecto. Usamos resistencia para evitar cortocircuito entre VCC y GND al pulsar, que podría dañar el microcontrolador y otros componentes.

Pixel Chaser: Juego LED Interactivo de Un Toque con Arduino Nano

Paso 4

Conecta un jumper del lado opuesto del botón al rail VCC. El botón pasa a HIGH al pulsarse.

Pixel Chaser: Juego LED Interactivo de Un Toque con Arduino Nano

Paso 5

Conecta un jumper del lado GND del botón al pin D3 del Nano. Leeremos D3 para saber el estado del botón.

Pixel Chaser: Juego LED Interactivo de Un Toque con Arduino Nano

Paso 6

Conecta la tira/anillo RGB a la protoboard. VCC al rail VCC, GND al rail GND, DI (Data In) al pin D4 del Nano. Controlaremos los píxeles con D4.

Pixel Chaser: Juego LED Interactivo de Un Toque con Arduino Nano

Paso 7

Conecta un jumper del pin 5V del Nano al rail VCC, y otro del pin GND al rail GND.

Pixel Chaser: Juego LED Interactivo de Un Toque con Arduino Nano

Paso 8

¡Sube el código y a jugar!

Pixel Chaser: Juego LED Interactivo de Un Toque con Arduino Nano

¡Espero que disfrutéis este proyecto!

Podéis encontrar más proyectos divertidos como este en mi canal de YouTube.

Sígueme:

Código

Pixel Chaser Game - Arduino Code (Arduino)

/* ---------------------------------------------------------------------------
Pixel Chaser Game - v1.0.0 - 24/03/2019.
AUTOR/LICENCIA: Creado por Seon Rozenblum - seon@unexpectedmaker.com
Copyright 2016 Licencia: GNU GPL v3 https://www.gnu.org/licenses/gpl-3.0.html
ENLACES: Blog: unexpectedmaker.com YOUTUBE: youtube.com/c/unexpectedmaker
DESCARGO: Este software se proporciona «tal cual», sin soporte técnico, y sin garantía, expresa o implícita, sobre su utilidad para cualquier propósito.
PROPÓSITO: Este controlador es el software que corre en el controlador de horno tostador Reflow Master hecho por Unexpected Maker
HISTORIAL: 24/03/2019 v1.0.0 - Lanzamiento inicial. NOTA: Esto es un trabajo en progreso...
--------------------------------------------------------------------------- */

#include <Adafruit_NeoPixel.h>
#include "OneButton.h"

#define PIXELPIN 4
#define NUMPIXELS 24
#define BUTTON_TAP 3

OneButton buttonTAP(BUTTON_TAP, false);
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIXELPIN, NEO_GRB + NEO_KHZ800);

int playerIndex = -1, playerIndexTrail = -1, playerDirection = 1;
float nextMove = 0, currentPlayerSpeed = 150;
unsigned long countdown = 0;
int enemyIndex = -1, coinIndex = -1;
int score = 0, bestScore = 0, lastScore = 0;
bool gameOver = false;

void setup() {
  pinMode(BUTTON_TAP, INPUT);
  buttonTAP.attachClick(singleClick);
  buttonTAP.attachLongPressStart(longClick);
  pixels.begin();
  pixels.setBrightness(20);
  countdown = millis() + 2000;
}

void loop() {
  buttonTAP.tick();
  if (gameOver) return;
  SetLevel();
  if (countdown > millis()) { pixels.show(); return; }
  DisplayPlayer();
  pixels.show();
}

void ClearLevel() {
  for(int i=0;i= 0) pixels.setPixelColor(playerIndexTrail, pixels.Color(0,0,0));
    if (playerIndex >= 0) {
      pixels.setPixelColor(playerIndex, pixels.Color(0,100,0));
      playerIndexTrail = playerIndex;
    }
    playerIndex += playerDirection;
    if (playerIndex < 0) playerIndex = NUMPIXELS - 1;
    else if (playerIndex == NUMPIXELS) playerIndex = 0;
    pixels.setPixelColor(playerIndex, pixels.Color(0,255,0));

    if (playerIndex == coinIndex) {
      enemyIndex = -1; coinIndex = -1; score++;
      currentPlayerSpeed = constrain(currentPlayerSpeed - 10, 50, 150);
      ClearLevel();
      pixels.setPixelColor(playerIndex, pixels.Color(0,255,0));
    } else if (playerIndex == enemyIndex) {
      lastScore = score;
      if (score >= bestScore) bestScore = score;
      GameOver();
      gameOver = true;
      enemyIndex = -1; coinIndex = -1; playerIndex = -1;
    }
  }
}

void singleClick() {
  if (countdown > millis()) return;
  playerDirection = -playerDirection;
}

void longClick() {
  gameOver = !gameOver;
  if (gameOver) {
    enemyIndex = -1; coinIndex = -1; playerIndex = -1; currentPlayerSpeed = 150;
    ClearLevel();
  } else {
    ClearLevel(); score = 0; currentPlayerSpeed = 150; countdown = millis() + 2000;
  }
}

Proceso de manufactura

  1. Construye un Juego Giroscópico en Tiempo Real con Arduino Nano y Sensor MPU-6050
  2. Proyecto Dados Digitales Arduino: Construye tu Propio Generador de Números Aleatorios con LCD
  3. Construya el clásico juego Pong en Arduino UNO con pantalla OLED: Tutorial paso a paso
  4. Construye tu Propio Juego de Ruleta de 37 LEDs con Arduino Nano
  5. Mando USB para juegos DIY con Arduino – Construye tu propio gamepad de alto rendimiento
  6. Juego Breakout táctil Arduino: Arcade clásico en pantalla TFT 2,4″
  7. Construye un juego Tetris con Arduino Nano en matriz LED 16x8 DIY
  8. Levitación magnética repulsiva con Arduino: Circuito simple y guía DIY
  9. Automatiza el Juego del Dinosaurio de Chrome con Arduino y Python
  10. Controlador doméstico Arduino con Alexa: Automatización inteligente simplificada
  11. Pong Neón en Matriz NeoPixel con Arduino Nano