电路设计论坛
直播中

dianzi

5年用户 1971经验值
擅长:嵌入式技术
私信 关注
[文章]

【开源分享】一款基于 STM32 微控制器的科学计算器:OpenRPNCalc

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

img

概览

OpenRPNCalc 是一款基于 STM32 微控制器的科学计算器。其源代码、原理图和 PCB 设计文件均以开放许可的方式发布。其目标是开发一个具有以下功能的硬件平台:

  • 无需特殊工具即可复制(最好也不需要 3D 打印机),仅使用 PCB 板厂生产的电路板
  • 可定制键盘,以满足特定需求(如 RPN 或代数逻辑、定制功能等)
  • 功耗低,电池寿命长
  • 高质量、紧凑、坚固的外壳

这款计算器的硬件设计灵感来自 SwissMicros DM42 计算器(该计算器本身模仿著名的 HP-42),但它是从零开始设计的。

img

功能特性

  • 逆波兰记数法(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 则包含面板化按键焊盘(最左和最右两块板)以及帮助焊接按键的夹具部件(中间两块板),在组装外壳前必须将它们与框架分离。

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

img

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

img

外壳的两部分结构

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

img

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

img

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

img

原理图 & PCB

原理图

mcu_schematic.png

img

键盘

img

Spacer 1

img

Spacer 2

img

MCU PCB

img

Spacer 3

img

前面板

img

主框架

img

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

更多回帖

发帖
×
20
完善资料,
赚取积分