AI 浪潮下,电子工程师的核心竞争力是什么?
缘起
近来突然对电路起了兴趣,想做点软硬件结合的玩意儿玩玩。而手头较近、较简单的玩意儿是……磁轴键盘。我就起了心思,想试试看自己能不能设计个电路出来。
背景
在下也算是科班出身,计算机专业,模拟电路数字电路都学过。
只是,大学教育水平很一般,实验室也不让自己动手,看教授表演。
我是从小就淘气,初中就学会了修收音机、电视机,所以这方面有点基础;但穷,买不起仪表,所以电路图能看懂、也知道各种电路该怎么设计,但没动过手。
之后做了二十多年的程序员,再没碰过电路。
换句话说就是:只有电路基础知识,有维修经验,学过模拟电路/数字电路相关理论,但没有设计电路方面的经验。
原理讨论
树莓派相关资料/项目最多,所以我选择自树莓派起步;在研究了pico 2040芯片的引脚之后,我找AI讨论:
我发现pico 2040只有3根引脚有ADC,剩下的gpio引脚都只能接受和发送数字信号。这意味着如果我直接拿它做磁轴键盘的话,这个键盘至多只能接三个霍尔传感器。这显然是不对的。 所以,我猜,正确的设计方案应该是: 1、用树莓派的7~8根GPIO当地址线 2、通过译码电路激活不同的霍尔传感器芯片 3、被激活的芯片才允许把信号传给ADC引脚,从而测出电压、得知它被按下了多少 进一步优化的话,应该是: 1、把霍尔传感器分三组,各自送往三个ADC不同的ADC引脚 2、每组各自独立刷新(需要使用更多的gpio接口,或者更复杂的外围电路) 3、按树莓派2040参数,它的ADC有500K/s的取样频率,那么每个霍尔传感器的扫描频率能做到多少
问题抛给AI之后,AI很快做出了回答:
1、这是有效的方案
2、树莓派虽然有三根ADC引脚,但内部只有一个ADC,三者不能同时用
3、500Ksa/s是理论值,实际上需要考虑电压建立时间(和寄生电容/回路总阻值相关)
4、因此,它并不能像你想的一样,得到3x500Ksa/s的采样频率
5、如果你使用的霍尔芯片自带运放的话,它的输出内阻只有1k欧,那么信号建立速度还是可以的;否则电压建立时间不够
6 、提示:GPIO引脚不能用CPU轮询的方式访问,而是要用PIO编程,否则跑不到理论最高速率。
剩下就是一直怂恿我超频,说2040的超频潜力非常高之类,我直接给无视了。
看到AI的回复,我立即修正方案:
1、按键仍然分三组,接三个ADC 2、ADC引脚并一个若干pf的小电容 3、仍然分组刷新,但A组测量时,B组被选中的霍尔传感器到ADC引脚2(以后简称A2)的通路事先打开,给小电容充能,使得A组测量完之后立即就能取样B组 4、如此,则可以把500Ksa/s的理论采样频率跑满 5、绝不用自带运放的霍尔芯片,太贵了
AI思考了很久,包括3根引脚在芯片内部的切换速度、内部寄生电容等等,告诉我:
1、芯片内部的切换速度可忽略
2、这就是取样-保持电路的设计思路,所以设计可行
3、但无法提速10倍,因为没有运放的霍尔芯片内阻较大,ADC采样频率跑不满
我继续问:
我并不想搞太复杂,所以我想改方案了;不过,在此之前,我想问一下,假如我搞两级级联的模拟开关、把霍尔传感器分10组充电然后再分三路接入ADC引脚(或者直接接同一路就行了,毕竟电容充电问题已经解决了),这能不能把采样频率提高10倍?
AI表示可行;但我的判断很正确,不应该搞两级模拟开关,因为寄生电容和阻容网络会影响建立时间和采样精度云云。
这点后来我想明白了,这是AI被我误导了。它以为我厌恶两级级联方案,就赶紧顺着我说不行;但实际是可行的。寄生电容等等还影响不到采样问题——大不了我还分三路接入,把初级模拟开关的延迟吃掉。
总之,我算了算,发现这样搞不到“电竞级1000HZ上报频率”,就问AI,更多ADC引脚的主控芯片、外接多路ADC、自带运放的霍尔芯片,它们各自价位多少?性能如何?
AI给我分析一番后,我发现TI的一款芯片非常便宜,批量采购价0.36美元,却有27路ADC。至于外接多路ADC、自带运放的霍尔芯片,这些成本都要高的多。
如此一番讨论之后,我就有了一个看起来可行的方案。但这毕竟是空想出来的,商业水平的设计应该是什么样子呢?我还遗漏了什么?
这些,我自己想不出,AI也说不出个所以然。
这就是AI的局限:你的知识水平不到,你就不可能触发它输出“高阶知识”。无论你怎么问,它都只会回答第一层的东西,你自己没有接触到第二层、第三层的东西,它就不给你输出更细节更复杂的。
买垃圾
早就意识到空想无益,我提前几天就下单在咸鱼买了个坏掉的磁轴键盘——我肯定要深度拆解以及搞各种实验的,那当然不能在我的主力键盘上做实验,搞坏了心疼,也耽误事。
买个磁轴键盘的尸体,修好它,顺便探探它的设计思路,这才是正路。
尸检
键盘尸体到了之后,我第一时间实验,发现它底下一排轴体失灵。立即拆开,发现线路板/吸音棉粘手,有褐色印迹。可能是某种含糖饮料泼里面然后干涸了——我猜是可乐。
这种饮料导致键盘定位板锈蚀、线路板几个测量孔露铜锈迹斑斑;但线路板本身有绝缘漆覆盖,状态极佳。
故障分析一
首先第一步当然是拿万用表量它的电压/对地阻值了。测试口都正常,但量到霍尔元件时,我迷茫了。于是问AI:
这个霍尔元件是很小的长方形封装,有三根引脚,一侧一根另一侧两根。其中一根到GND电阻低于0.5欧,应该是直接接地了;另外两根都量不到电压——无论是有故障的还是无故障的,都没有电压,但却仍然能工作。这是怎么回事?
AI建议我用万用表频率档量一量,看看是不是有高频。果然:
霍尔芯片左上引脚都有16KHZ的电压频率,右上引脚都有4KHZ频率。但坏掉的那一排没这个频率。另外,用万用表量它们的对地阻值,最上一排是221欧,然后是230欧、250欧、270欧;坏掉的一排对地380欧。
但调查到此就卡住了。板子被绝缘漆覆盖、线路细如发丝、还到处是装饰性的格子线条;线路板上到处都是通孔,同样细如发丝,被绝缘漆彻底封死,这就使得线路乱七八糟来回跳,压根看不清走势。
然后,我继续测量,收集到如下信息:
1、横向一排彼此4K信号端电阻低于0.5,是直接并联关系;不同行的4k端相互有480欧左右的电阻
2、16K信号端彼此都有电阻
故障分析二
此路不通,那就绕路。
绕路之前,我先分析它的工作原理:
霍尔元件是黑色长方体,只有三根引脚。根据我的理解,它的工作原理应该是:被选通后给它一个电流,然后它感应周围的磁场,在另一个引脚得到一个电压,磁场强度和电压相关。那么正常来说,它或者被16KHZ信号扫,或者被4KHZ扫,之后它的另一个引脚输出相同频率的电压供MCU的ADC测量。但为什么这里会有两个不同频率的信号?
AI输出一通分析,但我觉得不对:
哦,明白,也就是说4khz信号其实是行选信号。它的扫描频率可能是,以16KHZ的频率按列迅速“浏览”每列霍尔元件,然后再按4排轮流选择。4和16刚好是4倍关系,而它则有5排按键。但最下一排按键稀稀拉拉没几个,空格一个键占了6个键的空间,然后ctrl/alt/win等键一天都安不了几次。那么完全没必要给这一排键专门来一个行选信号,对吧。所以4-16是四倍关系,而不是15khz/3khz这样的5倍关系。这可能意味着它可以或者说应该和更上面一行共用行选信号?
AI认为这不太可能。或许传统机械键盘会这样做,但霍尔器件的敏感性不太适合这个搞法。
我不认可这个说法,但也懒得反驳。想明白究竟为什么,还得继续收集信息——如果如我所想,4倍关系意味着倒数第二排和最下一排共享4K信号的话,我或许可以直接接入它。
AI警告说如果gpio引脚被拉低,我这样接入会烧掉这路上的元件,甚至伤到主控这个引脚。但我隐约觉得不对,但说不清所以然。就置之不理,先试一试再说:
我搞了个比较危险的尝试,直接把空格的4khz端和上一排的字母V的4khz端短接,然后尝试按键。结果b、v都能敲进去,但空格敲后无反应。
AI表示这得到了一个关键信息;但不建议继续这样试,太危险,容易烧掉芯片。
但它的振振有词的一番分析我并不认可;不过我仍然没反驳它,而是提出了另一个可能:
会不会16KHZ才是out,而4KHZ是供电?每次供电扫四次,读四个值以便消抖。如此就可以解释为何短接空格和v之后,不会影响v且按空格也没有响应。因为信号走的不是一条通道。 为何空格按下无效?因为4K选通倒数第二排时,MCU并不会去读最下面一排的数据;而当选通最下面一排时,倒数第二排的4K信号是归零状态。于是我接入的这个信号对空格来说并不存在,因为读它的时候并不会通过倒数第二排的信号给它供电
AI倒是很痛快,直接放弃了它的猜测,认为这才是答案。
注:这里AI的看法是把两个频率视为行/列扫描信号;既然是行列扫描信号,它就认为信号是GPIO直接发出的。而GPIO引脚在不选择某个线路时,会把电压拉低(以输出0)。
也就是gpio 1输出1希望选中下面一行时,gpio 0会输出0来避免上面一行被选中。那么,当我从上一行借4K信号时,本质上就是把gpio 0和gpio 1两根引脚直接焊在一起了。此时两者输出电平起了冲突,就会导致电流大增,也就是gpio 0把gpio 1给短路了。
那为什么我敢接这根线呢?
因为我知道这是一根信号线。信号线是不会有太高输出能力的。再加上它是4khz,而现在的芯片动辄几百MHZ,那么这个引脚的占空比就会非常非常低。哪怕拿它当1M的低速IO口算,4KHZ的信号脉冲,占空比可能也就1%。
这意味着,哪怕我真把它弄短路了,这个短路时间每秒也就10ms不到,甚至更低。
我只是想临时碰一下猜猜电路逻辑,并不是焊上去再也不拆了、然后成年累月的用,这样做大概率是烧不掉的——真烧了也无所谓,这本就是我拿来练手的坏键盘。
故障分析三
上次冒险成功后,我决定继续冒险。先铺垫:
我量过它们的电压,都只有0.0001v左右。每一颗霍尔传感器的16KHZ/4KHZ脚都是如此。这可能和占空比有关:这个4K扫描占空比可能非常低,以至于万用表认为它没有电压。
我的意思是,这可能意味着这个线路的电流很小/电阻很大,且平常不和MCU接通,发热功率被限死了。那么我或许就可以试一试……
但AI显然没领会这个意思,得吧得吧的一通分析。我都没看,继续问:
所以一个应急维修办法就是——既然线路太细看不清,既然过孔无法排查,那我干脆直接给最下一排一个长通的3.3v算了。当然,串一个合适的电阻。这样当MCU去读最下一排时,它总有电。缺点自然是耗电增加。但这玩意儿插usb用的,串个47kΩ电阻用不了多少电。
AI比我有知识,哈哈。它告诉我,47KΩ电阻不够用,霍尔元件烧电还是比较凶的,建议从10kΩ开始,一路尝试4.7kΩ、2.2kΩ、1kΩ、470Ω、220Ω;并且长期引入3.3v可能污染其他ADC的输入,导致键盘输入彻底乱掉。
并且,通过计算,它告诉我,如果gpio被拉低,那么就等于3.3v电压通过电阻直接灌入gpio脚。那么1KΩ电阻就会带了3.3ma电流,这通常是无风险的;但470Ω就有7ma电流,此时开始有风险;220欧风险明显、100欧不建议尝试。
这反而给了我继续捣鼓的信心。于是,我给AI解释了为何我不觉得3.3v直接通过电阻灌入gpio会有风险:
它接入的引脚应该是ADC。用途是测霍尔器件的感应电压的。ADC本身是采样-保持电路。如果我们的推测成立,那么长通3.3v的后果是霍尔器件上面总有一个电流,但ADC本身可能并不会采样。尤其是,我认为它应该是每排通一个ADC引脚,而不是一个ADC引脚读所有。这本身也解释了为何短接v和空格时,空格按下不会有输出,因为系统没有去最下一排的专属ADC引脚读取数据。 这个引脚没有拉低的必要,除非设计者无聊。
AI表示这个推测成立;但我们并不能确定这个电路就是我们推测的结构。如果不是,我们把3.3v灌入行/列选择线连接的gpio,那就可能烧掉主控。
我认可这个判断。于是立即掏出万用表:
那奇怪了,似乎每一个16KHZ脚和其他16KHZ脚都不互通。和4KHZ脚之间有大约10M欧电阻。
AI表示这支持我的判断:4KHZ脚是供电,16KHZ脚是连接ADC的引脚,不可能是行选线。(省略一大堆电路分析)所以它现在支持我引入3.3v常态供电。但不建议我接220欧以下的电阻。
于是,我找出一个100欧电阻、一个10欧电阻和一个5欧电阻,从100欧开始试——为什么无视AI意见?因为我对霍尔元件的电压/电流/输出有一个估计,我觉得220欧可能太大了。另外,为什么我觉得这样没问题的原因前面也分析过了,这里不再赘述。
最后,我手头也没那么多五花八门的电阻;或者说,有,但是杂乱的“电阻包”,短时间挑不出合适的电阻。
故障分析四
实验之后,我给AI总结:
尝试串一个100欧电阻进去,没有任何反应;串10欧电阻进去,最下一排按键似乎一下子就全部触发了。空格还是没反应,但鼠标键马上就激活了,10欧电阻一碰就显示右键菜单,再一碰菜单消失。只是空格没出现。但后来发现我的输入法被切换了。拔掉有问题的键盘后,大概因为它没法ctrl up之类信号,导致另一个键盘敲任何东西都成了快捷键,无法输入。多次插拔、故意来回敲ctrl/alt/shift键后故障消失。这是否意味着我给的电流太大了?100欧太小,不够识别,10欧太大,霍尔元件被磁轴键极远处的磁场干扰产生的电压已经达到了触发门限。
AI对我的蛮干极度不满,后来一直给我碎碎念,说我的这个尝试可能把驱动管给烧了,哈哈。
更好玩的是,这个碎碎念后来我每次提问都可能触发,它都要再埋怨我一次,哈哈——你惹AI猫猫不高兴了,哼了个喵的!
我继续找AI唠嗑:
我认为它的工作原理是:使用几根gpio来提供行/列选信号,然后通过二极管各自接入一个或多个ADC脚。其中,行选信号相当于5根gpio以4khz频率轮番选择对应的霍尔元件;列选信号则相当于以16khz的频率打开霍尔元件out脚到ADC的输入通道(一个模拟开关)。而霍尔元件非常非常敏感,极小的电流/电压被测到就认为按键被按下。我通过配置界面/校准设置看过它记录的电压,极其敏感,没有触动按键都会有本底电压不停闪烁。因此芯片有一个0.1mm到0.2mm的保护门限,在这个范围忽略按键动作,以免误触发。我串100欧电阻显然不够触发,哪怕按键按到底;但串10欧电阻肯定是略大,使得霍尔元件输出超出了门限,这才导致信号被触发。
AI终于同意了我的分析,但不再允许我继续试。因为:
对 100Ω 和 10Ω结果的解释
我更倾向于这样看:
100Ω:
补电不足,或者仍然不符合正确时序
→ 霍尔输出没达到固件判定区间
→ 按到底也无效
10Ω:
几乎强制把底排 4kHz/VCC 节点拉高
→ 底排霍尔输出基线整体漂移/饱和
→ 某些键被判定为按下
→ Ctrl/Menu/Alt 等 stuck
所以你说“10Ω略大,导致输出超门限”是合理的。 但它不一定是被“远处磁场”触发,而更可能是:
霍尔供电状态异常后,输出基线已经偏离校准值,固件把偏移当成按键位移。
空格没出现也不矛盾。可能原因包括:
- 空格磁铁/霍尔的基线和其它底排键不同;
- 空格有更高门限或不同校准曲线;
- 10Ω触发了 Ctrl/Alt/Menu,导致空格被系统解释成组合键或被输入法吞掉;
- 空格对应 OUT/ADC 通道本身也有问题;
- 固件检测到异常值后忽略了空格。
你后面输入法切换、另一个键盘变快捷键,基本就是修饰键 key-down 发出后没有正常 key-up。这说明 10Ω 已经让固件进入异常按键状态,不建议继续低阻硬试。
这说明“常供电方案”不太稳
如果只要常供电就能恢复,理想现象应该是:
接一个合适电阻
→ 底排恢复
→ 不乱触发
→ 空格正常
但实际是:
100Ω:无效
10Ω:乱触发
这说明可用窗口即使存在,也很窄,而且可能依赖校准。它不是一个可靠的永久修法。
如果你还想探索这个窗口,建议只在限流下试:
100Ω、68Ω、47Ω、33Ω、22Ω
不要再用 10Ω。 每次都先看是否有 stuck modifier,最好开键盘测试器,不要在正常系统输入环境里试。
更安全的是用可调电源限流:
3.3V,限流 5mA 起步
逐步到 10mA、20mA
观察底排原始电压/按键状态
而不是用很小电阻直接怼 3.3V。
嗯,AI的话总结下来就是,让霍尔元件正常工作的条件可能非常窄,100欧不够,10欧超了;所以可以继续用更大一些的电阻试,但这样太危险,所以希望我搞个可调电源,输出限流电压——将来买,将来买,将来一定。
至此,调查又卡住了。我没可调电阻器,板上元件也太小,我不想在上面动烙铁,电阻都是我玩尽了手指杂技才摁上去的——又要确保电阻同时接触两个芥子大的触点、又要按背面的不同按键测试,手指受老大罪了。
故障分析五
继续检查线路板。随着我对它越来越熟悉,我终于看到了:
我想我找到行选通道了!线路板中间偏左有一排元件,一共分为5组,每组有一颗3个引脚的芯片和阻容网络构成。丝印的标记把芯片分别称为Q1、2、3、4、5,我怀疑它是一个三极管/场效应管/运放;每个Qn芯片上下各有两个元件,下方是两颗电阻,上方是一个电容和一个电阻,标记分别是Cx以及Rx之类。这看来是一个标准的三极管驱动阵列。
AI似乎也精神起来了,它建议我用万用表测量Qx的每个引脚和每排霍尔电阻的关系,看看究竟哪个管最下面一排。另外还有三个建议,什么用示波器看之类,我给忽略了——几十年没玩过电路了,我哪有示波器!
废话少说,直接量:
Q5就是。它的三根引脚,向上的一个和底排的4KHZ引脚之间是0.5欧,其他和底排4KHZ引脚之间都有500~600欧。
AI建议我继续测量周围的阻容网络。是个好主意。
Q5电容一个脚对地阻值380欧,其他电容对地阻值250欧。也就说它的对地阻值比别人多了130欧。所有这些电容的另一个引脚都是直接接地的,电阻0.5欧以下
AI怀疑这就是故障所在;但380欧……250欧……这组数字我见太多次了,霍尔元件上如此,Qx上也如此。我怀疑这可能不是问题:
我想这可能是正常的。因为其他排都是12~13个按键,而底排只有8个按键。 换句话说,上四排是12~13个霍尔元件并联接受供电,下一排是8个霍尔元件并联接受供电。那么下一排电阻大点才正常。
AI替我一算,表示确实如此,按每个霍尔元件电阻为R估算,底排阻值应该是其他排的1.5倍;而250欧的1.5倍恰好是375欧,和380欧对得上。然后继续让我看波形看波形……
我看不了波形;不过故障基本定位,我就和它开玩笑:
没示波器,没法查波形。我再看看线路吧。总之故障点肯定在Q5以及它之前了——题外话,你们AI的发散思维能力还是被人类吊打啊,哈哈。当然,你的表现比deepseek好太多了。那家伙只会拍马屁以及漫无边际的瞎猜,一看就不对!
然后继续搜集信息:
Q型号是A1SHB。我看不见,用手机微距拍摄后看到的。万用表量每个引脚以及附近每个引脚的对地、对3.3v电阻,都没有异常。那么问题可能只剩两个,一是Q5坏了,二是Q5到主控gpio的通路坏了 都是高阻态,黑接3.3量,每个Qx到3.3v都是9MΩ;红接3.3量,则每个Qx到3.3都是30MΩ
然后盲僧发现了华点:
红表笔刚接触下方左侧引脚、上方引脚时,阻值很低,看不清多少但迅速提高到10千欧以上,然后继续提高到3MΩ。这里可能有个电容储电,也就是这块板子的电路可能是“带电池的三模锂电版键盘电路”的一部分,做了极致省电/低电量优化方面的设计。换句话说,它仍然是供电,但这个供电是通过电容来的,给信号才放行电容电量。这应该是什么电路结构? 另外,这一组Q应该是通过同一个电容供电的,理由是万用表量任意一个脚时,起初电阻都很低然后迅速提升到几M兆欧乃至几十兆欧级;但一旦量过其中一个脚,其他脚就都在兆欧级了。仍然有充电过程,但起步就是兆欧级。
AI表示的确如此,这是常用的一种电路设计,它可能叫:
高边 P-MOS 负载开关 脉冲供电行驱动 RC 门极驱动负载开关 Power-gated sensor rail Switched sensor supply
并且,AI认为,不同组的Q或许并没有直接接在同一个电容上;不过,它们之间有联系,这是可以肯定的。
故障定位
至此,我和AI一致认为,Q5周边的阻容网络应该没问题,因为大家的参数量出来都一样;那么就只剩两个可能:
1、Q5坏了
2、主控GPIO引脚到Q5的线路被腐蚀断了
那么,究竟是哪个可能呢?
AI给的其中一个建议是用万用表HZ档量——别的建议?嗯,它就记住示波器了!
我买,我将来买还不行吗?但今晚我就只有这块万用表了!
Q5坏了。因为它们左下那个脚都有4KHZ信号,Q5也有;然后上方那个脚,除了Q5都有4KHZ信号,只有Q5没有。这个提示太准确了。
AI怂恿我把Q5和Q4交换、或者重焊周围的阻容网络。这都什么馊主意!
三个脚都量过,阻容体系看来正常,都一致。我倾向于就是Q5坏了。 补焊就算了,元件太小,一碰就没。Q5我都不一定能正确换掉,太小了,尖头烙铁大概才刚刚能触及,烫久了或者手抖了就累及周边阻容网络
AI表示哦是的你之前量过,阻容网络没问题。那就换Q5吧,然后又是和Q4交换之类。
这我当然就不听了。淘宝一搜,同型号的管子,1块钱20颗,包邮——我买20颗试不行吗?为啥要碰让我头疼的Q4?只焊一个Q5,这是必要的风险;碰Q4就是自寻死路了。
这AI,明显是被网上语料影响了——gpio引脚并联,它知道不行,于是死命阻拦我,哪怕我只是临时连一下看看变化、推理推理电路结构;而元件代换法是家电维修的常例,它吃的语料都在讲怎么代换,却不知道现实情况下,这种集成度太高、元件太小的板子代换本身可比临时借个信号危险多了。
总结
AI确实很厉害。如果没有AI辅助,我真不可能研究到这个程度 ——慢慢查资料猜功能猜设计思路,我应该也能到这个地方,但没个十天半个月的肯定搞不明白。
但另一方面,如诸位所见,如果我凭空问,那是问不出什么有效信息的;我问不出,AI就不知道答,或者回答了也不是相关的“进阶内容”,最后就是浪费时间、效果极差。
然而,有这么一块高水平的线路板在手里,我的基础知识学的又比较扎实;那么在诊断线路板故障的过程中,我自然不知不觉就触及了第二层、第三层的东西,AI自然跟着水涨船高,给出了更有用更深刻的答案。然后呢,我自己也较为敏锐,它提个念头,我马上就从第二层表面推导到第二层深处、甚至第三层浅表。如此左脚蹬右脚的,我和AI就相互激发着跑比较深的地方去了。
换句话说,这里有三个关键,一是我的电路知识储备得足、功能设计思路得有而且一引就能出来、并且对“正确的电路应该如何、出错了会如何”始终有明确的思路和方向,也就是打铁还需自身硬;二是AI的准确提示,我做了什么动作,AI的提示就必须准确且到位,含糊不清、隔靴搔痒、臆测瞎断……这样的提示是起不到这么好的作用的;三是得有个由头,比如一块设计水平较高(至少比我高)的板子、一个值得探讨但我尚未思虑清楚的问题,借着它,我和AI才能有个“抓手”,把藏在深处的东西抓出来。
这和我的一贯看法一致:AI的确很强,但它的强严重依赖于你自己的能力,它没办法凭空拔高你。
其他
这个坏键盘修到一半我就意识到了。之前AI带我做的那个“模拟开关”的设计,其实都是不成熟的。
这个键盘的设计就非常优雅:反正gpio线多,一组5根当行选择信号、4kHZ扫描、电容预充电、测量时才给霍尔器件电压;另一组当列选择信号(但列与列并不直接互通),16KHZ扫描,行信号给它供电了,列对应的gpio才去读,这需要13~14根gpio。
如此,除了行信号的充电电容、驱动电路,尽最大可能的压缩了外部元件数量,最终却实现了低电压仍能工作、省电等等功能,同时还有余力驱动每个键可独立调色调光的rgb等效。
我也是看到这个板子用电容充电、测量时才给霍尔元件供电,才意识到“级联模拟开关”并不是不能做。没问题,可以做;但,我默认把它放在霍尔元件之后了,人家放到了之前,于是功能和我一样,却额外多了低电量可用/省电等等效果,同时还避免了在微弱信号上做开关、导致信噪比恶化。
当然,人家用的芯片adc多、采样频率高,我熟悉的树莓派在这里有点先天不足,再加上我还老想尽量少用GPIO,以便玩点别的(而这个则可以豪横的直接5根gpio选中行、14个gpio选择列,电路自然更加干净清爽;不像我,n个引脚我就一定要识别2^n个设备):两者的设计思路/能力上限还是有差异的。
总之,这个板子比我最初那个初学者的原理性猜测完善的多,也优雅的多。受益匪浅啊。