Spisu treści:
Wideo: Arduino Space Race Wersja gry _1: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Cześć przyjaciele. Dzisiaj pokażę Ci, jak możesz zrobić grę w wyścigi w kosmos za pomocą ekranu LCD5110 i joystic. Spójrzmy na kroki…
Krok 1: POTRZEBY
Oto lista części, których użyłem do wykonania tego projektu:
- Arduino UNO
- Moduł joysticka
- Przewody połączeniowe (męski na męski i męski na żeński)
- Deska do krojenia chleba
Krok 2: SCHEMAT
VCC -> Arduino 5V
BL -> pin Arduino 3
GND -> GND Arduino
CLK (SCLK) -> pin Arduino 8
DIN (MOSI) -> pin Arduino 9
DC -> pin Arduino 10
CE lub CS -> pin Arduino 12
RST (RESET) -> pin Arduino 11
Krok 3: KOD
Kod zawiera objaśnienia funkcji kodu. Łatwo to zrozumiesz. Jeśli masz problem, możesz się ze mną skontaktować.
#włączać
LCD5110 LCD (8, 9, 10, 11, 12); //(clk, din, dc, rst, ce)
int BL=3;
extern uint8_t SmallFont; //opisz czcionki extern uint8_t MediumNumbers; extern uint8_t arac; //opisz nasz kształt extern uint8_t dusman_araci; //opisz kształt wroga const int xpin=A0; //joystick x pin char pozisyon=2; //opisz lokalizację, nasz kształt start location 2 boolean kontrol = true; boolean dusmanOldu = prawda; int skor=0; int hiz=0; int dusmanKonumu1; //opisz wroga1 x położenie int dusmanKonumu2; //opisz wroga2 x położenie int dusmaninYdeKonumu; //opisz wrogów i lokalizację
void dusmanAraci(int yer, int asama){ //ustaw lokalizacje dla wrogich kształtów
if (yer==1){ //jeśli lokalizacja=1; lcd.drawBitmap(2, asama, dusman_araci, 12, 8); //narysuj kształt wroga } if (yer==2){ lcd.drawBitmap(18, asama, dusman_araci, 12, 8); } if (yer==3){ lcd.drawBitmap(34, asama, dusman_araci, 12, 8); }}
void oyunBitti() { //jeśli nam się nie uda, gra się kończy
while(1) {opóźnienie(100); //czekaj 1 milisekundę lcd.clrScr(); //wyczyść ekran lcd.setFont(SmallFont); //ustaw czcionkę lcd.print("KONIEC GRY", CENTRUM, 20); //drukuj lcd.update(); //zaktualizuj ekran }}
void setup() { pinMode(BL, OUTPUT); //ustaw podświetlenie Output lcd. InitLCD(); //zainicjuj ekran lcd lcd.setContrast(55); //ustaw kontrast(od 0 do 127) Serial.begin(9600); //rozpocznij komunikację szeregową }
pusta pętla () {
analogZapis(BL, 200);
//ustaw ekran gry lcd.drawRect(0, 0, 47, 47); //rysujemy prostokąt lcd.setFont(SmallFont); //ustaw czcionkę lcd.print("skor", 53, 0); //printf score lcd.setFont(MediumNumbers); //ustaw czcionkę lcd.printNumI(skor, 59, 7); //pobierz wynik lcd.setFont(SmallFont); lcd.print("hiz", 56, 25); //szybkość drukowania lcd.setFont(MediumNumbers); lcd.printNumI(hiz, 59, 32); //pobierz prędkość lcd.update(); //aktualizacja
//ustaw położenie joysticka 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 i kontrola to prawdziwa pozyzja++; //zwiększenie położenia to znaczy przesunięcie kształtu w prawo kontrol=false; } else if(x>300 && x<600){ kontrol=true; } Serial.println(x); //do nauki stanu x //ustaw lokalizację naszego kształtu lcd.clrScr(); //wyczyść ekran if (pozisyon==1){ //if location=1; lcd.drawBitmap(2, 37, arac, 12, 8);} //narysuj nasz statek if (pozisyon==2){ lcd.drawBitmap(18, 37, arac, 12, 8);}
jeśli (pozycja==3){
lcd.drawBitmap(34, 37, arac, 12, 8);}
if (dusmanOldu){ //jeśli wrogi kształt jest martwy, sprawdź, czy nie żyje
dusmanKonumu1 = pozycja; //narysuj pierwszy kształt wroga dusmanKonumu2 = random(0, 4); //narysuj gdzieś inny kształt wroga dusmaninYdeKonumu = 0; //przynieś wroga z góry dusmanOldu = false;} //wróg zostaje odtworzony, aby nie był martwy dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu++; //narysuj pierwszy kształt wroga i przenieś go od góry do dołu dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu++; //narysuj drugi kształt wroga i pobierz go od góry do dołu if (dusmaninYdeKonumu>22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon))){ //jeśli nasz kształt dotknie kształtów wroga oyunBitti();} //gra jest skończona if (dusmaninYdeKonumu>40){ //jeśli nasz kształt ucieknie przed wrogami dusmanOldu = true; //zabij wrogie kształty skor++;} //zwiększ wynik jeden po drugim //zwiększ prędkość zgodnie z wynikiem if (skor>=0 && skor10 && skor20 && skor30 && skor<=40){ hiz = 3; opóźnienie(40); } }
Krok 4: MAPA BITOWA KODU
Ponadto musisz dołączyć grafikę bitmapową dla kształtów. Musi to być plik.c i taka sama nazwa z nazwą kodową. Musi być również w tym samym pliku.
//------------------------------------------------ ------------------------------// Plik wygenerowany przez Asystenta LCD // https://pl.radzio.dxp.pl /konwerter_bitmapy/ //-------------------------------------------------- --------------------------------- #include //include dla funkcji programu
const unsigned char arac PROGMEM = { //nasza bitmapa kształtu
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };
const unsigned char dusman_araci PROGMEM = { //bitmapa statku wroga
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };
Krok 5: DZIĘKI ZA ZOBACZENIE
Zanim zacząłem dzielić się moimi projektami, kodowałem w tureckich słowach, więc nie mogłem zaryzykować każdego słowa na angielski. Tutaj tłumaczenie słów, których używam w tym projekcie, Ojun = Gra
Arac = Kształt
Dusman = Wróg
kontrola = kontrola
Konum, Yer = Lokalizacja
Oyun Bitti = Koniec gry
Skok = Wynik
Hiz = Prędkość
Zalecana:
KONTROLER ŁADOWANIA SŁONECZNEGO ARDUINO (wersja 2.0): 26 kroków (ze zdjęciami)
KONTROLER ŁADOWANIA SŁONECZNEGO ARDUINO (Wersja 2.0): [Odtwórz wideo] Rok temu zacząłem budować własny układ słoneczny, aby zapewnić energię dla mojego wiejskiego domu. Początkowo wykonałem kontroler ładowania oparty na LM317 i licznik energii do monitorowania systemu. Wreszcie zrobiłem kontroler ładowania PWM. W kwietniu
KONTROLER ŁADOWANIA SŁONECZNEGO ARDUINO (Wersja 1): 11 kroków (ze zdjęciami)
KONTROLER ŁADOWANIA SŁONECZNEGO ARDUINO (Wersja 1): [Odtwórz wideo] W moich poprzednich instrukcjach opisałem szczegóły monitorowania energii systemu słonecznego poza siecią. Wygrałem również za to konkurs obwodów 123D. Możesz zobaczyć ten MIERNIK ENERGII ARDUINO .Wreszcie zamieszczam moją nową opłatę w wersji 3
Space Race: Prosta gra Arduino Clicker do zrobienia z dziećmi: 7 kroków
Kosmiczny wyścig: prosta gra typu Arduino Clicker do zrobienia z dziećmi: ¡Przesyłam film pokazujący, jak to działa dzisiaj! Bądź na bieżąco Bawmy się dobrze z instrukcją o tematyce kosmicznej, którą można tworzyć razem z dziećmi, a później cieszyć się nimi same jako zabawka
Symulator gry na smartfony - Graj w gry Windows za pomocą IMU sterowania gestami, akcelerometru, żyroskopu, magnetometru: 5 kroków
Symulator gry na smartfony - graj w gry Windows za pomocą IMU sterowania gestami, akcelerometru, żyroskopu, magnetometru: wesprzyj ten projekt: https://www.paypal.me/vslcreations, przekazując darowizny na kody open-source i amp; wsparcie dalszego rozwoju
KerbalController: niestandardowy panel sterowania dla gry rakietowej Kerbal Space Program: 11 kroków (ze zdjęciami)
KerbalController: niestandardowy panel sterowania dla gry rakietowej Kerbal Space Program: po co budować KerbalController? Cóż, ponieważ naciskanie przycisków i rzucanie fizycznych przełączników jest o wiele ważniejsze niż klikanie myszą. Zwłaszcza, gdy jest to duży czerwony wyłącznik bezpieczeństwa, w którym najpierw musisz otworzyć pokrywę, pstryknąć przełącznik