Inhoudsopgave:
Video: Arduino Space Race Game Versie _1: 5 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
Hallo vrienden. Vandaag ga ik je laten zien hoe je een Space Race Game kunt maken met het LCD5110-scherm en de joystic. Laten we eens kijken naar de stappen …
Stap 1: BEHOEFTEN
Hier is een lijst met onderdelen die ik heb gebruikt om dit project te maken:
- Arduino UNO
- Joystick-module
- Jumperdraden (man naar man en man naar vrouw)
- Breadboard
Stap 2: SCHEMA
VCC -> Arduino 5V
BL -> Arduino-pin 3
GND -> Arduino GND
CLK (SCLK) -> Arduino-pin 8
DIN (MOSI) -> Arduino pin 9
DC -> Arduino-pin 10
CE of CS -> Arduino pin 12
RST (RESET) -> Arduino-pin 11
Stap 3: CODE
De code heeft uitleg over codefuncties. Je zult het snel begrijpen. Als u een probleem heeft, kunt u contact met mij opnemen.
#erbij betrekken
LCD5110 lcd (8, 9, 10, 11, 12); //(clk, din, dc, eerste, ce)
int BL=3;
extern uint8_t SmallFont; //beschrijf de lettertypen extern uint8_t MediumNumbers; extern uint8_t arac; // beschrijf onze vorm extern uint8_t dusman_araci ; // beschrijf vijandelijke vorm const int xpin = A0; //joystick x pin char pozisyon=2; // beschrijf de locatie, onze vorm start locatie 2 boolean kontrol = true; boolean dusmanOldu = waar; int skor=0; int hiz=0; int dusmanKonumu1; // beschrijf vijand1 x locatie int dusmanKonumu2; // beschrijf vijand 2 x locatie int dusmaninYdeKonumu; // beschrijf vijanden en locatie
void dusmanAraci (int yer, int asama) { // stel locaties in voor vijandige vormen
if (yer==1){ //if locatie=1; lcd.drawBitmap(2, asama, dusman_araci, 12, 8); // teken vijandelijke vorm } if (yer==2){ lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } if (yer==3){ lcd.drawBitmap(34, asama, dusman_araci, 12, 8); }}
void oyunBitti() { // als we falen, is het spel voorbij
while(1) { vertraging(100); // wacht 1 milliseconde lcd.clrScr (); // wis het scherm lcd.setFont (SmallFont); //set lettertype lcd.print ("GAME OVER", CENTER, 20); // print lcd.update(); // werk het scherm bij }}
void setup () { pinMode (BL, OUTPUT); // stel achtergrondverlichting in Uitgang lcd. InitLCD (); //initialiseer het lcd-scherm lcd.setContrast(55); // stel contrast in (ongeveer 0 tot 127) Serial.begin (9600); //start seriële communicatie}
lege lus() {
analoogWrite(BL, 200);
//set spelscherm lcd.drawRect (0, 0, 47, 47); // we tekenen rechthoek lcd.setFont (SmallFont); //set lettertype lcd.print ("skor", 53, 0); //printf score lcd.setFont(MediumNumbers); //set lettertype lcd.printNumI (skor, 59, 7); //score lcd.setFont (SmallFont); lcd.print("hiz", 56, 25); // afdruksnelheid lcd.setFont (gemiddelde nummers); lcd.printNumI(hiz, 59, 32); // haal snelheid lcd.update(); //update
// stel de joyistick-locatie in int x=analogRead (xpin); if(x<300 && pozisyon!=1 && kontrol==true){ //if location!=1, x state600 && pozisyon!=3 && kontrol==true){ //if location!=3, x state> 600 en controle is waar pozisyon++; // verhoog de locatie die het betekent verplaats de vorm naar rechts kontrol=false; } else if(x>300 && x<600){ kontrol=true; } Serieel.println(x); // voor het leren van x staat // stel de onze vormlocatie lcd.clrScr (); // wis het scherm if (pozisyon==1){ //if location=1; lcd.drawBitmap (2, 37, arac, 12, 8);} // teken ons schip if (pozisyon==2) { lcd.drawBitmap (18, 37, arac, 12, 8);}
if (pozisyon==3){
lcd.drawBitmap(34, 37, arac, 12, 8);}
if (dusmanOldu) { // als de vorm van de vijand dood is, controleer of ze dood zijn
dusmanKonumu1 = pozisyon; // teken eerste vijandelijke vorm dusmanKonumu2 = willekeurig (0, 4); // teken ergens een andere vijandelijke vorm dusmaninYdeKonumu = 0; // breng vijand van boven dusmanOldu = false;} // vijand wordt opnieuw gemaakt zodat ze niet dood zijn dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu++; // teken de eerste vijandelijke vorm en haal deze van boven naar beneden dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu++; // teken de tweede vijandelijke vorm en haal deze van boven naar beneden if (dusmaninYdeKonumu>22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon))) { //als onze vorm vijandige vormen raakt oyunBitti();} //het spel is afgelopen als (dusmaninYdeKonumu>40){ //als onze vorm ontsnapt aan vijanden dusmanOldu = true; //dood vijandelijke vormen skor++;} //verhoog de score één voor één //verhoog de snelheid volgens de score if (skor>=0 && skor10 && skor20 && skor30 && skor<=40){ hiz = 3; vertraging (40); } }
Stap 4: CODE BITMAP
Verder moet u een bitmapafbeelding voor vormen opnemen. Het moet een.c-bestand zijn en dezelfde naam met codenaam. Het moet ook in hetzelfde bestand staan.
//------------------------------------------------ -----------------------------// Bestand gegenereerd door LCD-assistent // https://en.radzio.dxp.pl /bitmap_converter/ //--------------------------------------------- --------------------------------- #include //include voor programmafunctie
const unsigned char arac PROGMEM = { //our shape bitmap
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };
const unsigned char dusman_araci PROGMEM = { // vijandelijke schip bitmap
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };
Stap 5: BEDANKT VOOR HET BEKIJKEN
Voordat ı mijn projecten begon te delen, gecodeerd in Turkse woorden, zodat ik niet alle woorden naar het Engels kon veranderen. Hier de woordenvertaling die ı dit project gebruikt, Oyun = Spel
Arac = Vorm
Dusman = vijand
controle = controle
Konum, Yer = Locatie
Oyun Bitti = Game Over
Skor = Score
Hiz = Snelheid
Aanbevolen:
Arduino Voltmeter (0-100V DC) - Versie 2 (beter): 3 stappen
Arduino Volt Meter (0-100V DC) - Versie 2 (beter): In deze instructable heb ik een voltmeter gebouwd om hoge spanningen DC (0-100v) te meten met relatieve precisie en nauwkeurigheid met behulp van een Arduino Nano en een ADS 1115 ADC .Dit is een tweede versie van de voltmeter die mijn vorige instructable hier gebruikte: https://ww
ARDUINO SOLAR CHARGE CONTROLLER (versie 2.0): 26 stappen (met afbeeldingen)
ARDUINO SOLAR CHARGE CONTROLLER (versie 2.0): [Video afspelen] Een jaar geleden begon ik met het bouwen van mijn eigen zonnestelsel om mijn dorpshuis van stroom te voorzien. Aanvankelijk maakte ik een op LM317 gebaseerde laadregelaar en een energiemeter voor het bewaken van het systeem. Ten slotte heb ik een PWM-laadcontroller gemaakt. In april
Space Race Game versie 2: 5 stappen
Space Race Game Versie 2: Hallo allemaal. Vóór deze spelversie publiceerde ı de eerste versie van het spel. Vandaag laat ı je Space Race Game versie 2 zien. Laten we eens kijken naar de stappen
ARDUINO SOLAR CHARGE CONTROLLER (Versie-1): 11 stappen (met afbeeldingen)
ARDUINO SOLAR CHARGE CONTROLLER (versie-1): [Video afspelen] In mijn vorige instructables beschreef ik de details van energiemonitoring van een off-grid zonnestelsel. Ik heb daarvoor ook de 123D-circuitscompetitie gewonnen. Je kunt deze ARDUINO ENERGY METER zien .Eindelijk post ik mijn nieuwe versie-3 lading
Space Race: eenvoudig Arduino Clicker-spel om met de kinderen te maken - Ajarnpa
Space Race: eenvoudig Arduino Clicker-spel om met de kinderen te maken: ¡ Ik upload een video die laat zien hoe het vandaag werkt! Blijf op de hoogteLaten we plezier hebben met een instructiefilm met ruimtethema die samen met kinderen kan worden gemaakt, en later alleen door hen als speelgoed kan worden genoten.Je kunt het gebruiken als een middel om hen geschiedenis te leren over co