Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Pixel Chaser : Jeu LED interactif à une touche avec Arduino Nano

Composants et fournitures

Composant Quantité
Arduino Nano R3 1
Adafruit NeoPixel Ring : WS2812 5050 RGB LED 1
Plaque d'essai demi-taille (solderless) 1
Résistance 10 kΩ 1
Bouton poussoir 12 mm (SparkFun) 1
Fils de câblage (générique) 1

Applications et services en ligne

À propos du projet

J'étais développeur de jeux, et l'un des « saints graals » du jeu mobile est de créer le jeu ultime « à une touche » (one-tap).

Je voulais voir si je pouvais réaliser un jeu de « physique » à un clic génial en utilisant un microcontrôleur, un bouton et un retour visuel.

Voici PIXEL CHASER !

C'est un montage assez facile, allons-y !

De quels composants avons-nous besoin ?

Pixel Chaser : Jeu LED interactif à une touche avec Arduino Nano

Étape 1

Placer le Nano à une extrémité de la breadboard, connecteur USB au bord.

Pixel Chaser : Jeu LED interactif à une touche avec Arduino Nano

Étape 2

Placer le bouton à l'autre extrémité, au plus près du bord pour un accès facile.

Pixel Chaser : Jeu LED interactif à une touche avec Arduino Nano

Étape 3

Ajouter la résistance 10 kΩ entre un côté du bouton et le rail GND. C'est l'état LOW par défaut. La résistance évite un court-circuit VCC/GND quand le bouton est pressé (risque d'endommager le microcontrôleur).

Pixel Chaser : Jeu LED interactif à une touche avec Arduino Nano

Étape 4

Relier le côté opposé du bouton au rail VCC. Le bouton passe HIGH quand pressé.

Pixel Chaser : Jeu LED interactif à une touche avec Arduino Nano

Étape 5

Relier le côté GND du bouton à la broche D3 du Nano. On lira D3 pour connaître l'état du bouton.

Pixel Chaser : Jeu LED interactif à une touche avec Arduino Nano

Étape 6

Câbler l'anneau/bande RGB : VCC → rail VCC, GND → rail GND, DI (Data In) → D4 du Nano. D4 contrôlera les pixels.

Pixel Chaser : Jeu LED interactif à une touche avec Arduino Nano

Étape 7

Relier broche 5V du Nano → rail VCC, broche GND du Nano → rail GND.

Pixel Chaser : Jeu LED interactif à une touche avec Arduino Nano

Étape 8

Téléverser le code et jouer !

Pixel Chaser : Jeu LED interactif à une touche avec Arduino Nano

J'espère que ce projet vous a plu !

D'autres projets fun sur ma chaîne YouTube.

Suivez-moi :

Code

Pixel Chaser Game - Code Arduino

/* ---------------------------------------------------------------------------
Pixel Chaser Game - v1.0.0 - 24/03/2019.
AUTHOR/LICENSE: Created by Seon Rozenblum - seon@unexpectedmaker.com
Copyright 2016 License: GNU GPL v3 https://www.gnu.org/licenses/gpl-3.0.html
LINKS: Blog: unexpectedmaker.com YOUTUBE: youtube.com/c/unexpectedmaker
DISCLAIMER: This software is furnished "as is", without technical support,
and with no warranty, express or implied, as to its usefulness for any purpose.
PURPOSE: Controller software for Reflow Master toaster oven by Unexpected Maker
HISTORY: 24/03/2019 v1.0.0 - Initial release. NOTE: Work in progress...
--------------------------------------------------------------------------- */

#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;
  }
}

Processus de fabrication

  1. Construire un jeu gyroscopique temps réel avec Arduino Nano et capteur MPU-6050
  2. Dé numérique Arduino sur écran LCD 16x2 – Générateur aléatoire à bouton poussoir
  3. Créer un jeu Pong classique sur Arduino UNO avec écran OLED – Tutoriel étape par étape
  4. Créer votre propre jeu de roulette à 37 LED avec Arduino Nano
  5. Manette de jeu USB Arduino DIY – Construisez votre propre gamepad haute performance
  6. Jeu Breakout tactile Arduino : recréez l'arcade classique sur écran TFT 2,4″
  7. Jeu Tetris sur Matrice LED 16×8 DIY avec Arduino Nano
  8. Lévitation magnétique répulsive avec Arduino : circuit simple et guide DIY
  9. Automatiser le Jeu Chrome Dino avec Arduino et LDR