Мазмұны:

Үйдегі ойын консолі- «NinTIMdo RP»: 7 қадам (суреттермен)
Үйдегі ойын консолі- «NinTIMdo RP»: 7 қадам (суреттермен)

Бейне: Үйдегі ойын консолі- «NinTIMdo RP»: 7 қадам (суреттермен)

Бейне: Үйдегі ойын консолі- «NinTIMdo RP»: 7 қадам (суреттермен)
Бейне: Кофеден артық: Голанг. Неліктен Java әзірлеушілері GO тілін екінші тіл ретінде үйренуде. 2024, Желтоқсан
Anonim
Image
Image
Үйдегі ойын консолі
Үйдегі ойын консолі

Қосымша түсіндірмелермен, бөліктер тізімімен және файлдармен веб-бетке сілтеме

timlindquist.me

Бұл жоба портативті компьютер ретінде екі еселене алатын портативті ойын жүйесін құру болды. Мақсаты функционалды, сонымен қатар эстетикалық тартымды консоль жасау болды.

Бөлшектер тізімі:

docs.google.com/spreadsheets/d/1Ay6-aW4nAt…

1 -қадам: Корпусты басып шығару

Баспа корпусы
Баспа корпусы
Баспа корпусы
Баспа корпусы

Құрылғыны басып шығару үшін менің 3D модельдік файлдарымды жүктеп алып, оларды 3D принтерге жіберіңіз. Мен қолданған принтер қара пластикалық жіппен бірге Prusa i3 Mk2 болды. Орташа ажыратымдылықта басып шығару сапасы ең жақсы деп табылды. Құрылғының астына құрылымдық материал қосқаныңызға сенімді болыңыз (қол ұстағыштары онсыз нашар көрінеді). Артқы бөліктер пластинамен артқы жағымен басылды. Алдыңғы бөліктер тақтайшаның алдыңғы бетімен бірдей етіп басылды. Егер мен басқа корпусты басып шығаратын болсам, интерьерді көрсету үшін атомды күлгін сияқты жаңа түсті қолданғым келеді. Егер сіз мен сияқты болсаңыз және сізбен жұмыс істеу үшін 8 дюймдік баспа төсегі болса, сіз 4 бөліктен тұратын нұсқаны басып шығаруыңыз керек. басып шығарғаннан кейін жиналады. Алайда, егер сіздің төсегіңіз үлкен болса, алдыңғы және артқы тақтаны бірлікке басып шығарыңыз және оларды біріктірудің ауыртпалығын болдырмаңыз.

Үлгі файлдары:

github.com/timlindquist/Nintimdo-RP_3D_mod…

2 -қадам: Іс құрастыру

Істерді жинау
Істерді жинау
Істерді жинау
Істерді жинау

Алдымен монтаждау үшін алдыңғы және оң жақ бөліктерді металл шпилькамен кірістіру тесіктеріне салыңыз. Содан кейін буындарға супер желім салыңыз және жартысын бекітіңіз. Процесті төменгі оң және сол жақтар үшін қайталаңыз. Осыдан кейін сізге алдыңғы және артқы жартысы жиналуы керек. Енді алдыңғы және артқы тақталарды біріктіруге арналған 5 металл тіреуіштерді бекіту уақыты келді. Мұны істеудің ең оңай жолы - алдымен тіректерді дұрыс ұзындыққа жеткізу. Артқы жағында 13 мм тереңдікте алдыңғы жағында 5 мм. Сондықтан 18 мм немесе одан да аз шегіністер жасаңыз. Мен мұны вицейлерге ұзынырақ тұрғызу және өлшемді қыру үшін тегістеуішті қолдану арқылы жасадым. Тек бір жағын ұсақтауды ұмытпаңыз, себебі сізге екінші жағынан жіп қажет болады. Дұрыс ұзындықтағы желімді алғаннан кейін, тегістеуіштің барлық жағын алдыңғы жағына горилла желімін қолданып кептіріңіз. Бұл процесте олардың барлығы тік тұрғанына көз жеткізіңіз. Бірден кептіргеннен кейін беті біркелкі болатындай көбіктенетін тамаша желімді сүртіңіз. Енді артқы тақтаны алдыңғы жағымен біріктіру үшін ілмектерге қоюға болатынын қараңыз. Бекіту үшін артқы тақта арқылы бірге бұраңыз. Желімді экранды Gorilla Epoxy дуэль түтігімен қаптау арқылы қосыңыз. Мен мұны жасаған кезде тым көп кидім және ол экранға толып кетті. Бақытымызға орай, ол кетеді! Қысыңыз және біраз уақыт құрғатыңыз, содан кейін артқы жағын қарапайым горилла желімімен жабыңыз.

** Ескерту: Сыртқы жағына жұқа CA желімін (супер желім) алмауға тырысыңыз, себебі ол PLA -ны «күйдіреді» және ақ түсті бояйды.

3 -қадам: Электр тізбегі

Айналым
Айналым
Айналым
Айналым
Айналым
Айналым

Түймелік схема:

Барлық батырмаларды басу Teensy ++ 2.0 көмегімен жүзеге асырылады. Микроконтроллердегі сандық түйреуіштер кез келген екілік басу түймелері үшін қолданылады. Аналогты түйреуіштер джойстиктер сияқты бірнеше күйі бар түймелер үшін қолданылады. Цифрлық түйреуіштерді сыммен қосу үшін цифрлық түйреуішті қосқышқа екінші ұшын жерге қосыңыз. Түйме басылған кезде контроллер сезуі үшін жоғары кернеулі істікті төмен түсіреді. Резисторлар туралы алаңдамаудың қажеті жоқ, себебі олар жасөспірімдер тақтасына кіреді. Аналогты түйреуіштерді қосу үшін сізге жоғары және төмен кернеудегі аналогты құрылғыны бұру және аналогтық істікшенің осы диапазонындағы кернеу деңгейін оқу қажет болады. Джойстиктер үшін әр оське 3 кіріс бар. Түйреуіштердің біріне 5В, екіншісіне GND және кернеудің оқу сызығын соңына дейін жеткізіңіз. Мұны дұрыс қосқаныңызға көз жеткізіңіз, әйтпесе ол жұмыс істемейді (мультиметрді қолданып, шығыс кернеуінің дұрыс түйреуіште өзгеретінін біліңіз.) Негізінен джойстик - кернеуді бөлгіш сияқты жұмыс істейтін айнымалы резистор. Оқу түйреуішіндегі шығыс кернеуі джойстиктердің орналасуына байланысты 0 мен 5В аралығында өзгереді. (Әдетте 5V мен GND ауытқуы джойстиктің сыртқы кіріс түйреуіштерінде болады, ал ортасында айнымалы кернеудің оқу түйреуі болады. Егер 5V мен GND менікінен өзгеше болса, сіздің басқару элементтеріңіз кері айналады, оны бағдарламалық жасақтамада немесе қайта сым арқылы бекітуге болады.).

Қуат тізбегі:

Үш камералы Anker батареясы бүкіл құрылғыны қуатпен қамтамасыз етеді. Құрылғыны қосу/өшіру үшін батарея реттегішінің шығысы қосқышқа қосылады, содан кейін Raspberry Pi. Құрылғы 2А дейін тарта алатындықтан, 250мА қарапайым қосқыш қазіргі талапты орындай алмайды. Коммутатордың орнына PMOS транзисторындағы кернеуді басқару үшін қосқышты қолдануға болады. 5В аккумуляторын PMOS транзисторының көзіне және қосқышқа қосыңыз. Коммутатордың екінші ұшы PMOS транзисторының қақпасына және GND -ге қосылған 10К резисторға қосылады (қақпаның қалқып кетуіне жол бермеу үшін ашық болғанда оны резистор арқылы GND -мен байланыстырады). Дренаж жермен бірге Raspberry Pi 5В кірісіне қосылады. Батареяны зарядтау үшін микро USB аналық тақтасын дұрыс зарядтау түйреуіштеріне сыммен қосыңыз (корпустың кірісін кеңейтеді). Мен бұл ауыстырып қосқышты құрылғының артындағы ауа кіретін жерге жасырдым. Бастапқыда мен батарея батырмасы арқылы құрылғыны белгілі бір уақыт бойы ұстап тұруды жоспарлап едім, өкінішке орай, мен бөлмеден шығып кеттім және қарапайым іске асыруға тура келді. Бұл балама дизайн төмендегі схемада көрсетілген.

Дыбыстық схема:

Аудио үшін дыбыс динамиктерден (дыбысы өшірілмесе) табиғи түрде ойнатылып, құлаққапқа қосылатын болса, қайта бағытталуын қаладым. Бақытымызға орай, 3,5 мм әйелдердің ұялы телефон ұяларының көбісі бұған механикалық түрде қабілетті. Еркек ашасы орнатылған кезде динамик сымдары бүгіліп, ашық тізбек жасайды, осылайша сигналдың динамиктерге жетуіне жол бермейді. Динамиктер үлкен жүктеме болғандықтан, оны есту үшін дыбыстық сигнал күшейтілуі керек. Бұл адафрутта табылған стерео класс D күшейткішінің көмегімен жасалады. 5V және GND күшейткішті жай ғана бұрмалаңыз. Бізде дифференциалды аудио кірістер жоқ, сондықтан оң және сол жақ динамиктерді оң терминалдарға жалғап, теріс терминалдарды GND -ге байлаңыз. Табыс секіргіш көмегімен реттеледі. Мен пайданы максимумға қойдым және дыбыс деңгейін реттеу үшін бағдарламалық қамтамасыз ету арқылы дыбыс сигналдарының амплитудасын өзгертемін. Құрылғының дыбысын өшіру үшін менде 5В кернеуді басқаратын NMOS транзисторы бар. Бұл NMOS транзисторлар қақпасын Teensy басқарады. Мендегі мәселе - сыртқы динамиктерде тұрақты жоғары жиілікті шу бар. Мен мұны осциллографта талдаймын, мүмкін 5 В кернеуінен болуы мүмкін, себебі кейбір реттегіш батареяда ауысады немесе желілер бір жерде РЖ -ны алады. Сонымен қатар, электромагниттік кедергілерді (EMI) азайту үшін оң және сол жақ сызықтарды бұруды ұмытпаңыз.

4 -қадам: перифериялық схема

Перифериялық схема
Перифериялық схема
Перифериялық схема
Перифериялық схема

Бұл схемаға USB қондырғылары мен жарықдиодты индикатор кіреді. Менің сілтемедегі ПХД -ге тапсырыс беріңіз және таспалы араның көмегімен нүктелі сызық бойымен жартысын кесіңіз. USB жағында барлығы екі аналық USB портын тақтаға қосады. Жарықдиодты жағында 5 жарықдиодты және 5 резисторды дәнекерлейді. 5V, GND, D+, D-ді Raspberry PI сөндірілген USB-ден ПХД-ге сымдар арқылы ұзартуға болады. Жарықдиодты ПХД орналастырылуы мүмкін, сондықтан жарық корпустың үстіндегі тесіктерден өтеді. Teensy -дің PWM 5 шығысын светодиодқа GND -мен бірге қосыңыз. Жұмыс циклін өзгерту арқылы жарық диодты жарықтылықты өзгертуге болады.

ПХД сатып алыңыз:

5 -қадам: Бағдарламалау

Бағдарламалау
Бағдарламалау
Бағдарламалау
Бағдарламалау
Бағдарламалау
Бағдарламалау

Жасөспірім:

Егер сіз оны мен сияқты дәл қоссаңыз, сіз Github -да берген кодты пайдалана аласыз. Дегенмен, мен оны өзіңіз жазуды ұсынар едім, себебі сіз жүйені жақсы түсінесіз және оны өз қалауыңыз бойынша оңай басқара аласыз. Бағдарламалау өте қарапайым, бұл сіздің түймелеріңіздің басылғанын тексеру үшін if операторларының жиынтығын жазумен байланысты. PJRC пайдалы нұсқаулық. Сіз Arduino IDE көмегімен кодты жаза аласыз және Teensy -ге жүктей аласыз.

КОД:

github.com/timlindquist/Nintimdo-RP

Цифрлық түймелер: Бұл мысалда цифрлық түйреуіштің 20 басылғанын тексергенімді, содан кейін джойстиктің дұрыс сериялық командасын шығарғанымды көрсетеді. Сіз түйме үшін кез келген 1 -ден 32 -ге дейін таңдай аласыз, өйткені Retropie бәрібір контроллерді салыстыруды орнатады. Joystick түймесі (түймелер: 1-32, Басылған = 1 шығарылған = 0)

Аналогтық түймелер:

Мысалда, джойстиктің оң вертикалы 41 аналогтық түйреуге қосылады. AnalogRead (pin) функциясы 0 мен 5В арасындағы кернеу деңгейін қабылдайды және 0 -ден 1023 -ке дейінгі мәнді қайтарады. Идеал орталық позиция 2,5 В немесе 512 -ге сәйкес келеді, бірақ бұл менің аналогтық таяқшам үшін олай емес еді, сондықтан түзету қажет болды. Бұл төменде көрсетілген қайта өңдеу арқылы жасалды. Осыдан кейін мен шекараның 0 -ден 1023 -тен аспағанын тексеруім керек болды. Ақырында аналогтық джойстик пәрмені Joystick. Z көмегімен Z аналогты батырмасы ретінде сериялық жіберілді (мәні 0 -ден 1023 -ке дейін).

6 -қадам: қосымша док

Қосымша док
Қосымша док
Қосымша док
Қосымша док
Қосымша док
Қосымша док

Док:

Бұл құрылғы зарядтауға арналған қондырғы мен теледидарды оңай қосудысыз аяқталмайды, сондықтан мен оны төмендегі суреттерде жасадым. 3D модельдері басқалармен бірге менің Github пакетімде қол жетімді.

Модельдер:

github.com/timlindquist/Nintimdo-RP_3D_mod…

7 -қадам: Нәтижелер

Нәтижелер
Нәтижелер
Нәтижелер
Нәтижелер
Нәтижелер
Нәтижелер
Нәтижелер
Нәтижелер

Мен ойлаймын, мен алдын ала сатып алынған әйел қабырғаға бекіткіштің орнына ПХД -мен HDMI шығыс портын жасағым келеді. Бұл кеңістікті айтарлықтай үнемдеуге мүмкіндік беретін еді, себебі мен кабельді кесіп алмау үшін және 19 сымды қайта дәнекерлеуге жол бермеу үшін спиральға бекітуге тура келді. Мен кішкене батареямен жұмыс жасағым келеді, себебі ұяшықтың биіктігі менің бүкіл құрылғының қалыңдығына әсер етті. Алайда, мұны азайту батареяның қызмет ету мерзіміне теріс әсер етеді.

Жалпы, бұл маған шамамен 350 доллар жұмсады. Бұған мен ұсақтауға тырысқан таңқурай пи кірмейді … Мен оны сынап көргеніме әлі де бақыттымын. Мен оны мүмкіндігінше ықшам етіп жасай алатынымды білу үшін қызықты жазғы жоба болды, сонымен қатар оның ішіне көптеген керемет мүмкіндіктерді енгіздім.

Ұсынылған: