1
0
dkmaiproj/README.md
2023-06-20 22:22:33 +08:00

34 KiB
Raw Blame History

自制省钱高性价比maimaiDX控制器$全!$解

在此添置一个公告栏!

请先不要参阅旧版教程它太老了很多做法现在认为都是相当错误的至少22寸以上不要参考请等和看新版教程

跳转到正在编写的新版教程

  1. 43寸版本已经有至少3人成功总成功人数不论尺寸至少有5人成功目前没有失败案例听我话的制作成功率100%
  2. 更新了可以调整每个分区连线,阈值的版本,非常方便。
  3. 测得了刷新率如果使用mpr.baselineData()-mpr.filteredData()读取34个分区刷新率大约100hz如果使用touched()来读取刷新率至少1000hz
    3.1.根据原版io协议即官机协议波特率为9600每个包包括包头包尾总共72bit所以官机理论最大刷新率133.333333333333333333333Hz上文提到“如果使用touched()来读取刷新率至少1000hz”实测是否具体1000hz不明可能测试方法有问题在“使用mpr.baselineData()-mpr.filteredData()读取34个分区刷新率大约100hz”情况下将pro micro换成AtSAMD21seeed XIAO SAMD21由于支持更快更稳定的i2c可以达到200hz左右但是200hz时有神奇的加了灯光之类的串口设备后触摸初始化成功但是不能正常使用问题故降低i2c速率约在140-160hz正常工作因为使用USB-CDC 串口由于不经过真正串口信号无需波特率实际波特率无视速度最高为usb fs速度12Mbps所以可以不受波特率9600限制纸面参数严格超越官方设备。 3.2 所以因为目前认为1415之类小于20寸大小暂认为15寸左右都可以再大未尝试设备目前mpr121参数稳定可以直接使用touched获取所以无需关心i2c速度可以选择pro micro来制作刷新率很高。但是20寸以上建议必买samd21制作samd21优信电子售卖seeed牌价格33CNY左右promicro 3.3v 16mhz无名科技开源硬件约31CNY左右实际上价格相差不大建议不论尺寸无脑选择samd21samd21同价格性能更高有利无害具体samd21会不会有特殊问题类似部分stm32 i2c有坑目前至少没有遇到保证刷新率不会影响游玩。已买pro micro也不用担心16Mhz的pro micro运行在近100hz实际效果也相当足够毕竟官机理论最大值才133hzsamd21iic速度较快对于单片机到mpr的连线要求比promicro要高很多很多失败记录较大所以先用promicro保证整体没问题再升级samd21更好
  4. 正在写新版程序一周内更新可以选择两种读取方式三种刷新率模式可以调整增加延迟以匹配官机面板的高延迟防止游玩全是fastearly
    5.作者突然回归文化课,程序更新失效将失去保证,对不起(。

第零部分 协议

对于请勿侵犯SEGA以及WAHLAP权益的声明

本作仅适用于个人制作游玩原则上不提倡也不反对制作后发售。若发售或由读者自己的行为造成不当影响和任何纠纷本教程作者和本教程不负任何责任。请勿侵犯SEGA以及WAHLAP权益。若作者行为或是本教程产生了不良影响我对我的行为表示抱歉并可修补甚至撤下本教程希望大家的理解。
当大家在展示自己手台效果的时候,不要发布不该发布的东西,让我们一起遵守。

对于协力者,贡献者的感谢

我的触摸代码部分几乎完全是mai2touch的项目搬来的然后更改修复了一些mpr121配置上的问题配置部分借鉴了Arduino-Chunithm-Controller的代码。读卡器使用的也是同作者的Arduino-Aime-Reader。在此对mai2touchArduino-Chunithm-Controller,Arduino-Aime-Reader和它们的作者表示衷心的感谢如果没有mai2touch和Arduino-Chunithm-Controller以及对它们下了很多心血的作者我的控制器将失去它最重要的灵魂。
在此感谢Sucareto以及他的项目Arduino-Aime-ReaderArduino-Chunithm-Controllermai2Touch!

此版本可以单独调整每一个区块的连线和阈值内置接线mpr分区来自春暖花开的设计newmap-llvermtn202212271340

里面使用一个数组存储了每个区块具体的接线信息和阈值,这样更加方便大家使用自己对于接线方法的设计!建议自制的同志们每个人都下载看一下,比以前的程序接线自由度好很多! 数值里面是每个区的信息对于每个区第一个是这个区连接在哪个mpr上1-4分别对应0x5a到0x5c第二个是接在这个mpr的哪个引脚从0到11可选第三个是阈值越大越难触发越小越容易触发。
请记住,你需要将程序里面每个 cap.writeRegister(MPR121_ECR, B10000000 + XXXXXX);中的XXXXXX改为对应mpr的接线脚位号最大值例如你四片mpr每片接8989个那么在mprsetup最后一行就是填9然后还有一连四个的那个地方就按对应的写8989如果不知道怎么修改就全部写成12如果填写的小了会导致大于设置开启数量的之后的分区无法正常工作。

里面带的分区的接线是春暖花开的设计“这样分可以更简单的做到膜到mpr的每根漆包线都不会交叉有充足的空间给每一根放置”使用四片mpr分别放在四角进行连接并设计减少了交叉造成的干扰是非常大方和聪明的设计这种无私奉献的精神值得我们每个人去学习
里面带的是43寸的mpr参数。
注:春暖花开=洛梨

感谢yywooc提供的mpr放在面板周围分布和重划分区块归属mpr的宝贵思路可以减少制作难度降低干扰

感谢tansuotro提出增加从mpr到区块的电阻来组成LC滤波降低干扰降低虚空触发让充放电更稳定的设计暂未进行测试但是很有道理在此表示感谢
虽然他说是LC但是我感觉应该是RC 传承开源精神我将自用的程序开源但是仅仅用于我手里的硬件测试成功不同的走线制作方法使用的mpr配置等也不一样不建议照搬。

对于本教程版权的声明

HWDK_OPENSOURCE 开源项目
本项目为 Helloworld 团队 Dk 提项并研发验证作为开源项目上传Github
商业性:本作品允许合理商业,但作者不支持也不反对,但商业化造成的任何影响和结果,造成任何纠纷与作者无任何关系,有了我的教程,制作会简单一些,但是也很难,不保证所有人都能制作成功
对本作品商业化的额外要求:基于本方案的作品,在您的改动不大的情况下(添加图形文字丝印/在程序等地添加自己的标识不计算为改动若对功能做出改变如在本基础上添加其他游戏兼容读卡器代码使新代码有意义部分可见字符长度远远大于原来程序或更改电路PCB增加无线功能不受本要求约束严厉禁止售卖产生大于500元/每个43寸等大台75元/每个15寸及以下的小台的利润使用本项目制作售卖者我有权查你的原料账单如果不符合我的要求有权挂你不让你卖看看谁能那么厚脸皮
以上加粗字本作品指本ITO裁切区块和漆包线引出到mpr等触摸芯片的设计也就是本Readme.md长篇大论讲述的东西以及对于原来Mai2Touch项目的我更改的部分例如随心设置区块等功能其他的不是由我设计的部分不受我约束

本作品使用mpr121漆包线裁切等方案虽然非常破烂可能电气环境不是很好但是依然达到可以正常游玩没有问题刷新率和延迟非常可观的效果即使硬件确实存在瓶颈但是瓶颈足够不明显以至于完全不影响使用的底部所以可以说虽然看上去差使用的材料方案不是那种高大上的但是完全足够了已经有多人实测证明视频为证希望大家擦亮眼睛不要被表象所迷惑

本教程是由Helloworld_Dk纯手打写出的思路也是几乎完全自己想的。
如果我能给大家的想法产生帮助,我感到非常荣幸,如果您觉得我的方案对您有帮助,希望可以在您的项目发布时,跟上一句"本方案的部分灵感来自Dk"或类似的话,我将不甚感激

第一部分 总览

总览

本方案是使用导电膜裁切漆包线引出的触摸部分为核心的低价maimai控制器制作方案。由于被逼到无奈很多也像制作maimai手台的玩家支持而写了这样的一个教程。

本作品旨在弄个便宜好用的方案,让大多数人都可以轻松把这个东西做出来,同时不要效果差到没法玩。

43寸版本已经有至少三台制作成功 根据核算的价格约三千多元可以实现没有按键的整台43寸控制器约五千不到可以实现带有按键和灯光的整台43寸控制器
根据核算的价格约两百多元可以实现没有按键的整台15寸以下控制器约四百不到可以实现带有按键和灯光的整台15寸以下控制器

下图是朋友洛梨制作的43寸非常的漂亮他的评价是触摸非常好用
luoli_43

为想要做一个maimai手台而又对高昂的价格和空缺的思路望而却步的观众们提供一个全新的高性价比的思路。

只要你不嫌麻烦,有耐心,有学习的精神,就可以以非常低的价格做出视频中的样子。甚至,可以使用这个思路做一个超低价的街机尺寸台

所以没有想过类似定制玻璃什么的,当然,使用定制的材料一定会让效果更好,甚至还原出街机的水准。

被骂哭了,视频删掉了。
我错了,请不要再骂我或者嘲讽我了。
以下两个链接无效:

### [方案效果展示](https://www.bilibili.com/video/BV1pe4y1m7pr/)
### [使用32u4的延迟更新后的展示](https://www.bilibili.com/video/BV1PW4y1E7io/)

todo: 另一个项目,顺利的话,大的要来了|来了,是读卡器那个项目,请进入我的主页打开读卡器项目!

常见问题

1.本教程内程序似乎无法在43寸设备上正常运行但不意味着本项目无法做43寸版本。需要调整mpr121参数才可以在43寸设备上使用具体参数请自行尝试后续我会公开43寸参数。 现在已在43寸上测试成功可用程序已发。

本项目有14寸15寸43寸已有人制作成功如果你没有成功请不要急着喷项目因为大有可能是你制作上的问题以下是别的同志在制作过程 自以为是 中遇到的问题我让其改正后均可解决。问题存在性和致命性均经过事实验证不保证这样做一定会失败也不保证不这样做一定会成功但这样做大概率会失败。同时如果你想要找我指导或者提出issue请确保你没有犯下述内容中的错误否则拉黑不予处理。

1.自以为是擅自不按照教程执行还觉得自己很对觉得这样不影响。如果您对mpr之类的原理不熟悉比如不知道他是个电容触摸传感器没有注意然后将触摸板或模块置于金属桌子或腿上测试失败者。还有不知道电容类传感器电极相关注意事项而使用自己的错误方法连接模块和电极等。  (解决:不熟悉的按照教程来,完全复刻,不容易出问题,您认为的影响不大,可能影响很大。)    
2.使用杜邦线连接各设备或者直接将线拧在一起来连接将线芯跟mpr焊盘绑起来连接如果杜邦线连接方式不牢靠松动劣质氧化严重可能导致触摸板电极或mpr无故停止工作数据异常。原因瞬间的电容值变化容易让mpr的自动适应算法无法处理会导致mpr内部出错。而mpr数据线松动可能导致mpr数据传输错误或断点重启而未初始化。同时公头杜邦线那根金属针如果直接接触电极由于杜邦线自带塑料会让其倾斜实际上连接会非常不稳定只有一个似断非断的点状导电面接触脆弱的导电涂层导致电气性能极差等解决作者建议能焊接的线不要怕麻烦全部进行焊接实际上掌握了焊接熟练的时候焊接比插线快。mpr引脚连接电极mpr端焊接另一端剥长皮打圈  
3.电极导线触及屏幕屏幕内走线等有可能导电相当于手去触摸导致电极一直处于按下状态mpr无法识别到底手按还是没按解决方法走线固定好与电极一同距离屏幕有一段距离  
4.电极导线长度差距巨大长的导线可能造成更大的电容值短的导线电容值小导致mpr电极间读数呈现一些高一些低灵敏度设置极其复杂难以实现。解决方法尽量规整走线用多长截多长并让线间距离相等不要过远过近其次以较短的路径连接到mpr可以让导线间差距缩到比较小  
5.将mpr所有引进包括电极插到面包板再插杜邦线引出杜邦线说过不再提面包板内部是许多条金属片金属片具有一定面积会让电极间产生不必要的电容轻则影响读数重则无法读数。解决方法建议用焊接线的方法连接所有电路并将整个电路固定在一张不导电的板上等效于电路悬空不受干扰。而不使用其他连接方式  
6.尝试使用5v单片机mpr电源/IO电压是2.5-3.6v低则可能无法工作高则可能直接烧坏mpr。目前大家能买到的mpr模块上面仅由mpr几个电容电阻组成不带电压转换芯片无法在5v下正常工作。目前没见到使用简易mpr板子配合5v单片机能正常工作的。解决方法使用3.3v单片机或使用adafruit出品的mpr之类自带电平转换支持3.3-5v宽电压的版本。实际一片带电平转换的版本跟简易mpr的差价就超过了5v单片机跟3.3v的差价所以还是买3.3v单片机合适)(下有常见单片机电压)   
7.不会写程序,乱改程序还觉得自己很对,自己反省。(解决方案小台直接使用sucareto开源的版本或者我开源的版本大台自己学一学再整或者等我发大台参数)   
8.找我问问题指导或提issue而不把自己改了什么东西告诉我不按照教程做但隐瞒我让你怎么处理你不按我要求处理我让刷我测试程序告诉我数据你非要把程序改了再发我数据让打狗却去逮鸡还表现的得意洋洋觉得自己很对这种人再出现在我面前我直接拉黑。
9.切割导电膜误差大两片触控区间缝隙小可能会造成串区和数据异常。解决方案按照教程一步步来打印对照纸来辅助裁切切得缝隙间距不要一窄一宽。如果是大台一张a4打印不完可以分多张打印总之尽量裁切准确贴准确让缝隙大小均等避免问题
常见品类 单片机常见支持电压 说明
ESP系列 3.3v esp系列一般都是3.3v一般可以直接连接mpr
328p,168p 1.8v-5v,常见为3.3v 代表产品Arduino UNO/NANO/MINI 一般可以直接连接mpr
32u4 具体多少不知道常见为3.3v和5v 代表产品Leonardopro micro。其大部分未说明的都是5v少数有说明是3.3v的才是3.3v版本5v不可以连接mpr3.3v可以。

第二行uno/nano/mini我近期发现还是有很多5v的一定做好分辨否则买回来不能用就傻了

tipsesp,328p,168p大部分需要连接usb串口才能造出usb串口延迟较大本人推荐32u4这种自带usb的有低延迟usb串口的芯片。3.3vpromicro一般很贵且只有8Mhz晶振版本。作者在某橙色购物软件上找到一款typec的有粉色黑色沉金pcb自带复位键还引出iic的版本16Mhz只要30具体店铺就不放了本人试过非常好用性价比很高可以搜搜看

stat: 延迟的问题已经被消除,写一个常见问题解答(重要!!,包含非常普遍和致命(?)或麻烦的错误)已完成

43寸版本 制作测试成功43寸可用代码参数已经上传

43寸版本 73行 cap.writeRegister(MPR121_ECR, B10000000 + 12);//MprRun 改成B01000000 + 12可能有优化的效果感谢yywooc的优化
目前141543寸都已被测试成功可用

第二部分 目录

  • 第零部分 协议
    • 对于请勿侵犯SEGA以及WAHLAP权益的声明
    • 对于协力者,贡献者的感谢
    • 对于本教程版权的声明
  • 第一部分 总览
    • 介绍
    • 方案效果展示
    • todo和stat
  • 第二部分 目录
    • 目录
  • 第三部分 触屏制作指导
  • 第四部分 读卡器个人思路分享
  • 第五部分 已删除
  • 第六部分 按键和灯光(未完成)

第三部分 触屏制作指导

这位更是重量级

触屏ALL

整个制作是非常的省钱非常的好用像是铝箔贴的chuni控制器纯手作省钱能用就行精神是这样的。

被骂哭了,专栏一并删掉了。
我错了,请不要再骂我或者嘲讽我了。
以下一个链接无效: 本教程与之前发布的专栏相互照应,相互补充,建议一起阅读

做 手 台 不 试 试 瞎 搞 手 作 便 宜 省 钱 , 就 像 四 大 名 著 不 看 红 楼 梦  说 明 这 个 人 文 学 造 诣 和 自 我 修 养 不 足  他 理 解 不 了 这 种 内 在 的 阳 春 白 雪 的 高 雅 艺 术  他 只 能 看 到 外 表 的 辞 藻 堆 砌  参 不 透 其 中 深 奥 的 精 神 内 核  他 整 个 人 的 层 次 就 卡 在 这 里 了  只 能 度 过 一 个 相 对 失 败 的 人 生。

你需要的材料:

  • 触摸部分

    • 尺寸合适的ito导电膜一定要买带胶除非你真的想好了胶怎么办。下面会有为什么要这么做的说明。
    • 一张较薄的亚克力板或者玻璃板,尺寸至少覆盖圆形屏幕区域。此处感觉玻璃容易碎,亚克力容易划花,大家自行斟酌。本人使用的一张比亚克力优秀的塑料板。
    • 较细的漆包线
    • 你超棒的手工能力
    • 透明胶带
  • 屏幕部分

    • 一块跟你触摸板相对应的合适大小的屏幕,本教程应该不适用于小于十寸的屏幕。
  • 程序和mcu

    • 本人使用的mai2touch项目并对其进行修改相关链接在教程开头协议部分。
    • Arduino或类似的开发板我建议使用pro micro不建议使用使用了ch340串口ic的板子。但是我使用pro micro被喷过和嘲讽过.....别人说它性能太差,可是我真的喜欢。

    mpr最大支持电压是3.6v使用5v io/vcc 的单片机十有九.八会造成mpr不可用请使用3.3v io/vcc的单片机。大多Leonardopromicro都是5v的少数3.3v才是我们需要的,请不要买错否则白买。

制作过程详解
这部分在专栏讲的很详细,特别是图片详细。
统共有以下步骤:

1. 打印对照纸

说的玄乎其实就是用一张A4纸或类似的纸将触摸区块图片打印下来。尺寸要与你目标屏幕显示的大小完全对应。建议打印至少两张。

打印对照纸

2. 裁切

把a4纸跟买到的触摸膜贴在一起固定好然后根据a4纸裁下每一片触摸区块
注意一定要固定好哦,不然剪着剪着位移了剪除奇形怪状的区块可就难办了! 裁切 裁切 裁切

3.粘贴

首先你不是打印了两张A4纸吗一张被剪了另一张好好的请规划好位置之后把A4纸打印面朝向亚克力板或玻璃板粘贴在另一面应该可以透过亚克力板或者玻璃板看到另一面清晰的打印的区块。用于之后粘贴位置的对应。 粘贴对应

导电膜是这样的结构:
不导电面朝上,导电面朝下,依次是:

  1. 一层保护膜
  2. (如果是带胶的才有)一层透明胶
  3. 聚酯离型膜,自此间隔,上面称为不导电面,下面称为导电面,不导电面有胶,导电面无胶
  4. ito导电涂层
  5. 一层保护膜

粘贴这一步,我们需要完成的是

  1. 亚克力或玻璃板
  2. (如果是带胶的自带,没带胶的会让你痛苦到怀疑人生)一层透明胶
  3. 聚酯离型膜
  4. ito导电涂层
  5. 一层保护膜

假设没有买带胶的膜,就自行点胶(透明的,支持粘贴塑料的,不会腐蚀塑料的,固化不回缩的,粘贴可以调整的)固定每片触摸块到屏幕上。
在写这篇教程的时候我自己搞的胶腐蚀了我的塑料板导致A5区域透明性下降...距今已过去十分钟,警钟敲烂,所以千万别贪便宜买不带胶的!
需要撕下不导电面的保护膜。不导电面朝向塑料板粘贴,请勿将导电面贴到塑料板上
如果是买的带胶的导电膜,不导电面恰好是带胶面,裁好了可以轻松粘在塑料板上。完全不用经历大力对抗胶水的那一步。
唉,这个地方别省钱,要不让你感受人间痛苦,宛如晚清十大酷刑。

自己搞胶的痛苦,详见专栏图片。

痛苦 坏处

4.引线

引线这一步,我们需要完成的是

  1. 亚克力或玻璃板
  2. 一层透明胶
  3. 聚酯离型膜
  4. ito导电涂层
  5. 漆包线
  6. 单面带胶的透明胶带

引线

之前我说的是

要去漆包线的绝缘漆,  
撕掉导电面保护膜,  
用透明胶带初固定,  
尽力沿着区间缝隙走线, 

评价是先走中心的c区然后慢慢向外区块做这个是中心思想  
其次是按照从下到上 顺序操作的先是最底下的区56那些处理好慢慢往上处理。  
这样在处理完一些之后,可以横着贴一张长长的透明胶带把已经完成的区固定好避免之后散掉。

依然可以参照,在此补充操作绝对步骤,引用我教别人的聊天记录

这样
先把漆包线准备好,头上刮漆打圈
把带胶不导电面贴好
然后准备一段透明胶带
然后把导电面保护膜解开
放漆包线
粘胶带
一气呵成

这里有关ito的一个特性是ito遇水二氧化碳容易变质影响导电性能和透明性。
所以在放上漆包线后,应当尽快用一些方法将导电面全部覆盖隔绝空气。我使用的是透明胶带,虽然不是特别好看但是能用。

关于导线具体从区块到触摸板边缘的引出方法详见b站专栏非常详细

总的说就是先从底下的中间考虑,也就是看下图先处理底下中间红圈再处理绿圈再处理橙圈再贴一张透明胶带上去。再往上一步一步地处理整个触摸面板。

运用了贪心的思想,中间的区肯定是最需要往外走的,所以需要先考虑,从哪条缝走过去。而边上的很简单就可以引出去,可以在把难搞的安顿好之后再处理。从下往上一是因为可以做一块贴一整块透明胶带,其次是下面不会像上面一样被屏幕挡住无法从边上轻松走线。先把东西往下安顿可以减少后续上面的工作量。


要点:处理顺序、不要吝啬在圆外面的初固定胶带,周围挡起来游玩看不见,减少线乱飞

更新:由于根据思考,是否绕过区块都可能造成少量干扰,所以直接直线从区块上方走过去,还是从区块边缘绕过去应该效果差不多,根据试验,无论是哪种走线方式都是可行的,请按需走线

走线

4.接线

详见b站专栏讲的足够详细基本没有要补充的。

发现一件逝情我好像没说mpr跟arduino怎么连线有人不会连所以在此补充
首先由于mpr121通过I2C总线与主控连接所以每个mpr是并联起来的
每片mpr的vcc(3.3v)接在一起接到主控的VCC上
每片mpr的gnd接在一起接到主控的GND上
每片mpr的SDA接在一起接到主控的SDA上如果不知道主控哪个引脚是SDA请谷歌搜索主控板名字+pinout或百度搜索主控板名字+引脚定义
每片mpr的SCL接在一起接到主控的SCL上如果不知道主控哪个引脚是SCL请谷歌搜索主控板名字+pinout或百度搜索主控板名字+引脚定义
但是在此注意I2C总线通过地址辨识设备mpr每片买回来的时候是同一地址需要手动切换地址具体方法是
找到您买的mpr的ADD跳线其大概默认是短接的默认ADD短接到GND地址0x5A请用小刀螺丝刀等尖锐物将短接走线割断刻断请一定刻稳准狠要确保跳线被完全刻断并且不要伤到其他电路。然后板子应该引出了ADD的接口ADD短接GND,VCC,SDA,SCL分别获得地址0x5A,0x5B,0x5C,0x5D。

割断/刻断过程请小心,不要伤到自己或板子其他电路
请勿在不割断的情况下短接ADD到其他引脚特别是VCC否则造成短路所以我们要求必须确保完全割断不能似断非断。

接线

1.先把arduino跟mpr121的I2C连好。

2.根据程序确定哪个区接在哪个mpr121的哪个io如果你的程序不知道是哪个io把程序写到板子里面用一根螺丝刀按在每个io上看游戏测试汇报哪个区被按下。通常是连续的比如A1到A8是一个mpr的0到7之类的很好确定这个是一种办法。另一种是根据你从触摸面板上接出的漆包线的位置在程序里面规划好哪个接哪个合适不用绕可以走线不像我一样乱糟糟。

3.走漆包线。面对从塑料板边缘引出的34根漆包线无从下手是吗我感觉这样比较好以横向中轴为开始的地方从这里向上下处理。

因为两边的线很容易可以从边上引到中间的mpr121上而偏上偏下的难搞要绕。所以从中间处理会方便很多。走线原则从空闲地方走尽量隔出空隙不要横跨一张mpr121板子上面不能直接 绕,绕最好从左右,下面也可以勉强绕一下。

之前留的漆包线建议足一些,不然这步容易踩坑:要绕一些地方焊接,就需要足够长的线。有时候线发现不够长,这时候如果你发现在透明胶带下走的路径对现在要走的地方不合适,觉得拽回来就可以了,不绕路了,够长了。但是小心!!你一拉那个漆包线,很可能把上面在触摸区域走的打好圈的线拽移位,到其他区或者圈没了。这会让你极其难办。你不得不拆下粘的很牢的透明胶带,把线重新拽回原位打圈放在该在的位置上。透明胶带这种东西撕下来粘第二次透明效果就会很差,所以千万不要乱拽漆包线,返工让你怀疑人生

但是遇到真的不够长怎么办呢,可以尝试用圆滑的焊接接上一段,做好绝缘应该没什么问题。

到这里,你的线接好了。

要点确定好io对应区写在之前打印过的A4纸上对照着纸上面的区块位置接会方便很多。不要拽漆包线。

5.程序部分

我使用的是github上的开源项目mai2Touch。曾遇到过问题如下

QA1对于328p编译失败不支持的开发板改改上面的宏定义即可。不建议使用带ch340的328p板子... 感觉是延迟的来源,新买的板子还没到...不确定。 就是延迟的来源不用洗我promicro已经到了非常低延迟爱来自32u4。这条QA仅限于你要用UNO/NANO/MICRO才可能会用到但是本人非常不建议使用因为延迟极大

QA2Serial.write 歧义 编译失败在write传入的参数前面强制类型转换为(byte)。如Serial.write('A');改为Serial.write((byte)'A');

QA3:触摸出现问题,莫名触发,串音,灵敏度错:~~我自己重写了mpr121配置部分代码然后就解决了某论坛有配置详细教程这就不发了。~~实际上是从Arduino-Chunithm-Controller搬来的寄存器设定代码并加以改动我摊牌了。

6.游戏连接部分

你好,不可能发游戏的,这里只提一下连接的一些问题

QA1:怎么连的串口直连按照github上的readme走。

QA2:怎么按下在闪不是长按github截止到写这个专栏里面教的写错了。DummyTouchPanel=1应该是01的话是开启了的mai程序自带的调试触摸然后导致自己的设备和自带的调试对着干一个说按了一个说没按就开始闪。设置为0避免程序调试触摸影响。

QA3: 怎么感觉我的触摸没问题,但是程序里面好像跟无响应一样:神奇问题你插上电脑之后先用ide传一遍程序进去就会好。用rts|dts小工具试过也不行就是ide传程序可以非常神奇。仅发生在我手上的ch340的arduino nano上其他板子也许没问题。传过程序之后只要不断电reset arduino 不会影响。断电需要重传程序解决。 听国际友人说好像是ch340在arduino上锁i2c什么的我英语很差初中水平看不懂.....反正避免使用328p+ch340即可解决问题。非要用的话每次重新上电需要重刷一遍程序。

~~ 其实我当时这么乱的接线我觉得我必定失败,一定串音,结果上测试程序告诉我静默跟没接一样的一点干扰都没有(7-11)按下能上最高100多的数值(40-120),我超,太美丽了,这必成功,我都不敢相信,但是真的可以!!乱搞万岁 ~~ 删除线挂了,给其它符号转义了也没用,不知道为什么。

至此,已成艺术品
至此,触摸部分硬件软件完成,撒花 ★,°:.☆( ̄▽ ̄)/$:*.°★

6.屏幕部分

触摸面板跟屏幕的摆放

对准位置然后固定就ok了。也可做成跟我一样的可插拔式。

注意屏幕跟触摸面板之间一般需要留出3-5mm的空隙避免屏幕干扰

比如像我在边框上加了一圈单面带胶EVA垫也可双面直接用于固定屏幕但是就不能做可插拔屏幕了。

屏幕1p设置

我的展示中的1p是因为我有俩屏幕估计诱骗也非常的可行。
在显示设置里面设置maimai屏幕为主屏然后摆放在不作为maimai屏幕的那块的右边上对齐就可以了。
需要启动命令全屏0然后-popupwindow
不知道我的方法是否适用于您的屏幕 显示设置

关于怎么开1p+2p暂时没有需求就不搞了 应该不难

第四部分 读卡器个人思路分享

读卡器正 读卡器反

在最新一次发布的b站展示视频中可以看见我的读卡器。他最亮眼的部分是均匀的光。其原理是使用了一块拆机的 屏幕背光板 进行光的一个导,视频中并非完成品,要做的更完善,需要使用大一点的背光板,配合侧照的灯,而不是我这粗制滥造的测试机的操作,不过对于全尺寸的灯加上手动侧照已经能达到如此不错的效果,等到完善之后效果应该不言而喻的非常不错。

目前我看到其他大佬们制作的读卡器,没有使用了本方案的,我觉得这个思路对于光的均匀度方面效果不错,于是就发出来供大家参考。

关于读卡器的程序 使用的是Arduino-Aime-Reader项目。但是注意这个项目并不原生支持328p。由于我家328p奇多读卡器并不需要极低的延迟,所以我考虑了使用我家奇多的 arduino nano(328p+ch340)制作,因为成本低。在过程中遇到了一些问题并解决了,如下:
QA1程序无法通过编译需要改改宏这个上面说过了。
QA2程序编译正常readertest正常手动发包疑似正常就是游戏不可以发现游戏发送初始化命令发送dts/rts或相关内容的时候会让arduino重启reset触发显然不对劲因为在重启过程中游戏发包arduino不会给出回应。尝试短接rst与3v3强制禁止其重启问题解决。

但是usb转串口可以重启arduino不是bug而是一个不错的功能arduino在下载程序的时候需要重启才可以开始。电脑可以让arduino重启本身是为了方便下载程序而做出的美好设计但是在此处影响了功能。  
如果直接短接会造成无法正常下载程序。我的解决方法是在rst跟3v3直接加一个开关下载程序就断开当读卡器的时候就闭合。  
这样也许会?对复位电路产生略微的短路,但是目前使用效果极佳,就先这样用了。

第五部分 已删除

第六部分 按键和灯光

不存在的按键,和简单的灯光

直接promicro做成键盘就完事这个人人都会不用教网上一抓一大把。
据说可以把灯光塞进跟按键同一个promicro但是我没试过 在todo列表中 待完成

由于up主不再想造街机大小的控制器关于制作街机尺寸的按键应该是等不到了。

小台14寸或类似按键制作方法即将完成和发布约11.5前)
小台按键教程比触摸还难,作者认为不适合本文风格,很有可能不发了,发也是开另一个项目,感觉意义不大



END SEL                                                                  DOCUMENT BY HELLOWORLD_DK