大家好!今天是 2022 年的 Pi Day。那我们就来介绍一款 Pi 计算器吧!
这是一款用 Pico 制作的计算器,我把它简称为 PiCalc。这款微小计算器虽然体格不大,但是该有的功能一个也没有少。它支持十进制数和带括号优先级算式计算。需要时从口袋里掏出来就好啦!
特性
1、默认情况下,执行的优先级类似于 BODMAS 规则。
2、右侧键包含双重用途,左下角带有一个 shift 键,用来切换右侧按键的功能。例如:要使用左括号【(】,首先单击左下角的【S】键,然后单击最后一列顶部的第二个键。最后一列的左侧键可以直接使用,无需任何 shift 键切换,但如需使用右边的键,需要先按 shift 键切换。
3、【C】表示清除单个数字,【CE】表示清除所有历史记录。如果编写的方程式无法处理,屏幕上将显示“ERROR”,单击清除键,可以重新计算。
keypad_drawing.pdf
[18006 Bytes at 2022-03-14, 15 次下载]
PiCalc_DoubleSided_Gerber_2021-03-14.zip
[53698 Bytes at 2022-03-14, 19 次下载]
PiCalc_Firmware.py
[11532 Bytes at 2022-03-14, 33 次下载]
Top+Cover.stl
[39284 Bytes at 2022-03-14, 9 次下载]
Bottom+cover.stl
[53584 Bytes at 2022-03-14, 9 次下载]
keyMatrix_2.stl
[183084 Bytes at 2022-03-14, 9 次下载]
树莓派 Pico x 1
SSD1306 OLED 显示器 x 1
30mmx30mmx4mm 锂电池 x 1
TP4056 锂电池充电电路 x 1
6x3.5mm SMD 瞬时开关 x 20
滑动开关 x 1
在制作计算器之前,我们需要了解计算器的输入机制。它是基于键盘的输入时的多路复用。如图所示,按键的网格被设置为终端并按行和按列连接。
所有键的右侧端子连接到所在的行,所有左侧的端子连接到所在的列,共有八个连接处,分别为:R1、R2、R3、R4和C1、C2、C3、C4。
当使用者按下键时,我们需要找出键对应的列和行。因此,微控制器会逐行读取数据,然后逐行打开或关闭每列的电源。
例如,当输入将所有输入线拉高时,微控制器读取输入线数据。现在我们假设行是输入,我们将从 R1 开始读取,输出的读取逻辑为从 C1、C2、C3 到 C4。如果 R1 处比其他的电量要低,它将会被认为按下该按键。
这台微型计算器的主要电路是由 20 个按键组成,以 4X5 键盘矩阵的方式排列、然后连接到 SSD1306 OLED 显示屏和底部的 Pico。
PCB 板是一个单层的设计,键盘的列线将通过焊桥线直接从外部连接,顶层的键盘矩阵与底部的 Pico 的相接,其中 PCB 的键盘排列在 Pico 的左侧。
如果你需要双层 PCB 板,可点击以下链接 https://drive.google.com/file/d/1Mwu2Uq_MpFbF08HvItbTJjrXX-PQ7kn6/view?usp=sharing ,就可以省掉下面几个步骤。
打造 PCB 板
我们采用色调剂图像转印法制作 PCB 板,PCB 采用尺寸为 30mm x 78mm 的镀铜板。
1、使用高粒度砂纸对其进行清洁,去除氧化层。
2、将 PCB 板设计图打印在一张白纸上并将图案与铜板对齐。使用热压机或熨斗加热 5 分钟,将纸上的墨粉转移到铜板上。
3、将 PCB 和纸浸泡在温水中,这样有助于取下纸张。
4、如果在过程中出现损坏,可使用永久性记号笔重新补绘电路。
蚀刻 PCB 板
1、现在将 PCB 板放入专用溶液 5 分钟,然后蚀刻掉不需要的铜。
2、使用一些丙酮从蚀刻的 PCB 板上去除多余的墨粉,PCB 板就会非常的光滑。
3、给 OLED 显示器钻一些直径为 0.8mm 的孔,方便将键盘矩阵连接到 Pico 上。
1、使用焊桥接线连接键盘矩阵的列。
2、你只需要焊接三行,最后一行已经与铜板相连。
3、焊接按钮。
1、如图所示,使用双面胶将 Pico 粘贴在 PCB 板的背面,然后将 Pico 的电线焊接到右侧的孔中。
2、连接 OLED 显示器,将其焊接到电线的孔上,并将这些孔给遮住。
连接电池和充电电路
1、连接电池和 LiPo 保护。
2、连接充电电路 TP4056 和开关。
3、注意需要对线头继续绝缘处理,再将它们装到外壳中。
我使用 Micropython SDK 对 Pico 进行编程,通过 Raspberry Pi Linux 计算机中的 Thonny IDE 完成。
1、请点 https://thonny.org/ 可获得 IDE。
2、下载并安装 IDE 后,将 Pico 连接到计算机,同时按住 Pico 上的启动选择按钮,在编程模式下启动它。
3、屏幕上会弹出一个文件夹,点击链接 https://www.raspberrypi.com/documentation/microcontrollers/#getting-started-with-micropython 获得 micropython 固件,并将其安装到这个文件夹中。
4、你也可以通过 Thonny IDE 执行,从 Run->Select Interpreter,找到 RasberryPi Pico 的 micropython,在窗口底部,你将看到一个蓝色文本按钮“安装或更新固件”。
烧录 Pico
在对 Pico 进行编程之前,需要安装 OLED 显示库。
1、选择工具菜单至管理包,搜索 SSD1306 并安装第一个,直接保存到 Pico 中。
2、使用项目文件夹中的代码来刷新 PiCalc 固件。
PiCalc 固件文件可在本项目文件库中下载:
https://make.quwj.com/project/419
现在计算器的功能就完成了,剩下的就是 3D 打印外壳。
我使用 Eagle CAD 的 Fusion 360 同步功能,将 PCB 的 3D 文件传输到 Fusion 360,然后建模。
外壳主要需要打印三个部分:键盘矩阵,顶盖和底盖。
3D 打印采用 PLA,20% 填充完成,无需支撑。
3D 打印文件可在本项目文件库中下载:
https://make.quwj.com/project/419
装饰键盘
我将键盘上的符号用纸打印出来再逐个裁剪后粘贴到键盘上,要注意符号的尺寸。
键盘符号文件可在本项目文件库中下载:
https://make.quwj.com/project/419
如图所示,这款计算机带有开关和 TP4056(充电/保护电路)的凹口、 USB 插槽和滑动开关。
使用双面胶带粘贴电池,不推荐使用热熔胶粘贴电池。将键盘插入网格并将 PCB 安装至顶部,最后将外壳的卡扣扣上。
所有的组件组合在一起,这台微型计算器就完成了。