Taula de continguts:
- Pas 1: NECESSITATS
- Pas 2: ESQUEMA
- Pas 3: CODI
- Pas 4: CODI BITMAP
- Pas 5: GRÀCIES PER LA VISUALITZACIÓ
Vídeo: Arduino Space Race Game Versió _1: 5 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
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
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
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Ó
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:
Arduino Volt Meter (0-100V DC) - Versió 2 (millor): 3 passos
Arduino Volt Meter (0-100V DC) - Versió 2 (millor): en aquesta instrucció, he construït un voltímetre per mesurar tensions altes DC (0-100v) amb una precisió i precisió relativa mitjançant un Arduino Nano i un ADS 1115 ADC .Aquesta és una segona versió del voltímetre que he utilitzat aquí: https: // ww
CONTROLADOR DE CÀRREGA SOLAR ARDUINO (versió 2.0): 26 passos (amb imatges)
CONTROLADOR DE CÀRREGA SOLAR ARDUINO (versió 2.0): [Reprodueix el vídeo] Fa un any que vaig començar a construir el meu propi sistema solar per proporcionar energia a la casa del meu poble. Inicialment, vaig fer un controlador de càrrega basat en LM317 i un comptador d’energia per supervisar el sistema. Finalment, vaig fer un controlador de càrrega PWM. A Apri
Space Race Game Versió 2: 5 passos
Joc de curses espacials versió 2: Ei a tothom. Abans d'aquesta versió del joc, publicava la primera versió del joc. Avui us mostraré la versió 2. Space Race Game. Vegem els passos
CONTROLADOR DE CÀRREGA SOLAR ARDUINO (versió-1): 11 passos (amb imatges)
CONTROLADOR DE CÀRREGA SOLAR ARDUINO (versió-1): [Reprodueix vídeo] En els meus instructables anteriors vaig descriure els detalls sobre la supervisió de l'energia d'un sistema solar fora de xarxa. També he guanyat la competició de circuits 123D per a això. .Finalment publico la meva nova versió 3 de càrrega
Robot per evitar obstacles Arduino (versió d'actualització): 7 passos (amb imatges)
Robot per evitar obstacles Arduino (versió d'actualització): aquesta publicació es publica per primera vegada en aquest lloc web https://truescience22.blogspot.com/2018/01/arduino-obstacle-avoiding-robotupgrade.html Hola amics, avui he fet una versió d'actualització d'Arduino Robot per evitar obstacles. Això és senzill, però algunes característiques i