Мазмуну:

Arduino согуштук оюну: 3 кадам
Arduino согуштук оюну: 3 кадам

Video: Arduino согуштук оюну: 3 кадам

Video: Arduino согуштук оюну: 3 кадам
Video: Ukraine Newly Received A-10 "Warthog" Thunderbolt Fatally Hit Important Russian Oil Rigs - ARMA 3 2024, Ноябрь
Anonim
Ардуино согуштук оюну
Ардуино согуштук оюну

Эсимде, бала кезимде Баттлс Оюнунун кагаз жана карандаш версиясын ойногом. Чынында, бул 1 -дүйнөлүк согуштан бери эле болуп келген. Менде 1960 -жылдардын башында "Sonar Sub Hunt" деп аталган "электрондук" варианты бар болчу, анда жарыктар жана үндөр жана жашыруун миналар болгон. Бүгүнкү видео оюндун стандарттары боюнча Battleship абдан кызыксыз, бирок мен неберелеримдин бул тууралуу эмне деп ойлогонун көрүү үчүн муну жасайм деп ойлогом. Кантсе да, кээде ретро сонун болушу мүмкүн.

Бул долбоордун биттери жана бөлүктөрү бар, эгер сиз Battleship оюнун жасоого кызыкпасаңыз дагы, башка жерде пайдалуу болмок. Бул белгилүү 4 тамашалуу 1602 ЖК интерфейсине ээ, ал белгилүү бир тамга жайгашуусун орнотуу тартибин камтыйт. Ошондой эле 4x4 которуу матрицасын декоддоо үчүн интерфейс бар. Бул эки интерфейс өзүнчө файлдарды камтыйт, андыктан аларды оңой ташууга болот. Оюнда ошондой эле ар кандай үн эффект тартиби жана жөнөкөй бир транзисторлуу аудио күчөткүч схемасы бар.

1 -кадам: Аппараттык

Аппараттык
Аппараттык
Аппараттык
Аппараттык

Бул жерде берилген схема бир оюнчу үчүн, ошондуктан эки бирдик жасалышы керек. Бирдиктер UART TX жана RX линияларын жана жер зымын камтыган 3 зымдуу интерфейсти колдонуп байланышат. Мен стандарттуу 1/8 дюймдук стерео гарнитура уячасын жана эки учунда эркек сайгычтары бар стандарттык кабель колдонууну чечтим. Бир кутудан RX башка кутунун TXсине барат жана тескерисинче. Сиз муну кутучанын ичиндеги гарнитуранын уячасына туташкан зымдарды алмаштыруу же аны куруп жатканда электр тактасына алмаштыруу аркылуу кыла аласыз.

Классикалык оюн матрица катары коюлган, бирок мен дисплей үчүн 1602 ЖКнын жардамы менен жөнөкөй ишке ашырууну чечтим. Биринчи сап оюнчунун кеме жайгашкан жерлерин жана каршылаштын соккуларын көрсөтөт. Экинчи сап оюнчунун соккуларын жана каршылаштын кемелерине тийген соккуларды көрсөтөт. Бул кемелер үчүн 16 мүмкүн болгон жерлерди камсыз кылат. Кемелердин саны программада белгиленген жана өзүм билемдик менен 5 тандагам.

16 кеменин жайгашкан жери которуу талаптарына ылайыктуу, анткени ал 4x4 матрицасына жол ачат. 4x4 матрицалуу которгучтар бар, бирок мен линиялык дисплейге дал келүү үчүн жеке линияларды бир линияда колдонууну чечтим. Мен өчүргүчтөрдү 4х4 матрица катары өткөрдүм, ошондуктан сегиз Arduino төөнөгүчтөрү гана керек. Туура туташуу үчүн коммутатордун электр схемасына жана схемасына кайрылыңыз.

ЖК дисплей 4-бит интерфейси үчүн зымдуу. Мен ошондой эле D13 пинге тышкы LEDди кошуп, кайсы оюнчу атуу керектигин көрсөтүштү. Башында, оюнчулар биринчи кадрды ким аларын чечишет, андан кийин программалык камсыздоо оюндун алды -артын автоматтык түрдө башкарат.

Мен атууга, жарылууларга, оюнга даяр жана жеңүүчү/уттуруучуга жөнөкөй үн эффекттерин кошкум келди. Мен жөнөкөй пьезо сигналын колдонууга аракет кылдым, бирок анын ордуна кичинекей динамик келди. Динамик талап кылган ток Arduino колунан келген нерседен ашып түшөт, ошондуктан жөнөкөй транзистордук күчөткүч кошулду. Үн дагы деле сонун эмес, бирок бул ызылдакка караганда жакшы. Менин спикерим 4 ом, бирок эгерде сизде 8-ом болсо, анда резисторду схемада 39 Омдон 33 Омго алмаштырыңыз. Эгерде сиз пьезо сигналын колдонсоңуз, анда аны Arduino пининен түз эле кууп чыгыңыз, экинчи жагынан жерге байланышкан.

Тышкы калыбына келтирүү которгучу да камтылган жана Arduinoдогу жерге жана "баштапкы абалга келтирүү" пининин ортосунда түз өткөрүлөт. Бул оюнду кайра баштоо үчүн каражаттарды камсыз кылат.

2 -кадам: Программалык камсыздоо

Программада менин LCD интерфейсиме кошуу файлы бар, мен 4х4 которгуч матрицаны сканерлөө үчүн кошуу файлын түздүм. Инициализация оюнчуну өзүнүн кемелери үчүн жерлерди тандоого үндөйт жана андан кийин "Даяр" абалына өтөт. Эки оюнчу тең даяр болгондо, алардын бири оюнду которгучту басуу менен баштайт.

Атылган жер UART аркылуу башка оюнчуга берилет жана тийиштүү жыйынтык ок чыгарган оюнчуга кайра берилет. Жогоруда айтылгандай, биринчи кадр тартылганда, программалык камсыздоо кийинки кадрды ким аларын көзөмөлдөйт. Атып жиберүүдөн мурун, мурунку кадрлардын жайгашуусу текшерилет. Эгер бул жер мурунтан эле колдонулган болсо, анда кадр өткөрүлбөйт. "My_Shot" светодиоду кимдин кезегин аныктайт. Жарактуу тандоо үчүн жарылган ок үнү жана кемеге тийсе жарылуу үнү да бар. Үн эффекттери оюнга ылайыктуу өзгөртүүлөр менен интернеттен табылган мисалдардан алынган.

Каршылаштардын кемелери урулган соң, ар бир ЖКда бир билдирүү көрсөтүлөт - бири жеңүүчү, бири утулган. Билдирүүдө ошондой эле оюнду баштапкы абалга келтирүү баскычын басуу менен кайра баштоого болору көрсөтүлгөн. Жеңүүчү менен жеңилген үчүн өзүнчө үн эффекттери бар.

3 -кадам: Screen Shots

Screen Shots
Screen Shots
Screen Shots
Screen Shots
Screen Shots
Screen Shots
Screen Shots
Screen Shots

Бул жерде оюндун кээ бир скриншоттору. Бул бул пост үчүн. Менин башка көрсөтмөлөрүмдү жана менин веб -сайтымды текшериңиз: www.boomerrules.wordpress.com

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