1
0

小更新

This commit is contained in:
Helloworld_Dk 2023-07-10 22:12:39 +08:00 committed by GitHub
parent ae7a3877a9
commit 8debf39181
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 199 additions and 13 deletions

212
tn/2.md
View File

@ -249,6 +249,10 @@ ito膜一般都是$406mm宽度*裁切长度$,如果店家支持自定义长度
提示ITO膜不只有$406*length$一种,还有$1250*length$,两人合购$1250*600$,再裁开$2 * 625*600$
![dummy](pics2/20230710200504.jpg)
**LATEX公式渲染可能存在问题建议查看md文档原文此写法在VSCODE自带md渲染器里不存在bug但是github渲染会出错会latex的大佬可以开个issue或者pullrequest帮忙解决下感激不尽**
![dummy](pics2/zizhishike1.jpg)
于是我们使用自制蚀刻法,
@ -407,38 +411,221 @@ todo
触摸检测模块是对于已经引出出来的区块,用什么模块/IC来对是否触摸做出检测并作为一定协议的信号与主控单片机通信
todo
目前主要有以下选型
#### MPR 121
价格:便宜
灵敏度:好
刷新率与I2C速率有关但是即使是最慢的读取方式刷新率依然超过官方面板
延迟低于官方面板使用此方案制作打歌可能出现FAST巨量考虑在程序里面加个队列增加延迟来解决问题
生产状态目前各大平台均有售卖但是MPR121是已停产芯片
每片支持的触摸点数12
总线: I2C
支持的地址切换数4
电压供电及IO3.3v
**严禁使用5v供电**
**目前大多数人使用的都是此方案**
**本教程提供的所有程序均基于mpr121**
![dummy](pics2/1688990326190.jpg)
此方案附加内容,地址切换教程:
I2C总线通过地址分别不同设备MPR121模块默认地址一般是0x5A我们需要修改其他片的地址让其工作在不同地址这样才能一个单片机的一个总线连接多个MPR
ARDUINO生态 开发板I2C总线已连接设备地址列出工具[i2cdetect(arduino library](https://github.com/mcauser/i2cdetect)
1. 称取一片分析纯的MPR121
![dummy](pics2/IMG_20230710_201123.jpg)
2. 翻到背面切断ADD跳线**务必保证切断同时不伤其他线路**
![dummy](pics2/IMG_20230710_201250.jpg)
3. 正面焊点ADD短接GND,VCC,SDA,SCL分别获得地址0x5A,0x5B,0x5C,0x5D
#### ILITEK 2117A0
**官方面板触摸IC**
目前用这个的且被我知道的仅有一人,无法提供足量信息
价格:??
灵敏度官方同款IC
刷新率官方同款IC
延迟官方同款IC但是不知道主控程序会不会影响
生产状态:目前国内各大平台均无售卖,需要海外代购,是否停产不知道
每片支持的触摸点数:??
总线: I2C
支持的地址切换数不需要切换一片IC电极总数已经足够
电压供电及IO
#### 其他IC
市面上还有很多各种各样的触摸IC但是出于都没试过无法提供信息
#### 其他事项
1. 触摸优化: 据某大佬提供在触摸IC提供的电极接口上串联适当的电阻几十k到几百k可组成LC滤波但是感觉是说错了应该是RC滤波增加触摸的稳定性减少虚空触发等问题。官方面板有此操作
2. 高速总线走线提倡等长原则即同一片触摸IC模块连接主控的两根信号线应该完全等长避免数据传输错误或者无法传输。
3. 本教程提供的程序对于mpr121的调教基本可以适配大多解决方案但是依然有人30%反映少量区块存在虚空触发问题有能力的大佬建议通过修改mprsetup里的参数调节mpr适配自己的作品。
### 5. 主控单片机(图中未拍到)
主控单片机说的是对于触摸检测好的信号转换成可以连接电脑的USB/串口信号等用的芯片/开发板
todo
考虑的有以下几点
A 单片机性能包括串口性能I2C总线性能之类
B 单片机电压比如如果需要使用mpr121则IO和供电电压需为3.3v
#### 首先讨论串口
**这部分可能非常难懂,以作者语文将近不及格的表达水平来讲解,可能更难懂,不明白的可以不看讲解部分,看加粗部分即可**
这东西对于只知道普通串口的人比较难以理解还有部分人借所谓9600波特率太慢来抹黑本项目只能说这种人可能连这些串口的原理或者正常传输的条件都不知道。
目前主要有两种,
##### 一是走usb转串口芯片
转变为TTL等信号再连接单片机此方法一般延迟较大但是波特率是满足的但是经过测试会影响性能。
代表Arduino Nano 、UNO等
**这个方案串口最高理论速度133.3333hz刷新率,延迟较高**
此方案讲解如下:
<details>
<summary>展开查看</summary>
<pre>
1. 电脑通过某种设备板载RS232串口USB转TTL串口例如CH340制造一个硬件串口单片机一般自带硬件TTL串口
1. 双方通过串口控制信息初始化串口包括波特率传输速度数据位x位停止位x位等
2. 双方交叉连接以预先被写死的串口控制信息传输串口数据信息要求双方串口控制信息设置完全相同才能正常传输。不然假设一方以另外一方两倍的速度发送和接受这边发两个bit那边在同样的时间接收一次显然就会炸。
那么游戏程序本身内定串口控制信息是9600的速度游戏程序打开串口初始化电脑端为9600波特率电脑告诉串口设备以9600速度在那两条串口TXRX数据线上发送和接收串口数据信息那么远端单片机就必须以9600去配合双方才能正确的传输信息
所以这个9600实际上是游戏程序限制的s公司在开发这个设备的时候就确定了这个波特率所以不管是官方面板还是自制面板一般都是要使用这个波特率的为什么要说一般呢因为见下USB-CDC
**以下内容可能让您感到不适**
有的人说“打开程序一看就知道这个方案肯定不行波特率才9600那么慢还好意思发出来”这样不知道是真的不懂还是忽悠不知道串口这玩意的玩家来抹黑这个方案的。
有本事你用这种走真实存在的串口两条线的串口不修改游戏的前提下做一个大于9600波特率的。
或者说按照你的说法9600波特率就是方案不行那官方面板9600波特率官方面板官方机台肯定不行刷新速度那么慢打不了大歌官机只能打打12以下的小歌大歌1414+打不了(((((
就这么说吧如果程序里面以115200速度打开串口去配合游戏程序就像你写了个串口通信的程序单片机程序里是115200然后电脑串口监视器以9600波特率传输...额,这,但凡接触过串口的都知道这样必挂吧..如果我都说到这份上了还要问“你有什么证据证明官方是9600”“9600那么慢官方肯定不是9600你这9600肯定不行”我已经没话说了。
</pre>
</details>
##### 二是USB-CDC串口USB-CDC
代表atmega32u4 Arduino Leonardo , micro , sparkfun pro micro ) ,samd21,支持usb的esp32使用usb直连电脑并打开cdc功能支持usb的stm32使用usb直连电脑并打开cdc功能等
**这个方案最高理论串口方面限制速度166666.6666hz刷新率,延迟极小**
此方案讲解如下:
<details>
<summary>展开查看</summary>
<pre>
大家可能对这玩意不是很熟悉,但是其实大家可能接触过很多这种。
叫名字不熟悉那我说atmega32u4的板子samd21的板子之类的走直连usb连到电脑上电脑识别的串口就是所谓USBCDC串口这样熟悉了吧。
你在这类板子上一般只能看见主控一个芯片没有ch340等串口芯片
我们知道官方程序里面设定的电脑以9600打开串口其实这里可以算出官方理论最高屏幕触摸刷新率是多少未经修改的游戏触摸数据包每个是9个字节也就是72个bit9600波特率也就是9600bits/s计算得到串口限制每秒最多133.3333个数据包即官方最高理论极限是133.3333hz实际上应该是达不到的所以在这顺便也说一下其实并不用担心用这个方案做出来的触摸面板的性能因为官机的性能其实并不是很好官机延迟大刷新率低顺便说一下还有人说mpr121性能不够来说方案不行的我只能说它性能可能不是那么顶尖但是至少够用做出来纸面性能大于官方面板官方面板能干的他都能干我觉得这就足够了。
那么为什么说我们的方案的性能包括刷新率可以超过官方呢不是说波特率都被限制到9600了吗
首先我们要知道9600波特率是在硬件那两条线上面传输的一个提前约定的速度。使用两条线那种传输方式电脑先以一个高速的线路比如usb告诉usb转串口设备串口控制信息和串口数据信息usb转串口依靠串口控制信息描述的速度等在两条线上面发送和接收数据。说白了就是这个9600的速度限制的是那两条线上面的速度实际上电脑最本身系统里面是不管这个速度的那么如果我们的usb设备从拿到串口控制信息和串口数据信息之后就截胡了呢
usbcdc就是这样一种东西他提供给usb设备一种通讯方式在电脑上显示为一个串口usb设备可以是一个单片机一类单片机告诉电脑自己是一个cdc设备电脑就把他识别为串口并当作串口去处理他这个单片机一类的东西自带usb能力它接收串口控制信息和串口数据信息并进行自己所需的操作它本身可以作为usb转串口使用你可以编写程序让这个设备接收到串口控制信息和串口数据信息之后像一个usb转串口ch340一类的东西一样以串口控制信息的参数把串口数据信息从自身的硬件串口发送出去和接收后传给电脑官方版arduino UNO的usb转串口芯片atmega16u2就是这样使用的当然自己也可以直接内部处理数据并以usb速率12Mbit/s跟电脑以一个串口的通信方式通信。比如这个单片机可以是atmega32u4游戏程序打开串口初始化串口为9600他拿到串口控制信息9600和串口数据信息之后直接扔掉了串口控制信息9600因为他不需要这个东西这个东西是用来控制硬件两条线串口上面的传输的。因为不经过硬件两条线他不受波特率等约束他自身就直接跟电脑以usb12Mbit/s速度通信他自己自身处理好数据把数据就直接发给电脑了速度12Mbit/s这样不受9600的限制进行传输没有133.3333hz的理论限制我们就可以做到超越官方的刷新率同时没有经过usb或者电脑内置串口芯片转换rs232的步骤直接使用低延迟的usb通信延迟也做的比官方低。
</pre>
</details>
CDC和普通usb转串口的讲解图片详见读卡器说明文档最后面
[读卡器传送门](https://github.com/HelloworldDk/stm32_aimereader)
#### 然后我们考虑单片机自身计算性能,电压之类的
i2c速度
目前基于328p的nano uno等应该是最慢的一批基于32u4的速度较好使用目前通用程序这种比较慢的读取方式依然有100hz刷新率实测完全足够鬼知道官机实际刷新率低到哪了。
进阶可以选择samd21速度较快达到140-160hz刷新率超越官方理论极限
存储空间:
samd21开发板碾压32u4和328p以后要加队列加延迟的话32u4内存难以胜任但是samd21非常足够
电压:
基本每款板子都有对应的5v和3.3v版本记得选择3.3v版本即可
#### 总结和对制作的影响:
显然串口方面最好选择usb-cdc串口的板子这就去掉了arduino nano之类的板子
i2c方面 stm32有锅
esp32类似的板子没测试过
考虑到综合来说
新手使用promicro32u4较稳这东西速度略慢因此对走线要求小实际上测试100hz也足够打14+歌曲。**建议新手选择此款**
老手使用samd21比较好这个刷新率足够快比较安心但是对走线要求较高线要略粗焊接稳定等长才能保证高速i2c正常运行目前有samd21新手用不起来的旧例
### 6. 基层透明板
基层玻璃说的是将区块等内容固定加固的面板和手接触的面板,可能这样说徒增抽象,实际上就是那块手摸到的透明(玻璃一类的)板,也是要把区块贴/做上去的透明(玻璃一类的)板
累死宝宝了,先把最推荐选项写进来,然后休息休息以后再补
最推荐选项5-7mm钢化八边形玻璃板尺寸根据不同的屏幕大小自行计算非常小的台20寸以下可以考虑亚克力大台禁止亚克力尺寸越小的台玻璃板可以越薄不会打歌时候弯曲就行保证上面贴的ito导电面跟屏幕显示器之间有大于等于1cm的稳定空隙越小的台空隙可以适当减小
摘抄一段之前小批教程第一批成员帮忙整理的文档
感谢这位无私奉献并且markdown比我写得好的成员
- 一张较薄的亚克力板或者玻璃板,尺寸至少覆盖圆形屏幕区域。
- 此处感觉**玻璃容易碎和不好固定****亚克力容易划花和弯曲**,大家自行斟酌。**新教程更新:目前推荐全部使用玻璃**
##### 透明板厚度问题
> 众所周知,我们触摸面板需要距离屏幕一段空气,保证触摸不被屏幕干扰,或尽量少被屏幕干扰。
> 屏幕可以相当于一个导电物体,他里面有很多导电细丝,跟手一样。
> 他靠近触摸区块,会触发触摸,所以我们要保持这块距离。
>
> 考虑亚克力,如果你施加力量于亚克力,他会弯曲,会导致面板在使用的时候不定期靠近屏幕。
> 所以我们需要增加厚度或者换材料来避免这个弯曲,这就确定了**厚度的下限**,也就是最薄不能太薄。
> 关于触摸,我们肯定想要,触摸区块电极能离手越近,越容易产生电容值变化。
> 而触摸是隔着那个透明板操作的,透明板厚度决定手最近距离区块多近。
> 如果太厚,就是太远,难以感应,这确定了**厚度的上限**,也就是最厚不能太厚。
> 根据不同屏幕尺寸14 寸的透明板面积肯定比 43 寸小。
> 施加一样的力,根据人类智慧,造成影响也不会有 43 寸那么大。
> 一片大亚克力肯定比小的更容易产生全局的弯曲,所以需要根据屏幕大小去选择厚度。
> 除了亚克力还有玻璃,玻璃也是会弯曲的,虽然没有亚克力那么容易,但是要考虑他造成的影响。
> 而且玻璃还要考虑一点,就是**可能会碎**,这个考虑一下。
#### 新兴方案
##### 双层玻璃
先看图,以后解释
ps图右边是双层玻璃方案左边是传统方案
![dummy](pics2/IMG_20230619_224416.jpg)
todo
### 7. 固定材料和大底板
固定材料和大底板说的是最外面把基层透明板固定,也接驳外面整体固定架子的一块板子,这样说也是徒增抽象,可以看图就是指最外面那个黑色木板和金属固定件类似物体
这部分实际上不属于本方案,本方案专注于那块能触摸的玻璃的部分,也就是触摸面板本体,外面的固定,底板这些属于结构范畴,暂不属于教程部分。
其次我不会做结构,这部分可能要等别的大佬来写
**此部分跳过和等待后续更新**
todo
## 第六部分 触摸屏制作详细步骤
#### 蚀刻基本步骤
dkmaiproj原创蚀刻方法
ito导电面去掉保护膜涂感光蓝油风干
打印菲林,白色部分为需要留下的部分
菲林盖在ito带感光蓝油的导电面上uv120秒
显影液处理直到不需要的部分表面感光蓝油全部溶解
hcl-fecl3 蚀刻液 处理
清洗表面,后脱膜液处理,直到所有蓝油脱落
蚀刻完成
个人家庭可用简化原创思路世界首发表hwmug design版权所有
#### 某个步骤 打印对照纸
@ -475,4 +662,3 @@ hcl-fecl3 蚀刻液 处理
![dummy](pics2/caiqie003.png)
![dummy](pics2/3dpicplacetip.png)
![dummy](pics2/IMG_20230619_224416.jpg)

BIN
tn/pics2/1688990326190.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

BIN
tn/pics2/20230710200504.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 KiB