Съдържание:

Версия на играта Arduino Space Race _1: 5 стъпки
Версия на играта Arduino Space Race _1: 5 стъпки

Видео: Версия на играта Arduino Space Race _1: 5 стъпки

Видео: Версия на играта Arduino Space Race _1: 5 стъпки
Видео: Проверка китайца на безопасность #blondinkadrive 2024, Юли
Anonim
Image
Image

Хей приятели. Днес ще ви покажа как можете да направите Space Race Game от LCD5110 екран и joystic. Нека да разгледаме стъпките …

Стъпка 1: НУЖДИ

СХЕМА
СХЕМА

Ето списък на частите, които използвах, за да направя този проект:

  • Arduino UNO
  • Модул с джойстик
  • Джъмперни проводници (мъжки към мъжки и мъжки към женски)
  • Платка

Стъпка 2: СХЕМА

VCC -> Arduino 5V

BL -> Arduino щифт 3

GND -> Arduino GND

CLK (SCLK) -> Arduino пин 8

DIN (MOSI) -> Arduino щифт 9

DC -> Arduino щифт 10

CE или CS -> Arduino пин 12

RST (RESET) -> Arduino щифт 11

Стъпка 3: КОД

КОД
КОД

Кодът има обяснения за кодови функции. Ще го разберете лесно. Ако имате проблем, можете да се свържете с мен.

#включва

LCD5110 LCD (8, 9, 10, 11, 12); // (clk, din, dc, rst, ce)

int BL = 3;

extern uint8_t SmallFont ; // описваме шрифтовете extern uint8_t MediumNumbers ; extern uint8_t arac ; // описваме нашата форма extern uint8_t dusman_araci ; // опишете вражеска форма const int xpin = A0; // джойстик x щифт char pozisyon = 2; // описваме местоположението, нашата форма начално местоположение 2 boolean kontrol = true; булев dusmanOldu = вярно; int skor = 0; int hiz = 0; int dusmanKonumu1; // описвам враг1 x местоположение int dusmanKonumu2; // описвам враг2 x местоположение int dusmaninYdeKonumu; // описване на врагове и местоположение

void dusmanAraci (int yer, int asama) {// задайте местоположения за вражески форми

if (yer == 1) {// if location = 1; lcd.drawBitmap (2, asama, dusman_araci, 12, 8); // нарисуваме вражеска форма} if (yer == 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } if (yer == 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}

void oyunBitti () {// ако не успеем, играта свършва

while (1) {забавяне (100); // изчакайте 1 милисекунда lcd.clrScr (); // изчистване на екрана lcd.setFont (SmallFont); // задаване на шрифт lcd.print ("GAME OVER", ЦЕНТЪР, 20); // отпечатайте lcd.update (); // актуализиране на екрана}}

void setup () {pinMode (BL, OUTPUT); // задно осветяване Изход lcd. InitLCD (); // инициализиране на LCD екрана lcd.setContrast (55); // задаване на контраст (амунд от 0 до 127) Serial.begin (9600); // стартиране на серийна комуникация}

void loop () {

analogWrite (BL, 200);

// задаване на екрана на играта lcd.drawRect (0, 0, 47, 47); // рисуваме правоъгълник lcd.setFont (SmallFont); // задаване на шрифт lcd.print ("skor", 53, 0); // printf score lcd.setFont (MediumNumbers); // задаване на шрифт lcd.printNumI (skor, 59, 7); // получавам резултат lcd.setFont (SmallFont); lcd.print ("hiz", 56, 25); // скорост на печат lcd.setFont (MediumNumbers); lcd.printNumI (hiz, 59, 32); // получавам скорост lcd.update (); // актуализиране

// задаваме местоположението на джойстика 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 и контролът е истински pozisyon ++; // увеличаване на местоположението означава преместване на фигурата вдясно kontrol = false; } else if (x> 300 && x <600) {kontrol = true; } Serial.println (x); // за учене x състояние // задаваме местоположението на нашата форма lcd.clrScr (); // изчистване на екрана if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // нарисуваме нашия кораб, ако (pozisyon == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}

if (pozisyon == 3) {

lcd.drawBitmap (34, 37, arac, 12, 8);}

if (dusmanOldu) {// ако вражеската форма е мъртва, проверете дали са мъртви

dusmanKonumu1 = pozisyon; // изчертаване на първа форма на враг dusmanKonumu2 = random (0, 4); // нарисуваме друга вражеска форма някъде dusmaninYdeKonumu = 0; // довежда врага от върха dusmanOldu = false;} // врагът е пресъздаден, така че да не е мъртъв dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // нарисуваме първата вражеска форма и я получавам отгоре надолу dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // нарисуваме втора вражеска форма и я получаваме отгоре надолу if (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon)))) {// ако нашата форма докосва вражески форми oyunBitti ();} // играта приключи if (dusmaninYdeKonumu> 40) {// ако нашата форма избяга от врагове dusmanOldu = true; // убиваме вражески форми skor ++;} // увеличаваме резултата един по един // увеличаваме скоростта според резултата if (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; забавяне (40); }}

Стъпка 4: КОД БИТМАП

Освен това трябва да включите растерна графика за форми. Трябва да е.c файл и същото име с кодово име. Също така трябва да е в същия файл.

// ------------------------------------------------ ------------------------------ // Файл, генериран от LCD Assistant // https://en.radzio.dxp.pl /bitmap_converter/// --------------------------------------------- --------------------------------- #include // включи за функция progmem

const unsigned char arac PROGMEM = {// нашата растерна картина на формата

0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};

const unsigned char dusman_araci PROGMEM = {// растерна картина на вражеския кораб

0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};

Стъпка 5: БЛАГОДАРЯ ЗА ПРЕГЛЕДА

БЛАГОДАРЯ ЗА ПРЕГЛЕДА
БЛАГОДАРЯ ЗА ПРЕГЛЕДА

Преди да започна да споделя моите проекти, кодирах с турски думи, така че не можех да използвам всяка дума на английски. Ето думите, които използвам този проект, Оюн = Игра

Arac = Форма

Дусман = Враг

kontrol = контрол

Konum, Yer = Местоположение

Оюн Бити = Играта приключи

Skor = Резултат

Hiz = Скорост

Препоръчано: