Sisukord:
Video: Kosmosevõistlusmängu versioon 2: 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Hei kõik. Enne selle mängu versiooni avaldasin mängu esimese versiooni. Täna näitan teile Space Race Game versiooni 2. Vaatame samme …
1. samm: OSAD
Siin on nimekiri osadest, mida ma selle projekti tegemisel kasutasin:
- Arduino UNO
- Joystick moodul
- Jumper juhtmed (meestele ja isastele naistele)
- Leivalaud
2. samm: Skeem
VCC -> Arduino 5V
BL -> Arduino tihvt 3
GND -> Arduino GND
CLK (SCLK) -> Arduino tihvt 8
DIN (MOSI) -> Arduino tihvt 9
DC -> Arduino tihvt 10
CE või CS -> Arduino tihvt 12
RST (RESET) -> Arduino pin 11
3. samm: KOODI
Koodil on koodifunktsioonide selgitused. Saate sellest hõlpsalt aru. Kui teil on probleeme, võite minuga ühendust võtta.
#kaasake
LCD5110 LCD (8, 9, 10, 11, 12); // (clk, cin, dc,, rst, ce)
boolean kontrol = tõene;
boolean dusmanoldu = tõene;
extern uint8_t SmallFont ; // kirjeldada fonte
extern uint8_t Keskmised numbrid ; väline uint8_t arac ; // kirjelda meie kuju extern uint8_t dusmanAraci ; // desribe vaenlase kuju const int xpin = A0; // juhtkang x tihvt char pozisyon = 3; // kirjeldada asukohta, meie kuju alguskoht 3 int BL = 3; int skor = 0; int hiz = 0; int dusmankonum1; // vaenlase kirjeldamine1 x asukoht int dusmankonum2; // vaenlase kirjeldamine2 x asukoht int dusmankonum3; // vaenlase kirjeldamine3 x asukoht int dusmankonum4; // vaenlase kirjeldamine4 x asukoht int dusmankonum5; // kirjeldage vaenlast5 x asukoht int dusmaninYdekonumu;
void oyunEkrani () {// määrake mänguekraan
lcd.clrScr (); lcd.drawRect (0, 0, 47, 47); // joonistame ristküliku lcd.setFont (SmallFont); // määrake font lcd.print ("skor", 57, 1); // print skoor lcd.print ("hiz", 60, 24); // printimiskiirus lcd.setFont (MediumNumbers); // määrake font lcd.printNumI (skor, 55, 8); // saada skoor lcd.printNumI (hiz, 63, 32); // hangi kiirus lcd.update (); }
void dusmanAracidurum (int yer, int asama) {// määrake vaenlase kuju asukohad
if (yer == 1) {lcd.drawBitmap (2, asama, dusmanAraci, 7, 7); lcd.update ();} // kui asukoht = 1 joonistab vaenlase selle asukoha, kui (yer == 2) {lcd.drawBitmap (10, asama, dusmanAraci, 7, 7); lcd.update ();} if (yer == 3) {lcd.drawBitmap (18, asama, dusmanAraci, 7, 7); lcd.update (); } if (yer == 4) {lcd.drawBitmap (26, asama, dusmanAraci, 7, 7); lcd.update ();} if (yer == 5) {lcd.drawBitmap (34, asama, dusmanAraci, 7, 7); lcd.update ();} if (yer == 6) {lcd.drawBitmap (42, asama, dusmanAraci, 7, 7); lcd.update ();}}
void oyunbitti () {// kui ebaõnnestume, on mäng läbi
samas (1) {viivitus (100); // oota 1 millisekund lcd.clrScr (); lcd.setFont (SmallFont); lcd.print ("OYUN BITTI", CENTER, 8); // prindi mäng üle lcd.print ("skorunuz =", 3, 30); // prindi oma skoor lcd.setFont (MediumNumbers); lcd.printNumI (skor, 60, 25); // saada viimane skoor lcd.update (); }}
tühine seadistus () {
pinMode (BL, VÄLJUND); // tagantvalgustus Väljund pinMode (xpin, INPUT); // määrake x pin sisendiks lcd. InitLCD (); // initsialiseeri LCD -ekraan lcd.setContrast (55); // määrake kontrastsus (palju 0 kuni 127) Serial.begin (9600); // seeriaühenduse alustamine}
void loop () {
analogWrite (BL, 350); oyunEkrani ();
// joyistic durumu … // määrake joyisticki asukoht …
int durumx = analogRead (xpin); if (durumx <300 && pozisyon! = 1 && kontrol == true) {// kui asukoht! = 1, x olek600 && pozisyon! = 6 && kontrol == tõene) {// kui asukoht! = 3, x olek> 600 ja juhtimine on tõsi pozisyon ++; // asukoha suurendamine tähendab kuju teisaldamist paremale kontrol = false; } else if (durumx> 300 && durumx <600) {kontrol = true; } // pozisyon durumu… // positsiooni olek… if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 41, arac, 7, 7); lcd.update ();} // joonistage meie laev, kui (pozisyon == 2) {lcd.drawBitmap (10, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 3) {lcd.drawBitmap (18, 41, arac, 7, 7); lcd.update ();}} kui (pozisyon == 4) {lcd.drawBitmap (26, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 5) {lcd.drawBitmap (34, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 6) {lcd.drawBitmap (42, 41, arac, 7, 7); lcd.update ();}
if (dusmanoldu) {// kui vaenlase kuju on surnud, kontrollige, kas nad on surnud
dusmankonum1 = pozisyon; // esimese vaenlase kuju joonistamine dusmankonum2 = juhuslik (0, 6); // teise vaenlase kuju joonistamine kuskile dusmankonum3 = juhuslik (0, 6); dusmankonum4 = juhuslik (0, 6); dusmankonum5 = juhuslik (0, 6); dusmaninYdekonumu = 0; // tuua vaenlane ülevalt dusmanoldu = false;} // vaenlane luuakse uuesti, et nad poleks surnud
dusmanAracidurum (dusmankonum1, dusmaninYdekonumu); dusmaninYdekonumu ++; // joonista esimene vaenlase kuju ja saada see ülevalt alla
dusmanAracidurum (dusmankonum2, dusmaninYdekonumu); dusmaninYdekonumu ++; // joonista teine vaenlase kuju ja saada see ülalt alla dusmanAracidurum (dusmankonum3, dusmaninYdekonumu); dusmaninYdekonumu ++; dusmanAracidurum (dusmankonum4, dusmaninYdekonumu); dusmaninYdekonumu ++; if (dusmaninYdekonumu> 35 && ((dusmankonum1 == pozisyon) || (dusmankonum2 == pozisyon) || (dusmankonum3 == pozisyon) || (dusmankonum4 == pozisyon)))) {// kui meie kuju puudutab vaenlase kuju oyunbitti (); //mäng on läbi }
if (dusmaninYdekonumu> 42) {// kui meie kuju pääseb vaenlaste eest
dusmanoldu = tõsi; // tappa vaenlase kujundeid skor ++; // suurendage skoori ükshaaval}
// skora gore hizi artiriyoruz // suurendage kiirust vastavalt skoorile
kui (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6; viivitus (5); }
}
4. samm: KOODI BITMAP
Lisaks peate vormide jaoks lisama bitikaardi graafika. See peab olema.c -fail.
#include // include programmi funktsiooni jaoks
const unsigned char arac PROGMEM = {// meie kuju bitikaart
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
const unsigned char dusmanAraci PROGMEM = {// vaenlase laeva bitikaart
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
Samm: täname vaatamise eest
Mõne sõna tähendus:
Oyun => Mäng
Arac => kuju
Dusman => Vaenlane
kontroll => kontroll
Konum, Yer => Asukoht
Oyun Bitti => Mäng läbi
Skor => Skoor
Hiz => kiirus
Soovitan:
E-dohicky Russ'i laservõimsusmõõturi elektrooniline versioon Dohicky: 28 sammu (koos piltidega)
E-dohicky Russ'i laservõimsusmõõturi elektrooniline versioon Dohicky: Laser-elektritööriist. E-dohicky on Russ SADLERi dohicky elektrooniline versioon. Russ animeerib väga head SarbarMultimedia youtube'i kanalit https://www.youtube.com/watch?v=A-3HdVLc7nI&t=281sRuss SADLER esitab lihtsa ja odava lisaseadme
ThreadBoard (mitte-3D-prinditud versioon): E-Textile Rapid Prototyping Board: 4 sammu (koos piltidega)
ThreadBoard (mitte-3D-trükitud versioon): E-Textile Rapid Prototyping Board: ThreadBoard V2 3D-trükitud versiooni juhend on leitav siit. ThreadBoardi 1. versiooni leiate siit. Läbi kulude, reisimine, pandeemiad ja muud takistused, ei pruugi teil olla juurdepääsu 3D -printerile, kuid soovite
Lihtsa roboti valmistamine asjadest, mida leiate oma majast (kiirratta versioon): 5 sammu
Lihtsa roboti valmistamine asjadest, mida leiate oma majast (kiirratta versioon): see juhend annab teile teada, kuidas teha kiirratast, mis töötab iseenesest ja töötab kahekordse A-patareiga. Peate kasutama ainult asju, mida oma kodust tõenäoliselt leiate. Pange tähele, et see robot ei lähe tõenäoliselt täpselt otse
Arduino voltmõõtur (0–100 V alalisvool) - versioon 2 (parem): 3 sammu
Arduino voltmõõtur (0–100 V alalisvool)-versioon 2 (parem): selles juhendis olen ehitanud voltmeetri, mis mõõdab kõrgepinget (0–100 V) suhteliselt täpselt ja täpselt, kasutades Arduino Nano ja ADS 1115 ADC . See on voltmeetri teine versioon, mida kasutasin minu eelmisel juhendil siin: https: // ww
7 Segmendi kella versioon 2: 4 sammu
7 Segmendikell Versioon 2: Tere! Pärast Instructables'i kasutaja taotlust 12-tunnise vormingu kättesaadavuse kohta kasutasin ära algse projekti oluliste muudatuste tegemise. Versiooni 1 kasutamise ajal tundsin vajadust teha eraldiseisev versioon, nii et tegin selle võimalikuks