OpenRPNCalc 是一款基于 STM32 微控制器的科学计算器。

概览
OpenRPNCalc 是一款基于 STM32 微控制器的科学计算器。其源代码、原理图和 PCB 设计文件均以开放许可的方式发布。其目标是开发一个具有以下功能的硬件平台:
- 无需特殊工具即可复制(最好也不需要 3D 打印机),仅使用 PCB 板厂生产的电路板
- 可定制键盘,以满足特定需求(如 RPN 或代数逻辑、定制功能等)
- 功耗低,电池寿命长
- 高质量、紧凑、坚固的外壳
这款计算器的硬件设计灵感来自 SwissMicros DM42 计算器(该计算器本身模仿著名的 HP-42),但它是从零开始设计的。

功能特性
- 逆波兰记数法(Reverse Polish notation):采用大容量栈(最多可容纳100个元素)进行计算
- 双精度算术
- “标准"科学计算器函数(三角函数、对数函数、指数函数、平方根函数和幂函数)
- 误差函数 (erf) 及其反函数 (erfinv)、伽马函数和 log(Gamma) 函数、组合和排列、泊松分布、高斯分布和卡方分布的 p 值
- 固定、科学(SCI)和工程(ENG)显示模式(包括 ENG 模式中的 SI 前缀),精度从 3 位到 10 位可调
- 使用误差传播进行不确定性计算(UNCERT 模式):这在软件计算器中很少见,在硬件计算器中几乎闻所未闻
- 相对论运动学公式:包括质心系下二体衰变动量的计算、角度与伪快速度之间的转换、贝塔因子(beta)和伽马因子(gamma)的计算等
- 100 个存储寄存器
- 待机模式下,液晶显示屏打开时的功耗为 ~16 uA,液晶显示屏关闭时的功耗为 1-2 uA。
硬件概览
该计算器基于低功耗32位ARM微控制器STM32L476构建,工作频率为16 MHz。显示屏采用夏普Memory LCD模块LS027B7DH01(400×240像素单色屏)。键盘使用轻触式触觉开关,具体型号为松下EVPBT1C4A000(触发力度50g)。所有电子元件由一枚3V锂电池(CR2016)供电,可支持数年运行。
外壳采用多层PCB堆叠结构设计:
- 前后面板为铝基PCB,表面覆盖白色阻焊层与黑色丝印标识。
- 按键同样由PCB制成,标签通过丝印工艺印制。
- 所有组件通过6个M2支架和12颗平头螺丝固定,外壳尺寸为135×73×7毫米
外壳与装配
使用 PCB 作为计算器的基本组件。最上面的三块 PCB 是铝基板(黑色丝印在白色阻焊上),最下面的是常见的 FR4 板(白色丝印在黑色阻焊上)。铝基印刷电路板正常使用,而 FR4 PCB 则包含面板化按键焊盘(最左和最右两块板)以及帮助焊接按键的夹具部件(中间两块板),在组装外壳前必须将它们与框架分离。

焊接治具组装,由四块0.8毫米厚板材(从下至上标记为“A”至“D”)堆叠构成,通过M3螺丝与螺母固定。边缘的两个凹槽用于固定键帽顶部,便于用锉刀修整邮票孔(PCB分板残留毛边)。顶部的两个凹槽用于在焊接时精确定位键帽的上下部分。

焊接后的键帽:当前版本使用3D打印垫片,通过卡扣固定在键帽底部孔位中。下一版本将改用松下开关的长柄型号(无需额外垫片)。

外壳的两部分结构:
- 左侧:包含主PCB、垫片、前面板、框架及按键。
- 右侧:带有两个垫片的键盘PCB。前一版本键盘PCB存在设计缺陷(需手动焊接飞线,图中可见),新版文件已修复此问题。

柔性排线连接与合盖准备:两片PCB通过柔性排线连接,完成组装后可闭合外壳。

ST-LINK接口、电源开关与PCB层叠结构特写:

原理图 & PCB
原理图


键盘

Spacer 1

Spacer 2

MCU PCB

Spacer 3

前面板

主框架

License
CERN-OHL-P-2.0 license
仓库 & 下载
*附件:OpenRPNCalc-3.1.zip
github仓库地址:https://github.com/apoluekt/OpenRPNCalc
本文由KiCad公众号首发:https://mp.weixin.qq.com/s/HzZJIfuwMNzNAuZk6JDshQ
|