查看: 807|回复: 5

儿时的快乐!用树莓派从零打造一台街机

[复制链接]
本帖最后由 RRoy 于 2020-9-9 11:56 编辑

众所周知,我们蘑菇云创客空间有一台大名鼎鼎的“LV牌”街机。

202009099836..png

m21.gif

活动作品2 (1).gif

之前好多小伙伴也想自己做一台,其实我们拍了视频的制作教程,不过粗略了一些,





前俩天,正好赶上有个瑞典斯德哥尔摩的数据科学家Max Fischer在Github上也放出来了做街机的教程。

那这周就带给大家看一看。

如何从头开始构建一台全尺寸1:1版本的街机!

旋转街机.gif

文章篇幅较长,会详细介绍搭建全尺寸街机的所有步骤,包括预先设计好的 CAD 文件(可免费下载)、如何组装机身、运行街机程序的树莓派的设置方法等。

注:这还是项目作者第一次使用CAD...

构建机身

下载CAD文件

项目中所有的CAD设计都是用的 AutoCAD Fusion 360,由于这是作者第一次使用CAD,所以他也提到了自己的设计肯定不是最好的还有很大的改进空间,有能力的小伙伴们可以再优化。

CAD文件地址:见参考链接

当然大家也可以直接到文末下载打包好的。

640 (2) (1).gif

CNC切割部分

为了完美配合街机的按钮、操纵杆,屏幕、电源按钮和扬声器,按钮面板和屏幕面板都采用了CNC切割。

缺点是,这肯定会比手工制作更昂贵,但带来的好处是,整体效果更好了。

为了让机箱完美地结合在一起,两个侧板也采用了CNC切割。因为它们具有多个需要在两侧相同的圆形形状。

202009096027..png
202009092039..png
202009098182..png

202009095167..png

大家千万记住以1:1的尺寸利用CNC切割CAD文件,不要选择“利用完整的MDF板”。

202009091686..png

手工切割部分

考虑到剩余的部分大多是大大小小的矩形,我们可以手工切割了。

这里,我们会用到两种不同的锯:

202009097566..png

202009092737..png

大概切割出来这么些形状的板子:

背板

<底板,,,>

在这过程中,唯一有一点困难的部分是舱盖板。

首先我们要在板上绘制出舱口的轮廓,然后用圆锯切出实际的舱口,这里在四角的边缘处使用了手持的曲线锯,因为在切割时更容易掌控。

现在我们已经把街机的主体部分拆分成了内外两部分,挡板用胶水粘到合适的位置。这里还用到了磁铁来固定位置。

<,,>

后板的底部也打一个洞,用来穿电源板的线。

绘制零件的轮廓

这一步重要的是将所有部件固定在两侧面板上的同一位置,好让机柜对称。

为了简化这一点,在每个面板应该连接到侧面板的地方绘制了轮廓。当按钮面板和屏幕面板以一定角度连接时,它们的轮廓首先被画在其中一块侧板上。

然后,通过使用一些参考点,将轮廓反射并转移到另一个侧面板。

这一步有点棘手,所以大家慢慢来。

<,,,,,,>

开始组装

接下来就是将所有的面板组装到一起了,这里使用了木工接合片来加强固定作用,屏幕面板是唯一不使用木工接合片固定的地方,因为以后还可能随时更换。

在粘合之前,我们可以先将各个面板装在一起试试,确保位置不偏不倚。

202009092851..png

调节完毕后,上胶水,此时动作要快。粘合完成后,使用钉枪进行加固。  

202009094468..png
202009098533..png

另外,别忘了清除从连接部件上滴下的多余胶水。

添加柜脚

为了均分来自支腿的向上力,将一小块木头胶合并钉在柜子的每个角上。

我把木头切出四个正方形,用作柜子的支腿。

用砂纸把边缘弄圆,

然后从外部将腿粘上,从内部拧紧。

搞定屏幕面板

首先,使用两根细木条作为固定的支架:

202009096028..png

为了获得平滑的外观,此处使用手持铣床打了一个凹槽出来。  

202009092481..png

我使用的屏幕的前面设有按钮,因此我们需要在屏幕面板上钻孔才能使它们可单击。

<

202009096224..png

最后,将固定屏幕面板的螺丝与扬声器对齐,以获得更好的外观。

准备灯箱

作为真正的复古街机柜,我们当然需要在柜顶部安装一个发光的灯箱。为了将有机玻璃固定在适当的位置,将四个小木块用胶粘并钉在每个角上,以使其固定在有机玻璃上。

抹灰膏和砂纸

在机身被送去喷漆之前,我们还要做最后的润色,让它表面漂亮而又光滑。

抹灰膏被用来掩盖所有的指印,塑料衬垫被用来掩盖小的瑕疵。

等所有的东西都干了,使用电动砂光机去除多余的抹灰膏和塑料衬垫。所有的边缘都用手工打磨得很光滑。

喷漆,完成

在喷漆之前,用电动砂光机对机身表面进行处理。喷漆的难度有些大,我请了一个比较专业的师傅来操作。

为了得到更好的反射效果,我选择
黑色作为机身颜色,白色作为灯箱内部颜色。

【图】

出于设计感考虑,我还打印了很多机身贴纸:  

当然这一步,大家也可以像蘑菇云的机器一样,贴满LV的贴纸。

贴贴纸的时候就要用到一些技巧了,通常是把一边固定,然后从上到下刮,防止产生气泡。

202009096724..png

202009099664..png

按钮说明:

202009095342..png

至此,机身部分已经完成,接下来可以安装电子器件了。

安装电子器件

连接电源

将圆形的塑料电缆索环穿过背板底部的孔,从而连接电源。

202009098600..png
202009092436..png

安装屏幕

使用电镀打捆带固定屏幕:

【图3】

灯箱

为了与整体的设计感保持一致,我重用了侧板的一些图形组件:

202009098725..png

打印一张大的贴纸,将贴纸上的「ARCADE MACHINE」镂空处理,以便光线通过。稍后贴纸会被粘在磨砂玻璃上。

202009093173..png

光源使用的是 LED 灯管,灯管的线可以连接至机身底部的电源插排。使用双面胶将 LED 灯管粘在背板上。

202009092054..png

为了防止光从玻璃处漏出,我剪下一些长泡沫条,并用双面胶粘在玻璃的边角背后。

202009098178..png

使用双面胶固定玻璃的位置,并把贴纸贴在上面:

安装街机按钮和摇杆

我事先购买了两组街机按钮和摇杆,它们便于使用,没有电路板知识也不妨碍。因此,街机按钮的安装就很简单了。将每个按钮和摇杆安装到自带的电路板上,然后把 USB 线和电路板与计算机连接起来。

为了使摇杆位于孔的中心,我使用宽双面胶,将摇杆置入按钮面板。(这一步可以两个人合作完成)

在树莓派上配置 RetroPie

Retropie可以将你的树莓派或者PC变成一台复古游戏机模拟器。 其基于完整的操作系统之上,你可以把它装在Raspbian系统上,或者直接刷入完整的镜像然后再添加更多的软件。Retropie预装了很多不同的模拟器,可以让你玩很多不同平台的游戏,比如FC,SFC,MD,CPS1,CPS2,NEOGEO,PS1等等。

RetroPie 是免费的游戏机模拟器,通过它可以将你的树莓派、PC或者是Odroid 变为游戏机,RetroPie支持超过50+的主机系统,从1977的Atari 2600到PS2、Wii都可以支持,我们国内熟悉的儿时经典任天堂FC、GBA和PS都支持。RetroPie在树莓派上提供了SD卡的镜像文件,只需要刻录到SD卡后,就可以运行各种不同的模拟器,传输Roms到树莓派后就可以开始回味经典游戏了。

RetroPie 可以将树莓派改造成复古游戏机,它是一个持续更新的开源项目,你可以从官网获取安装指南:https://retropie.org.uk/docs/First-Installation/

配置街机按钮和摇杆

街机按钮电路板的 USB 线与树莓派连接。开启树莓派和 RetroPie,出现欢迎界面,这时你可以配置控制器了。

电源键

为了方便开关街机,作者在屏幕面板上加了一个孔来安装电源键。

将两根线与电源键焊接在一起,这两根线分别连接树莓派的 GPIO pins 5 和 6。缩短 GPIO pins 5 和 6 时,树莓派将从暂停状态中被激活。

然后添加一小段脚本,在树莓派启动时执行。该脚本听从另一种 GPIO pins 5 和 6 的缩短情况,进而触发树莓派安全关闭。

关闭脚本的添加过程如下:

要添加关闭脚本,请执行以下操作:

1.启动Raspberry Pi;

2.当EmulationStation(RetroPie)启动后,在键盘上单击F4进入bash;

4.安装RPi.GPIO:(pip install RPi.GPIO请参阅https://pypi.org/project/RPi.GPIO/);

5.在/ home下创建一个utils文件夹: mkdir /home/utils/

6.将此脚本(shutdown_script.py)添加到新创建的utils文件夹中;

import RPi.GPIO as GPIO
import time
import subprocess

GPIO.setmode(GPIO.BOARD)

GPIO.setup(5, GPIO.IN, pull_up_down=GPIO.PUD_UP)

old_button_state = True

while True:
    button_state = GPIO.input(5)

    if button_state != old_button_state and button_state == False:
        subprocess.call("shutdown -h now", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        old_state_button = button_state

        time.sleep(1)

7.要使Raspberry在启动时运行此脚本,我们可以在文件/etc/rc.local的末尾的行添加python3 /home/utils/shutdown_script.py &,就在exit 0之前。

‍目前,电源键只能关闭树莓派。我计划后续安装由树莓派控制的 relay,用于开关其他电子器件(如屏幕、灯箱等)。

扬声器

每一个扬声器焊接了两根线。将扬声器置入 CNC 钻孔,与屏幕面板相连。所有线均连接至扩大器。然后用 3.5mm AUX 立体声音响线连接扩大器和树莓派。

202009095730..png

202009096054..png

完善线路结构

为了使机身内部的线路结构清晰,我用双面胶粘贴了理线器。

街机搭建完成

至此,利用树莓派搭建街机的过程就全部完成了。

202009095854..png

目前,这台「自建」街机能够运行很多复古游戏。作者还打算将树莓派 3 升级到树莓派 4,这样就可以运行更多 Nintendo 64 和 PS1 的经典游戏了!  

202009096958..png

活动作品3 (1).gif

原项目链接:https://github.com/maxvfischer/DIY-arcade
项目作者:Max Fischer

部分翻译参考:机器之心

一点想法

个人感觉,还可以增加一个投币的模块,

毕竟,街机的灵魂就在于投币、赢币!

然后再考虑一下散热的问题就完美了。

有兴趣的同学可以到Github上给作者star,地址是 https://github.com/maxvfischer

Github资料打包:https://cloud.yirenliu.cn/#/s/Yghb









DFBJFz5siXP  见习技师

发表于 2020-9-13 10:01:11

好强大的动手能力啊
回复

使用道具 举报

RRoy  初级技匠
 楼主|

发表于 2020-9-14 11:42:14

DFBJFz5siXP 发表于 2020-9-13 10:01
好强大的动手能力啊

这居然还是作者第一次使用CAD
回复

使用道具 举报

DFS1w2cb8o8  中级技师

发表于 2020-9-18 21:45:15

厉害厉害
回复

使用道具 举报

 初级技师

发表于 2020-9-24 21:10:03

厉害厉害(。^▽^)
回复

使用道具 举报

gray6666  初级技神

发表于 2020-9-30 17:26:11

暴露年龄的童年杀
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2020 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail