Съдържание:
Видео: Игра на бойния кораб Arduino: 3 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Спомням си, че като дете играех хартиена и молива версия на Battleship Game. Всъщност той съществува от времето на Първата световна война. Имах и „електронен“вариант в началото на 60 -те, наречен „Sonar Sub Hunt“, който имаше светлини и звуци и скрити мини. Според днешните стандарти за видеоигри Battleship е доста скучен, но все пак мислех, че ще го направя, само за да видя какво мислят внуците за него. В края на краищата понякога ретро може да е готино.
Има частици от този проект, които биха били полезни другаде, дори ако не се интересувате от създаването на играта Battleship. Той има прост 4-битов 1602 LCD интерфейс, който включва рутина за задаване на определено местоположение на знаците. Има и интерфейс за декодиране на 4x4 превключваща матрица. Тези два интерфейса се предлагат като отделни включващи файлове, така че да могат лесно да се транспортират. Играта също има различни процедури за звукови ефекти и проста схема с един транзисторен аудио усилвател.
Стъпка 1: Хардуер
Представената тук схема е за един играч, така че ще трябва да се направят две единици. Устройствата комуникират чрез 3-жичен интерфейс, който включва UART TX и RX линии и заземен проводник. Избрах да използвам стандартен 1/8 инчов жак за стерео слушалки и стандартен кабел с мъжки щепсели от двата края. RX от едната кутия отива в TX на другата кутия и обратно. Можете да направите това, като смените проводниците, запоени към жака за слушалки вътре в кутията, или ги размените на платката, когато я изграждате.
Класическата игра беше изложена като матрица, но реших да направя проста реализация, използвайки 1602 LCD за дисплея. Първият ред показва местоположението на кораба на играча и ударите на противника. Вторият ред показва ударите на играча и всички попадения по корабите на противника. Това осигурява 16 възможни места за кораби. Броят на корабите е зададен в софтуера и произволно избрах 5.
16 -те места на кораба се вписват добре с изискванията за превключване, тъй като позволяват матрица 4x4. Налични са матрични превключватели 4х4, но аз избрах да използвам отделни превключватели в един ред, за да съответства на линейния дисплей. Направих обаче превключвателите като 4x4 матрица, така че са необходими само осем Arduino щифта. Вижте електрическата схема на превключвателя и схемата за правилните връзки.
LCD дисплеят е свързан към 4-битов интерфейс. Добавих и външен светодиод на щифт D13, за да посоча кой играч трябва да направи изстрел. Първоначално играчите решават кой ще направи първия изстрел и след това софтуерът автоматично контролира напред -назад в играта.
Исках да добавя прости звукови ефекти за кадъра, експлозиите, играта готова и победителя/губещия. Опитах да използвам обикновен пиезо зумер, но вместо това получих малък говорител. Токът, необходим на високоговорителя, надвишава това, което Arduino може да обработи, така че е добавен прост транзисторен усилвател. Звукът все още не е страхотен, но е по -добър, отколкото със зумера. Моят високоговорител е 4 ома, но ако имате 8-омов, променете резистора в схемата от 39 ома на 33 ома. Ако използвате пиезо зумер, трябва да можете да го управлявате директно от щифта на Arduino с другата страна на зумера, свързан към земята.
Включен е и външен превключвател за нулиране и е свързан директно между земята и щифта за „нулиране“на Arduino. Това осигурява средства за рестартиране на играта.
Стъпка 2: Софтуер
Софтуерът има файл за включване за моя LCD интерфейс и също така създадох файл за включване за матрично сканиране с превключвател 4x4. Инициализацията подканва играча да избере местоположението за своите кораби и след това преминава в състояние „Готов“. Когато и двамата играчи са готови, един от тях започва играта с натискане на превключвател.
Мястото на изстрел се предава чрез UART на другия играч и съответният резултат се предава обратно на играча, който е изстрелял. Както бе споменато по -рано, след като е направен първият кадър, софтуерът контролира кой ще направи следващия кадър. Преди да бъде предаден изстрел, той се проверява спрямо местоположението на предишните кадри. Ако това място вече е използвано, изстрелът няма да бъде предаден. Светодиодът „My_Shot“определя чий е редът. Създава се и звук на изстрел за валиден избор и звук на експлозия, ако кораб е ударен. Звуковите ефекти са получени от примери, намерени онлайн с модификации, които отговарят на играта.
След като всички кораби на противника са били ударени, на всеки LCD се показва съобщение - един като победител и един като губещ. Съобщението също така уточнява, че играта може да бъде рестартирана чрез натискане на бутона за нулиране. Има и отделни звукови ефекти за победителя и победения.
Стъпка 3: Екранни снимки
Ето няколко екранни снимки от играта. Това е всичко за този пост. Вижте другите ми инструктажи, а също и уебсайта ми на: www.boomerrules.wordpress.com
Препоръчано:
Интерфейс на космическия кораб Arduino: 3 стъпки
Интерфейс на космически кораб Arduino: Здравейте, инструкторска общност, Този път направих един от най -простите проекти, които да завърша с Arduino Uno: схема на космически кораб. Той е така наречен, защото е тип програмиране и схема, които биха били използвани в ранните научнофантастични телевизионни предавания и филми
Дистанционно управляван кораб на въздушна възглавница: 8 стъпки (със снимки)
Дистанционно управляван кораб на въздушна възглавница: ss
Детски космически кораб: 10 стъпки
Детски космически кораб: Винаги съм искал да построя един от тях като дете. Сега, когато имах две малки деца, имах добро извинение най -накрая да го направя. Обзор: Рамката на космическия кораб беше направена от дървен материал и беше покрита с шперплат. Електрониката работеше предимно на 12v
Контролен панел за космически кораб - Играчка с лазерно изрязване Arduino: 11 стъпки (със снимки)
Контролен панел на космически кораб - Играчка с лазерно изрязване Arduino: Преди няколко месеца реших да стана член на местното пространство за създаване, тъй като от векове искам да науча инструментите на търговията на производители. Имах малко опит с Arduino и бях взел курс по Fusion тук на Instructables. Въпреки това аз ч
Радиоуправляем кораб: 8 стъпки
Радиоуправляем звезден кораб: Имах идея в главата си, която просто нямаше да напусне. Аз съм фен на звездния телевизионен сериал Trek. Star Ship Enterprise е икона за моето поколение. Имах идея, която ще го остави да лети RC. "Дефлекторът" шушулката под двигателите изглеждаше