开源项目下载及安装教程:OpenRPNCalc 科学计算器
2024-12-06 11:48:45作者:宣利权Counsellor
1. 项目介绍
OpenRPNCalc 是一款基于 STM32 微控制器的开源科学计算器。它的源代码、原理图和 3D 打印外壳设计文件均遵循开放许可发布。硬件设计灵感来源于 SwissMicros DM42 计算器(该计算器本身模仿了著名的 HP-42),但完全从头开始设计。在固件方面,目前并不打算模拟可编程的 HP 系列。OpenRPNCalc 目前具备以下特点:
- 逆波兰表示法,4 元素栈
- 双精度算术运算
- 标准的科学计算器功能(三角函数、对数、指数、平方根和幂运算)
- 误差函数(erf)及其反函数(erfinv) -Gamma 函数及其对数
- 组合数和排列数计算
- 固定、科学(SCI)和工程(ENG)显示模式(包括 ENG 模式下的 SI 前缀)
- 可变 3-10 位数精度
- 使用误差传播公式进行带有不确定性的计算(UNCERT 模式)
- 相对论动力学公式(质心两体衰变动量、角度与伪快度转换、β 和 γ 因子)
- 低功耗(待机模式下,带 LCD 显示约为 10 微安,关闭 LCD 显示为 2-3 微安)
2. 项目下载位置
该项目托管在 GitHub 上,您可以从以下位置下载项目源码:
apoluekt/OpenRPNCalc
3. 项目安装环境配置
环境要求:
- Windows、macOS 或 Linux 操作系统
- Git 版本控制系统
- STM32CubeIDE 集成开发环境(用于编译和上传固件)
配置步骤:
- 安装 Git 版本控制系统(如果尚未安装)。
- 下载并安装 STM32CubeIDE。
- 克隆项目到本地文件夹。
git clone https://github.com/apoluekt/OpenRPNCalc.git
以下是 STM32CubeIDE 界面的示例:

(注:请将 image_path_here 替换为实际的图片路径)
4. 项目安装方式
- 打开 STM32CubeIDE,创建一个新的项目。
- 选择对应的 STM32L476 微控制器型号。
- 将项目源码复制到新创建的项目中。
- 编译项目并修复任何出现的编译错误。
- 使用 ST-Link 或其他兼容的调试器将固件上传到 STM32L476 开发板。
5. 项目处理脚本
该项目包含了一些用于生成原理图、PCB 布局和 3D 打印外壳的脚本。以下是一个用于生成 3D 打印外壳的示例脚本:
# 导入 OpenSCAD 库
import openscad
# 设置模型参数
params = {
'width': 100,
'height': 200,
'depth': 50,
'wall_thickness': 2
}
# 生成外壳模型
case = openscad.Cube([params['width'], params['height'], params['depth']])
case = openscad.subtract(case, openscad.Cube([params['width'] - 2*params['wall_thickness'], params['height'] - 2*params['wall_thickness'], params['depth'] - 2*params['wall_thickness']]))
case.render()
# 保存模型
case.save_stl('OpenRPNCalc_case.stl')
(注:上述脚本仅为示例,实际使用时需要根据具体项目文件进行修改。)
登录后查看全文
热门项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0215
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0138
uni-appA cross-platform framework using Vue.jsJavaScript08
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
SwanLab⚡️SwanLab - an open-source, modern-design AI training tracking and visualization tool. Supports Cloud / Self-hosted use. Integrated with PyTorch / Transformers / LLaMA Factory / veRL/ Swift / Ultralytics / MMEngine / Keras etc.Python00
tiny-universe《大模型白盒子构建指南》:一个全手搓的Tiny-UniverseJupyter Notebook03
热门内容推荐
最新内容推荐
项目优选
收起
deepin linux kernel
C
32
16
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
471
465
暂无描述
Dockerfile
779
5.08 K
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
876
2.03 K
Ascend Extension for PyTorch
Python
758
968
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
697
1.4 K
昇腾LLM分布式训练框架
Python
185
231
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.1 K
1.14 K
本仓库是 Flutter SDK 与 Flutter Engine 的 OpenHarmony 适配版本,由 CPF-Flutter 团队维护。开发者可使用熟悉的 Flutter 技术栈开发 OpenHarmony 应用,3.35.7 及以后的适配版本可基于本仓库源码构建支持 OpenHarmony 的 Flutter Engine。
Dart
1.04 K
271
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
2.25 K
677