Съдържание:

Визитка/Игрова конзола: ATtiny85 и OLED екран: 5 стъпки (със снимки)
Визитка/Игрова конзола: ATtiny85 и OLED екран: 5 стъпки (със снимки)

Видео: Визитка/Игрова конзола: ATtiny85 и OLED екран: 5 стъпки (със снимки)

Видео: Визитка/Игрова конзола: ATtiny85 и OLED екран: 5 стъпки (със снимки)
Видео: Портативна конзола с 620 вградени игри и ретро дизайн - 4sales.BG 2024, Ноември
Anonim
Image
Image
Кишките
Кишките

Здравейте всички

Днес ще ви покажа как можете да създадете своя собствена визитка/конзола за игри/каквото можете да си представите, което включва I2C OLED дисплей с подсветка и микропроцесор ATtiny85. В тази инструкция ще ви разкажа как всъщност функционира платката, която проектирах, как можете да я изградите и какво можете да направите с тази функционалност. Ако вече имате I2C екран, свързан към ATtiny85, този Instructable все още може да бъде полезен, ако се опитвате да покажете изображения или искате да направите менюта, игра и др.

Сигурно се чудите какво всъщност представлява това нещо. Това е просто обикновена печатна платка с вградена батерия, екран, бутони, превключвател за включване/изключване и процесор. Мислете за това като за малък Gameboy, който лесно можете да програмирате, за да правите различни неща. Напред!

Стъпка 1: Кишките

Кишките
Кишките
Кишките
Кишките

Ако още не сте го направили, горещо ви препоръчвам да си направите акаунт на circuits.io. Това ще ви позволи да персонализирате моя дизайн според вашите нужди.

В тази стъпка ще обясня как всъщност можете да се докоснете до една от тези печатни платки (печатни платки). Направих моята печатна платка в circuits.io, чудесен онлайн инструмент, който можете да използвате за създаване на схеми на вериги и печатни платки. Можете да видите дизайна тук:

Ако се интересувате от получаването на печатни платки, можете да поръчате колкото искате от OSH Park, като използвате тази връзка:

Получаването на дъските отнема известно време (1-3 седмици), но повярвайте ми. Заслужава си! За да създадете своя собствена многофункционална карта, ще ви трябват следните части:

  • ATtiny85 в пакет SOIC-8. Това е мозъкът на нашия проект, който контролира ВСИЧКО.
  • I2C 128x64 пиксел OLED екран:
  • 2 22k ома резистора. Това са издърпващи се резистори за бутоните.
  • Държач за повърхностен монтаж CR2032:
  • Монетарна батерия CR2032. Тази малка батерия може да захранва веригата за доста дълго време.
  • 3-пинов плъзгащ превключвател. Това е превключвателят на захранването!
  • Женски заглавки. Можете да ги използвате, за да програмирате ATtiny85, докато е във веригата!
  • 6 -милиметрови бутони:
  • Печатна платка (можете да я поръчате, като използвате връзката по -горе

Инструменти:

  • Поялник (с фин връх)
  • Припой
  • Оловни машинки за подстригване

За програмиране на ATtiny85:

  • 6 джъмперни проводници от мъжки към мъжки
  • Един кондензатор с 10 микрофарада
  • Arduino Uno или друг микроконтролер, базиран на ATmega

Стъпка 2: Сглобяване на печатни платки

Сглобяване на печатни платки
Сглобяване на печатни платки
Сглобяване на печатни платки
Сглобяване на печатни платки

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

Няколко полезни съвета:

  • Малката точка на ATtiny трябва да бъде ориентирана така, че да е близо до плъзгащия превключвател, в противен случай ще имате щифтовете в грешен ред.
  • Ориентацията на държача на батерията има значение. Краят на държача с гравиран плюс трябва да бъде на долната подложка (насочена към резистор).
  • Ориентацията на превключвателите, бутоните, заглавките и резисторите няма значение

Ако имате въпроси, моля, изпратете ми имейл на info [at] coniferapps.com

Стъпка 3: Време е за програмиране

Накарах комбото ATtiny/screen да работи, като използвам следните инструкции: https://www.instructables.com/id/ATTiny85-connects-to-I2C-OLED-display-Great-Things/. Всъщност дори използвам библиотеката, която AndyB2 модифицира в собствените си скици.

Начинът, по който ще програмираме ATtiny е чрез Arduino Uno. Следният Instructable ви показва как да направите това: https://www.instructables.com/id/Program-an-ATtiny-with-Arduino/. Ако все още не сте забелязали, всички необходими щифтове са полезно разбити на печатната платка с номера на пиновете, обозначени на гърба.

Ако искате да започнете с основен пример, качете скицата, свързана по -горе, във вашата карта. Уверете се, че превключвателят на захранването е преместен надясно, преди да направите това. Не искате батерията и Uno да подават напрежение едновременно! В тази папка има куп файлове. Ще говоря за това повече в следващата стъпка, но повечето от заглавните файлове там са шестнадесетични изображения на монохроматични растерни изображения.. Bmp файловете са тези изображения, които току -що споменах - както можете да видите, те са черно -бели и точно 128x64 пиксела. Те не са качени в микроконтролера, но реших да ги включа за справка.

Стъпка 4: За самата програма

Скицата, която качих да качите в предишната стъпка, е много основен пример за това как можете да внедрите меню. Когато натискате всеки от левия и десния бутон, той превключва брояч в програмата. След това се извиква функция, която ATtiny проверява състоянието на този брояч и въз основа на номера на брояча ATtiny рисува изображение на избраната в момента опция от менюто на екрана. Всяка от различните избрани клетки от менюто е свое собствено изображение. Ако горният бутон е натиснат, ATtiny отново проверява състоянието на брояча, за да определи какъв екран с подробности да се покаже. Докато се показват тези екрани с подробности, ATtiny непрекъснато проверява дали е натиснат някой бутон. След като открие натискане на бутон, функцията, която изготвя менютата, се извиква отново и текущото състояние на менюто се изчертава на екрана, което ни връща обратно в менюто. Звучи донякъде обезсърчително, ако сте нов в програмирането, но обещавам ви, щом погледнете кода, ще има повече смисъл.

Всеки от екраните с детайли също е свой собствен образ.

Ако не сте забелязали, опцията за изненада не прави нищо. Ще стигнем до това в следващата стъпка:).

Стъпка 5: Персонализиране на вашето творение

След като видяхте какво направих, е време да персонализирате картата със собствена информация. Тази библиотека, която включих, има функция за изчертаване на текст на екрана, но горещо ви препоръчвам да отидете със строго базирано на изображения решение, тъй като има тенденция да изглежда МНОГО по-добре. Първоначално щях да направя добавяне на снимки към програмната част на тази инструкция, но това е достатъчно дълго, за да гарантира собствената си инструкция. Можете да го видите тук:

Сега, когато знаете как да добавяте снимки, има куп неща, които можете да накарате картата да прави. Можете да използвате менютата и помощния екран и просто да добавите собствена информация за контакт. Можете дори да направите малка игра за опцията „изненада“. Би било доста лесно да преместите много малък спрайт 10x10 по екрана с помощта на бутоните и да проверите дали се сблъсква с друг спрайт. Можете да направите клониран птица клонинг, използвайки същата концепция! Ако все пак направите нещо, моля, публикувайте снимка/видео/файл в коментарите!

Още един малък момент, който забравих да спомена. Що се отнася до съхранението, ATtiny85 няма много от него. За програми това е около 8kb. Сегашната ми скица с 5 снимки и OLED дисплейна библиотека заема около 7 от тези 8 kb. Всяка игра, която направите, ще трябва да се побере в този сравнително малък марж, така че ще бъде забавно предизвикателство:).

Благодаря, че ме изслушахте, и ако имате въпроси, не се колебайте да ми пишете на info [at] coniferapps.com (заменете [at] с @). Моля, гласувайте за мен в конкурса Autodesk Circuits! Надяваме се скоро да имате своя собствена визитка/игра, която да покажете!

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