Faire un jeu en utilisant Arduino Uno et Top 10 × 2 LCD

Faire un jeu en utilisant Arduino Uno et Top 10 × 2 LCD
Pour créer différents projets et pour en savoir plus sur les circuits, la plate-forme Arduino est l'option viable pour les débutants car il offre une large gamme d'options matérielles et logicielles à ses utilisateurs. Pour les logiciels, principalement Arduino IDE est utilisé et pour le matériel, principalement, l'Arduino Uno est utilisé. En utilisant l'Arduino Uno et le Arduino IDE, nous avons créé un jeu appelé Ardi Pac dans lequel nous avons créé un personnage qui esquive son ennemi lorsque nous appuyons sur un bouton-poussoir.

Comment créer un jeu sur Arduino Uno en utilisant LCD

Pour créer un jeu, nous devons créer un circuit que nous implémenterons sur le matériel et avant cela, nous devons présélectionner les composants nécessaires qui sont nécessaires pour concevoir le circuit:

  • Planche à pain
  • 1 16x2liquid Crystal Affichage
  • Fils de connexion
  • 1 bouton-poussoir
  • 1 potentiomètre
  • Arduino Uno

La figure ci-dessous montre le schéma du circuit conçu pour créer un jeu en utilisant Arduino Uno:

Comment assembler le matériel pour créer le jeu à l'aide d'Arduino Uno

Pour faciliter l'assemblage du matériel, nous avons donné l'image ci-dessous qui montre comment nous pouvons connecter les composants nécessaires pour créer le jeu Arduino:

Nous avons connecté les broches de données LCD à Arduino Uno en utilisant sa broche 5,4,3,2 avec les fils violets et pour le réglage de la luminosité de l'écran LCD, nous avons connecté le potentiomètre. Le fil jaune relie la sortie du potentiomètre avec le LCD. Pour jouer au jeu, nous avons utilisé le bouton-poussoir qui modifiera la position du personnage en connectant sa broche en utilisant du fil de couleur cyan pour brocher 8 d'Arduino et la mise à la terre de l'autre broche.

Pour connecter l'écran LCD, le potentiomètre et le bouton-poussoir avec l'alimentation, nous avons pris l'alimentation d'Arduino Uno à l'aide des épingles de planche à pain.

Comment écrire le code Arduino pour créer un jeu à l'aide d'Arduino Uno

Nous avons fourni ci-dessous le code Arduino pour faire un jeu d'évitement des obstacles en utilisant Arduino Uno:

#include / * décarling LCD la bibliothèque * /
LCD LiquidCrystal (12, 11, 5, 4, 3, 2); / * attribuer les épingles d'Arduino à l'écran LCD * /
INT Button = 8; / * Attribution de la broche Arduino pour le bouton-poussoir * /
/ * Variables pour stocker le temps pour déplacer l'ennemi et le caractère * /
non signé long a;
Long non signé B;
Long non signé C;
Long non signé D;
INT DELAGE = 500; / * Définition de la vitesse de l'ennemi * /
int a diminué deLay = 20; / * pour diminuer la vitesse de l'ennemi * /
int state2 = 0; / * variable qui stockera la valeur du bouton poussoir lorsqu'elle appuyé sur le début du jeu * /
int state1 = 0; / * variable pour stocker la valeur du bouton appuyé pour déplacer le lieu de caractère * /
BOOL PAC = 0; / * Variable qui sauvera la valeur du caractère pour détecter la collision avec l'ennemi * /
int i; / * variable qui est utilisée pour déplacer l'ennemi sur l'écran LCD * /
INT POINTS = 0; / * Variable pour stocker les points atteints le joueur * /
/ * déclarant les binaires pour l'ennemi et le caractère * /
Byte ennemi [8] =
B00000,
B00100,
B01110,
B11111,
B10101,
B11111,
B11111,
B10101
;
octet Pac1 [8] =
B00000,
B01110,
B11011,
B11110,
B11100,
B11110,
B11111,
B01110
;
octet Pac2 [8] =
B00000,
B01110,
B11011,
B11111,
B11111,
B11111,
B11111,
B01110
;
void setup()
pinmode (bouton, input_pullup); // attribue le mode de travail au bouton poussoir * /
LCD.begin (16, 2); / * déclarant la taille de l'affichage * /
LCD.createchar (7, ennemi); // déclarant l'ennemi comme un personnage
LCD.CreateChar (6, Pac1); // déclarant le Pac1 comme un personnage
LCD.CreateChar (5, Pac2); // déclarant le Pac2 comme un personnage
i = 15; / * définissant le nombre de colonnes pour l'ennemi * /
/ * Économie de l'heure dans les variables de temps déclaré ci-dessus * /
a = millis ();
b = millis ();
c = millis ();
D = Millis ();
State1 = DigitalRead (bouton); / * Lire l'état du bouton appuyé pour la première fois * / /
while (state1 == high) / * si le bouton n'est pas enfoncé * /
/ * Affichage de l'animation du jeu et des personnages * /
LCD.setCursor (3, 0);
LCD.print ("ardi-pac");
LCD.setCursor (3, 1);
LCD.print ("Appuyez sur Start");
LCD.setCursor (13, 0);
LCD.écrire (6);
retard (300);
LCD.setCursor (13, 0);
LCD.écrire (5);
retard (300);
State1 = DigitalRead (bouton); / * Lisez à nouveau l'état du bouton-poussoir * /
if (state1 == Low) / * si appuyé, passez à la section de boucle * /
casser;


retard (500);

VOID LOOP ()
State2 = DigitalRead (bouton); / * Vérifiez l'état du bouton * /
if ((Millis () - a)> = retard) / * Démarrez le mouvement de l'ennemi sur l'écran LCD * /
a = millis ();
LCD.clair();
LCD.setCursor (i, 1);
LCD.écrire (7);
i = i-1;
if (i == -1) / * condition pour déplacer l'ennemi sur l'écran LCD à partir de 15 et aller à zéro * /
i = 15;

LCD.setCursor (6, 0);
LCD.print ("Points:");
LCD.imprimer (points); / * affichant les points obtenus par le joueur * /

if ((Millis () - b)> = 50)
b = millis ();
if (state2 == low && pac == false) / * affichant le caractère sur l'écran LCD en lisant l'état du bouton * /
LCD.setCursor (1, 0); / * plaçant le caractère sur la première colonne et la première ligne lorsque le bouton est appuyé sur * /
LCD.écrire (6);
pac = true; / * Mise à jour qu'aucune collision avec ennemi * /
b = millis (); / * sauvegarder l'heure * /

else if (pac == true) / * si aucune collision, placez-la au même endroit * /
LCD.setCursor (1, 0);
LCD.écrire (6);

else if (pac == false) / * déplacer le caractère à la première colonne de la deuxième ligne sur LCD * /
LCD.setCursor (1, 0);
LCD.imprimer(" ");
LCD.setCursor (1, 1);
LCD.écrire (6);


if ((milis () - c)> = 1500 && pac == true) / * si le bouton est appuyé à nouveau, déplacez le caractère vers la première ligne * /
c = millis ();
LCD.setCursor (1, 1);
LCD.écrire (6);
LCD.setCursor (1, 0);
LCD.imprimer(" ");
pac = false;

if (((Millis () - d)> = 1000) && (i == 1)) / * Si l'ennemi prend son écran LCD au premier tour sans aucune collision * /
D = Millis ();
if (pac == true)
Points = points + 1; / * La collision est détectée puis en ajouter une dans les points * /
if (points% 5 == 0)
Delay = délai-décroisé; / * diminuer la vitesse de l'ennemi * /
si (retarder <= 200) //changed the speed of enemy to 200
DiminuéDelay = 0; / * n'augmentez pas la vitesse de l'ennemi * /



else / * Lorsque la collision se produit, effacez l'écran LCD et affichez le jeu sur * /
LCD.clair();
LCD.setCursor (0, 0);
LCD.Imprimer ("jeu sur!");
LCD.setCursor (0, 1);
LCD.print ("Démarrer");
points = 0;
i = 15;
Retard = 500; // repousse à la vitesse de base
State2 = DigitalRead (bouton);
tandis que (state2 == high) / * continue de lire l'état du bouton lorsque l'état est élevé * /
State2 = DigitalRead (bouton); / * Si le bouton appuyé, recommencez le jeu * /

retard (500);


Nous avons créé un jeu simple qui évite les collisions avec des objets entrants et pour cela, nous avons d'abord déclaré les binaires pour l'ennemi et le personnage. De plus, nous avons défini la bibliothèque de l'écran utilisé avec Arduino Uno.

Pour déplacer l'ennemi sur l'écran LCD, nous avons utilisé la boucle pour une boucle qui diminuera une dans sa valeur à chaque itération. Ensuite, pour déplacer la position du caractère, nous avons utilisé le bouton-poussoir de telle manière que lorsque le bouton est enfoncé, le caractère se déplace vers la première ligne de l'écran LCD.

Pour ramener le personnage à son endroit d'origine, nous avons utilisé la fonction Mills (). Nous avons économisé le temps où le personnage a augmenté, puis nous avons défini le moment où le personnage reviendra à sa position.

Lorsque la place de l'ennemi et le personnage obtiennent la même chose, le jeu s'arrêtera et recommencera lorsque le bouton sera appuyé.

Comment créer du matériel pour faire un jeu en utilisant Arduino et LCD

L'image ci-dessous est l'implémentation matérielle en fonction de l'assemblage matériel décrit ci-dessus:

L'image ci-dessus est le menu principal du jeu, en appuyant sur le bouton-poussoir commencera le jeu:

Appuyer sur le bouton fera sauter le personnage pour éviter les ennemis et en collision avec l'ennemi, le menu suivant s'affiche:

Pour illustrer le fonctionnement du jeu, nous avons donné le GIF animé ci-dessous:

Conclusion

La plate-forme Arduino peut être utilisée pour créer une variété de projets qui peuvent être d'une grande aide pour les débutants pour en savoir plus sur les circuits. Nous avons créé un jeu dans lequel le joueur doit éviter les objets entrants. Pour déplacer le joueur, nous avons utilisé le bouton-poussoir et également calculé les points égaux au nombre d'obstacles évités. Nous avons également fourni le code Arduino pour créer le jeu ainsi que la démonstration matérielle.