Tabla de contenido:
Video: Versión del juego Arduino Space Race _1: 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Hola amigos. Hoy te voy a mostrar cómo puedes hacer un juego de carrera espacial con una pantalla LCD5110 y un joystick. Veamos los pasos …
Paso 1: NECESIDADES
Aquí hay una lista de partes que utilicé para hacer este proyecto:
- Arduino UNO
- Módulo de joystick
- Cables de puente (macho a macho y macho a hembra)
- Tablero de circuitos
Paso 2: ESQUEMA
VCC -> Arduino 5V
BL -> Pin 3 de Arduino
GND -> Arduino GND
CLK (SCLK) -> Pin 8 de Arduino
DIN (MOSI) -> Pin 9 de Arduino
DC -> Pin 10 de Arduino
CE o CS -> Pin 12 de Arduino
RST (RESET) -> Pin 11 de Arduino
Paso 3: CÓDIGO
El código tiene explicaciones de las funciones del código. Lo entenderá fácilmente. Si tienes algún problema, puedes contactarme.
#incluir
LCD5110 lcd (8, 9, 10, 11, 12); // (clk, din, dc, rst, ce)
int BL = 3;
extern uint8_t SmallFont ; // describe las fuentes extern uint8_t MediumNumbers ; extern uint8_t arac ; // describe nuestra forma extern uint8_t dusman_araci ; // describe la forma del enemigo const int xpin = A0; // joystick x pin char pozisyon = 2; // describe la ubicación, la ubicación de inicio de nuestra forma 2 boolean kontrol = true; booleano dusmanOldu = verdadero; int skor = 0; int hiz = 0; int dusmanKonumu1; // describe enemigo1 x ubicación int dusmanKonumu2; // describe enemigo2 x ubicación int dusmaninYdeKonumu; // describe la ubicación de los enemigos
void dusmanAraci (int yer, int asama) {// establecer ubicaciones para las formas enemigas
if (yer == 1) {// si ubicación = 1; lcd.drawBitmap (2, asama, dusman_araci, 12, 8); // dibuja la forma del enemigo} if (yer == 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } if (yer == 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}
void oyunBitti () {// si fallamos, el juego termina
while (1) {retraso (100); // espera 1 milisegundo lcd.clrScr (); // limpia la pantalla lcd.setFont (SmallFont); // establece la fuente lcd.print ("JUEGO TERMINADO", CENTRO, 20); // imprimir lcd.update (); // actualiza la pantalla}}
configuración vacía () {pinMode (BL, SALIDA); // establecer la salida de luz de fondo lcd. InitLCD (); // iniciar la pantalla lcd lcd.setContrast (55); // establecer contraste (de 0 a 127) Serial.begin (9600); // iniciar la comunicación en serie}
bucle vacío () {
escritura analógica (BL, 200);
// establecer la pantalla del juego lcd.drawRect (0, 0, 47, 47); // dibujamos el rectángulo lcd.setFont (SmallFont); // establece la fuente lcd.print ("skor", 53, 0); // printf score lcd.setFont (MediumNumbers); // establece la fuente lcd.printNumI (skor, 59, 7); // obtener la puntuación lcd.setFont (SmallFont); lcd.print ("hiz", 56, 25); // velocidad de impresión lcd.setFont (MediumNumbers); lcd.printNumI (hiz, 59, 32); // obtener velocidad lcd.update (); //actualizar
// establece la ubicación del joyistick int x = analogRead (xpin); if (x <300 && pozisyon! = 1 && kontrol == true) {// if location! = 1, x state600 && pozisyon! = 3 && kontrol == true) {// if location! = 3, x state> 600 y el control es verdadero pozisyon ++; // aumentar la ubicación significa mover la forma a la derecha kontrol = false; } más si (x> 300 && x <600) {kontrol = verdadero; } Serial.println (x); // para aprender el estado x // establecer la ubicación de nuestra forma lcd.clrScr (); // limpia la pantalla if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // dibujamos nuestro barco if (pozisyon == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}
si (pozisyon == 3) {
lcd.drawBitmap (34, 37, arac, 12, 8);}
if (dusmanOldu) {// si la forma del enemigo está muerta, comprobar si están muertos
dusmanKonumu1 = pozisyon; // dibuja la primera forma enemiga dusmanKonumu2 = random (0, 4); // dibuja otra forma enemiga en algún lugar dusmaninYdeKonumu = 0; // traer al enemigo desde arriba dusmanOldu = false;} // el enemigo es recreado para que no esté muerto dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // dibuja la primera forma del enemigo y obténla de arriba a abajo dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // dibuja la segunda forma enemiga y obténla de arriba a abajo if (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon))) {// si nuestra forma toca las formas enemigas oyunBitti ();} // el juego termina if (dusmaninYdeKonumu> 40) {// si nuestra forma escapa de los enemigos dusmanOldu = true; // matar formas enemigas skor ++;} // aumentar una a una la puntuación // aumentar la velocidad según la puntuación if (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; retraso (40); }}
Paso 4: CODIGO BITMAP
Además, debe incluir el gráfico de mapa de bits para las formas. Debe ser un archivo.c y el mismo nombre con el nombre del código. Además, debe estar en el mismo archivo.
// ------------------------------------------------ ------------------------------ // Archivo generado por LCD Assistant // https://en.radzio.dxp.pl / bitmap_converter / // --------------------------------------------- --------------------------------- #include // incluir para la función progmem
const unsigned char arac PROGMEM = {// nuestro mapa de bits de forma
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
const unsigned char dusman_araci PROGMEM = {// mapa de bits de la nave enemiga
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
Paso 5: GRACIAS POR VER
Antes de comenzar a compartir mis proyectos, codifiqué en palabras turcas para que no pudiera cambiar todas las palabras al inglés. Aquí la traducción de las palabras que uso este proyecto, Oyun = Juego
Arac = Forma
Dusman = enemigo
kontrol = control
Konum, Yer = Ubicación
Oyun Bitti = Fin del juego
Skor = Puntuación
Hiz = Velocidad
Recomendado:
Controlador de juego Arduino Rhythm (para mi propio juego): 6 pasos
Controlador de juego de ritmo Arduino (para mi propio juego): en este instructivo le mostraré cómo construyo este controlador de juego de ritmo desde cero. Implica habilidades básicas de carpintería, habilidades básicas de impresión 3D y habilidades básicas de soldadura. Probablemente puedas construir este proyecto con éxito si no tienes ex
Controlador de juego Arduino + Juego Unity: 5 pasos
Controlador de juego Arduino + Juego Unity: en este instructivo, le mostraré cómo construir / programar un controlador de juego arduino que se puede conectar a la unidad
Space Race Game Versión 2: 5 pasos
Space Race Game Version 2: Hola a todos. Antes de esta versión del juego, publiqué la primera versión del juego. Hoy, te mostraré la versión 2 de Space Race Game. Veamos los pasos
Controlador de juego Arduino con luces que responden a tu juego Unity :: 24 pasos
Controlador de juego Arduino con luces que responden a tu juego Unity :: Primero, escribí esto en palabras. Esta es la primera vez que uso instructable, así que cada vez que digo: escriba el código como para saber que me refiero a la imagen en la parte superior de ese paso. En este proyecto, uso 2 arduino ’ s para ejecutar 2 bits separados
Space Race: juego simple de Arduino Clicker para hacer con los niños: 7 pasos
Space Race: Simple juego de Arduino Clicker para hacer con los niños: ¡ ¡Estoy subiendo un video que muestra cómo funciona hoy! Divirtámonos con un instructivo de temática espacial que se puede hacer junto con los niños y luego ser disfrutado por ellos solos como un juguete. Puede usarlo como un medio para enseñarles historia sobre co