A9VG电玩部落论坛

 找回密码
 注册
搜索
查看: 13261|回复: 34

做一台属于自己的Game Boy

[复制链接]

精华
0
帖子
22
威望
0 点
积分
22 点
种子
0 点
注册时间
2016-3-18
最后登录
2019-8-4
 楼主| 发表于 2017-8-9 22:04  ·  浙江 | 显示全部楼层 |阅读模式
本帖最后由 wdmomo 于 2017-8-18 21:45 编辑

建了个群,有兴趣的加群一起探讨diy:416901745


前言

  算是记录一下自己diy的折腾经历,大概3月初入坑到现在,一路折腾让我学到了很多东西,同时也认识了很多一起喜欢折腾的网友,感谢大家的一路相伴与帮助~
  之前听说树莓派的各种已经心水不义了,网上一查无奈国内的价格不是一般的高,这和官方宣传的差距太大了,让我犹豫许久,后来听说这是由于有很多原因导致的,我就不巴拉巴拉了,无意中就发现了国产的orangepi,选择了了体型最小的zero,然后就不知不觉进了一个很大坑。。。

最初的尝试

  最初的想法因为想diy掌机,电路板的选择就倾向于小型化了,一开始我以为很简单,兼容树莓,现成的软件可谓很丰富,结果错了,H2的zero几乎没多少人玩,既然已经买了硬件了,那只能先研究起来,开始折腾GPIO,想想把屏幕驱动上外加按键差不多功能就搞定了,可惜找了很长时间资料真是太少了,通过一些零星的资料文件,GPIO驱动及PY库总算找到可用的了,但是很多树莓上的按键程序测试无法使用,软件不是强项只能放弃了,另外群友也移植了树莓的FBCP程序,由于底层优化等等问题还未完善,工作起来也只能复制一下屏幕的显示了,在此感谢友友的研究。
  1.   GPIO驱动:github.com/wdmomoxx/WiringOP-Zero
  2.   PY库:github.com/wdmomoxx/orangepi_ZERO_gpio_pyH2
  3.   FBTFT驱动:github.com/notro/fbtft
  4.   香橙派的FBCP程序:github.com/wdmomoxx/OrangePi_FBCP
复制代码
顺便上一***作图片,GPIO控制LED以及驱动屏幕




  软件折腾不动那就开始折腾硬件了,屏幕重新选择了通用的AV屏幕,按键研究了一下单片机,用单片机做了一个usb的按键手柄。



  单片机是arduino的莱昂纳多,按键板正好手上有个雕刻机简单雕刻了一块,程序简单写了一个然后兴致勃勃开始搭硬件测试,最初的想法还是用的3D打印外壳,开始按着硬件画图打印,组装,完成,结果太丑了,打印手感也不是很好,发几个图纪念一下吧。
单片机程序如下:
  1. #include "Keyboard.h"
  2. int val2, val3, val4, val5, val6, val7, val8, val9, val10, val11, val12, val13;
  3. void setup() {
  4.   for (int i = 2; i < 14; i++)
  5.   {
  6.     pinMode(i, INPUT_PULLUP);
  7.   }
  8.   Keyboard.begin();
  9. }

  10. void loop() {
  11.   val2 = digitalRead(2);
  12.   val3 = digitalRead(3);
  13.   val4 = digitalRead(4);
  14.   val5 = digitalRead(5);
  15.   val6 = digitalRead(6);
  16.   val7 = digitalRead(7);
  17.   val8 = digitalRead(8);
  18.   val9 = digitalRead(9);
  19.   val10 = analogRead(0);
  20.   val11 = analogRead(1);
  21.   val12 = analogRead(2);
  22.   val13 = analogRead(3);

  23.   if (val2 == 0)
  24.   {
  25.     Keyboard.press(KEY_UP_ARROW);
  26.     Keyboard.release(KEY_UP_ARROW);
  27.     delay(10);
  28.   }
  29.   if (val3 == 0)
  30.   {
  31.     Keyboard.press(KEY_DOWN_ARROW);
  32.     Keyboard.release(KEY_DOWN_ARROW);
  33.     delay(10);
  34.   }
  35.   if (val4 == 0)
  36.   {
  37.     Keyboard.press(KEY_LEFT_ARROW);
  38.     Keyboard.release(KEY_LEFT_ARROW);
  39.     delay(10);
  40.   }
  41.   if (val5 == 0)
  42.   {
  43.     Keyboard.press(KEY_RIGHT_ARROW);
  44.     Keyboard.release(KEY_RIGHT_ARROW);
  45.     delay(10);
  46.   }
  47.   if (val6 == 0)
  48.   {
  49.     Keyboard.press(0x61);
  50.     Keyboard.release(0x61);
  51.     delay(10);
  52.   }
  53.   if (val7 == 0)
  54.   {
  55.     Keyboard.press(0x62);
  56.     Keyboard.release(0x62);
  57.     delay(10);
  58.   }
  59.   if (val8 == 0)
  60.   {
  61.     Keyboard.press(0x78);
  62.     Keyboard.release(0x78);
  63.     delay(10);
  64.   }
  65.   if (val9 == 0)
  66.   {
  67.     Keyboard.press(0x79);
  68.     Keyboard.release(0x79);
  69.     delay(10);
  70.   }
  71.   if (val10 == 0)
  72.   {
  73.     Keyboard.press(0x6C);
  74.     Keyboard.release(0x6C);
  75.     delay(10);
  76.   }
  77.   if (val11 == 0)
  78.   {
  79.     Keyboard.press(0x72);
  80.     Keyboard.release(0x72);
  81.     delay(10);
  82.   }
  83.   if (val12 == 0)
  84.   {
  85.     Keyboard.press(0xB1);
  86.     Keyboard.release(0xB1);
  87.     delay(10);
  88.   }
  89.   if (val13 == 0)
  90.   {
  91.     Keyboard.press(0x0A);
  92.     Keyboard.release(0x0A);
  93.     delay(10);
  94.   }
  95. }
复制代码






做一台属于自己的GB

  网上简单搜了一下,淘宝找了个经典的GB砖头机外壳,还是拿着实物比划来的直观。看了下内部结构,香橙的zero放到里面感觉刚刚好,于是开始图画先把主板给固定上。




  主板固定完成后还是有很大空间来利用的,众所周知,全志的芯片运行起来热乎乎的,壳子一安装,热量都散不出去,必须加个风扇才放心,找了个笔记本的风扇安上位置刚刚好。



  主板和风扇搞定后开始折腾屏幕了,网上买了3.5的AV屏幕模组,一比划,这次外壳肯定得动刀了,手工用刀切了几下,效率实在是太低了,突然想起之前网上看到用纸切割塑料的视频,灵机一动抽屉里还有一个吃灰的小电磨呢,于是切了一个圆形的纸刀安上试试,





  效果很不错,不像锯片会把塑料给化掉,切口也很整齐,唯一的不足,切割的时候手抖切割线也不会很直,这个后面再做弥补。
  切完以后比较遗憾的是把螺丝固定的几个脚全部阵亡了,后续还得想办法如何固定后盖,屏幕就直接用胶水先固定起来了。
通电测试基本ok然后就开始想办法搞按键了,由于竖版机器,LR键比较难搞,思来想去还是整到了前面板加上ABXY正好打6个孔
  按键板子比较麻烦,考虑到后面还有接入电池充电以及声音功放,干脆就做个全功能的一体板子,也省去了后面各种模块接线的繁琐
  然后开始画图纸,安照GB内部的孔位及外形画了一块板子,先用木板切割了一块试装尺寸OK



  开始画电路板,电路板的功能很简单,简单总结为一下几个:
  1.电池接入可充电及5V输出,这样供电系统就有了;
  2.功放功能,主板LR音频接入,喇叭输出以及耳机输出音量可调;
  3.就是最重要的手柄按键功能,还是用单片机实现比较容易,标准的USBHID免驱设备,win,mac,linux,android等多种平台通用。
  按键板初具外形,打板前向群友要了一张比较帅的图片贴上,发给厂家开始打板。



  在等待的过程中继续折腾外壳,按键的孔还没有开,因为是个正圆,没有打孔器开起来就比较麻烦了,最后还是尝试用雕刻机雕刻,之前没用雕刻机主要是因为以前雕刻塑料会出现粘刀的情况,这次给雕刻机换上了尖刀试试,结果效果很不错,效率大大提高,位置也比较精准,于是屏幕开窗也雕刻机开搞,就是定位比较麻烦,效果很是理想。




  这里又有一个问题,比较注重外观屏幕开窗外部留一圈这样比较美观,案件位置6个孔之间的距离比较匀称,所以屏幕安装后,最上面的按键与屏幕有一小部分冲突,于是将按键一边切去一部分,为了防止与屏幕卡住,圆形的按键也会有所移动,用打印机打了一个圆形的定位环将按键定位解决了这个尴尬的问题。



  几天等待按键板到手了,焊接原件刷完程序基本主要功能OK,安装上去刚刚好




  遗憾的是,部分接线搞错了,导致耳机口有点问题,摇杆的按键也出现错误,等后面有空再优化吧,打板的时候顺便也打了一些手柄键盘的小板子测试,发现这个mjoy的手柄程序真的很牛逼,精度也很高,支持8个轴和28个按键,键盘的小板直接就是72个按键,以后做diy都随便接了




  原外壳上有几个孔,右边2个正好把主板上的usb以及音量旋钮安装上去,测量一下,雕了一块小板子放上去刚刚好




  左侧也有一个小孔,原来打算把另一个usb口也接出来,但安装后会于AV屏幕的驱动板有冲突,于是改换成充电口,因为不太好固定,此处外壳正好有个凹陷,灵机一动,画了个小零件,正好把usb充电口给固定上了,安装后还算美观





  上部的小圆孔正好放个小开关控制风扇开启,后续还得打个帽子,不然太丑了,主板的接线用了一块小的转接板插接,安装也方便不少,差不多完工组装测试,还算满意。





后续的工作

1.再优化一下按键板子,把错误的地方修改完善;
2.外壳内部切割,造成螺丝孔无法固定,得画个零件将这一部分缺失的补上;
3.插卡部分暂空着,还原经典,得把这个也搞上去;
4.电池部分的弹片修改一下,并联4节5号锂电应该就差不多了;

  因为平时工作生活也比较忙,折腾时间不多,陆陆续续玩了4,5个月发帖记录一下,分享自己的DIY经验,也算给新入坑的友友一个借鉴,也欢迎大家多提供一下建议,最终做成一部完美的经典GB Pi~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

精华
0
帖子
1040
威望
0 点
积分
1102 点
种子
39 点
注册时间
2005-4-25
最后登录
2024-11-29
发表于 2017-8-9 23:34  ·  广东 | 显示全部楼层
厉害啊,支持一下

精华
0
帖子
5553
威望
0 点
积分
6171 点
种子
628 点
注册时间
2015-12-23
最后登录
2024-1-15
发表于 2017-8-10 00:19  ·  广东 | 显示全部楼层
我的烂尾了……看看有没有机会捡起来~你的很有参考价值……

精华
0
帖子
553
威望
0 点
积分
615 点
种子
10 点
注册时间
2009-4-19
最后登录
2024-11-16
发表于 2017-8-10 09:37  ·  河南 | 显示全部楼层
全能的大神,膜拜

精华
0
帖子
2433
威望
0 点
积分
2528 点
种子
17 点
注册时间
2013-7-5
最后登录
2023-12-20
发表于 2017-8-10 09:53  ·  四川 | 显示全部楼层
哇塞,真强 惊艳到我了,绝对美品啊!这才是真正的大神。

精华
0
帖子
698
威望
0 点
积分
706 点
种子
0 点
注册时间
2017-6-14
最后登录
2020-3-16
发表于 2017-8-10 10:09  ·  江苏 来自手机 | 显示全部楼层
我的密集恐惧症犯了

精华
0
帖子
569
威望
0 点
积分
615 点
种子
23 点
注册时间
2009-5-30
最后登录
2024-11-27
发表于 2017-8-10 11:34  ·  福建 | 显示全部楼层
这个只能羡慕一下了,

精华
0
帖子
1595
威望
0 点
积分
1633 点
种子
23 点
注册时间
2017-8-8
最后登录
2024-5-29
发表于 2017-8-10 12:13  ·  台湾 | 显示全部楼层
神了
该用户已被禁言

精华
0
帖子
1342
威望
0 点
积分
1360 点
种子
5 点
注册时间
2013-10-10
最后登录
2017-9-23
发表于 2017-8-10 13:09  ·  吉林 | 显示全部楼层
弄成GBA外形不是握着更舒服吗

精华
0
帖子
6774
威望
0 点
积分
6880 点
种子
226 点
注册时间
2006-3-14
最后登录
2024-11-29
发表于 2017-8-10 15:59  ·  河南 | 显示全部楼层
很强,能不能发点运行游戏的画面?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|A9VG电玩部落 川公网安备 51019002005286号

GMT+8, 2024-11-30 07:34 , Processed in 0.220090 second(s), 24 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部