文号
950970
阅读
459
回复
7
收藏
0
本文在AI协助下创作,作者声明AI的作用仅限于局部修饰性、辅助性工作,文章内容的严肃性由作者负责。
AI 科学计算器原型设计历程与记录
2026/07/03
原创
IP:河南

一、

本项目尝试自己设计一种可以联网且ai拍题教学解答的ai科学计算器,我预期完成pcb设计,电路调试与外壳建模,和实际调试。这篇文章的目的是作为我个人性质的研究报告存档留存。

初步方案包括 ESP32-S3 主控、OV2640 摄像头、128×64 LCD 显示屏、矩阵键盘输入、电源管理模块以及打印外壳。

二、

总体方案上,我选择 ESP32-S3 作为主控芯片。选择它的主要原因是它相对于普通微控制器具有更强的处理能力,并且部分型号支持较大的片上存储或外接 PSRAM,更适合处理摄像头拍照、图像缓存和联网通信等任务。由于本项目需要将题目图像采集后上传到服务器或 AI 接口,因此主控不仅要完成普通按键扫描和屏幕显示,还要承担摄像头驱动、Wi-Fi 连接、HTTP 请求和返回结果解析等工作。

摄像头部分我选择了常见的 OV2640 模块。它在 ESP32 系列开发中使用较多,资料相对丰富,能够输出 JPEG 图像,便于后续通过网络上传。显示部分则选择常规的 ST7567 系列 128×64 LCD。相比彩色屏幕,黑白 LCD 显示信息量有限,但功耗较低,驱动相对简单,也更接近传统科学计算器的显示风格。对于本项目来说,屏幕主要承担菜单、输入表达式、联网状态和 AI 返回步骤的显示,因此在原型阶段,128×64 的分辨率基本可以满足最小可用需求。

在按键方案上,我一开始犯了一个比较明显的工程错误:没有提前拆解和研究市售计算器的实际结构,而是想当然地使用轻触开关作为按键矩阵的基本单元。后来我才发现,真正的计算器产品大多采用导电硅胶按键。导电硅胶结构更简洁,厚度更低,键位排列也更加紧凑,同时适合大面积按键阵列。相比之下,轻触开关会带来高度增加、结构固定复杂、按键手感不统一、外壳开孔困难等问题。这一选择直接影响了后续外壳设计和按键面板设计。

image.jpg

布局我选择把摄像头和lcd排线一种布置在底层,而电源层在顶层,中间两层则是gnd平面,用于隔离两者信号。

传统计算器的程序逻辑主要围绕本地输入、表达式解析和数值计算展开。本项目还需要加入图像采集、网络传输和 AI 结果显示。因此,我将软件流程初步划分为几个状态:待机状态、普通计算状态、拍照状态、联网请求状态、结果显示状态和错误处理状态。这样的划分有利于后续编写程序时进行模块化管理,也方便在调试过程中定位问题。

在普通计算状态下,设备主要读取键盘输入,并将按键转换为对应的字符或功能。例如数字键、运算符、括号、函数键和 SHIFT 组合键都需要在程序中建立映射关系。由于科学计算器的按键数量较多,如果直接在主循环中用大量条件判断处理,会导致程序结构混乱。因此我计划将按键输入设计成“键值表”的形式:每一个物理按键对应普通功能和 SHIFT 功能两个逻辑值,程序根据当前模式决定实际输入内容。这样既符合科学计算器的使用习惯,也方便后期修改按键布局。

联网功能则是本项目与普通计算器区别最大的部分。我的设想是,当用户按下拍照或 AI 讲解功能后,ESP32-S3 首先驱动 OV2640 采集题目图像,并将图像以 JPEG 格式暂存在内存中。随后设备将图像数据上传到服务器端。服务器端可以完成图像预处理、OCR 识别和 AI 模型调用,再将题目解析结果和分步讲解返回给设备。设备收到返回内容后,再根据 LCD 屏幕的显示能力,将文字结果分页显示。

而我还要设计一个dashboard在我的主机上,用于注册用户设备与分配额度,便于我的管理。

image.jpg

image.jpg



三、

接下来是硬件与pcb实现。

主控部分采用 ESP32-S3。选择它的主要原因是它能够支持摄像头采集和 Wi-Fi 联网,同时资料较多,适合个人开发者进行原型验证。在原理图设计中,ESP32-S3 需要连接摄像头数据线、LCD 通信线、按键相关信号、电源控制和下载调试接口。由于 ESP32-S3 的引脚虽然较多,但部分引脚存在启动、电压域或特殊功能限制,因此在分配引脚时不能只看数量是否足够,还要考虑这些引脚是否适合作为普通 GPIO 或高速信号使用。

摄像头部分采用 OV2640。它需要多根数据线、时钟线、同步信号线和 I2C 配置线,因此对布线空间要求较高。与普通低速传感器相比,摄像头信号更容易受到走线长度、地参考和串扰的影响。我在早期设计中对这一点认识不足,只是尽量完成连通,没有充分考虑信号完整性。后续检查时我才意识到,摄像头走线应尽量短、尽量平行有序,并保证附近有较完整的地参考。如果在双层板上走线过长,虽然不一定必然失败,但会增加图像采集不稳定的风险。尽管这样,我的实际生产板camera线的长度还是比较长80mm左右。

LCD 部分采用 ST7567 系列黑白屏,使用串行通信方式。相比摄像头,LCD 的信号速率较低,对走线要求相对宽松。它的主要问题不在于通信本身,而在于屏幕型号、FPC 接口顺序和供电方式是否完全一致。在选型的时候,我选择了一款HS12864G19A,该lcd目前已经停产,寻找合适货源花费了我很多时间,最后从云汉芯城找到了现货库存。以后我选型的时候会更加谨慎,注意库存与状态。


按键是本项目中一个看似简单、实际影响很大的部分。最初我按照常见电子制作的思路,直接使用轻触开关组成按键矩阵。这样做在电路上比较容易理解,每个按键就是一个开关,通过行列扫描判断按下状态。但后来在研究市售计算器结构时,我发现真正的计算器大多采用导电硅胶按键和 PCB 碳膜触点。这种结构更薄、更紧凑,也更适合大量按键排列。

我的方案使用轻触开关,虽然可以实现功能,但会带来几个问题。第一,轻触开关本身有一定高度,会增加整机厚度;第二,每个按键都需要单独焊接,装配复杂度较高;第三,外壳上需要为每个按键预留较精确的位置,否则容易出现按键偏位;第四,科学计算器按键数量多,轻触开关占用面积会影响整体布局。这个问题并不是原理图层面的错误,而是结构工程和产品实现层面的不足。

在后续改进中,我开始考虑将按键改为整块硅胶膜方案。这样可以更接近真实计算器结构,同时也能使外壳更简洁。但是由于 PCB 已经按照轻触开关方案设计,后续修改会牵涉到焊盘、间距、外壳开孔和按键面板设计,不能简单替换。这一经历让我认识到,硬件设计前期应尽量先拆解同类产品,了解成熟产品的结构逻辑,而不是只从电路原理出发。

电源部分是整个硬件设计中最需要谨慎的部分之一。本项目需要为 ESP32-S3、摄像头、LCD 和其他外围器件供电。不同器件的工作电压不同,对电流和纹波的要求也不同。尤其是摄像头和无线通信工作时,瞬时电流可能变化较大,如果电源设计不稳定,可能导致设备复位、摄像头初始化失败或通信异常。

在设计电源时,我使用了多个电压转换和稳压模块,为不同电压域提供供电。例如主控和部分逻辑电路通常需要 3.3V,摄像头可能还涉及 2.8V、1.2V 等不同供电。每一路电源都需要合适的输入输出电容,并且电容应尽量靠近对应芯片或稳压器放置。理论上这些电容只是辅助滤波和稳定电源,但在实际焊接和调试中,如果某个电容焊接短路、型号错误或所在电源网络异常,就可能导致局部严重发热。

在 PCB 上电调试时,我遇到过某个电容区域明显发热的问题。由于当时没有限流电源,只能依靠万用表进行初步排查。最后发现c10发热过快,疑似上电反复震荡。这个过程让我认识到,硬件调试设备非常重要。限流电源可以在上电初期限制电流,避免故障扩大;而如果直接使用普通电源上电,短路点可能在几秒内迅速升温,甚至损坏元件。后续我也意识到,在电源设计中应增加更多调试和保护意识,例如预留测试点、分区上电、检查电源网络阻值,并在首次上电前仔细确认焊接状态。

PCB 布局时,我首先根据计算器的外形确定大致区域:屏幕位于上方,按键区域位于下方,主控和电源部分放在内部可布线的位置,摄像头根据结构需求安排在合适位置。这样的布局符合计算器的使用习惯,但也带来了一些走线压力。尤其是摄像头与主控之间需要连接多根信号线,如果两者距离较远,布线会变得困难。

由于我最初采用双层板设计,顶层和底层都承担了大量信号走线任务。双层板成本较低,也适合个人项目打样,但在摄像头、LCD、键盘矩阵和电源线同时存在时,地平面的完整性容易被打断。地参考不连续可能会影响高速信号稳定性,也可能增加电源噪声。因此,在后续复盘中,我认为如果条件允许,四层板会更适合这类包含摄像头和无线主控的设计。四层板可以提供更完整的电源层和地层,使信号回流路径更清晰,也有利于降低调试难度。

在走线过程中,我也遇到过自动布线效果不理想的问题。自动布线虽然可以快速完成连通,但它并不了解具体电路中哪些信号更敏感、哪些线应优先走短、哪些区域应保持地平面完整。因此,关键走线仍然需要人工规划。对于本项目来说,摄像头信号、电源路径、晶振相关线路和主控启动相关引脚都应优先手动处理,而不是完全依赖自动布线。


_cgi-bin_mmwebwx-bin_webwxgetmsgimg__&MsgID=4072381967404251836&skey=@crypt_f3e035cb_1d8f8c200e5059c1d46a753c5b946491&mmweb_appid=wx_webfilehelper.jpg

在原型设计中,调试接口往往比正式产品更加重要。因为第一版 PCB 很难一次成功,必须通过下载口、串口、测试点和电源测量点来定位问题。因此,我在设计中需要考虑 USB 下载、串口输出、复位按键、启动模式选择以及主要电源网络的测试点。如果这些接口预留不足,后续一旦出现“不识别串口”“上电无反应”“某一区域发热”等问题,排查难度会明显增加。

从这次设计经历来看,我认为原型板不应过早追求极限小型化。对于个人项目,第一版 PCB 更重要的是能测、能改、能定位问题。适当增加测试点、跳线位和电源分割点,虽然会占用一些面积,但能显著降低调试难度。等功能验证稳定后,再进行第二版小型化和结构优化,会更加稳妥。

从电路板排查故障来看,我往往会低估项目的复杂度,以后再设计硬件时我会更加小心谨慎,选型布局严格按照需求标准。

软件部分是本项目区别于普通计算器的重要内容。传统计算器主要完成按键输入、表达式显示和本地计算,而本项目还需要处理拍照、联网、上传图像、调用 AI 服务和显示返回结果。因此,在设计软件时,我没有把它看成一个单一程序,而是按功能模块进行划分。

整体流程上,设备上电后先初始化 LCD、按键、摄像头和 Wi-Fi。用户可以选择普通计算模式,也可以选择拍照识题模式。在普通计算模式下,设备主要完成本地输入和显示;在拍照识题模式下,设备先调用 OV2640 拍摄题目图像,再通过 Wi-Fi 将图像上传到服务器。服务器完成 OCR 识别和 AI 分析后,把结果返回给设备,设备再将内容分页显示在 LCD 上。


代码结构上,我计划将程序分成几个模块:按键模块负责读取输入并区分普通功能和 SHIFT 功能;显示模块负责菜单、文字、分页和状态提示;摄像头模块负责初始化和拍照;网络模块负责 Wi-Fi 连接、图像上传和结果接收;AI 交互模块负责组织请求和解析服务器返回内容。这样做可以减少主循环中的混乱逻辑,也方便后续调试。

联网过程中需要特别注意稳定性。实际使用时可能出现 Wi-Fi 连接失败、服务器无响应、图像上传失败、AI 返回过慢或返回内容过长等情况。如果程序只考虑成功流程,设备很容易卡死。因此,代码中需要加入超时、错误提示和返回主菜单的机制,使设备在异常情况下仍能继续操作。

由于 LCD 屏幕只有 128×64,AI 返回内容也不能太长。服务器端最好返回较短、分段清楚的内容,例如“识别题目”“解题思路”“短、分段清楚的内容,例如“识别题目”“解题主要步骤”“最终结果”。设备端再根据屏幕大小进行分页显示。这样比直接显示一大段文字更适合计算器这种小屏设备。

我使用codex开发esp固件,使用mock模式验证,idf烧录固件。

五、

在完成电路方案后,外壳设计成为项目中另一个重要问题。。

由于项目仍处于原型阶段,我选择使用 FDM 3D 打印制作外壳。壁厚约为 3mm,以保证基本强度。可拆卸结构的好处是便于后续维修、重新焊接和更换电池,但也带来了固定方式的问题。螺丝柱、卡扣和热熔铜螺母都可以作为连接方式,其中螺丝配合铜螺母更适合需要多次拆装的原型设备。

image.jpg


按键区域是外壳设计中最麻烦的部分。早期 PCB 使用轻触开关作为按键单元,因此外壳需要为每个按键预留孔位,并保证按键帽能够准确压到开关。这种结构对加工精度要求较高,也容易出现按键偏移、手感不一致和装配复杂的问题。后来我开始考虑使用整块硅胶按键面板,在硅胶表面印刷按键边界和字符,这样外观更接近真实计算器,也能减少外壳开孔数量。

image.jpg

持续制作中



[ 修改于3个月29天前 - 2026/07/03 20:47:37 ]
3个月28天前IP:广东
950973
1楼

赞,期待成品

引用
评论
3个月28天前IP:河北
950977
2楼

期待大作~

image.jpg

找到一个类似的AI拍照计算器 XXXXXXXXXXXXXXXXXXXXXX 梦回82ES啊。

闲鱼有人转卖这类玩意,似乎主要对象是某些海外考试。

引用
评论(1)
3个月28天前修改于 3个月28天前IP:四川
950979
3楼

这个产品从功能上讲,和“手机上的app”比,有哪些不可替代的特性?

比如手机上的chatgpt app带拍照和视频功能,把公式放到视野里,就可以实现“ai拍题教学解答”。对于用户来说,哪些特性会让他不用app,而是会买这个计算器?

引用
评论(3)
3
3个月27天前IP:广东
951004
4楼

还是建议先学习如何画出能用的PCB

引用
评论(1)
1
3个月27天前修改于 3个月27天前IP:广东
951007
5楼

硬件重复造轮子毫无意义,搞个高通主板能本地跑LLM的塞进去计算器壳子不就行了。千万不要沉迷嵌入式平台,单片机什么的,本质上嵌入式是通用计算机的廉价替代品。应该首先考虑用通用设备如电脑、手机,安装通用操作系统,定制硬件应该是最后措施

引用
评论
5
blki作者
3个月27天前IP:河南
951011
6楼
引用warmonkey发表于5楼的内容
硬件重复造轮子毫无意义,搞个高通主板能本地跑LLM的塞进去计算器壳子不就行了。千万不要沉迷嵌入式平台,单片机什么的,本质上嵌入式是通用计算机的廉价替代品。应该首先考虑用通用设备如电脑、手机,安装通用操...

确实,这个产品本身称为“AI 计算器”可能有一定偏颇,硬件方案上也存在较多重复造轮子的部分。之后我会调整学习方向。

不过这次完整走一遍 PCB 设计、打样、焊接和调试流程,对我来说仍然有积极意义。至少它让我意识到硬件设计里很多问题不能想当然,原理图、电源、封装、结构、供应链都需要更谨慎地验证。

引用
评论
3个月27天前IP:广东
951014
7楼

用手机/平板电脑,对习题/试卷拍照,虚拟老师列出教案,一顿分析讲解,还能根据用户语音反馈及时调整……早有不少APP做到了。除了烧钱,没有什么缺点。对有的人来说,甚至比在学校上课效果都好,毕竟老师不会时刻关注、惯着一个普通学生。

引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的