还记得那些给人带来乐趣的街机吗?你是不是也想拥有一款属于自己的街机呢?如果你有想法,那么就请看看我们的极客大神是如何DIY属于自己的街机的吧,相信你会大呼过瘾的。
宜家 Lack 咖啡桌
树莓派
Arduino Leonardo(基于ATmega32u4一个微控制器板)
游戏摇杆
按钮
17寸液晶显示器(4:3相对好一些)
USB供电的电脑音箱
树莓派2.5A 电源
其它(电线、连接器、螺丝钉)
这里我用到的显示器是宏碁AL1716,这个显示器有17寸。我拆掉了显示器的塑料外壳,然后拧开螺丝,当然这里你需要在准备的咖啡桌上准备合适的凹槽,这样就可以将显示器嵌入进去了,下面就来一起看看如何做到的。
拆下支架,拧掉显示器外壳螺丝
这有可能是粘在一起了,小心翘银色的边框
当然外壳完全分开之后,先不要着急将显示屏拿下来,同时需要注意显示屏与外壳之间的电路板以及按钮,千万不要损坏这些。
去掉显示器外面固定边框的螺丝
现在取下显示屏然后放到桌面上
在第一次尝试过程中,我们使用了Dremel电动打磨机在桌面上打磨凹槽,貌似很不错的样子。但后来发现其实也没有那么麻烦,使用刀( Stanley)也可以完成,当然选择在你。下面就可以
看到是如何钻孔(13mm)的,然后按照你之前的画好线的位置进行工作,值得注意的是,不要将位置弄反了。如果掌握不好距离怕超出范围,工作的时候可以到10cm位置停下来然后再从另外一端继续。最后在四个角将需要去掉的部分弄出来,这一步需要小心,不要损坏桌面。
将显示屏放在桌面上画出位置大小,当然少不了摇杆以及按钮位置。
标记四个角的位置,一会从这些标记的位置下手。
钻出四个角
这样做的目的主要是防止桌面损坏
沿着线进行切割,如果不慎手滑,那么就会前功尽弃,所以要小心。从第一个孔到第二个孔之间需要小心,如果怕超过范围可以到第二个孔之前留下一段距离,这样可以避免手滑导致的杯具
当你将上面完成之后就可以将需要去掉的部分翘出了,这一步需要小心,而这个时候还容易将里面连带的东西翘出所以需要特别小心。
用小刀将蜂窝纸切掉
现在桌子部分完成了
现在需要制作按钮的位置了,在桌面上面安装按钮以及摇杆。首先需要mark一下摇杆以及按钮的位置,每个孔需要28mm(半径),这样就可以给摇杆足够的空间来移动了,然后再用螺丝固定摇杆。当然这里也需要从桌子下面将其固定,当在桌面上固定摇杆的时候可能会松动,所以将摇杆上的球通过底部向桌面上穿入进去时,底部向下这样就可以看不到任何痕迹了。装按钮比较简单,就是在孔( 28mm)直接装入即可。
在桌面背后进行切割,首先需要标记一下
需要的位置已经预留
标记摇杆以及按钮位置,然后开始钻孔大小28mm
摇杆底部被拆下,最后从桌面底部安装时在用这些螺丝固定
标记摇杆底部的孔,进行安装
将摇杆上面的球拧下来开始从桌下面进行安装
将球安装回原位,然后固定螺丝
控制部分(Arcade control)相对比较简单,摇杆就相当于四个方向,但树莓派与这个不太相吻合,于是我选用了 Arduino Leona与树莓派进行匹配,这样就可以进行电脑那种控制,还有树莓派键盘。按钮连接到Arduino Leona,然后作为按键使用,作为一条回路开关就在另外一边,当然你也可以设置按键名称。
下载安装Arduino IDE,然后利用USB线连接 Arduino Leona到电脑,然后就可以输入下面的程序了。然后按照图示连接,之后还需要进行下面这些步骤你可以复制粘贴程序代码到Arduino IDE中,然后再运行。在Arduino IDE中,每个Arduino程序都称为sketch,它是一个可以上传进Arduino Board中的程序包,同时可以上传之后运行。
当然可以程序可以了解到对应按键情况,再上传程序之前,你可以修改程序。
在“Tools”菜单下,“Board”选项选择 “Arduino Leonardo”
再次选择“Tools”菜单,从“Ports”选项下设置 Leonardo,之后准备上传程序
点击“Upload”按钮,开始上传程序
//element14 PIK3A Gaming Table Controls, using an Arduino Leonardo//
void setup() {
Keyboard.begin();
//Joystick and buttons pin allocations
pinMode(0, INPUT_PULLUP); //Joystick Up
pinMode(1, INPUT_PULLUP); //Joystick Down
pinMode(2, INPUT_PULLUP); //Joystick Left
pinMode(3, INPUT_PULLUP); //Joystick Right
pinMode(4, INPUT_PULLUP); //Button 1
pinMode(5, INPUT_PULLUP); //Button 2
pinMode(6, INPUT_PULLUP); //Button 3
pinMode(7, INPUT_PULLUP); //Button 4
pinMode(8, INPUT_PULLUP); //Coin
pinMode(9, INPUT_PULLUP); //Start
}
void loop() {
// Button labels:
int joystickUp = digitalRead(0);
int joystickDown = digitalRead(1);
int joystickLeft = digitalRead(2);
int joystickRight = digitalRead(3);
int button1 = digitalRead(4);
int button2 = digitalRead(5);
int button3 = digitalRead(6);
int button4 = digitalRead(7);
int coin = digitalRead(8);
int start = digitalRead(9);
// Joystick Up - Arrow Up Key
if (joystickUp == LOW) {
Keyboard.press(218);
}
else {
Keyboard.release(218);
}
// Joystick Down - Arrow Down Key
if (joystickDown == LOW) {
Keyboard.press(217);
}
else {
Keyboard.release(217);
}
// Joystick Left - Arrow Left Key
if (joystickLeft == LOW) {
Keyboard.press(216);
}
else {
Keyboard.release(216);
}
// Joystick Right - Arrow Right Key
if (joystickRight == LOW) {
Keyboard.press(215);
}
else {
Keyboard.release(215);
}
// Button 1 - Left CTRL
if (button1 == LOW) {
Keyboard.press(128);
}
else {
Keyboard.release(128);
}
// Button 2 - Left ALT
if (button2 == LOW) {
Keyboard.press(130);
}
else {
Keyboard.release(130);
}
// Button 3 - Left CTRL
if (button3 == LOW) {
Keyboard.press(32);
}
else {
Keyboard.release(32);
}
// Button 4 - Left CTRL
if (button4 == LOW) {
Keyboard.press(129);
}
else {
Keyboard.release(129);
}
// Coin - 5
if (coin == LOW) {
Keyboard.press(53);
}
else {
Keyboard.release(53);
}
// Start - 1
if (start == LOW) {
Keyboard.press(49); delay(100);
}
else {
Keyboard.release(49);
}
}
之前准备的音响已经排上用场了,下面我想将音响移植到桌子里面。其实这些工作没有什么特别之处,就是需要延长线,然后再通过树莓派的3.5mm音频插孔输出,在桌子两侧钻出孔,并在桌子边缘处钻孔(10mm )来放一个音量调节器,然后再用热胶固定。
拆下音响的音量控制器部分,然后放置在一边
利用焊接方式制作延长线
在桌子的边上钻孔放置音量控制器
标记扬声器的安装位置
钻的这些孔主要是为了以后能够听到声音,然后固定之前的扬声器以及音量控制器部分。
我打算将电池放入桌子中,我将连接器放入桌子底部然后用延长线将电源线延伸,当然我们之前已经将树莓派与扬声器连接之后可以处理信号问题,值得注意的是,我在这里都在桌子下面走线。
为电源预留的位置,然后将IEC连接器连接电源
现在可以焊接IEC连接器以及电源,然后进行安装
在桌子底部固定电源上螺丝之后,尽量将螺丝拧紧。这样就可以将树莓派、USB适配器、树莓派以及屏幕等安装一起了,当然一根电源线就可以供电了。
这里重中之重的是显示屏,这里就需要用到亚克力材料,将其切成550mmx550mm大小的薄片垫到四个角处,我又在桌子侧面预留了USB接口给树莓派,这样就可以在有需要的时候连接键盘。
将这个连接到树莓派也可以通过其连接到外部端口,可以看成是一个防尘作用
如果按照之前的步骤保护显示器,我在这里加了塑料保护桌面,这个时候一定不要忘记揭开安装
之前的线口有些大了,从之前切掉的多余板子中切下一部分盖在上面
最后将RetroPie安装在sd卡中,然后需要将后缀名为.elf文件( start.elf、start_cd.elf、start_db.elf 以及tart_x.elf)复制到sd卡中,当然还有 NOOBs,关于这一点可以参考: 点击我
好了,上面的过程可以被看做抛砖引玉,如果有感兴趣的小伙伴,一起尝试一下吧。。。。。
*参考来源: element14 ,饭团君投递,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)