Съдържание:

Мобилно игрално устройство Raspberry Pi: 11 стъпки
Мобилно игрално устройство Raspberry Pi: 11 стъпки

Видео: Мобилно игрално устройство Raspberry Pi: 11 стъпки

Видео: Мобилно игрално устройство Raspberry Pi: 11 стъпки
Видео: 1. Q light controller plus Getting started with QLC+. Fixtures and functions 2024, Юли
Anonim
Мобилно игрово устройство Raspberry Pi
Мобилно игрово устройство Raspberry Pi

Искали ли сте някога да можете да играете класически видео игри в движение, но не сте сигурни къде да вземете устройство, способно да изпълнява стари игри, или те бяха просто твърде скъпи? Тогава направете своя собствена!

Това е документация за изграждането на моето Raspberry Pi Mobile Gaming Device, вдъхновена от Nintendo Switch. Цената е малко под 200 долара и е в състояние да изпълнява много по -стари игри с използването на RetroPie. RetroPie има над 30 емулатора, вградени, така че пускането на по -стари игри е лесно, стига да имате ROM!

Имаше много неща, които бих направил различно в този проект и ще се опитам да споделя това с вас в този урок. По този начин можете да се поучите от грешките ми, без да се налага да ги правите сами.

Надяваме се, че можете да използвате инструкциите в този урок, за да създадете свое собствено игрално устройство Raspberry Pi. Ако го направите, моля, кажете ми, като кликнете върху „Аз го направих!“в края на Instructable.

Също така, ако този проект ви харесва, моля, гласувайте за него, както е в конкурса Game Life. Благодаря!

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

УМЕНИЯ

Ще трябва да бъдете удобни с поялник, да познавате основни Python и да знаете малко в дървообработването.

Възможността за унищожаване на видео игри също е задължителна (все още работя върху това …)

ЧАСТИ

1x Raspberry Pi 2 или 3 - 35 долара

1x Raspberry Pi Official 7 сензорен екран - 75 долара

1x Micro SD карта (минимум 8GB, вероятно ще искате повече за вашите ROM!)

1x литиево -йонна батерия - 3.7V 4400mAh - $ 19.95 (https://www.adafruit.com/product/354)

2x аналогов 2 -осен джойстик за палец - $ 5.95 (https://www.adafruit.com/product/512)

1x зарядно устройство PowerBoost 1000 - 19,95 долара (https://www.adafruit.com/product/2465)

1x MCP3008 - 8 -канален 10 -битов ADC - $ 3.75 (https://www.adafruit.com/product/856)

1x Adafruit дрънкулка - $ 6.95 (https://www.adafruit.com/product/1500)

4x 3 мм светодиоди

Асортимент от тактилни бутони - (кръг: https://www.adafruit.com/product/1009 и квадрат:

Асортимент от проводници, резистори и други малки компоненти

Perf борда

1/4 "дърво и 1/2" дърво за изграждане на корпуса

ИНСТРУМЕНТИ

Поялник

Клещи за игла за нос

Стрипер за тел

Станция за запояване/Ръка за помощ също може да бъде полезна.

Преса за бормашина

Лентов трион/трион за превъртане

Трион за маса

Шлифовъчна лента

Инструмент Dremel

СОФТУЕР

RetroPie (https://retropie.org.uk)

Всички кодове и схеми на Fritzing са достъпни в този Github файл

Ще ви е необходим и друг компютър, за да заредите RetroPie и ROM на вашия Raspberry Pi. Този компютър ще се нуждае от Etcher.io, Win32DiskImager или друго приложение, което може да записва RetroPie на SD карта, заедно с най -новата Arduino IDE. Ако използвате Windows, ще трябва да инсталирате PuTTY (https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html), за да SSH във вашия Raspberry Pi.

Стъпка 2: Макет на вашите схеми

Започнах с макетирането на схемите си, за да се уверя, че всичко работи по план.

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

Всички контроли са свързани към 3.3v, свързването към 5v може да повреди вашия Raspberry Pi

Окабеляване на контролера

Общо има 12 бутона за управление. 4 за A/B/X/Y, 4 за DPAD, по един за всеки Старт и Избор и два бутона за рамо. Може да имате 4 бутона за рамо в зависимост от пространството, но повечето игри на RetroPie, които изискват бутони за рамо, изискват само два (мисля …).

Бутоните са свързани от едната страна към 3.3v чрез 10k резистор, а от същата страна са свързани към съответния им GPIO щифт чрез 1k резистор. Другата страна е свързана директно към GND (маса). Ако логиката е различна във вашата схема, уверете се, че логиката във вашия код отразява това! В кода, който предоставих, може да работи така или иначе, но не ме цитирайте по този въпрос;)

Джойстиците са свързани към MCP3008 ADC (аналогово -цифров преобразувател). Има 8 канала от едната страна и SPI интерфейсът от другата. Уверете се, че свързвате изходите от джойстиците към правилната страна на ADC! Джойстиците X, Y и SEL (избор на бутон) са свързани към ADC. ПИН -то SEL не е аналогово, но за да спестя на GPIO пиновете, ги свързах към ADC. Направих резистор от щифтовете SEL към 3.3v, тъй като изходът е настроен на плаваща стойност, когато не е натиснат, след това късо заземен при натискане.

ADC е свързан чрез 4 пина към Raspberry Pi, но някои изводи не се изискват (доколкото знам. Щифтовете в схемата са тествани и работят добре, заедно с няколко други). Както казах по -горе, уверете се, че кодът отразява вашия хардуер!

Захранване

Първо ще трябва да качите кода за Trinket от Arduino IDE. Отворете файла TrinketRPi.ino в IDE на Arduino, изберете дъската и порта от менюто с инструменти и натиснете бутона за качване.

5v изходът на PowerBoost е свързан директно към Raspberry Pi 5v GPIO щифт и 5v щифт на сензорния екран, а земята от PowerBoost е свързана към заземяващите щифтове Pi и Touchscreen. Дрънкулката се захранва от 3.3v GPIO щифт на Raspberry Pi.

Дрънкулката Adafruit се използва за контрол на захранването. Пин 0 на Trinket е свързан към GPIO 15 (не физически 15) на Raspberry Pi, а щифт 2 на Trinket е свързан към EN пина на PowerBoost. Заедно с това, бутонът за захранване е свързан между BAT и EN на PowerBoost. Когато този бутон се натисне и задържи за около 5 секунди (времето, необходимо за стартиране на дрънкулката), всичко се включва. Когато се освободи, дрънкулката държи щифт 2 ВИСОК (свързан с щифт EN на PowerBoost), като запазва захранването към системата.

Бутонът за захранване работи само като ключ за включване, тъй като не бях сигурен как да направя верига, която да му позволи да действа както включено, така и изключено. Pi все още може лесно да бъде изключен от софтуера!

Когато Pi стартира, щифт 15 е настроен на HIGH (Controller.py), за да уведоми дрънкулката, че е включен. Когато Pi се изключи по някакъв начин, щифт 15 се понижава, което кара дрънкулката да задържи захранването за ~ 20 секунди, след което напълно да изключи захранването.

Съжалявам да кажа, че направих някои промени в това, които сега са заровени в заграждение, и не съм сигурен какво направих, тъй като този проект беше направен преди известно време. Това оформление трябва да работи, но моля тествайте го, преди да го натъпчете на недостъпно място!

BAT изводът на PowerBoost е свързан към ADC, за да отчете нивото на батерията. 6.8k резистор свързва щифта BAT към ADC канала, а друг 10k резистор свързва щифта BAT към GND. Това позволява на ADC да получи изходното напрежение на батерията и да приближи нивото на батерията. При зареждане изходът на батерията ще бъде 5v, така че няма начин да разберете нивото на батерията, докато се зарежда с тази настройка.

Ако искате, можете да свържете VBUS към PowerBoost по същия начин като BAT; това ви позволява да знаете дали батерията се зарежда.

Индикаторни светодиоди

Четирите индикаторни светодиода ви позволяват да видите неща като ниво на батерията, сила на звука или яркост на дисплея. Кодът е настроен само за нивото на батерията в момента.

Всеки 3 мм светодиод е свързан от GPIO щифт, през 100ohm резистор и обратно към земята. Моите светодиоди са зелени, не забравяйте да изберете подходящите резистори за други цветни светодиоди, тъй като те имат различни изисквания за мощност!

Това е за окабеляване! След като сте тествали окабеляването си върху макет, можете да започнете да правите по -постоянна верига.

Стъпка 3: Настройте софтуера

Настройте софтуера
Настройте софтуера

За да заредите RetroPie на SD картата, ще ви трябва приложение като Etcher.io (препоръчително) или Win32DiskImager и операционната система RetroPie от връзката в началото.

За да използвате Etcher, първо поставете вашата micro SD карта в компютъра. Отворете Etcher и кликнете върху „Избор на изображение“. Придвижете се до папката, от която сте изтеглили RetroPie, изберете я и кликнете върху „Отваряне“. След това кликнете върху „Избор на устройство“и изберете вашата SD карта от списъка. Уверете се, че сте избрали правилната SD карта, тъй като тя ще я изтрие! Кликнете върху „Flash“и изчакайте да приключи. Той автоматично ще извади SD картата, след като го направите, така че е безопасно да го извадите, ако е от компютъра ви.

Ако нямате Raspberry Pi 3, ще ви е необходим WiFi ключ. На тази стъпка е полезен контролер за игри, но е необходима само клавиатура. Поставете SD картата в Raspberry Pi, свържете я с монитор (сензорният екран работи добре) и свържете захранването. След като RetroPie се зареди, ще трябва да настроите контролите. Изберете вашия контролер/клавиатура и следвайте инструкциите. След като приключите, отворете настройките за WiFi в менюто RetroPie и настройте своя WiFi.

Също така ще трябва да активирате SSH. Върнете се в менюто RetroPie и изберете raspi-config от списъка (вярвам, че това е мястото, където е). Под интерфейси изберете SSH. Той ще ви попита дали искате да активирате SSH. Изберете Да.

Може да се наложи да рестартирате Pi сега. След като се рестартира, върнете се в менюто RetroPie. Вярвам, че има IP адрес или опция за име на хост, която ще ви каже IP адреса на Raspberry Pi. Копирайте това на лист хартия или просто оставете това меню отворено засега.

На вашия компютър ще трябва да SSH във вашия Raspberry Pi.

Ако сте под Windows, изтеглете, инсталирайте и отворете PuTTY (връзка в списъка с части) и задайте полето „Име на хост (или IP адрес)“на името на хоста на вашия Raspberry Pi, след което щракнете върху „Отваряне“, за да започнете сесията.

На Mac и Linux можете просто да отворите терминал и да въведете

$ ssh pi@име на хост

замяна на „hostname“с IP адреса, който имате на Raspberry Pi. Имайте предвид, че $ не е въведен в терминала, това просто означава, че това е нов терминален подкана.

След това въведете

$ nano /home/pi/Controller.py

и поставете съдържанието на файла Controller.py от Github в него. Controller.py е скриптът на python, който обработва всички контролни входове, като джойстици и бутони.

Ще трябва да промените пиновите номера, за да съответстват на тези във вашия хардуер.

Натиснете CTRL-X или CMD-X и след това Y, за да запазите файла. След това въведете

$ sudo nano /etc/rc.local

след това въведете този ред във файла:

sudo python3 /home/pi/Controller.py &

след това натиснете CTRL-X (Windows) или CMD-X (Mac) и след това Y (без CTRL/CMD), за да запишете. Това задава скрипта Controller.py да се стартира при стартиране.

След това можете да нулирате конфигурацията на вашия контролер, така че да можете да използвате бутоните/джойстиците вместо USB контролер за игри.

$ sudo ~/RetroPie-Setup/retropie_setup.sh

и отидете на конфигурацията на Emulation Station чрез

Управление на пакети -> Основни пакети -> емулационна станция -> Конфигурация или Конфигурация / Инструменти -> емулационна станция и изберете опцията за Изчистване / Нулиране на входната конфигурация на станцията за емулация

Следващият път, когато рестартирате, вашият USB контролер няма да бъде настроен повече, но в този момент ще можете да настроите вашите персонализирани контроли.

В този момент можете да заредите вашите ROM в Raspberry Pi. Има много различни начини да направите това и намерих тези видеоклипове за най -полезни:

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

Over your Network - Тази опция ви позволява да прехвърляте ROM от файловия браузър на вашия компютър, което улеснява навигацията до вашите файлове. Той също така ви позволява да изследвате и редактирате някои споделени папки в RetroPie, като BIOS, екрани за заглаждане и конфигурационни файлове.

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

Стъпка 4: Подгответе Raspberry Pi и сензорен екран

За този проект пространството щеше да бъде минимално, затова започнах с премахването на ненужните компоненти от Raspberry Pi.

Първо бяха USB и Ethernet портовете. Запояването върху тях може да бъде трудно да се отстрани, тъй като има висока температура на топене. Отрязах по -голямата част от всяко пристанище с ламарина и след това разпаявах останалите части. Бъдете внимателни, докато премахвате тези портове, тъй като някои по -малки компоненти могат лесно да бъдат премахнати от Raspberry Pi (говорейки от опит).

Един USB порт е свързан (не директно) към наскоро изложените USB спойки на Raspberry Pi. Това позволява тя да бъде свързана отстрани на корпуса.

USB портът за захранване беше премахнат от сензорния екран по същия начин.

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

Стъпка 5: Създайте вериги за контроли

Създайте вериги за контроли
Създайте вериги за контроли
Създайте вериги за контроли
Създайте вериги за контроли

За тази стъпка ще ви трябват секции от перф дъска, към които да запоявате бутоните. Открих, че перф дъската с медни следи в линии между някои от отворите може да работи по -добре от перф дъската с всички отвори разделени. От вас зависи какво ще използвате;)

Ще има два комплекта от 4 бутона в диамантена форма за DPAD и за A/B/X/Y. Забравих да снимам моите, докато го сглобявам, но не би трябвало да е много трудно да разбера оформлението. Бутоните ми бяха почти докосващи по два от техните ъгли всеки. Бутоните Старт/Избор могат да бъдат запоени към отделна перфорирана дъска или може да успеете да ги свържете към перфорираната платка с бутон A/B/X/Y. Бутоните на раменете трябва да бъдат запоени и на техните собствени индивидуални перфорирани дъски.

Джойстиците в моя случай трябваше да бъдат запоени към включените в тях пробивни дъски. Вероятно вече сте го направили, ако и при вас беше така:)

Светодиодите бяха запоени към една лента от перф платка, както и ADC.

Не забравяйте да тествате окабеляването с волтов метър, защото тестването след инсталиране на всичко в кутията може да бъде сложно!

Може да изчакате, преди да запоите някакви проводници към Raspberry Pi или между секциите на перф дъската, докато разберете оформлението на корпуса. Не го направих и това затрудни по -нататъшното приспособяване на всичко (упс).

Стъпка 6: Създаване на случая

Създаване на случая
Създаване на случая
Създаване на случая
Създаване на случая
Създаване на случая
Създаване на случая
Създаване на случая
Създаване на случая

Случаят вероятно е най -дългият в този проект. Калъфът, който правите, най -вероятно ще се различава от моя, така че няма да давам точни размери за нищо (плюс загубих оформлението на кутията).

Предната, горната и задната част са изработени от 1/4 "дърво (ако си спомням правилно), а страните и дъното са изработени от 1/2" дърво.

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

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

Големият отвор за сензорния екран се измерва от металната част на гърба на сензорния екран. Започнах с пробиване на дупка близо до единия край на мястото, където щеше да мине екранът, премахнах единия край на циркулярния трион, пъхнах го през отвора и го закрепих отново, за да мога да изрежа дупката. В правоъгълния отвор беше направено малко надминаване, за да може лентовият кабел на гърба на екрана да премине (на снимката по -горе). Използвах инструмента Dremel, за да обръсна секция надолу отстрани на тази дупка, така че сензорният екран да лежи в равна близост до корпуса.

Горната част на кутията е пробита по почти същия начин, с правоъгълни отвори за HDMI, A/V жак, USB порт и порт за зареждане. Raspberry Pi се намира точно до горната част на кутията, така че HDMI и A/V кабелите не са необходими. Вероятно трябваше да използвам удължители, тъй като бяха донякъде прилепнали.

На гърба на кутията има шест отвора за вентилация. Те нямат определен размер или оформление, така че можете да направите страхотен модел с тях! Забравих да пробия дупка зад индикаторите за зареждане на PowerBoost, така че трябва да държа устройството точно така, че да мога да ги виждам през вентилационните отвори. Може да искате да пробиете малка дупка в задната част на кутията, за да ги видите!

Страните и долната част на кутията са назъбени по краищата, така че да се вдлъбнат заедно и да създадат джоб за предната и задната част.

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

Стъпка 7: Завършване на електрониката и тестване

Завършване на електрониката и монтаж на тестове
Завършване на електрониката и монтаж на тестове
Завършване на електрониката и монтаж на тестове
Завършване на електрониката и монтаж на тестове

На този етап трябва да завършите електрониката, като запоите останалите проводници между секциите на перф дъската. Уверете се, че проводниците са с правилната дължина, за да стигнете до мястото, където трябва да отидете. Винаги отивайте малко прекалено дълго, тъй като можете леко да огънете проводниците, но не можете да ги разтегнете!

Проводниците могат да бъдат директно запоени към Raspberry Pi, просто се уверете, че сте проверили добре разположението, преди да направите нещо постоянно!

Открих, че е полезно да се създаде лента за перф дъска, която да има заземяване и напрежение, така че всяка секция на перф дъска да може да се свърже с тази, вместо с различни щифтове на Raspberry Pi или други секции.

Тествайте отворите и разстоянието, за да сте сигурни, че оформлението ви работи!

Стъпка 8: Боядисване

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

Стъпка 9: Инсталиране на компоненти

Инсталиране на компоненти
Инсталиране на компоненти
Инсталиране на компоненти
Инсталиране на компоненти

За да инсталирам копчетата, отрязах малки парчета от 1/4 дърво, които бяха залепени за секциите на перфорираната дъска. След това те бяха залепени към вътрешността на кутията на съответните им места с помощта на супер лепило, тъй като лепилото за дърво затруднява задържането на място, докато изсъхне.

За джойстиците направих малки „стойки“, използвайки дюбели и малки парчета дърво, които след това се завинтваха и/или залепваха за монтажните отвори на разчупващите дъски. Използвах супер лепило Gorilla, тъй като се свързва бързо и може лесно да се свърже с дърво и перфорирана дъска. Една дъска за пробиване на джойстика трябваше да бъде подрязана от едната страна с лентова шлайфмашина, за да приляга по -добре.

Raspberry Pi е инсталиран по подобен начин на джойстиците, с дървени стойки, прикрепени към някои от монтажните отвори.

PowerBoost имаше малък дървен блок, залепен към дъното, който след това беше залепен отстрани на кутията.

Светодиодите просто бяха залепени директно към кутията. Разбрах, че суперлепилото „изгори“боята, ако попадне отвън при инсталирането на светодиодите, така че ще искате да бъдете внимателни, когато го правите.

След като свържете батерията, тя беше залепена към дъното на кутията с помощта на двустранна лента от пяна, която изглежда се държи добре.

След това можете да тествате дали се включва и да продължите към последната стъпка.

Стъпка 10: Завършване

Завършване
Завършване

Сега, когато хардуерът е свършен, можете да завършите настройката на контролите в RetroPie. Първо включете захранващ адаптер 5v 2.5A или всеки официален захранващ адаптер Raspberry Pi, тъй като батерията ви може да не е заредена още. Уверете се, че имате поне 2.5A, ако вашият Pi е включен, докато го зареждате, тъй като мощността е разделена между веригата за зареждане PowerBoost и Raspberry Pi. Ако го зареждате, докато Pi е изключен, всяко зарядно устройство трябва да работи. Стартирайте вашия Raspberry Pi, като задържите бутона за захранване за около 5 секунди. Открих, че моят не се зарежда, докато е включен по някаква причина, така че може да се наложи да зареждате батерията, докато зеленият индикатор на PowerBoost светне (батерията е заредена) и след това да я изключите. След като RetroPie стартира, ще трябва да настроите отново контролера, само че този път това ще бъде контролерът на Python. След като настроите контролите си, уверете се, че всичко работи, като стартирате любимата си игра и я тествате!

Стъпка 11: Последни думи и кредити

Честито! Завършихте собственото си Raspberry Pi мобилно устройство за игри! Забавлявайте се да играете игри в движение и да ги показвате на приятелите си!

Няколко неща, които бих направил по различен начин, са:

- Използване на Arduino за контроли, вместо да се свързва директно към Raspberry Pi. Няколко пъти изгарях GPIO щифт и (вярвам) Arduino има по -голяма защита от пина от Pi.

- 3D принтирането би било хубаво за калъф, но за съжаление нямам (все още)

- По -добре е планирано окабеляването. Бързах направо в този проект, след което разбрах малко късно, че трябваше да направя още малко планиране:)

- Отвори за светодиоди за състоянието на зареждане. Светодиодите на индикатора за зареждане на PowerBoost показват дали батерията е заредена или не, а аз забравих да пробия дупка, за да могат да се видят. Добро място вероятно би било задната част на кутията зад PowerBoost или отгоре над светодиодите.

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

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

Бих искал да благодаря на г -н Фийлдс, че ми помогна в този проект. Той любезно дари своето време, работилница и дървесината за този проект. Той ми помогна да науча повече за дървообработването и успя да ме насочи през процеса на създаване на случая.

Благодарим ви, че прочетохте тази инструкция!

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