Sommario:
- Passaggio 1: BISOGNI
- Passaggio 2: SCHEMA
- Passaggio 3: CODICE
- Passaggio 4: CODICE BITMAP
- Passaggio 5: GRAZIE PER LA VISUALIZZAZIONE
Video: Arduino Space Race Game Versione _1: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Ehi amici. Oggi ti mostrerò come puoi creare un gioco di corse spaziali con schermo LCD5110 e joystick. Diamo un'occhiata ai passaggi…
Passaggio 1: BISOGNI
Ecco un elenco di parti che ho usato per realizzare questo progetto:
- Arduino UNO
- Modulo joystick
- Ponticelli (da maschio a maschio e da maschio a femmina)
- tagliere
Passaggio 2: SCHEMA
VCC -> Arduino 5V
BL -> Arduino pin 3
GND -> Arduino GND
CLK (SCLK) -> Arduino pin 8
DIN (MOSI) -> Arduino pin 9
DC -> Arduino pin 10
CE o CS -> Arduino pin 12
RST (RESET) -> Arduino pin 11
Passaggio 3: CODICE
Il codice contiene spiegazioni sulle funzioni del codice. Lo capirai facilmente. Se hai un problema, puoi contattarmi.
#includere
LCD5110 LCD (8, 9, 10, 11, 12); //(clk, din, dc, primo, ce)
int BL=3;
extern uint8_t SmallFont; //descrivi i caratteri extern uint8_t MediumNumbers; extern uint8_t arac; //descrivi la nostra forma extern uint8_t dusman_araci; //descrivi la forma del nemico const int xpin=A0; //joystick x pin char pozisyon=2; //descrivi la posizione, la nostra forma inizia la posizione 2 boolean kontrol = true; booleano dusmanOldu = vero; int skor=0; int hiz=0; int dusmanKonumu1; //descrivi nemico1 x posizione int dusmanKonumu2; //descrivi nemico2 x posizione int dusmaninYdeKonumu; //descrivi i nemici e la posizione
void dusmanAraci(int yer, int asama){ //imposta le posizioni per le forme nemiche
if (yer==1){ //if location=1; lcd.drawBitmap(2, asama, dusman_araci, 12, 8); //disegna la forma del nemico } if (yer==2){ lcd.drawBitmap(18, asama, dusman_araci, 12, 8); } if (yer==3){ lcd.drawBitmap(34, asama, dusman_araci, 12, 8); }}
void oyunBitti() { //se falliamo, il gioco finisce
mentre(1) { ritardo(100); //aspetta 1 millisecondo lcd.clrScr(); //cancella lo schermo lcd.setFont(SmallFont); //set font lcd.print("GAME OVER", CENTER, 20); //stampa lcd.update(); //aggiorna lo schermo }}
void setup() { pinMode(BL, OUTPUT); //imposta la retroilluminazione Output lcd. InitLCD(); //inizializza lo schermo lcd lcd.setContrast(55); //imposta contrasto(da 0 a 127) Serial.begin(9600); //avvia la comunazione seriale }
ciclo vuoto() {
analogWrite(BL, 200);
//imposta la schermata di gioco lcd.drawRect(0, 0, 47, 47); //disegniamo il rettangolo lcd.setFont(SmallFont); //imposta il carattere lcd.print("skor", 53, 0); //printf score lcd.setFont(MediumNumbers); //imposta il carattere lcd.printNumI(skor, 59, 7); //ottenere il punteggio lcd.setFont(SmallFont); lcd.print("hiz", 56, 25); //velocità di stampa lcd.setFont(MediumNumbers); lcd.printNumI(hiz, 59, 32); //ottieni velocità lcd.update(); //aggiornare
//imposta la posizione del joystick 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 e il controllo è vero pozisyon++; //aumenta la posizione significa sposta la forma a destra kontrol=false; } else if(x>300 && x<600){ kontrol=true; } Serial.println(x); //per imparare lo stato x //imposta la posizione della nostra forma lcd.clrScr(); //cancella lo schermo if (pozisyon==1){ //if location=1; lcd.drawBitmap(2, 37, arac, 12, 8);} //disegna la nostra nave if (pozisyon==2){ lcd.drawBitmap(18, 37, arac, 12, 8);}
if (posizione==3){
lcd.drawBitmap(34, 37, arac, 12, 8);}
if (dusmanOldu){ //se la forma del nemico è morta, controlla se sono morti
dusmanKonumu1 = posizione; //disegna la prima forma del nemico dusmanKonumu2 = random(0, 4); //disegna un'altra forma nemica da qualche parte dusmaninYdeKonumu = 0; //porta il nemico dall'alto dusmanOldu = false;} //il nemico viene ricreato in modo che non sia morto dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu++; //disegna la prima forma del nemico e prendila dall'alto verso il basso dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu++; //disegna la seconda forma del nemico e prendila dall'alto verso il basso if (dusmaninYdeKonumu>22 && ((dusmanKonumu1 == posizione) || (dusmanKonumu2 == posizione))){ //se la nostra forma tocca le forme nemiche oyunBitti();} //il gioco è finito if (dusmaninYdeKonumu>40){ //se la nostra forma fugge dai nemici dusmanOldu = true; //uccidi le forme nemiche skor++;} //aumenta uno ad uno il punteggio //aumenta la velocità in base al punteggio if (skor>=0 && skor10 && skor20 && skor30 && skor<=40){ hiz = 3; ritardo(40); } }
Passaggio 4: CODICE BITMAP
Inoltre, devi includere la grafica bitmap per le forme. Deve essere un file.c e lo stesso nome con nome in codice. Inoltre, deve essere nello stesso file.
//------------------------------------------------ ----------------// File generato da LCD Assistant // https://en.radzio.dxp.pl /bitmap_converter/ //------------------------------------------------------------ ---------------------------------- #include //include per la funzione programma
const unsigned char arac PROGMEM = { //la nostra forma bitmap
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };
const unsigned char dusman_araci PROGMEM = { //bitmap della nave nemica
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };
Passaggio 5: GRAZIE PER LA VISUALIZZAZIONE
Prima che ı iniziasse a condividere i miei progetti, codificavo in parole turche, quindi non potevo tradurre tutte le parole in inglese. Ecco le parole di traduzione che usano questo progetto, Oyun = Gioco
Arac = Forma
Dusman = Nemico
kontrol = controllo
Konum, Yer = Posizione
Oyun Bitti = Fine del gioco
Skor = Punteggio
Hiz = Velocità
Consigliato:
Voltmetro Arduino (0-100 V CC) - Versione 2 (migliore): 3 passaggi
Arduino Volt Meter (0-100V DC) - Versione 2 (migliore): in questo istruibile, ho costruito un voltmetro per misurare alte tensioni DC (0-100v) con relativa precisione e accuratezza usando un Arduino Nano e un ADS 1115 ADC .Questa è una seconda versione del voltmetro utilizzata dal mio precedente istruibile qui: https://ww
REGOLATORE DI CARICA SOLARE ARDUINO (Versione 2.0): 26 passaggi (con immagini)
REGOLATORE DI CARICA SOLARE ARDUINO (Versione 2.0): [Riproduci video]Un anno fa, ho iniziato a costruire il mio sistema solare per fornire energia alla mia casa di villaggio. Inizialmente, ho realizzato un regolatore di carica basato su LM317 e un contatore di energia per il monitoraggio del sistema. Infine, ho realizzato un controller di carica PWM. Ad aprile
8x16 LED Matrix Pong Game (2 paddle per versione giocatore): 3 passaggi
8x16 LED Matrix Pong Game (versione 2 paddle per giocatore): sono stato ispirato da molte varianti del classico gioco Pong implementato su Arduino utilizzando una matrice LED 8x8. In questo tutorial, ti mostrerò come costruire la mia versione Pong preferita che ha due paddle - attaccante e portiere - per giocatore
Space Race Game Versione 2: 5 Passi
Space Race Game Versione 2: Ciao a tutti. Prima di questa versione del gioco, ha pubblicato la prima versione del gioco. Oggi, ti mostrerà la versione 2 di Space Race Game. Diamo un'occhiata ai passaggi
Space Race: semplice gioco Arduino Clicker da fare con i bambini: 7 passaggi
Space Race: semplice gioco Arduino Clicker da fare con i bambini: ¡Sto caricando un video che mostra come funziona oggi! Resta sintonizzato Divertiamoci con un istruttore a tema spaziale che può essere realizzato insieme ai bambini e che in seguito può essere apprezzato da loro da soli come un giocattolo. Puoi usarlo come mezzo per insegnare loro la storia della co