Мазмұны:

Arduino VGA консолі бес ойыннан тұрады: 4 қадам
Arduino VGA консолі бес ойыннан тұрады: 4 қадам

Бейне: Arduino VGA консолі бес ойыннан тұрады: 4 қадам

Бейне: Arduino VGA консолі бес ойыннан тұрады: 4 қадам
Бейне: Игровая консоль на Arduino своими руками [часть 1] 2024, Шілде
Anonim
Image
Image
Arduino VGA консолі бес ойыннан тұрады
Arduino VGA консолі бес ойыннан тұрады
Arduino VGA консолі бес ойыннан тұрады
Arduino VGA консолі бес ойыннан тұрады

Алдыңғы нұсқаулықтарда мен ең танымал классикалық аркада ойындарының жеңілдетілген нұсқаларын, жалаңаш Arduino және басқа компоненттердің көмегімен шығардым. Кейінірек мен олардың бесеуін бір эскизде біріктірдім. Мұнда мен понг, Breakout, бомбалаушы, тетристі ойнай алатын қарапайым консоль мен Etch-a-Sketch шабытымен салынған ойыншық құруға болатынын көрсетемін. Бұл консольді жыланды ойнауға және басқа авторлар жазған тағы екі ойынға қолдануға болады: Бит Ниндзя Сандро Маффиодо ака «Смаффер» және стекер Никита Курылев.

Негізгі ерекшелігі - VGAx кітапханасының арқасында VGA сигналын шығару, сондықтан консольге VGA мониторы қажет. Менің мақсатым, әдеттегідей, оны құруға арналған «арнайы компоненттен» аулақ болу, содан кейін сізге қолдау көрсететін IC немесе қалқандар қажет емес! Жалғыз компоненттер - екі потенциометр, бес түйме, бірнеше резистор және DSUB15 (VGA) қосқышы. Пьезо динамигі міндетті емес. Бұл беттердегі суреттерден сіз бұл ойындардың қалай көрінетінін көре аласыз.

VGAx кітапханасы 120 х 60 пиксель ажыратымдылығымен төрт түсті пайдалануға мүмкіндік береді, бірақ бұл ретро ойын консолі үшін жеткілікті емес. Графика шикі, бірақ потенциометрлерді қолданудың арқасында ойындар бірқалыпты өтеді. Қарапайым дыбыстық әсерлер де бар.

1 -қадам: Arduino VGA консолін қалай құруға болады

Arduino VGA консолін қалай құруға болады
Arduino VGA консолін қалай құруға болады
Arduino VGA консолін қалай құруға болады
Arduino VGA консолін қалай құруға болады

Алдымен осы беттің төменгі жағындағы ArduinoVGAgame.ino және/немесе Snake.ino кодтарын жүктеп алып, ДК -де сол атпен каталогқа көшіріңіз. VGAx кітапханасын GitHub сілтемесінен жүктеңіз. Ең оңай жолы - оны «кітапханалар» деп аталатын Arduino бағдарламалық қамтамасыз ету қалтасына көшіру, оны бірден тануға болады.

МАҢЫЗДЫ: бұл кітапхана Arduno IDE 1.6.4 үшін жұмыс істейді, бірақ ол ескі немесе жаңа нұсқалармен толық үйлесімді емес.

Кодты Arduino тақтасына жүктеңіз (мен Uno мен Nano -ны тексердім). Қол жетімді жадтың төмендігі туралы ескерту қалыпты жағдай. Егер сізде басқа қателер болмаса, бәрі жақсы және сіз бірден өз консоліңізді құруға кірісе аласыз.

Ол үшін сізге қажет:

  • an Arduino Uno Rev.3 немесе Arduino Nano 3.x (ATmega328)
  • DSUB15 қосқышы, яғни VGA аналық қосқышы немесе кесілетін VGA кабелі.
  • резисторлар: 2 x 68 Ом және 2 x 470 Ом және 5 x 1 - 2 кОм
  • екі 10 кОм сызықтық потенциометр (ұқсас мәндер де жақсы)
  • бес түйме
  • кабельдің бір бөлігі
  • барлық компоненттерді орналастыру үшін бір немесе екі жақсы қорап.

Факультативті:

  • нан тақтасы немесе таспа тақтасы
  • пьезо спикері

Схема дайын «консоль» мысалымен бірге осы қадамның жоғарғы жағында берілген.

Схемада түйме мен потенциометрді қосу әдісі көрсетілген. Нақтырақ айтсақ, сәйкесінше 5, 10, 11, 12 және 13 түйреуіштерге бес түймені қосу керек. Әр батырмамен орындалатын әрекет схемада оң жақ жоғарғы кестеде сипатталған. Сол жақта потенциометрді қалай қосу керектігі көрсетілген (сізге А1 және А2 түйреуіштеріне екі потенциометр қажет). Динамик A0 аналогтық істігіне қосылуы керек.

Мен VGA коннекторы бар Arduino тақтасын ағаш қорапқа қойдым, онда бірінші ойыншының потенциометрі мен төрт түймесі бар, ал екінші ойыншының потенциометрі мен оның іске қосу түймесі бөлек және кіші қорапта.

Егер сіз бұл ойыншықты ұнатсаңыз және оны қайта шығаруды шешсеңіз, төмендегі түсініктеме бөлімінде түсініктеме жазсаңыз немесе сурет жіберсеңіз ризамын.

2 -қадам: Басқа авторлардың ойындары

Сандро Маффио жақында BitNinja ойынын жариялады. Юн қосымша ақпаратты осы жерден таба алады және кодты мына жерден жүктей алады.

Менің консольді пайдалану үшін оның кодындағы түймені келесідей қайта өзгерту керек:

#анықтау BTN_UP 11 (13 орнына)

#анықтау BTN_LEFT 10 (12 орнына)

#анықтау BTN_RIGHT 12 (орнына 11)

Никита Курылевтен жинақтаушы, мұнда қол жетімді. Қосымша ақпарат мына жерде.

Тағы да, кодтың басқа бөлігінде бір түймені қайта орау керек: digitalRead (2) -ді digitalRead (13) -мен ауыстырыңыз.

3 -қадам: 1 -қосымша: Контроллерлерді құру туралы қосымша мәліметтер

1 -қосымша: Контроллерлерді құру туралы қосымша мәліметтер
1 -қосымша: Контроллерлерді құру туралы қосымша мәліметтер
1 -қосымша: Контроллерлерді құру туралы қосымша мәліметтер
1 -қосымша: Контроллерлерді құру туралы қосымша мәліметтер
1 -қосымша: Контроллерлерді құру туралы қосымша мәліметтер
1 -қосымша: Контроллерлерді құру туралы қосымша мәліметтер
1 -қосымша: Контроллерлерді құру туралы қосымша мәліметтер
1 -қосымша: Контроллерлерді құру туралы қосымша мәліметтер

Сіз контроллерді қол жетімді материалға және талғамыңызға байланысты әр түрлі жолмен жүзеге асыра аласыз.

Мен оларды ағаш қораптармен жүзеге асырғанды ұнатамын (осы беттегі суреттерді қараңыз). Arduino, VGA коннекторы мен бірінші ойнатқыш түймелері мен потенциометрге арналған негізгі қорап; екінші (кіші) екінші ойыншы түймесі мен дөңгелегі үшін (Понг пен ойыншыққа қажет). Тағы бір мүмкіндік - бәрін үлкен қорапқа салу.

Алдымен VGA портын қосуды ұсынамын. Бірінші және екінші суреттерде сіз кейбір мәліметтерді көре аласыз: сәйкесінше 6 және 7 түйреуіштерге жалғанған Қызыл және Жасылға арналған 470 Ом екі резисторды, ал көлденең және тік синхронизация сигналы үшін 3 және 9 түйреуіштеріне екі 68 Ом.

VGA DSUB15 коннекторына қосылатын түйреуіштерге байланысты әр түрлі түсті комбинацияларды таңдауға болады, 1, 2 және 3 түйреуіштер сәйкесінше қызыл, жасыл, көк (RGB) болып табылады. Мен 1 және 2 түйреуіштерді қостым, осылайша менде келесі түс комбинациясы бар: (0, 0) = қара; (1, 0) = қызыл; (0, 1) = жасыл; (1, 1) = сары.

Әр түрлі мүмкіндіктер үшін мен VGAx кітапханаларын жүктейтін беттегі мәліметтерді оқуды ұсынамын.

VGA коннекторы дайын болған кезде түймелерге, дөңгелектер мен динамикке басқа барлық кабельдерді дайындауға болады (2 суретті қараңыз).

Енді бәрін біріктіріңіз: әр түйме түйреуішін 1 немесе 2 кОм резистор арқылы жерге қосу керек екенін есте сақтаңыз, әйтпесе түйме ашық болғанда түйреуіштің күйі анықталмауы мүмкін. Егер түйреуіш ажыратылған болса, оны қосуға болатын кездейсоқ (статикалық) кернеу болуы мүмкін дегенді білдіреді. Нұсқаулықтың екінші қадамындағы схеманы толығырақ қарастырыңыз.

Соңғы қадам - бәрін орнына келтіру. Мен ыстық желім тапаншасын қолдандым, бірақ сіз қалаған әдісті қолдана аласыз.

4 -қадам: 2 -қосымша: Жад шектеулері туралы кейбір ойлар

Қарапайым Arduino VGA сигналын және осы ойындардың барлығын бірге жасай алатыны таңқаларлық. Нағыз бөтелке мойны-SRAM-нің болмауы. AVR микроконтроллерінде айнымалыларды сақтауға және басқаруға тек 2048 байт бар, ал VGAx кітапханасы экранның айнымалыларын 120x60 пиксельді кадрлық буферде сақтайды, онда әр пиксельге 2 бит (4 түс) қажет, барлығы 1800 байт. Бұл эскиздік айнымалылар үшін тек 248 байт қалды дегенді білдіреді. Сонымен қатар, менің тәжірибем бойынша тұрақсыздықты болдырмау үшін кемінде 100 байт бос қалдыру керек. 1950 байт динамикалық жадты қолдана отырып, микроконтроллер тақ және күтпеген әрекеттерді көрсете бастайды.

Бұл барлық айнымалыларды әр түрлі ойындар арасында бөлісу керек дегенді білдіреді және бұл кодты оқылмайтын етеді және оны жөндеуді қиындатады. Алдыңғы нобайға «жаңа ойын қосу» жай ғана мәселе емес, барлық кодты терең өзгерту және оңтайландыру қажет.

Сонымен қатар, мен мүмкін болатын минималды айнымалы форматты қолдануға мәжбүр болдым: мысалы, барлық координаттар үшін мен «int» орнына «байт» немесе басқа жағдайларда «float» орнына «int» дегенді қолдануға мәжбүр болдым.

Ақырында, менің білімім VGAx кітапханасының және керемет BitNinja ойынының құрушысы Сандро Маффиодо ака Смафферге беріледі. Бұл кітапханасыз бұл жобаны жүзеге асыру мүмкін емес еді.

Никита Курылевке қарапайым, бірақ көңілді Stacker ойыны үшін рахмет.

Ұсынылған: