Съдържание:

Вграден LED дисплей Arduino игри: 7 стъпки (със снимки)
Вграден LED дисплей Arduino игри: 7 стъпки (със снимки)

Видео: Вграден LED дисплей Arduino игри: 7 стъпки (със снимки)

Видео: Вграден LED дисплей Arduino игри: 7 стъпки (със снимки)
Видео: Настя и сборник весёлых историй 2024, Юли
Anonim
Image
Image
Основни компоненти
Основни компоненти

известен още като LED стълбищна игрална система.

Attiny-85, оборудван с хардуер и софтуер за игра на екшън „видео“игри, на вграден LED дисплей.

Той има мултиплексиран 12 LED стълбен дисплей и поддържа до 6 бутона входа и допълнителен аудио изход.

Той е опакован с 4 игри с умения, с множество нива на трудност и някои вариации (актуализиран до 16 игри, когато се използва с ATMega MCU).

[Видео]

Стъпка 1: Основни компоненти

Изградих проекта си модулно (две отделни сборки). Основен подсъстав на дисплея; който може да се използва самостоятелно. И подкомпонент за въвеждане на бутон. По този начин мога да използвам бутона или дисплея отново в друг проект. Това също позволява гъвкави опции за монтаж.

Също така изведох контролната линия към заглавка на щифт за монтажа на LED стълба, за да мога да използвам Arduino Nano (или Uno), за разработване на софтуер за него, както и за използване в други проекти. Digispark няма да работи поради другите компоненти на неговата платка.

Избрах да използвам същите назначения на щифтове за LED стълбата, както в по -ранните инструкции, за да улесня онези, които вече имат такава хардуерна реализация, да използват софтуера в тази инструкция, въпреки че не намерих заданията, направени за най -ясната логика в софтуера.

Двете линии между модулите са PB4 и земята. Тъй като всичко, което е на сглобката с много бутони, е съпротивление и превключватели, така че не зависи от полярността и обръщането на връзката няма значение.

С поддръжката на повече бутони може да се реализира по -голямо разнообразие от игри (или приложения). Две от игрите в тази инструкция се играят най -добре с два бутона. Четирите основни бутона могат да се използват за директен достъп до свързана игра. Скоро ще внедря игра, която зависи от използването на четирите основни бутона.

Този проект използва до шест бутона. Четири основни от тях BTN 1-4, Тези бутони могат да бъдат открити индивидуално, дори когато два от тях са натиснати едновременно. Другите два са специални бутони, първо има еквивалент на единичния бутон в по -ранни проекти, който прави твърда връзка между входа PB4 към земята, наричам това BTN0 или ESC, тъй като този ключ винаги може да бъде открит и ще блокира откриването на някой от останалите. Другият специален клавиш е функционалният ключ, ако бъде натиснат при натискане на BTN 0-4, той може да бъде засечен и използван за промяна на функционалността.

В тази скица за игра на умения използвам:

  • FncKey+Btn1 се връща в режим на меню
  • FncKey+Btn2 предварително ниво на трудност (ако на най -високо се върнете към най -ниското)
  • FncKey+Btn4 незабавна пауза (натиснете произволен клавиш, за да отмените паузата)
  • FncKey + Btn 0 или 3 са неопределени.

Стъпка 2: Списък на частите

Списък с части
Списък с части

Необходими части

  • Светодиоди, червени, жълти, зелени и сини като тези
  • Печатни платки подобни артикули може да се наложи да закупите по -голяма платка и да я изрежете до желания размер.
  • гнездо за потапяне на щифтове подобни артикули
  • Чип Attiny-85
  • съпротивляващи се
  • използвани бутони: 12x12x8mm и 6x6x6mm PCB Моментални тактилни бутони

препоръчително:

  • зумер 5v, активен тип
  • пръчка от лопус
  • 2,54 мм лента за закрепване на щифтове
  • 30 g тел и инструмент за навиване на тел https://www.ebay.com/itm/351798901037 горната връзка е към проводник, който е по-скоро като 36 ga. Иска ми се да знам за подобна сделка за истински 30 g. тел

Стъпка 3: Акценти в строителството

Строителни акценти
Строителни акценти
Строителни акценти
Строителни акценти
Строителни акценти
Строителни акценти
Строителни акценти
Строителни акценти

На монтажа на основната платка електрически имам същите като другите по-ранни проекти за LED стълби, които може да искате да се обърнете за допълнителни основни строителни указания

Аз обаче не използвам външен резистор за издърпване на аналоговия вход A2 (PB4), също така използвам червени, жълти, зелени и сини светодиоди, вместо всички един цвят, което е желателно за някои от игрите, които създадох за този хардуер.

Ето задачите за входно -изходни операции, както се очаква от приложените софтуерни скици:

Проект MCU AT-85 Uno/Nano

Имена име пин# brd име --------- ---- ---- --------- Червено L1-3 PB3 2 D-11 Yel L4-6 PB0 5 D-8 Зелено L7-9 PB1 6 D-9 Синьо L10-11 PB2 7 D-10 Ain PB4/A2 3 A-2 Аудио PB5 1 D-3

Единствената съществена разлика е, че имам два бутона, свързани към PB4. Първият отива директно от PB4 към земята, но без външен резистор за издърпване (наричам това BTN0). Имам и бутон за превключване (който наричам BTN1), свързан със 75Kohm последователно към земята. Тази основна платка може да се използва без монтажната платка "Button", но с известна ограничена функционалност.

Текущите ограничителни съпротивления, преминаващи към комплектите светодиоди, трябва да бъдат избрани въз основа на яркостта на различните цветни светодиоди, които използвате, и колко ярки искате да ги имате. В крайна сметка получих 91 ома за червения комплект, 75 жълти, 430 зелени и 150 ома за синьо. Тези стойности може да изглеждат ниски, но не забравяйте, че светодиодите са мултиплексирани (обикновено в много <100% от времето)

Използвах 3 мм светодиоди и ги раздалечих малко. Имах краката на светодиода, обхващащ пръчка от Popsicle. По този начин всички те се изправиха еднакво и над всички останали компоненти. Възнамерявам в един момент да монтирам устройството само със светодиодите, стърчащи през рамка.

Избрах да обгърна LED връзките. Без специална печатна платка това е по -лесно от запояване на тесни места с много взаимосвързаности; не е склонен да произвежда къси панталони и е по -лесно да се пренареди в случай на грешка. С всички токове в и около микроконтролера в милиамперните проводници от 30 g са достатъчни.

Бутони и свързани съпротивления:

Измислих уникална конфигурация (нещо като двоен Y) на съпротивления и бутони, така че софтуерът да може да различава индивидуални и двойни натискания на бутони (теоретично може да се идентифицира всяка комбинация от тези четири бутона). Опитах няколко конфигурации с множество стойности на резистор в електронен лист, търсейки най -добрата конфигурация, след което ги симулирах в софтуер, като пробвах всички възможни комбинации от резистори, за да намеря набора (който използвам), който би произвел максимума от минималната разлика на аналогови показания между всяко и всички единични и двойни натискания на бутони. Подредих ги така, че Btn1, Btn4 и Btn1+4 по -специално да се различават.

Вижте диаграма на мрежата с бутони по -горе.

Трябва да прикриете всички проводници, които са свързани към PB4 (и евентуално да превключвате контакти и съпротивления) с електрическа лента, горещо лепило или нещо друго, което изобщо не се провежда, тъй като само мегаомовото съпротивление ще отхвърли способността да определя кои превключватели са натиснати; и всеки такъв контакт, който осъществите, докато държите събрание, би направил това.

По -късно свързани инструктажи:

4-Button-Games-Using-One-Analog-Input/

Dual-Power-for-Your-Portable-Micro-Controller-Proj/

3D-отпечатана кутия-за-вграден-LED-дисплей-конзола-и/

Стъпка 4: Допълнителни опции и бележки

Допълнителни опции и бележки
Допълнителни опции и бележки

Опционален аудио изход

Опционалният аудио изход използва PB5. Свързах 5v зумер, последователно със 150 Ohm резистор, за да огранича иначе силния досаден изход. Препоръчвам ви да използвате 50-200 ома. Може да се направи паралел на звънеца с капачка (2-10uf), за да стане по-малко дрезгав, или да се използва 10 мм високоговорител с 32 ома, избит от набор от евтини стерео слушалки, вместо резистора и зумера. Харесва ми, за звуците на играта, колкото по -добре.

По подразбиране Attiny-85 използва PB5 като нулиране, ефективно означава, че аудиото ще работи, но няма да има лош ефект върху никоя друга операция. Когато използвате Nano или Uno, аудиото ще работи (излиза неговият D3). За да получите аудио с Attiny, ще трябва да промените вътрешната конфигурация на пина, така че софтуерът да може да използва PB5 като изход. При това има значителни разклонения; моля вижте тези:

forum.arduino.cc/index.php?topic=178971.0

www.instructables.com/id/Simple-and-cheap-F…

и

Обикновено по време на играта грешка или неуспех ще извикат чуруликане или кратък малинов звук. Когато завършите ниво или спечелите, се играе поздравителна мелодия, като при пинг-понг. Намирам, че придружаването на аудио наистина увеличава радостта от играта.

Бутони за алтернативен тип игрален контролер

За моите внуци, които са груби по отношение на оборудването, направих устойчиви отделни бутони, Btn1 и Btn4, на края на дълги проводници. Вижте снимката. Монтирах бутоните в гривни за пресяване; с 75Kohm вграден с Btn1 и ~ 37Kohm вграден с Btn4. В серия с Btn4 всъщност използвах 36K, 33K или дори евентуално 39K. Имайки предвид външните бутони на буталото, би било добра идея да имате отделен набор от щифтове за заглавки, за свързване на външни ръчни бутони, разглеждани като Btn1 и Btn4.

Необходимо е качествено захранване

За източник на захранване можете да използвате директно USB 5v изхода на компютър, таблет, зарядно за стена, банка за захранване или батерия 3.7 Li.

Открих, че когато захранвам устройството от някои USB зарядни устройства и няколко USB банки за захранване, ще забележа трептене и случайно пропускане на поведение и дори нулиране. Ако изпитате това, намерете източник на захранване с по-добра регулация, в противен случай добавянето на голям (100-1000uf) кондензатор през +V към земята може да помогне.

Тестване

Включих и тестова програма, която да помогне за валидиране и отстраняване на грешки в хардуера ви. Кодът е в процес на разработка и има голяма нужда от почистване. Надявам се да стигна до това, но имам предвид, че трябва да отговаря на вашите нужди. Наскоро го използвах само с Nano, който управлява дисплея и клавиатурата. Можете да използвате почти всеки бутон за избор на елементи от режима на менюто. За да излезете от демонстрация/тест отново натиснете почти всеки бутон. За да излезете от бутонния тест (#4), натиснете FncKey+Btn1 или задръжте EscKey (заземяване PB4) или рециклирайте захранването.

Поради разликите във вътрешното съпротивление на MCU и толерансите на резисторите може да се наложи да направите някои настройки, така че всички единични и двойни натискания на бутони да бъдат открити правилно. За да направите това, използвайте test-4 (за да изберете това, вижте описанието на операцията в менюто по-долу) на тестовата програма. Обърнете внимание, че не съм използвал външен резистор за издърпване, тъй като съм планирал по-нататъшни приложения за входа PB4, които са несъвместими с всяко издърпване.

Стъпка 5: Преглед на софтуера

Скицата LadderGames.ino реализира четири игри, включително някои алтернативни версии.

Скицата може да бъде изтеглена и пусната от ATtiny-85, Nano, Uno и др. За да я програмирате в чип Attiny вижте: https://www.instructables.com/id/Program-an-ATtiny… и/или да програмирате вашият чип ATtiny-85:

Променете вътрешния часовник на ATtiny85 на 8MHz, тъй като производителността е желана за играта. Се отнасят:

forum.arduino.cc/index.php?topic=276606.0

Тази скица трябва да бъде съвместима с повечето по-ранни проекти за водещи стълби на ATtiny-85, без промяна, но ще има известна ограничена функционалност.

Работа с менюто

При стартиране има проверка на състоянието под формата на размахване на светодиодите и набор от звукови сигнали. След това преминава в режим на главно меню. Всеки набор от светодиоди от един цвят свети за няколко секунди последователно. Играта се избира чрез натискане на бутон, докато свети свързан набор, игра 1: червено, игра 2: жълто, игра 3: зелено, игра 4: синьо. Докато сте в режим на меню Btn2, Btn3, Btn4, можете да натиснете, за да отидете директно на игри 2, 3, 4 съответно. След като играта е избрана, ще трябва да посочите желания вариант. За всеки наличен вариант набор от цветни светодиоди ще мига. Просто натиснете бутон на този, който искате. Вариациите, „версии“, за всяка игра са описани по -долу.

Версия една от четирите игри може да се играе с един бутон. Или един свързан между PB4 и земята (Btn-0), както в по-ранните инструкции за LED стълба, или с превключвател, който свързва 75k товар към земята (Btn-1). Всяко от тези неща ще стане в игрите, когато инструкциите говорят за неконкретно натискане на бутон.

За да излезете от всяка игра, можете да използвате FncKey+Btn1, задръжте EscKey (известен още като: Btn0) надолу за 1-2 секунди или циклично включете захранването.

Стъпка 6: Игра на игри

Игра 1: Push-It

Това е адаптация на моята „Push-It“игра от една от по-ранните ми инструкции

www.instructables.com/id/Play-a-Game-with-a…

Целта на играта е да увеличи броя на миганията и броя на светещите светодиоди до възможно най -много. Push-Той започва с няколко мигания, които след това ще се повторят. Ако натиснете бутона след последната светкавица в поредицата и когато потенциално съществува допълнителна, следващият светодиод ще светне и броят на светкавиците ще се увеличи с един. Но ако "натиснете" преди или след периода от време на потенциална допълнителна светкавица, броят на светкавиците в комплекта ще бъде намален.

Всеки път, когато успеете да увеличите броя на светкавиците, нивото на трудност се увеличава, тъй като времето се ускорява малко, което прави по -трудно и по -трудно да се достигне до по -голям брой светкавици.

Текущият брой се съхранява в паметта на EEPROM за рестартиране на същото ниво по -късно.

Игра 2: Пинг-понг

Страхотна (макар и единствената) състезателна игра за двама играчи тук; където топката (единичен миг светлина) преминава от едната страна в другата, все по -бързо и по -бързо, всеки път, когато се „удари“обратно.

За първи път реализирах тази игра от един ред светлини на предния панел на бутоните на супер-мини компютър на аерокосмическата техника през 70-те години.

За да удари топката напред -назад, съответното гребло трябва да я удари (натиснат бутон), когато тя е в крайно положение (последен светодиод). Първата пропусната страна губи и светлините на печелившата страна мигат.

Има два варианта, единият изисква само един бутон (Btn 0 или 1), който ще удари топката в двата края; и втора версия, е за двама лице до глава, което изисква два бутона; бутон 1 от лявата страна и бутон 4 или 0 от другата. Използването на бутони 1 и 4 е за предпочитане, тъй като те няма да си пречат; всеки може да бъде ударен, за да върне топката от нейния край, независимо от състоянието на другия бутон.

Победителят в рали винаги е сървърът за следващото.

Игра 3: Стрелбище

Стреляйте по всички цели (светлини), за да завършите ниво. На всяко по -високо ниво действието е по -бързо.

Има две версии; една, където сайтът е фиксиран и целите се движат, и друг, където сайтът се движи и целите са неподвижни. Във всеки случай едно попадение нокаутира целевата светлина; и пропуск причинява изскачане на цел. Когато целта е в полезрението, мерникът светва по -ярко, в противен случай е приглушен.

При първа версия мерникът започва отляво (отдолу) и сканира надясно. Във версия 2 мерникът е фиксиран в средата, докато целта се движи отдясно наляво. Като погледнете кода, има призрачни версии 3 и 4, които могат да бъдат активирани, но вие излагате собственото си благосъстояние на свой собствен риск.

Игра 4: JumpMan

Идеята е, че преминавате през ниво на игра, където идват обекти, по които трябва да прескачате, докато напредвате, те идват по -бързо. В друга версия на играта има и обекти над главата, под които трябва да се сведете.

Във версия 1 има само обекти за прескачане. За да скочите, трябва да натиснете бутона, когато обектът стигне до последната клетка вляво; което се прояснява, когато това се случи. За да скочите 2 или повече последователни обекта, трябва да скочите (натиснете) на първия и да задържите бутона за останалите.

Във версия 2 над главата (мигащи) обекти се добавят. Те се прескачат чрез „скачане по време на клетката преди нея и освобождаване, докато тя е в крайната клетка. Само едно режийно покритие може да мига наведнъж, така че след като един премине, може да видите друг (който не мига преди) да ви оголи. Никога няма да има последователни режийни разходи, но те могат да бъдат в непосредствена близост до един или повече скачащи обекти (тип камък).

Във версия 3 на играта трябва да стигнете до, да използвате отделен бутон за горните обекти (Btn- 2, 4 или 0 по ваш избор); след това скоковете изискват Btn-1.

След като сте успели да преодолеете още четири обекта (а), отколкото не сте успели, напредвате в ниво; има аудио и визуални поздравления, след това възобновяване с по -висока скорост. Получаването от набор от последователни обекти се брои същото като един отделен обект.

Съветвам ви да разпечатате правилата за работа на игрите и да ги прочетете преди да играете игра, която не сте играли наскоро. В противен случай можете да се разочаровате; мислейки, че играта не работи правилно, когато е факт, но вие и играта имате различни начини и очаквания. Аз самата съм била любопитна към това повече от няколко пъти.

Стъпка 7: Актуализации, още игри

Image
Image

Направих 3D печатна конзолна кутия, в която да се помести In-Line LED стълба на дисплея и бутоните.

Измислих още игри, които използват този хардуер. Вижте ги и се забавлявайте:

Нови игри от „Whack a Mole“до „Tug of War“

Декември 2016. Сега, в края на горната връзка, има унифицирана версия на кода, включваща всички 12 игри.

17 февруари 2017 г.: Ето най -новия набор от игри за този проект, сега с 16 игри (скица по -долу). Това ще работи на всяка MCU реализация с 32KBytes флаш памет на програмата. Въпреки че всяка една до 3 или 4 от 16 -те игри може да бъде поставена в ATtiny. Препоръчвам да използвате Nano 3 arduinos. Последните 4 добавени игри са „Le Mans“състезания, „Spray“състезание за рисуване с глава до главата., „PIG“стрелба с баскетболен обръч, „BiFunc“игра с тестове за бинарни операции.

С по-голямото и разнообразно играене на тези игри са възможни подобрения в техните способности за игра, наслада за всички играчи на ниво. Мисля, че има много място за подобрения в състезанията в Льо Ман чрез оформлението на пистата и графика на играта.

Имам, написано, още около 10 дейности/игри/функции, някои от които се надявам да направя достъпни около есента на 2017 г.

Също така тези игри на един ред могат да бъдат модифицирани за 2 -редов 2x16 LCD дисплей, с един ред обекти на игра, а друг за някакъв текст. Направих малко от това, но тъй като съм подкрепен с проекти, доколкото виждам, не знам кога и дали бих могъл да го направя. Така че, ако някой е мотивиран да приеме и оптимизира тези игри за 2x16 LCD, моля, споделете с мен и другите.

Освен четирите нови игри тук в Menu_16Games.ino, аз приложих моя проект и създадох свързани инструкции: Вградена LED игрална конзола за игра и захранване на вашия преносим MCU проект

Надявам се мнозина да отделят време и… Насладете се на тези игри.

Групова игра: 1– Червено 2- Жълто 3- Зелено 4- Синьо

1 червен PushIt PingPong ShootEmUp JumpMan 2 Yel QuickDraw Tug_a_War Пиле Hot_Hands 3 Grn Le_Mans Spray PIG BiFunc 4 Blu SimonSays Whack_Mole Sea_Hunt Flip_d

2 септември 2017 г.: Подобрена работоспособност със стари мръсни шумни външни бутони на джойстика, в игра с глава (група 2).

13 декември 2017 г.: Подобрено управление на отскачането на бутоните и уреждането на измерванията, отстранени незначителни проблеми. Опитах се да използвам кондензатор на аналоговата входна линия на бутона, но за да бъда ефективен, това доведе до бавно утаяване на измерването, което доведе до фалшиви идентификации на ниво или софтуера, който чака толкова дълго това бързо действие на играта е компрометирано.

Април 2018: Открих, че 5/8 "компресионните съединители правят страхотни тела за външни бутони в стил бутало. Тъй като децата ми обичат да използват чифт от тях, добавих заглавни щифтове, за да свържа лесно два от тях (като Btn1 & Btn4).

Имайте предвид, че създадох друг проект, през октомври миналата година, който е изграден върху хардуера на тази инструкция. Това е в духа на Хелоуин и може да бъде много забавно, особено за децата. Инструктивни: Призрачно-психически-повлияни устройства

Препоръчано: