自制游戏掌机DIY图解

电子说

1.3w人已加入

描述

第1步:打印案例

要打印设备,请下载我的3D模型文件并将其发送到3D打印机。我使用的打印机是Prusa i3 Mk2和黑色塑料灯丝。在中等分辨率设置下,发现打印质量最佳。务必在设备下面添加结构材料(如果没有它,手持设备看起来很差)。背面印有背面与盘片齐平。正面印有正面,与正面齐平。如果我打印另一个案例,我会想用一种新的颜色,如原子紫来炫耀内部。如果你像我一样,有一个8英寸的印刷床,你将需要打印4件版本将在印刷后组装。但是,如果您的床足够大,可以作为一个整体打印,请将前后板作为一个单元打印,避免将它们拼接在一起的痛苦。

模型文件:

https://github.com/timlindquist/Nintimdo-RP_3D_mod 。..

第2步:案例汇编

通过将金属销插入定位孔,首先组装前右和左部件。接下来将超级胶粘在接头上并将半部固定在一起。重复左下角和左下角的过程。在此之后你应该留下一个组装的前后半部分。现在是时候安装5个金属支架来合并前后板。最简单的方法是首先使支架保持正确的长度。前部深度为13毫米,前部深度为5毫米。因此,使支座18毫米或稍微减少。我通过在副把手中放置一个较长的支架并使用研磨机来削减尺寸来做到这一点。一定要只研磨一侧,因为你需要另一侧的螺纹。使用常规大猩猩胶将所有研磨机粘到正面后,将所有研磨机粘到正面并让其干燥。在此过程中确保他们都站直了。一旦干燥,刮去发泡的优质胶水,使面部在放在一起时可以齐平。现在看看你是否可以将后板插入支架上以与前面连接。通过后板拧紧以固定。用决斗管Gorilla Epoxy衬里框架上的胶网。当我这样做时,我太过分了,它溢出到屏幕上。幸运的是它擦掉了!夹紧并让其干燥一段时间,然后用常规的大猩猩胶将背面排成一行。

**注意:尽量不要在外部涂上薄的CA胶(超级胶水),因为它会“燃烧”PLA和染色为白色。

步骤3:电路

游戏机

按钮电路:

使用Teensy ++ 2.0完成所有按钮按下。微控制器上的数字引脚用于任何二进制按钮。模拟引脚用于具有多种状态的按钮,例如操纵杆。要将数字引脚接线,将数字引脚简单地连接到开关,将开关的另一端接地。按下按钮时,它将向下拉高压引脚,以便控制器进行检测。您不必担心电阻器,因为它们包含在Teensy板上。要连接模拟引脚,您需要使用高低电压偏置模拟器件,并在模拟引脚上读取该范围内的电压电平。对于操纵杆,每个轴有3个输入。为其中一个引脚提供5V电压,为另一个引脚提供GND,并将电压读取线提供给最后一个。确保正确连接或无法正常工作(使用万用表查看输出电压是否在正确的引脚上发生变化。)操纵杆基本上是一个可变电阻器,其作用类似于分压器。读取引脚上的输出电压将在0到5V之间变化,具体取决于操纵杆的位置。 (通常偏置5V和GND位于操纵杆的外部输入引脚上,中间的一个将是您的可变电压读取引脚。如果5V和GND与我的不同,您的控件将被反转,这可以通过软件修复或重新布线)。

电源电路:

三节电池Anker电池为整个设备供电。要打开/关闭设备,电池调节器的输出连接到交换机,然后连接到Raspberry Pi。由于该器件可以吸收高达2A的简单250mA拨动开关无法处理当前的要求。相反,您可以使用开关控制PMOS晶体管上的栅极电压,以达到开关的目的。将5V的电池连接到PMOS晶体管和开关的源极。开关的另一端连接到PMOS晶体管的栅极和连接到GND的10K电阻(当开关打开以防止栅极浮动时,它通过电阻连接到GND)。漏极连接到Raspberry Pi上的5V输入和地线。要为电池充电,只需将微型USB母头分线板连接到正确的充电引脚(将输入延伸到外壳)。我把这个开关藏在设备背面的进气口。最初我打算让电池按钮通过按住电话按钮一段时间来打开和关闭设备,不幸的是我跑出了房间,不得不做简单的实施。这种替代设计如下图所示。

音频电路:

对于音频,我想让声音自然地从扬声器播放(如果没有静音)并重定向到耳机中他们已经插上电源。幸运的是,很多女性3.5毫米头戴式耳机插孔都具有机械性能。当插入公插头时,扬声器引线将弯曲并形成开路,从而防止信号到达扬声器。由于扬声器的负载较大,因此必须放大音频信号才能听到它。这是使用我在adafruit上发现的立体声D类放大器完成的。只需用5V和GND偏置放大器即可。我们没有差分音频输入,因此将左右扬声器连接到正极端子,并将负极端子连接到GND。使用跳线调整增益。我将增益设置为最大值,并通过软件改变输出音频信号幅度以调节音量。为了使器件静音,我有一个控制5V偏压的NMOS晶体管。该NMOS晶体管栅极由Teensy控制。我遇到的一个问题是外部扬声器中存在恒定的高频噪声。我将在示波器上对此进行分析,可能来自5V偏置,因为某些调节器在电池上切换或线路可能在某处拾取RF。此外,请务必扭转右侧和左侧线路以最大限度地减少电磁干扰(EMI)。

步骤4:外围电路

该电路包括USB安装座和LED指示灯。在我的链接中订购PCB并使用带锯沿虚线切成两半。在USB端,所有都将两个母USB端口焊接到电路板上。在LED侧焊接5个LED和5个串联电阻。 5V,GND,D +,D-可以使用Raspberry PI的拆焊USB线连接到PCB。可以放置LED PCB,使光线透过外壳顶部的孔。将Teensy的5个PWM输出连接到LED和GND。通过改变占空比,您可以改变LED的亮度。

购买PCB:https://www.pcbway.com/project/shareproject/Ninti 。..

第5步:编程

Teensy:

如果您将其完全连接了和我一样,你可以使用我在Github上提供的代码。但是,我建议您自己编写,因为您将更好地理解系统,并能够轻松地根据自己的喜好进行操作和自定义。编程非常简单,它实际上归结为编写一堆if语句来检查按钮是否被按下。来自PJRC的有用指导集。您可以使用Arduino IDE编写代码并上传到Teensy。

代码:

https://github.com/timlindquist/Nintimdo-RP

数字按钮:

此示例显示我检查数字引脚20是否被按下然后输出正确的串行操纵杆命令。您可以为按钮选择任意1到32,因为Retropie无论如何都会在开始时执行控制器映射设置。 Joystick.button(按钮:1-32,Pressed = 1 Released = 0)

模拟按钮:

在本例中,右侧操纵杆垂直连接到模拟引脚41。 analogRead(引脚)功能接收0到5V之间的电压电平,返回0到1023的值。理想的中心位置对应2.5V或512,但我的模拟棒不是这种情况,因此需要进行调整。这是通过下面显示的重新映射完成的。之后,我需要检查边界是否超过0到1023.最后,模拟操纵杆命令通过串行发送,使用Joystick.Z(值0到1023)作为模拟按钮Z.

第6步:可选Dock

Dock:

此版本不会完整没有底座充电和轻松电视连接,所以我在下面的图片设计了一个。我的Github软件包中提供了其他3D模型。

模型:

https://github.com/timlindquist/Nintimdo-RP_3D_mod 。..

第7步:结果

事后我希望我做到了带有PCB的HDMI输出端口,而不是预先购买的母壁式安装座。这实际上可以节省很多空间我必须将电缆塞入螺旋状以避免切割并重新焊接19根电线。由于电池高度是我整个设备厚度的限制因素,我对于使用更小的电池感到疲惫不堪。但是,减少这将对我的电池寿命产生负面影响。

总共花费我350美元左右。这不包括我试图削减大小的树莓pi 。..仍然很高兴我尝试了。这是一个有趣的夏季项目,看看我是否可以尽可能地使它变得紧凑,同时在内部装配很多很酷的功能。
        责任编辑:wv

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分