← 返回信息流
AI 资讯Hacker News·3 天前

浮点运算面板仪表计算器发布

原标题:Panel meter calculator with floating point

速览

该计算器专为面板仪表设计,支持浮点运算,可提升测量与计算的精度。适用于需要高精度数值处理的工业或嵌入式场景。作为工具类产品,它优化了传统仪表计算能力但非AI领域突破。

AI 深度解读

背景

本文来自 Hacker News,作者分享了自己制作一台带有浮点显示的面板仪表计算器的完整过程。作者是一位电子 DIY 爱好者和计算器收藏者,曾制作过许多不寻常的时钟。他发现,尽管早期计算器使用了多种显示技术(如纸带、阴极射线管、白炽灯泡面板),但几乎没有采用机电显示的计算器。为了填补这一空白,他决定亲手打造一台使用面板电压表作为显示元件的计算器,并且支持浮点运算。

核心内容

作者从一块 3mm 厚的亚克力板开始,将背面喷成蓝色,然后用 CNC 铣床除去部分油漆,形成数字和符号的开口区域,再重新上漆以增加对比度和立体感。显示部分由六个从亚马逊购买的通用 SO-45 面板电压表和一个从 eBay 淘来的老式 edgewise 电压表组成(用于浮点显示)。每个表头均贴有自制的定制面板(模板文件为粘性纸打印)。面板上还安装了两个 Dialight 656 系列指示灯,分别用于指示负数结果和溢出。

面板完成后,作者设计了外壳。由于面板较重,他采用了非标准键盘布局:左侧两排共十个数字键和一个小数点键,右侧集中排列五个运算符键。电路上,键盘仍是 4×4 矩阵,四根行驱动线和四根列感测线。外壳由薄枫木料在工作室中锯切而成,文字和凹陷的按键矩阵同样使用 CNC 铣床加工。按键使用了 16 个较高级的 18×18mm NKK JF 系列触觉开关,每个按键上贴有定制乙烯基贴膜。

控制电路部分,作者没有采用模拟计算(那样更不实用,且如果是模拟路线,纯机械设计更有趣),而是使用了一个 8 位 AVR128DA28 微控制器。芯片由 5V 墙插电源直接供电。它使用七条数字线(PD0-PD6)的 PWM 驱动表头,4×4 感测驱动网格(PA0-PA3 / PA4-PA7)扫描键盘,两条线(PC0, PC1)控制指示灯。

软件架构较为直接,最有趣的部分是实现定点算术(6+5 位)以避免浮点精度问题。作者提供了源代码下载,简短且注释良好。计算器 UI 设计考虑了多种交互细节:允许通过两次按下“+”、“×”或“÷”执行重复运算;将“-”保留为改变符号的前缀(除非紧跟在等号之后);连续两次按下“=”则清除计算器状态(因为键盘没有专用的“C”键)。文章末尾附有一段视频,演示了分数、负数以及错误情况的处理。

关键要点

  • 使用六个通用面板电压表和一个 vintage edgewise 电压表作为计算器显示,可以实现浮点数字显示。
  • 采用 CNC 铣削亚克力板与枫木外壳,制作高精度、美观的机械结构。
  • 核心控制器为 8 位 AVR128DA28 MCU,通过 PWM 驱动表头、矩阵扫描键盘,并控制指示灯。
  • 软件采用定点算术(6+5 位),避免浮点精度问题,同时实现简洁高效的交互逻辑。
  • UI 设计巧妙:重复操作通过双击运算符实现;减号键同时作为符号变更前缀;双击等号清除状态。
  • 整个项目强调手工制作与机电结合的创意,从面板、外壳到电路和软件均独立完成。

意义与影响

该项目展示了将传统机电显示元件(面板电压表)与现代微控制器相结合的创新思路,体现了 DIY 文化中对复古技术与现代逻辑的融合。其意义不仅在于制作了一台可用的计算器,更在于:

  • 填补了历史上机电显示计算器几乎空白的空白,为电子设计爱好者提供了独特的参考。
  • 强调了在嵌入式系统中采用定点数而非浮点数来解决精度问题的工程实践,具有实际教育价值。
  • 开源了完整源代码(注释良好),便于他人学习、修改或扩展。
  • 计算器 UI 的交互设计(无专用清除键时的状态管理)展示了在小键盘上实现复杂操作的可行模式。
  • 整体项目体现了从材料加工、电路设计到软件实现的完整电子制作流程,对初学者和资深爱好者均有启发。
查看原文 →lcamtuf.substack.com