Fare un gioco usando Arduino Uno e Top 10 × 2 LCD

Fare un gioco usando Arduino Uno e Top 10 × 2 LCD
Per creare progetti diversi e per conoscere i circuiti, la piattaforma Arduino è l'opzione praticabile per i principianti in quanto fornisce una vasta gamma di opzioni hardware e software ai suoi utenti. Per il software viene utilizzato principalmente Arduino IDE e per l'hardware per lo più viene utilizzato Arduino Uno. Usando l'Arduino Uno e l'IDE Arduino abbiamo creato un gioco chiamato Ardi PAC in cui abbiamo creato un personaggio che schiva il suo nemico quando premiamo un pulsante pulsante.

Come creare un gioco su Arduino Uno usando LCD

Per creare un gioco, dobbiamo creare un circuito che implementeremo sull'hardware e prima dobbiamo elevare i componenti necessari che sono necessari per progettare il circuito:

  • Breadboard
  • 1 display di cristallo 16x2Liquid
  • Collegamento dei fili
  • 1 pulsante
  • 1 potenziometro
  • Arduino Uno

La figura seguente mostra lo schema del circuito progettato per la creazione di un gioco usando Arduino Uno:

Come assemblare l'hardware per la creazione del gioco usando Arduino Uno

Per rendere facile l'assemblaggio dell'hardware, abbiamo dato l'immagine qui sotto che mostra come possiamo collegare i componenti necessari per creare il gioco Arduino:

Abbiamo collegato i pin di dati LCD ad Arduino Uno usando il suo pin 5,4,3,2 con i fili viola e per la regolazione della luminosità del LCD abbiamo collegato il potenziometro. Il filo giallo collega l'uscita del potenziometro con LCD. Per giocare al gioco abbiamo usato il pulsante che cambierà la posizione del carattere collegando il suo perno usando il filo di colore ciano per il pin 8 di Arduino e messo a terra l'altro pin.

Per collegare il LCD, il potenziometro e il pulsante con fornitura abbiamo preso la fornitura da Arduino Uno usando i pin di breadboard.

Come scrivere il codice Arduino per la creazione di un gioco usando Arduino Uno

Abbiamo fornito sotto il codice Arduino per fare un gioco di evitamento degli ostacoli usando Arduino Uno:

#include / * decarling lcd la libreria * /
LiquidCrystal LCD (12, 11, 5, 4, 3, 2);/* Assegnazione dei pin di Arduino a LCD*/
pulsante int = 8;/*Assegnazione del perno Arduino per il pulsante Push*/
/*variabili per la memorizzazione del tempo per spostare il nemico e il carattere*/
unsigned long a;
non firmato lungo b;
non firmato lungo c;
non firmato lungo d;
int ritardo = 500; / * Definizione della velocità del nemico */
Int DiminedEsedElay = 20; / * per ridurre la velocità del nemico */
int State2 = 0;/ * Variabile che memorizzerà il valore del pulsante quando viene premuto all'inizio del gioco */
int State1 = 0;/* Variabile per archiviare il valore del pulsante premuto per spostare il luogo del carattere*/
BOOL PAC = 0;/* Variabile che salverà il valore per il carattere per rilevare la collisione con il nemico*/
int i;/* variabile che viene utilizzata per spostare il nemico sul lcd*/
int punti = 0;/ * Variabile per archiviare i punti raggiunti il ​​giocatore */
/*Dichiarando i binari per nemico e carattere*/
Byte Enemy [8] =
B00000,
B00100,
B01110,
B11111,
B10101,
B11111,
B11111,
B10101
;
byte pac1 [8] =
B00000,
B01110,
B11011,
B11110,
B11100,
B11110,
B11111,
B01110
;
byte pac2 [8] =
B00000,
B01110,
B11011,
B11111,
B11111,
B11111,
B11111,
B01110
;
void setup ()
pinMode (pulsante, input_pullup); // Assegna la modalità di lavoro al pulsante Push */
LCD.INIZIA (16, 2);/* Dichiarando la dimensione del display*/
LCD.createchar (7, nemico); // dichiarando il nemico come un personaggio
LCD.CreateChar (6, Pac1); // dichiarando il PAC1 come un personaggio
LCD.CreateChar (5, Pac2); // dichiarando il PAC2 come un personaggio
i = 15;/ * Definizione del numero di colonne per il nemico */
/ * Salvando il tempo nelle variabili temporali dichiarate sopra */
a = millis ();
b = millis ();
c = millis ();
d = millis ();
State1 = DigitalRead (pulsante);/ * Lettura dello stato del pulsante premuto per la prima volta */
while (state1 == high) / * se il pulsante non viene premuto */
/ * Visualizzazione del gioco e dell'animazione del personaggio */
LCD.setCursor (3, 0);
LCD.print ("ardi-pac");
LCD.setcursor (3, 1);
LCD.print ("premi start");
LCD.setCursor (13, 0);
LCD.Scrivi (6);
ritardo (300);
LCD.setCursor (13, 0);
LCD.Scrivi (5);
ritardo (300);
State1 = DigitalRead (pulsante);/* Leggi nuovamente lo stato del pulsante*/
if (State1 == basso) / * se premuto quindi passare alla sezione Loop */
rottura;


ritardo (500);

void loop ()
State2 = DigitalRead (pulsante);/ * Controlla lo stato del pulsante */
if ((millis ()-a)> = ritardo) /* Avvia il movimento del nemico su lcd* /
a = millis ();
LCD.chiaro();
LCD.setcursor (i, 1);
LCD.Scrivi (7);
i = i-1;
if (i == -1) /* condizione per spostare il nemico sul LCD a partire da 15 e andare a zero*/
i = 15;

LCD.setCursor (6, 0);
LCD.print ("punti:");
LCD.stampa (punti);/ * Visualizzazione dei punti raggiunti dal giocatore */

if ((millis ()-b)> = 50)
b = millis ();
if (State2 == Low && pac == false) / * Visualizzazione del carattere su LCD leggendo lo stato del pulsante * /
LCD.setCursor (1, 0);/* Posizionando il carattere sulla prima colonna e la prima riga quando viene premuto il pulsante*/
LCD.Scrivi (6);
pac = true; / * aggiornando che nessuna collisione con il nemico */
b = millis ();/ * salvando il tempo */

else if (pac == true) /* se ancora nessuna collisione lo posiziona sullo stesso posto* /
LCD.setCursor (1, 0);
LCD.Scrivi (6);

else if (pac == false) /* sposta il carattere in seconda riga prima colonna su lcd*/
LCD.setCursor (1, 0);
LCD.stampa(" ");
LCD.setcursor (1, 1);
LCD.Scrivi (6);


if ((millis ()-c)> = 1500 && pac == true) / * se il pulsante viene premuto di nuovo sposta il carattere nella prima riga */
c = millis ();
LCD.setcursor (1, 1);
LCD.Scrivi (6);
LCD.setCursor (1, 0);
LCD.stampa(" ");
pac = false;

if (((millis ()-d)> = 1000) && (i == 1)) /* se il nemico prende il suo primo round LCD senza alcuna collisione* /
d = millis ();
if (pac == true)
punti = punti+1;/* collisione viene rilevata quindi aggiungi uno nei punti*/
if (punti%5 == 0)
Ritardo = delay-decreasedElay;/* diminuire la velocità del nemico*/
Se (ritardo <= 200) //changed the speed of enemy to 200
DiminubedElay = 0; / * Non aumentare la velocità del nemico */



else / * quando la collisione si verifica cancella il gioco LCD e visualizza su */
LCD.chiaro();
LCD.setCursor (0, 0);
LCD.Stampa ("Game Over!");
LCD.setCursor (0, 1);
LCD.stampa ("ricomincia");
punti = 0;
i = 15;
Ritardo = 500; // Attiva di nuovo alla velocità di base
Stato2 = DigitalRead (pulsante);
while (State2 == High) /* Continua a leggere lo stato del pulsante quando lo stato è alto*/
Stato2 = DigitalRead (pulsante); /*se il pulsante premuto quindi riavvia il gioco*/

ritardo (500);


Abbiamo creato un semplice gioco che evita le collisioni con oggetti in arrivo e per questo abbiamo dichiarato per la prima volta i binari per il nemico e il personaggio. Inoltre, abbiamo definito la libreria per il display utilizzato con Arduino Uno.

Per spostare il nemico sul LCD abbiamo usato il loop che ne diminuirà uno nel suo valore ad ogni iterazione. Accanto a spostare la posizione del carattere, abbiamo usato il pulsante in modo tale che quando il pulsante viene premuto il carattere si sposta nella prima riga del LCD.

Per riportare il personaggio nel suo posto originale abbiamo usato la funzione Mills (). Abbiamo risparmiato il tempo in cui il personaggio è salito e poi abbiamo definito il tempo dopo il quale il personaggio tornerà nella sua posizione.

Quando il luogo del nemico e il personaggio ottengono lo stesso, il gioco si fermerà e ricomincerà quando il pulsante viene premuto.

Come creare hardware per creare un gioco usando Arduino e LCD

L'immagine seguente è l'implementazione hardware in base al gruppo hardware sopra descritto:

L'immagine sopra è il menu principale del gioco, premendo il pulsante inizierà il gioco:

Premendo il pulsante farà saltare il personaggio per evitare i nemici e quando si scontrano con il nemico verrà visualizzato il seguente menu:

Per illustrare come funzionerà il gioco, abbiamo dato la GIF animata di seguito:

Conclusione

La piattaforma Arduino può essere utilizzata per creare una varietà di progetti che possono essere di grande aiuto per i principianti per conoscere i circuiti. Abbiamo creato un gioco in cui il giocatore deve evitare gli oggetti in arrivo. Per spostare il giocatore, abbiamo usato il pulsante e calcolato anche i punti pari al numero di ostacoli evitati. Abbiamo anche fornito il codice Arduino per creare il gioco e data la dimostrazione hardware.