Мазмуну:

Беш оюн менен Arduino VGA консолу: 4 кадам
Беш оюн менен Arduino VGA консолу: 4 кадам

Video: Беш оюн менен Arduino VGA консолу: 4 кадам

Video: Беш оюн менен Arduino VGA консолу: 4 кадам
Video: Функция Arduino Millis поясняется 3 примерами 2024, Июль
Anonim
Image
Image
Беш оюн менен Arduino VGA консолу
Беш оюн менен Arduino VGA консолу
Беш оюн менен Arduino VGA консолу
Беш оюн менен Arduino VGA консолу

Мурунку көрсөтмөлөрүмдө жылаңач Arduino жана башка бир нече компоненттердин жардамы менен эң популярдуу классикалык аркада оюндарынын жөнөкөйлөтүлгөн версияларын чыгардым. Кийинчерээк мен алардын бешөөнү бир эскизге бириктирдим. Бул жерде мен сиз понг, Breakout, бомбардировщик, тетрис жана Etch-a-Sketchке шыктандырылган чийме оюнчугун ойной ала турган жөнөкөй консолду кантип курууга болорун көрсөтөм. Бул консол жыланды жана башка авторлор жазган дагы эки оюнду ойноо үчүн колдонулушу мүмкүн: Bit Ninja by Sandro Maffiodo aka "Smaffer" жана Stacker by Никита Курылев.

Негизги өзгөчөлүк - VGAx китепканасынын жардамы менен VGA сигналын чыгаруу, ошондуктан консолго VGA монитору керек. Менин максатым, адаттагыдай, аны куруу үчүн кандайдыр бир "өзгөчө компоненттен" оолак болуу, ага эч кандай колдоочу IC же калканчтын кереги жок! Жалгыз компоненттер - бул эки потенциометр, беш баскыч, бир нече резистор жана DSUB15 (VGA) туташтыргычы. Пьезо спикери милдеттүү эмес. Бул беттеги сүрөттөрдөн бул оюндардын кандай экенин көрө аласыз.

VGAx китепканасы 120 х 60 пиксел токтому менен төрт түстү колдонууга мүмкүндүк берет, бирок бул ретро оюн консолу үчүн жетиштүү эмес. Графика чийки, бирок потенциометрлердин жардамы менен оюндар үзгүлтүксүз иштейт. Жөнөкөй үн эффекттери да бар.

1 -кадам: Өзүңүздүн Arduino VGA консолун кантип куруу керек

Кантип жеке Arduino VGA консолун курууга болот
Кантип жеке Arduino VGA консолун курууга болот
Кантип жеке Arduino VGA консолун курууга болот
Кантип жеке Arduino VGA консолун курууга болот

Адегенде ArduinoVGAgame.ino жана/же Snake.ino коддорун бул барактын ылдый жагына жүктөп алып, ошол эле аталыштагы каталогго компьютериңизге көчүрүңүз. GitHubдагы бул шилтемеден VGAx китепканасын жүктөп алыңыз. Эң оңой жолу - аны "китепканалар" деп аталган 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 Ohm жана 2 x 470 Ohm жана 5 x 1 to 2 kOhm
  • эки 10 кОм сызыктуу потенциометр (окшош маанилер да жакшы)
  • беш баскыч
  • кабелдин бир бөлүгү
  • бардык компоненттерди коюу үчүн бир же эки жакшы кутуча.

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

  • нан тактасы же тилке тактасы
  • пьезо спикери

Схема бул кадамдын чокусунда, даяр "консолдун" мисалы менен бирге билдирилген.

схема кнопканы жана потенциометрди кантип туташтырууну көрсөтөт. Тагыраак айтканда, 5 кнопканы 5, 10, 11, 12 жана 13 төөнөгүчтөргө туташтыруу керек. Ар бир баскыч менен аткарылган иш схемада оң жактагы үстөлдө сүрөттөлөт. Сол жакта потенциометрди кантип туташтыруу керектиги көрсөтүлгөн (A1 жана A2 төөнөгүчтөргө эки потенциометр керек). Динамик A0 аналогдук пинге туташтырылышы керек.

Мен VGA туташтыргычы бар Arduino тактасын биринчи оюнчунун потенциометрин жана төрт баскычын камтыган жыгач кутуга салдым, ал эми экинчи оюнчунун потенциометри менен анын баштоо баскычы өзүнчө жана кичине кутуда.

Эгер сизге бул оюнчук жакса жана сиз аны кайра чыгарууну чечсеңиз, анда төмөндөгү комментарийлер бөлүмүнө комментарий жазсаңыз же сүрөт жөнөтсөңүз, абдан ыраазымын.

2 -кадам: Башка жазуучулардын оюндары

Сандро Маффио жакында BitNinja оюнун жарыялады. Youn көбүрөөк маалыматты бул жерден таба аласыз жана кодду бул жерден жүктөп алсаңыз болот.

Менин консолумду колдонуу үчүн, жөн гана анын кодундагы баскычты төмөнкүдөй алмаштырыңыз:

#аныктоо 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 портун туташтырууну сунуштайм. Биринчи жана экинчи сүрөттөрдө сиз кээ бир деталдарды көрө аласыз: Кызыл жана Жашыл үчүн 470 Ом эки каршылыгына жараша 6 жана 7 -казыктарга туташып, горизонталдык жана вертикалдуу синхрондоштуруу үчүн 3 жана 9 -пинге 68 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 оюнунун жаратуучусу Сандро Маффиодо ака Smafferге барат. Бул китепкана болбосо, бул долбоорду ишке ашыруу мүмкүн эмес.

Жөнөкөй, бирок күлкүлүү Stacker оюну үчүн Никита Курылевге да рахмат.

Сунушталууда: