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 Game

Componentes y suministros

Arduino Nano R3
× 1
Anillo Adafruit NeoPixel:WS2812 5050 RGB LED
× 1
Protoboard sin soldadura de tamaño medio
× 1
Resistencia de 10k ohmios
× 1
Interruptor de botón SparkFun de 12 mm
× 1
Cables de puente (genéricos)
× 1

Aplicaciones y servicios en línea

Arduino IDE

Acerca de este proyecto

Solía ​​ser un desarrollador de juegos, y uno de los santos griales en el desarrollo de juegos para dispositivos móviles es hacer el mejor juego de "un toque".

Quería ver si podía hacer un juego de "física" con un solo clic usando un microcontrolador, un botón y alguna forma de retroalimentación visual.

¡Presentamos PIXEL CHASER!

Es una construcción bastante fácil, ¡así que vayamos directo a ella!

¿Qué partes necesitamos?

Necesitamos lo siguiente:

  • Arduino Nano (o cualquier microcontrolador con 2 pines IO disponibles)
  • Anillo o tira RGB "NeoPixel"
  • Botón momentáneo
  • Resistencia de 10k
  • Tableros de pruebas
  • Cables

Paso 1

Coloque el Nano en un extremo de la placa con el conector USB en el borde.

Paso 2

Coloque el botón en el otro extremo de la placa de pruebas, lo más cerca posible del borde para que sea más fácil acceder a él.

Paso 3

Agregue la resistencia de 10k entre uno de los lados del botón y el riel GND de la placa de pruebas. Este será el estado BAJO predeterminado del botón. Usamos una resistencia para asegurarnos de que no haya un cortocircuito entre VCC y GND cuando se presiona el botón, ya que eso puede dañar el microcontrolador y otros componentes.

Paso 4

Conecte un cable de puente del lado opuesto del botón al riel VCC. El botón subirá cuando se presione.

Paso 5

Conecte un cable de puente desde el lado GND del botón a D3 en el Nano. Leeremos D3 para determinar el estado del botón.

Paso 6

Conecte la tira / anillo RGB a la placa de pruebas. Conecte el cable VCC al riel eléctrico VCC, el cable GND al riel eléctrico GND y el cable DI (entrada de datos) a D4 en el Nano. Controlaremos los píxeles con D4.

Paso 7

Conecte un puente de cable desde el pin de 5V en el Nano al riel de alimentación VCC, luego conecte un cable de puente desde el pin GND en el Nano al riel de alimentación GND.

Paso 8

¡Sube el código y juega!

¡Espero que hayas disfrutado de este proyecto!

Puedes encontrar más proyectos divertidos como este en mi canal de YouTube.

Sígueme:

http://twitter.com/unexpectedmaker

https://www.facebook.com/unexpectedmaker/

https://www.instagram.com/unexpectedmaker/

https://www.patreon.com/unexpectedmaker

https://www.tindie.com/stores/seonr/

Código

  • Pixel Chaser Game - Código Arduino
Pixel Chaser Game - Código Arduino Arduino
¡Agregue este código en Arduino y siga las instrucciones de compilación!
 / * ---------------------------------- ----------------------------------------- Juego Pixel Chaser - v1.0.0 - 24 /03/2019.AUTHOR/LICENSE:Creado por Seon Rozenblum - [email protected] Copyright 2016 Licencia:GNU GPL v3 http://www.gnu.org/licenses/gpl-3.0.html ENLACES:Blog:inesperadomaker.comYOUTUBE:youtube .com / c / unknownmaker DESCARGO DE RESPONSABILIDAD:Este software se proporciona "tal cual", sin soporte técnico y sin garantía, expresa o implícita, en cuanto a su utilidad para cualquier propósito. PROPÓSITO:Este controlador es el software que se ejecuta en Reflow Master Controlador de horno tostador fabricado por Unexpected Maker HISTORIA:24/03/2019 v1.0.0 - Versión inicial NOTA:Este es un trabajo en progreso ...------------------- -------------------------------------------------- ------ * /// Necesitamos instalar estas bibliotecas desde el administrador de bibliotecas oPíxeles en la tira # define NUMPIXELS 24 // ¿A qué GPIO está conectado el botón? #define BUTTON_TAP 3 // Inicializa el botón, con un botón predeterminado lowOneButtonTAP (BUTTON_TAP, false); // Inicializa la tira de píxelesAdafruit_NeoPixel píxeles =Adafruit_NeoPixel (NUMPIXELS , PIXELPIN, NEO_GRB + NEO_KHZ800); // Un montón de variablesint playerIndex =-1; int playerIndexTrail =-1; int playerDirection =1; float nextMove =0; float currentPlayerSpeed ​​=150; cuenta regresiva larga sin firmar =0; int enemigoIndex =- 1; int coinIndex =-1; int score =0; int bestScore =0; int lastScore =0; bool gameOver =false; void setup () {// hacer que el pin del botón sea un pinMode de entrada (BUTTON_TAP, INPUT); // Adjuntar funciones de clic al botón buttonTAP.attachClick (singleClick); buttonTAP.attachLongPressStart (longClick); // Inicialice la tira y establezca su brillo al 20% pixels.begin (); píxeles.setBrightness (20); // establece una cuenta regresiva de 2 segundos antes de que el jugador aparezca y comience a moverse countdown =millis () + 2000;} void loop () {// En cada ciclo necesitamos marcar el estado del botón buttonTAP.tick (); // Si el juego está en estado de finalización del juego, salir del ciclo antes de tiempo if (gameOver) return; // Establece el estado de visualización de píxeles del nivel // Esto establece la posición del enemigo y la posición de la moneda SetLevel (); // espera un segundo para que el jugador se prepare if (cuenta atrás> millis ()) {pixels.show (); regreso; } // Toda la visualización del jugador, el movimiento y la lógica del juego están aquí DisplayPlayer (); // Esto envía el color de píxel actualizado al hardware. pixels.show ();} // Limpia el nivel, configurando todos los píxeles en blackvoid 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; } // Mueve al jugador en su dirección actual playerIndex + =playerDirection; // Envuelve al jugador en los bordes de la tira if (playerIndex <0) playerIndex =NUMPIXELS - 1; else if (playerIndex ==NUMPIXELS) playerIndex =0; pixels.setPixelColor (playerIndex, pixels.Color (0, 255, 0)); // ¿El jugador golpeó la moneda? // Si es así, aumenta la puntuación, restablece las posiciones de la moneda y del enemigo y borra el nivel // En el siguiente ciclo, SetLevel () restablecerá al enemigo y la moneda // La velocidad del jugador también aumenta por cada moneda golpeada if (playerIndex ==coinIndex) {índiceEnemigo =-1; coinIndex =-1; puntuación ++; currentPlayerSpeed ​​=restringir (currentPlayerSpeed ​​- 10, 50, 150); ClearLevel (); pixels.setPixelColor (playerIndex, pixels.Color (0, 255, 0)); } // ¿El jugador golpeó al enemigo? // Establece la última / mejor puntuación y cancela el juego en lugar de else if (playerIndex ==EnemigoIndex) {lastScore =score; if (puntuación> =mejor puntuación) mejor puntuación =puntuación; Juego terminado(); gameOver =true; EnemigoIndex =-1; coinIndex =-1; playerIndex =-1; }}} // Clickvoid de un solo botón singleClick () {// No hay entrada hasta que el jugador sea visible if (countdown> millis ()) return; // cambia la dirección del jugador playerDirection =-playerDirection;} // Botón largo clickvoid longClick () {// Cambia el juego sobre el estado // Si el juego terminó, comienza el juego, de lo contrario cancela un juego en progreso gameOver =! gameOver; if (gameOver) {índiceEnemigo =-1; coinIndex =-1; playerIndex =-1; currentPlayerSpeed ​​=150; ClearLevel (); } else {ClearLevel (); puntuación =0; currentPlayerSpeed ​​=150; cuenta atrás =milis () + 2000; }} 

Proceso de manufactura

  1. Juego de giroscopio Arduino con MPU-6050
  2. Dados digitales Arduino
  3. Juego Arduino Pong - Pantalla OLED
  4. Juego de ruleta DIY 37 LED
  5. Controlador de juego Arduino
  6. Arduino Touch Breakout Game
  7. Arduino Nano Tetris Game en una matriz casera de 16x8
  8. Levitación electromagnética repulsiva Arduino
  9. Juego automatizado de Dino usando arduino
  10. Controlador Arduino Home activado por Alexa
  11. NeoMatrix Arduino Pong