Taula de continguts:

Arduino Space Race Game Versió _1: 5 passos
Arduino Space Race Game Versió _1: 5 passos

Vídeo: Arduino Space Race Game Versió _1: 5 passos

Vídeo: Arduino Space Race Game Versió _1: 5 passos
Vídeo: Amazing arduino project 2024, Juliol
Anonim
Image
Image

Ei amics. Avui sóc ganna us mostraré com podeu fer un joc de curses espacials mitjançant pantalla LCD5110 i joystic. Vegem els passos …

Pas 1: NECESSITATS

ESQUEMA
ESQUEMA

Aquí teniu una llista de les parts que he utilitzat per fer aquest projecte:

  • Arduino UNO
  • Mòdul Joystick
  • Jumper Wires (home a home i home a dona)
  • Taula de pa

Pas 2: ESQUEMA

VCC -> Arduino 5V

BL -> Pin 3 d'Arduino

GND -> Arduino GND

CLK (SCLK) -> Pin 8 d'Arduino

DIN (MOSI) -> Pin 9 d'Arduino

DC -> Pin Arduino 10

CE o CS -> Pin Arduino 12

RST (RESET) -> Pin 11 d'Arduino

Pas 3: CODI

CODI
CODI

El codi té explicacions sobre les funcions del codi. Ho entendreu fàcilment. Si teniu algun problema, podeu posar-vos en contacte amb mi.

#incloure

LCD5110 lcd (8, 9, 10, 11, 12); // (clk, din, dc, rst, ce)

int BL = 3;

extern uint8_t SmallFont ; // descriviu els tipus de lletra extern uint8_t MediumNumbers ; extern uint8_t arac ; // descriu la nostra forma extern uint8_t dusman_araci ; // designar enemic forma const int xpin = A0; // joystick x pin char position = 2; // descriviu la ubicació, la nostra ubicació inicial de forma 2 boolean kontrol = true; booleà dusmanOldu = cert; int skor = 0; int hiz = 0; int dusmanKonumu1; // descriu enemic1 x ubicació int dusmanKonumu2; // descriu enemic2 x ubicació int dusmaninYdeKonumu; // descriu els enemics i la ubicació

void dusmanAraci (int yer, int asama) {// estableix ubicacions per a formes enemigues

if (yer == 1) {// if location = 1; lcd.drawBitmap (2, asama, dusman_araci, 12, 8); // dibuixar forma enemiga} 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 fallem, acabem el joc

while (1) {delay (100); // espera 1 mil·lisegon lcd.clrScr (); // neteja la pantalla lcd.setFont (SmallFont); // set font lcd.print ("GAME OVER", CENTRE, 20); // imprimir lcd.update (); // actualitzar la pantalla}}

void setup () {pinMode (BL, OUTPUT); // restableix la llum Sortida lcd. InitLCD (); // iniciar la pantalla lcd lcd.setContrast (55); // establir contrast (amunt 0 a 127) Serial.begin (9600); // iniciar la comunió en sèrie}

bucle buit () {

analogWrite (BL, 200);

// configurar la pantalla del joc lcd.drawRect (0, 0, 47, 47); // dibuixem un rectangle lcd.setFont (SmallFont); // set font lcd.print ("skor", 53, 0); // puntuació printf lcd.setFont (MediumNumbers); // set font lcd.printNumI (skor, 59, 7); // obtenir puntuació lcd.setFont (SmallFont); lcd.print ("hiz", 56, 25); // velocitat d'impressió lcd.setFont (MediumNumbers); lcd.printNumI (hiz, 59, 32); // obtenir velocitat lcd.update (); // actualitzar

// estableix la ubicació joyistick int x = analogRead (xpin); if (x <300 && position! = 1 && kontrol == true) {// if location! = 1, x state600 && position! = 3 && kontrol == true) {// if location! = 3, x state> 600 i el control és cert lloc ++; // augmentar la ubicació que significa moure la forma a la dreta kontrol = false; } else if (x> 300 && x <600) {kontrol = true; } Serial.println (x); // per aprendre x state // estableix la nostra ubicació forma lcd.clrScr (); // neteja la pantalla if (position == 1) {// if location = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // dibuixar la nostra nau si (posició == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}

if (posició == 3) {

lcd.drawBitmap (34, 37, arac, 12, 8);}

if (dusmanOldu) {// si la forma de l'enemic és morta, comproveu si són morts

dusmanKonumu1 = posició; // dibuixa la primera forma enemiga dusmanKonumu2 = aleatori (0, 4); // dibuixa una altra forma enemiga en algun lloc dusmaninYdeKonumu = 0; // porta l'enemic des de la part superior dusmanOldu = fals;} // l'enemic es recrea perquè no estiguin morts dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // dibuixa la primera forma enemiga i aconsegueix-la de dalt a baix dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // dibuixa la segona forma enemiga i aconsegueix-la de dalt a baix si (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == posició) || (dusmanKonumu2 == posició))) {// si la nostra forma toca formes enemigues oyunBitti ();} // el joc s'ha acabat si (dusmaninYdeKonumu> 40) {// si la nostra forma s'escapa dels enemics dusmanOldu = true; // matar les formes enemigues skor ++;} // augmentar una a una la puntuació // augmentar la velocitat segons la puntuació si (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; retard (40); }}

Pas 4: CODI BITMAP

A més, heu d’incloure gràfics de mapa de bits per a les formes. Ha de ser un fitxer.c i el mateix nom amb el nom de codi. També ha de ser al mateix fitxer.

// ------------------------------------------------ ------------------------------ // Fitxer generat per LCD Assistant // https://en.radzio.dxp.pl / bitmap_converter / // -------------------------------------------- --------------------------------- #include // include per a la funció progmem

const unsigned char arac PROGMEM = {// el nostre 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 del vaixell enemic

0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};

Pas 5: GRÀCIES PER LA VISUALITZACIÓ

GRÀCIES PER LA VISUALITZACIÓ
GRÀCIES PER LA VISUALITZACIÓ

Abans de començar a compartir els meus projectes, codificava en paraules turques, de manera que no podia atzar totes les paraules en anglès. Aquí teniu la traducció de paraules que utilitzo aquest projecte, Oyun = Joc

Arac = Forma

Dusman = Enemic

kontrol = control

Konum, Yer = Ubicació

Oyun Bitti = Joc acabat

Skor = Puntuació

Hiz = Velocitat

Recomanat: