Përmbajtje:
Video: Arduino Space Gara lojë Versioni _1: 5 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:17
Hej miq. Sot jam në ganna t'ju tregoj se si mund të bëni një Lojë Gara e Hapësirës me ekran LCD5110 dhe me gëzim. Le të shikojmë hapat…
Hapi 1: NEVOJAT
Këtu është një listë e pjesëve që kam përdorur për të bërë këtë projekt:
- Arduino UNO
- Moduli i xhojstikut
- Jumper Wires (mashkull për mashkull dhe mashkull për femër)
- Breadboard
Hapi 2: SKEMA
VCC -> Arduino 5V
BL -> pin Arduino 3
GND -> Arduino GND
CLK (SCLK) -> Arduino pin 8
DIN (MOSI) -> Arduino pin 9
DC -> pin Arduino 10
CE ose CS -> Arduino pin 12
RST (RESET) -> Arduino pin 11
Hapi 3: KODI
Kodi ka shpjegime të funksioneve të kodit. Do ta kuptoni lehtësisht. Nëse keni ndonjë problem, mund të më kontaktoni.
#përfshi
LCD5110 LCD (8, 9, 10, 11, 12); // (clk, din, dc, rst, ce)
int BL = 3;
jashtme uint8_t SmallFont ; // përshkruani shkronjat e jashtme uint8_t MediumNumbers ; jashtme uint8_t arac ; // përshkruani formën tonë të jashtme uint8_t dusman_araci ; // përshkruaj formën e armikut const int xpin = A0; // levë x pin poz pozitë = 2; // përshkruani vendndodhjen, vendi ynë i fillimit të formës 2 kontrolli boolean = i vërtetë; boolean dusmanOldu = e vërtetë; int skor = 0; int hiz = 0; int dusmanKonumu1; // përshkruani armikun1 x vendndodhjen int dusmanKonumu2; // përshkruani armikun2 x vendndodhjen int dusmaninYdeKonumu; // përshkruani vendndodhjen e armiqve
void dusmanAraci (int yer, int asama) {// vendosni vende për format e armikut
nëse (yer == 1) {// nëse vendndodhja = 1; lcd.drawBitmap (2, asama, dusman_araci, 12, 8); // vizatoni formën e armikut} nëse (yer == 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } if (yer == 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}
void oyunBitti () {// nëse dështojmë, loja mbaron
ndërsa (1) {vonesë (100); // prisni 1 milisekonda lcd.clrScr (); // pastroni ekranin lcd.setFont (SmallFont); // vendos fontin lcd.print ("GAME OVER", CENTER, 20); // print lcd.update (); // përditëso ekranin}}
void setup () {pinMode (BL, OUTPUT); // kthejeni dritën Output lcd. InitLCD (); // filtroni ekranin LCD lcd.setContrast (55); // vendos kontrast (nga 0 në 127) Serial.fillo (9600); // fillo komunikimin serik}
lak void () {
analogWrite (BL, 200);
// vendosni ekranin e lojës lcd.drawRect (0, 0, 47, 47); // vizatojmë drejtkëndësh lcd.setFont (SmallFont); // vendos fontin lcd.print ("skor", 53, 0); // printf score lcd.setFont (Numrat e mesëm); // vendos fontin lcd.printNumI (skor, 59, 7); // merrni rezultatin lcd.setFont (SmallFont); lcd.print ("hiz", 56, 25); // shpejtësia e printimit lcd.setFont (Numrat e mesëm); lcd.printNumI (hiz, 59, 32); // merrni shpejtësinë lcd.update (); // përditësim
// vendosni vendndodhjen e joyistick int x = analogRead (xpin); nëse (x <300 && pozisyon! = 1 && kontrol == vërtetë) {// nëse vendndodhja! = 1, x gjendja 600 && pozisyon! = 3 && kontrol == e vërtetë) {// nëse vendndodhja! = 3, x gjendje> 600 dhe kontrolli është pozisyon i vërtetë ++; // rrisni vendndodhjen do të thotë të lëvizni formën në të djathtë kontrol = false; } tjetër nëse (x> 300 && x <600) {kontrol = true; } Serial.println (x); // për të mësuar gjendjen x // vendosni vendndodhjen e formës sonë lcd.clrScr (); // pastroni ekranin nëse (pozisyon == 1) {// nëse vendndodhja = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // vizatoni anijen tonë nëse (pozisyon == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}
nëse (pozizion == 3) {
lcd.drawBitmap (34, 37, arac, 12, 8);}
nëse (dusmanOldu) {// nëse forma e armikut ka vdekur, kontrolloni nëse janë të vdekur
dusmanKonumu1 = pozitë; // vizatoni formën e parë të armikut dusmanKonumu2 = e rastësishme (0, 4); // vizatoni një formë tjetër të armikut diku dusmaninYdeKonumu = 0; // sill armikun nga maja dusmanOldu = false;} // armiku rikrijohet që të mos jenë të vdekur dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // vizatoni formën e parë të armikut dhe merrni atë nga lart poshtë dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // vizatoni formën e dytë të armikut dhe merrni atë nga lart poshtë nëse (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == pozitë) || (dusmanKonumu2 == pozitë))) {// nëse forma jonë prek format e armikut oyunBitti ();} // loja ka mbaruar nëse (dusmaninYdeKonumu> 40) {// nëse forma jonë ikën nga armiqtë dusmanOldu = e vërtetë; // vrasin format e armikut skor ++;} // rrisin një nga një rezultatin // rrisin shpejtësinë sipas rezultatit nëse (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; vonesa (40); }}
Hapi 4: KODI BITMAP
Për më tepër, duhet të përfshini grafikë bitmap për format. Duhet të jetë një skedar.c dhe i njëjti emër me emrin e kodit. Gjithashtu, duhet të jetë në të njëjtin skedar.
// ---------------------------------------------------- ------------------------------ // Skedari i krijuar nga Asistenti LCD // https://en.radzio.dxp.pl /bitmap_converter/// ------------------------------------------------- --------------------------------- #Include // include për funksionin progmem
const unsigned char arac PROGMEM = {// bitmap -i i formës sonë
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
const char unsigned dusman_araci PROGMEM = {// bitmap anije armike
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
Hapi 5: FALEMINDERIT P FORR SHIKIM
Para se të filloja të ndaj projektet e mia, u kodova me fjalë turke, kështu që nuk do të kisha mundësi të jepja çdo fjalë në anglisht. Këtu fjalët e përkthimit që përdor këtë projekt, Oyun = Lojë
Arac = Formë
Dusman = Armik
kontrol = kontroll
Konum, Yer = Vendndodhja
Oyun Bitti = Loja ka mbaruar
Skor = Rezultati
Hiz = Shpejtësia
Recommended:
Fillimi në Gara FPV Drone: 11 hapa
Fillimi në Gara me FPV me Drone: FPV Drone Racing ka shumë lloje të ndryshme. Ekziston gara e brendshme e njohur si Tiny Whoop e cila përdor kuadrate që janë nën 50 gram, nuk janë më të mëdhenj se mbështetëset 50 mm, kanë kanale dhe pothuajse gjithmonë funksionojnë në 1s në ambiente të mbyllura. Pastaj është klasa më e madhe e cila
Riciklimi i CD -ve në Makina Gara: 8 hapa (me fotografi)
Riciklimi i CD -ve në Makina Gara: Përshëndetje të gjithëve. Kjo është makina jonë e garave automobilistike completelyshtë plotësisht falas dhe automatike Nëse jeni prindër, do të jetë shumë e përshtatshme të luani me fëmijët tuaj Duke e bërë atë shumë të thjeshtë, do të jetë shumë interesante unë do t’ju udhëzoj, le t’ia dalim
Mini lojë "Guess the Number" Lojë me mikro: bit: 10 hapa
Mini Makina e lojës "Guess the Number" me Micro: bit: A keni luajtur ndonjëherë " Guess the Number "? Kjo është një makinë lojërash shumë e thjeshtë për t’u ndërtuar që luan " Guess the Number " me ty Ne e projektuam këtë projekt DIY për të inkurajuar lojën fizike dhe për t'i ndihmuar fëmijët të mësojnë programim. Ai përdor një MU
Lojë Microbit Tic Tac Toe Lojë: 4 hapa (me fotografi)
Microbit Tic Tac Toe Lojë: Për këtë projekt, bashkëpunëtori im - @descartez dhe unë krijuam një lojë të mrekullueshme tic tac toe duke përdorur radio funksionalitetin e mikrobitëve. Nëse nuk keni dëgjuar më parë për mikrobit, ata janë një mikrokontrollues i mrekullueshëm i krijuar për t'u mësuar fëmijëve programimin. Ata
Futja e Muzikës në Gara e Gërvishtjes Lojë: 3 Hapa
Vendosja e muzikës në garat me gërvishtje: Ky mësim do t'ju tregojë hap pas hapi se si ta vendosni muzikën tuaj në lojën e garave BIY Scratch