cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 1216|回复: 17

想做一款完全开源的计算器

[复制链接]
发表于 2021-11-20 17:22:37 | 显示全部楼层 |阅读模式
强两天买了台二手的 Numworks,但是发现现在官方已经结束社区发展,最新的官方固件将会禁止第三方软件。对此我感到十分遗憾,个人对这种先依托社区发展最后将其抛弃的行为也是比较反对。
多年以前我折腾过 TI-nspire,并在坛子里活跃过一段时间,后来很长一段时间都是用电脑作为主要的计算工具。最近我还是想找一个好用的硬件计算设备,因此购买了 Numworks,但是随着我知晓了官方的一些操作之后,顿时有了一种从头自己做的想法。

我本人主要从事(嵌入式) C++ 开发,写过 GUI 框架、脚本解释器等软件,早年也画过一些板子。做一个计算器这样的东西还算有把握。但是我知道数值计算、符号计算等功能需要大量的专业知识,这是我不具备的,但是我知道有一些开源库,因此总体应该还算可行。

另一方面,我个人无力承担所有的软硬件研发工作。比较大的局限的是我不懂机械设计,无法制作外壳,另外我有段时间没有做过 PCB 设计了,经验比较欠缺。

我注意到一款 MCU 比较符合我的期望,那就是 STM32H7B0VB76,这款 MCU 有 128KB 的 Flash,1.4MB SRAM,280MHz 主频,这意味着我们只需要外接屏幕、键盘、QSPI NorFlash 即可满足系统需求,而无需外扩的 RAM。另外它还有一些重要的优势:
- 这款 MCU 的功耗控制比较优秀,适合电池供电的设备(并且我们不需要外接 DRAM)
- 淘宝上这芯片卖 30 多块钱,可以有效控制成本(我希望任何人都能负担造价)
- MCU 软硬件开发难度比较低,ST 的产品换代兼容性非常优秀

我希望此项目的软件使用 GPL v2 许可证发布,保证其自由开源。所有硬件也应使用完全开放的方案,不引入任何限制。

我的初步计划是先在 PC 端使用模拟的方式完成基本的验证,然后尽快开始硬件的设计制作(不过我个人能力无法完全覆盖),坛友们感兴趣的欢迎讨论。(写的比较乱)

评分

参与人数 2金钱 +12 收起 理由
dousha99 + 6 ArithMaxReloaded
Myth + 6 支持楼主

查看全部评分

发表于 2021-11-22 00:33:02 | 显示全部楼层
早些年论坛有很多大神也跟楼主一样想自主研发一款开源的计算器,最后还是烂尾了,自主研发并没有楼主想得这么简单,需要投入大量的精力和资源,德州仪器能卖得这么贵也不是没他的道理的
 楼主| 发表于 2021-11-22 09:44:32 | 显示全部楼层
我同意,所以我认为要控制项目的复杂度。我目前的策略是先设计一款成本足够低的硬件,使大多数爱好者能够负担,然后在社区驱动下完善软件设计。否则以个人的资源不可能完成。
 楼主| 发表于 2021-11-22 09:58:35 | 显示全部楼层
我目前打算做一个裸板,不要外壳,小批量(其实就是样品)物料成本控制在150以内。设计裸板只需要电子知识,并且嘉立创基本就能完成加工,生产难度会很低。
 楼主| 发表于 2021-11-28 20:18:04 | 显示全部楼层
原理图基本画好了,先贴出来分享下。主要硬件参数如下:

- STM32H7B0VBT6: 1.4MB SRAM,128KB Flash,280MHz Cortex-M7 & 双精度浮点单元
- W25Q128/W25Q256:16/32MB QSPI Nor Flash,用于存储程序和文件(主要是程序)
- 2.8 inch 320x240 彩色 LCD,无触摸
- 锂聚合物电池功耗
- Type-C 充电和数据传输
- TF 卡槽
- 考虑低功耗的设计

这款计算器硬件的设计原则是“低成本、低功耗和纯粹的计算器“,因此我不会增加例如音频等和计算器功能不相关的电路。我也不打算让它做为掌机使用,因为为它考虑的硬件设计显然会带来成本的增加(包括物料以及我的设计成本),并且竞争不过真正的掌机。

软件方面,目前我做了基础的基于 CMake 的固件工程,可以使用 CLion 等现代 IDE 进行软件开发。

这几天可能不会立即开始 PCB 的绘制,我要进一步考虑一些问题,包括键盘布局、软件功能以及界面设计原则等问题。当我完成第一版具有功能的软硬件之后,会将此项目开源(这应当是一款从任何角度来说都自由的计算器)。

另外一件事是当我尝试了一段时间的 NumWorks 之后,我发现它实际上可能不是非常适合作为工程用的计算工具,而是更适合教育用途。这意味着有很多我需要的功能无法实现,例如使用标准电阻来设计分压电路的计算器。

Schematic_FreeArith_2021-11-28.pdf

289.62 KB, 下载次数: 51

发表于 2021-11-29 17:23:32 | 显示全部楼层
本帖最后由 Myth 于 2021-11-29 17:38 编辑

支持楼主~楼主是从事嵌入式软开吗?
这学期的嵌入式课用 STM32 做了个游戏机(正好也用了 H7 系列的 H743)。想问一下楼主 C++ 现在在嵌入式开发中很常见吗?我感觉 STM32 这方面还是以 C 居多,C++ 可能嵌入式 Linux 用的多一些?

另外如果楼主能现在在 Github 上开源一下就更好啦,想追踪一下楼主的开发过程~



 楼主| 发表于 2021-12-3 09:52:20 来自手机 | 显示全部楼层
本帖最后由 过招铁是傻 于 2021-12-3 09:53 编辑

是的,我是做嵌入式的。C++现在用的也挺多了,不过C确实更多。开源的话,打算等我有空稍微整理了代码再开。
发表于 2021-12-10 08:34:55 | 显示全部楼层
我觉得在现有的计算器上改进是不错的,比如把free42写到hp 39gii上面。
发表于 2021-12-16 13:19:46 | 显示全部楼层
说实话,还是没看懂楼主对这个计算器的定位。它会有哪些功能?
发表于 2022-1-27 22:43:56 | 显示全部楼层
给楼主一些建议作为参考:
1. 主要的计算功能,可以移植 Eigenmath 等开源库(它本身就是用C++写的),包括论坛里也已经有人把 Eigenmath 移植到了 fx-9860/9750 平台上(传送门:https://www.cncalc.org/thread-12581-1-1.html),不需要重复造轮子。
2. 3. 人机交互方面,如果直接搬 Eigenmath 的话,可以做类似于 Terminal 的界面、高级计算函数让用户手打,这样绘制 GUI 的工作量可以小一点(这样的话就需要设计 PCB 的时候,搞一个 QWERTY 形式的键盘矩阵,Nspire 的 ABCDEF 键盘输入真的巨累)。
3. 外观设计方面,3D打印就没问题,可以在某宝购买3D打印服务,开孔等加工精度是可以保证的。使用树脂之类的材料,价格应该能控制在15-30元左右。(图里是我的一个DIY迷你主机项目,就是用3D打印制作的。)
[img]!%5B微信图片_20220127223543.jpg%5D()[/img]

发表于 2022-2-15 15:50:09 | 显示全部楼层
支持!希望能有所成果!
发表于 2022-3-23 18:55:28 | 显示全部楼层
LZ有没有群,可以多拉一些朋友进来讨论
发表于 2022-4-1 12:24:31 | 显示全部楼层
关键是数学程序,常见加减乘除,sin,cos应该是好搞的,C语言的函数库里面有,在复杂的那些,好比微积分和傅里叶,无限逼近等等不知道pyhon里面是不是有,反正操作系统也是好搞的,主要是数学这部分,最好是很多人参与的,功能模块化,然后分成很多小组负责各自的模块,单枪匹马的话,效率很低,而且,很容易坚持不住半途而废。
发表于 2022-6-6 20:34:33 | 显示全部楼层
hjh0512 发表于 2022-4-1 12:24
关键是数学程序,常见加减乘除,sin,cos应该是好搞的,C语言的函数库里面有,在复杂的那些,好比微积分和 ...

GNU Scientific Library 开源科学计算库,适用于C或C++,这类库其实很多,但是都不是针对计算器开发优化的,编译后体积大小,运行时的能耗都是问题
发表于 2022-6-15 09:46:53 | 显示全部楼层
GoodbyeIce 发表于 2022-6-6 20:34
GNU Scientific Library 开源科学计算库,适用于C或C++,这类库其实很多,但是都不是针对计算器开发优化的, ...

可以尝试转成汇编,不过,我觉得需求和研发不成比例,估计一年出不了几千台,很多人在青少年阶段觉得图形计算器不得了,简直不得了,但是后来如果还需要,或者成年后发现,ggb,matlab,orgin等等比这个好用多了,再好的图形计算器生成x^100000+y^100000图形要不很费力,要不干脆生成不了,所以其实还是面向中学和大学教育阶段的,拿着需要计算机体系架构,还有操作系统设计的,以及非常高水平的数学水平,去搞计算器,实在没有太大意义。
发表于 2022-6-15 09:48:05 | 显示全部楼层
GoodbyeIce 发表于 2022-6-6 20:34
GNU Scientific Library 开源科学计算库,适用于C或C++,这类库其实很多,但是都不是针对计算器开发优化的, ...

如果必须,也就是ap那些,其他时候,要不平板上装模拟器,或者其他计算软件,实际效果远比图形计算器好。
发表于 2022-6-16 09:14:44 | 显示全部楼层
支持楼主,加油!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cnCalc计算器论坛

GMT+8, 2022-7-6 09:46 , Processed in 0.031540 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表