锁匠和开锁者之间的较量,很多时候不在锁芯上,而在"锁到底在哪"。作者从少年时代读费曼回忆录里撬锁、猜密码的段落开始,对锁产生了兴趣,手头有几套在黑客大会上买的开锁工具和练习锁,水平依然很糟,也爱看开锁类视频里那些人的操作。

打开网易新闻 查看精彩图片

他琢磨的是另一种思路:让锁本身不被发现。磁力锁就是这种思路的现代版本——把磁铁贴在门或箱子上某个不起眼的位置,卡扣就松开了。问题在于,一旦猜中位置,任何一块强磁铁都能把它打开。

他一度考虑把 RFID 读卡器埋进表面之下,代价是又得多记一张卡。后来他发现了更有意思的东西:SparkFun 售价 100 美元的磁成像板。他意识到,可以用它做一把靠可编程秘密手势开启的磁力锁。

一块 8×8 的霍尔传感器阵列

这块磁成像板基于 Peter Jansen 的工作,是一块小批量生产的板子,核心是 8×8 的霍尔效应传感器阵列,通过 SPI 接口与任选微控制器通信。传感器能同时测出磁场的强度和极性,板子每秒可上报数百到数千次测量,具体取决于微控制器有多少算力可用。

这个速度足以捕捉人手拿磁铁在传感区域上方移动的轨迹——也就是他要的那个秘密手势。

用磁场还有个附带好处:如果进入极端偏执模式,他可以把整把锁用铜皮屏蔽起来,这是 RFID 读卡器做不到的。铜皮相当于法拉第笼,既挡住 RFID 信号,也挡住攻击者用电磁场探测仪寻找锁的位置时可能利用的其他电磁场。

大脑选的是 Teensy 4.1

微控制器他选了 Teensy 4.1:大量输入输出、600 兆赫处理器、1 兆字节内存、内置 SD 卡,封装很薄,价格同样很薄——32 美元。

把 Teensy 接到磁成像板上并不复杂,唯一的麻烦是板子一侧的丝印标错了 SPI 连接,SparkFun 表示会在后续批次修正。

手势识别软件这次没有全交给 AI 写。他此前在 DIY 项目里一直纠结"氛围编程"该怎么用、到底该不该用,于是这回只让 Claude 写两个辅助库:一个负责录入手势并存入 Teensy 的非易失存储,另一个负责监视传感板、判断新检测到的手势是否超过可选阈值、算作匹配。顶层代码由他自己写,尽量保持 DIY 味道——包括一个按钮(短暂延时后让系统进入手势录制模式)、录制模式的指示灯,以及驱动物理锁止机构的代码。

霍尔效应传感器的原理是让电流通过一块 p 型硅片,磁场穿过硅片时把载流子推向边缘,产生与磁场成正比的电压。微控制器读取 8×8 网格上各点电压的强度,就能重建出一个手势。

锁体本身"简单到简陋"

演示需要一个可锁的东西。他买了一只木制工艺箱,拆掉原有的盖子卡扣,在盖内粘上一根带缺口的横梁,再用舵机带动另一根横梁转进转出这个缺口。他自己承认,这套机构已经超出"简单"、进入"简陋"的范畴,但对演示来说足够结实。

箱内空间充裕,磁成像板可以贴着一侧壁安装,Teensy 和其他配套电子件也放得下:电池组、录制按钮,以及一块带两个 NPN 晶体管的小板,把 Teensy 的 3.3 伏控制信号转成驱动舵机所需的 5 伏信号。

装好之后问题来了:磁成像板的传感区域只有 3 厘米见方,塞进箱子容易,在箱外把手势做在正确位置、让板子读准却很难。在箱外画出传感区轮廓,又等于毁掉"隐藏锁"的意义。

他的解法是动用爱尔兰血统:在锁箱正面横贯一条凯尔特结纹样带,用在线结纹生成器出图,再投影描到箱子上。以这圈花纹作为伪装过的参照网格,他就能在传感区范围内做出可重复的手势。做手势用的是一支磁力笔,借自 2022 年报道过的那套铁氧体磁芯存储器套件。

更严肃的安装显然还有改进空间。目前最大的缺陷是:如果箱子锁着时电池耗尽,不破坏点东西就打不开了。加一个隐藏的感应充电线圈可以解决。不管怎样,这只演示锁箱工作正常——接下来他只需要想想,该往里面存点什么。