转载

极客DIY:制作一款属于自己的街机

极客DIY:制作一款属于自己的街机

还记得那些给人带来乐趣的街机吗?你是不是也想拥有一款属于自己的街机呢?如果你有想法,那么就请看看我们的极客大神是如何DIY属于自己的街机的吧,相信你会大呼过瘾的。

工具

宜家 Lack 咖啡桌

树莓派

Arduino Leonardo(基于ATmega32u4一个微控制器板)

游戏摇杆

按钮

17寸液晶显示器(4:3相对好一些)

USB供电的电脑音箱

树莓派2.5A 电源

其它(电线、连接器、螺丝钉)

这里我用到的显示器是宏碁AL1716,这个显示器有17寸。我拆掉了显示器的塑料外壳,然后拧开螺丝,当然这里你需要在准备的咖啡桌上准备合适的凹槽,这样就可以将显示器嵌入进去了,下面就来一起看看如何做到的。

拆下支架,拧掉显示器外壳螺丝

极客DIY:制作一款属于自己的街机

这有可能是粘在一起了,小心翘银色的边框

极客DIY:制作一款属于自己的街机

当然外壳完全分开之后,先不要着急将显示屏拿下来,同时需要注意显示屏与外壳之间的电路板以及按钮,千万不要损坏这些。

极客DIY:制作一款属于自己的街机

去掉显示器外面固定边框的螺丝

极客DIY:制作一款属于自己的街机

现在取下显示屏然后放到桌面上

极客DIY:制作一款属于自己的街机

屏幕安装

在第一次尝试过程中,我们使用了Dremel电动打磨机在桌面上打磨凹槽,貌似很不错的样子。但后来发现其实也没有那么麻烦,使用刀( Stanley)也可以完成,当然选择在你。下面就可以

看到是如何钻孔(13mm)的,然后按照你之前的画好线的位置进行工作,值得注意的是,不要将位置弄反了。如果掌握不好距离怕超出范围,工作的时候可以到10cm位置停下来然后再从另外一端继续。最后在四个角将需要去掉的部分弄出来,这一步需要小心,不要损坏桌面。

将显示屏放在桌面上画出位置大小,当然少不了摇杆以及按钮位置。

极客DIY:制作一款属于自己的街机

标记四个角的位置,一会从这些标记的位置下手。

极客DIY:制作一款属于自己的街机

钻出四个角

极客DIY:制作一款属于自己的街机

这样做的目的主要是防止桌面损坏

极客DIY:制作一款属于自己的街机

沿着线进行切割,如果不慎手滑,那么就会前功尽弃,所以要小心。从第一个孔到第二个孔之间需要小心,如果怕超过范围可以到第二个孔之前留下一段距离,这样可以避免手滑导致的杯具

极客DIY:制作一款属于自己的街机

当你将上面完成之后就可以将需要去掉的部分翘出了,这一步需要小心,而这个时候还容易将里面连带的东西翘出所以需要特别小心。

极客DIY:制作一款属于自己的街机

用小刀将蜂窝纸切掉

极客DIY:制作一款属于自己的街机

现在桌子部分完成了

极客DIY:制作一款属于自己的街机

按键安装

现在需要制作按钮的位置了,在桌面上面安装按钮以及摇杆。首先需要mark一下摇杆以及按钮的位置,每个孔需要28mm(半径),这样就可以给摇杆足够的空间来移动了,然后再用螺丝固定摇杆。当然这里也需要从桌子下面将其固定,当在桌面上固定摇杆的时候可能会松动,所以将摇杆上的球通过底部向桌面上穿入进去时,底部向下这样就可以看不到任何痕迹了。装按钮比较简单,就是在孔( 28mm)直接装入即可。

在桌面背后进行切割,首先需要标记一下

极客DIY:制作一款属于自己的街机

需要的位置已经预留

极客DIY:制作一款属于自己的街机

标记摇杆以及按钮位置,然后开始钻孔大小28mm

极客DIY:制作一款属于自己的街机

摇杆底部被拆下,最后从桌面底部安装时在用这些螺丝固定

极客DIY:制作一款属于自己的街机

标记摇杆底部的孔,进行安装

极客DIY:制作一款属于自己的街机

将摇杆上面的球拧下来开始从桌下面进行安装

极客DIY:制作一款属于自己的街机

将球安装回原位,然后固定螺丝

极客DIY:制作一款属于自己的街机

控制部分

控制部分(Arcade control)相对比较简单,摇杆就相当于四个方向,但树莓派与这个不太相吻合,于是我选用了 Arduino Leona与树莓派进行匹配,这样就可以进行电脑那种控制,还有树莓派键盘。按钮连接到Arduino Leona,然后作为按键使用,作为一条回路开关就在另外一边,当然你也可以设置按键名称。

极客DIY:制作一款属于自己的街机

下载安装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 )来放一个音量调节器,然后再用热胶固定。

拆下音响的音量控制器部分,然后放置在一边

极客DIY:制作一款属于自己的街机

利用焊接方式制作延长线

极客DIY:制作一款属于自己的街机

在桌子的边上钻孔放置音量控制器

极客DIY:制作一款属于自己的街机

标记扬声器的安装位置

极客DIY:制作一款属于自己的街机

钻的这些孔主要是为了以后能够听到声音,然后固定之前的扬声器以及音量控制器部分。

极客DIY:制作一款属于自己的街机

电池

我打算将电池放入桌子中,我将连接器放入桌子底部然后用延长线将电源线延伸,当然我们之前已经将树莓派与扬声器连接之后可以处理信号问题,值得注意的是,我在这里都在桌子下面走线。

为电源预留的位置,然后将IEC连接器连接电源

极客DIY:制作一款属于自己的街机

现在可以焊接IEC连接器以及电源,然后进行安装

极客DIY:制作一款属于自己的街机

在桌子底部固定电源上螺丝之后,尽量将螺丝拧紧。这样就可以将树莓派、USB适配器、树莓派以及屏幕等安装一起了,当然一根电源线就可以供电了。

极客DIY:制作一款属于自己的街机

最后修改

这里重中之重的是显示屏,这里就需要用到亚克力材料,将其切成550mmx550mm大小的薄片垫到四个角处,我又在桌子侧面预留了USB接口给树莓派,这样就可以在有需要的时候连接键盘。

将这个连接到树莓派也可以通过其连接到外部端口,可以看成是一个防尘作用

极客DIY:制作一款属于自己的街机

如果按照之前的步骤保护显示器,我在这里加了塑料保护桌面,这个时候一定不要忘记揭开安装

极客DIY:制作一款属于自己的街机

之前的线口有些大了,从之前切掉的多余板子中切下一部分盖在上面

极客DIY:制作一款属于自己的街机

最后将RetroPie安装在sd卡中,然后需要将后缀名为.elf文件( start.elf、start_cd.elf、start_db.elf 以及tart_x.elf)复制到sd卡中,当然还有 NOOBs,关于这一点可以参考: 点击我

好了,上面的过程可以被看做抛砖引玉,如果有感兴趣的小伙伴,一起尝试一下吧。。。。。

*参考来源: element14 ,饭团君投递,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

原文  http://www.freebuf.com/geek/104014.html
正文到此结束
Loading...