Съдържание:
Видео: Игра Arduino Space Rocks: 3 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
Независимо дали се играят на компютър, на телефон, на игрална конзола или на самостоятелна кутия, много видео игри включват елемент за избягване на препятствия. Разбира се, може да има наградени точки за събиране на жетони или намиране на път през лабиринт, но бъдете сигурни, че вероятно има нещо в играта, чиято единствена цел е да ви попречи да направите това. Първата видео игра беше Pong, но след това най-популярните игри бяха неща като „Asteroids“или „Pac-Man“. По -нова вариация би била простата, но пристрастяваща игра на „Flappy Birds“.
Наскоро видях, че някой е направил обикновена двустепенна версия на „Flappy Bird“, която се играе на обикновен 1602 LCD. Мислех, че това ще бъде нещо, което внуците биха харесали, затова реших да направя своя собствена вариация от нулата. Версията 1602 има само две нива, затова реших вместо това да използвам LCD дисплей от 2004 г. (20x4), за да увелича леко трудността на игра. Аз също избрах да го направя по -скоро като „Астероиди“, като накара играча да води „кораб“през лабиринт от „космически скали“. Дори и да не се интересувате от изграждането на играта, може да има някои елементи от софтуера, които можете да използвате в някой от вашите собствени проекти.
Стъпка 1: Хардуер
Хардуерът може да се основава на почти всяка версия на Arduino. Направих прототипирането с помощта на Nano и след това записах кода в чип ATMega328. Това е същият чип, използван в Nano, но използването му само по себе си позволява по -компактно изграждане и по -ниска консумация на енергия. Както можете да видите, изградих веригата на малка дъска, която се връща към LCD модула. Другият аспект, който е различен, е, че Nano работи на 16-MHz с помощта на външен кристал, но аз избрах да използвам вградения 8-MHz осцилатор за чипа ATMega328. Това спестява части и енергия.
LCD дисплеят от 2004 г. се свързва с Arduino по същия начин, както 1602 LCD. Интересна разлика е в адресирането на местата за показване. Очевидно има разлика, защото има четири реда вместо два, но през 2004 г. третият ред е продължение на първия ред, а четвъртият ред е разширение на втория ред. С други думи, ако имате тестова програма, която току -що изпрати низ от знаци на LCD дисплея, 21 -вият знак ще се появи в началото на третия ред, а 41 -ият символ ще се върне обратно в началото на първия ред. Използвам тази характеристика в софтуера, за да удвоя ефективно дължината на лабиринта.
Реших да направя моята версия на батерията, така че използвах обикновена 18650 литиево-йонна, 3,6-волтова батерия. Това изискваше да добавя малка платка, която да позволява зареждане чрез USB, и друга малка платка, за да повиша напрежението на батерията до 5 волта за LCD и ATMega чипа. Снимките показват модулите, които използвах, но има и модули „всичко в едно“, които изпълняват и двете функции.
Стъпка 2: Софтуер
Софтуерът е един и същ както за чипа Nano, така и за ATMega328. Единствената разлика е в метода на програмиране. Използвам моя собствена версия barebones на 1602 LCD софтуер и софтуерът LCD в този проект се основава на това. Трябваше да добавя възможности за адресиране на допълнителните редове на дисплея от 2004 г., както и да добавя процедури за преместване на дисплея. Промяната на дисплея осигурява ефекта на движение на „скалите“покрай „кораба“.
Както бе споменато по -рано, редове 1 и 3 образуват кръгова опашка, а линии 2 и 4 също. Това означава, че след 20 смени, линии 1 и 3 се сменят, а редове 2 и 4 се сменят. След 40 смени линиите се връщат в първоначалните си позиции. Поради това поведение оригиналният лабиринт от 20 знака става напълно различен, когато линиите се разменят. Това направи живота интересен, когато се опитах да оформя лабиринт. Най -накрая току -що отворих електронна таблица на Excel, за да мога да очертая пътя, без да се налага постоянно да променям софтуера. Софтуерът, предоставен тук, има две версии на лабиринта (едната е коментирана), така че можете да изберете коя искате или да създадете своя собствена.
Първоначално исках това да е достатъчно просто, за да могат младите внуци да го изиграят, но също така исках да има допълнително предизвикателство, ако те (или някой друг) се справят твърде добре. Играта започва със скорост на смяна, зададена на 1 секунда. Вътрешната тарифа е 50 ms, което означава, че има 20 интервала, през които бутоните нагоре/надолу могат да се натискат. В действителност натиснат бутон консумира 2 тика, тъй като се използва интервал от 50 ms за откриване на натискане и още 50ms интервал се използва за изчакване на освобождаването. При лабиринта по подразбиране максималният брой натискания, необходими преди следващата смяна, е три. Простият начин да увеличите трудността на играта е да съкратите времето между смените, така че няколко реда код да направят точно това с увеличаването на резултата. Скоростта на смяна е настроена да се ускорява с 50 мс на всеки 20 смени, като минималната скорост е ограничена до 500 мс. Лесно е да промените тези параметри.
Освен промяна на скоростта на смяна, основната логика в софтуера е да премести „кораба“и да определи дали „корабът“се е сблъскал с „скала“. Тези функции се възползват от дефинирания масив „скала/пространство“, а също и масива, който определя местата на паметта на дисплея. Броят на изместванията съответства на дължината на линията на LCD (0-19) и се използва като индекс в тези масиви. Логиката е донякъде сложна от факта, че размените на редове на всеки 20 смени се броят. Подобна логика се използва за определяне на позицията на „кораба“, която може да бъде на някоя от четирите линии.
Резултатът за всяка пиеса е просто броят на настъпилите смени и високият резултат се записва във вътрешния EEROM на микроконтролера. Библиотеката EEPROM се използва за четене и запис в тази памет. Наличните процедури позволяват еднобайтово четене/запис и четене/запис на стойности с плаваща запетая. Стойност 0xA5 се съхранява в първото местоположение на EEROM, което показва, че е записан висок резултат. Ако тази стойност присъства при включване, тогава стойността с плаваща запетая за високия резултат се чете и показва. Ако стойността 0xA5 не присъства, тогава се извиква рутина за инициализиране на високия резултат до стойност 1. Същата рутина се извиква, ако се желае нулиране на високия резултат. Високата оценка се връща на стойност 1, като задържите един от бутоните нагоре/надолу и след това за кратко натиснете бутона за нулиране.
Стъпка 3: Игра на играта
Когато се подаде захранване, се показва текущият висок резултат. След като се покаже високият резултат, се показват лабиринтът от „скали“и „кораб“, след което играта започва няколко секунди по -късно. Когато „корабът“удари „камък“, съобщението „CRASH AND BURN“мига няколко пъти, преди да покаже резултата за играта. Ако се направи нов висок резултат, това съобщение също се показва. Нова игра се стартира чрез натискане на бутона за нулиране.
Препоръчано:
Chrome T-rex игра Hack с помощта на Arduino: 5 стъпки
Chrome T-rex Game Hack с помощта на Arduino: В този урок ще хакнем chrome t-rex играта с arduino
Саймън игра - забавна игра !: 5 стъпки
Simon Game - Fun Game !: Справка: Тук След дългия уикенд трябва наистина да се постараете да изпълните всички задачи и работа, за която отговаряте. Време е да тренираме мозъка си, нали? Освен тези скучни и безсмислени игри, има и игра, наречена Simon Game
Aruduino LED игра Бързо щракване Игра за двама играчи: 8 стъпки
Aruduino LED игра Бързо щракване на игра за двама играчи: Този проект е вдъхновен от @HassonAlkeim. Ако искате да разгледате задълбочено, ето линк, който можете да проверите https://www.instructables.com/id/Arduino-Two-Player-Fast-Button-Clicking-Game/. Тази игра е подобрена версия на Alkeim's. Това е
Arduino Flappy Bird - Arduino 2.4 "TFT сензорен екран SPFD5408 Проект за игра на птици: 3 стъпки
Arduino Flappy Bird | Arduino 2.4 "TFT Touchscreen SPFD5408 Bird Game Project: Flappy Bird беше твърде популярна игра за няколко години и много хора го създадоха по свой начин, така и аз, аз създадох моята версия на flappy bird с Arduino и евтиния 2.4 " TFT Сензорен екран SPFD5408, така че нека започнем
Игра Space Space Race версия 2: 5 стъпки
Игра Space Space Race версия 2: Здравейте всички. Преди тази версия на играта публикувах първата версия на играта. Днес ı ще ви покажа Space Race Game версия 2. Нека разгледаме стъпките