PiCalc 计算器

基于树莓派 Pico 的微型计算器

Cherry

喜欢

635
浏览
3
喜欢

> 更多图片

项目状态:已完成
开放度:公开
所属分类:电子
发布时间:2022-02-09
最近更新:2022-03-14

详细说明


大家好!今天是 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, 5 次下载]

PiCalc_DoubleSided_Gerber_2021-03-14.zip
[53698 Bytes at 2022-03-14, 7 次下载]

PiCalc_Firmware.py
[11532 Bytes at 2022-03-14, 9 次下载]

Top+Cover.stl
[39284 Bytes at 2022-03-14, 3 次下载]

Bottom+cover.stl
[53584 Bytes at 2022-03-14, 4 次下载]

keyMatrix_2.stl
[183084 Bytes at 2022-03-14, 2 次下载]



教程

材料清单


树莓派 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 处比其他的电量要低,它将会被认为按下该按键。

电路和PCB设计


这台微型计算器的主要电路是由 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、焊接按钮。

将 PCB 板连接到 Pico


1、如图所示,使用双面胶将 Pico 粘贴在 PCB 板的背面,然后将 Pico 的电线焊接到右侧的孔中。

2、连接 OLED 显示器,将其焊接到电线的孔上,并将这些孔给遮住。

连接电池和充电电路

1、连接电池和 LiPo 保护。

2、连接充电电路 TP4056 和开关。
3、注意需要对线头继续绝缘处理,再将它们装到外壳中。

安装 Thonny IDE


我使用 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 打印外壳。

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 安装至顶部,最后将外壳的卡扣扣上。


所有的组件组合在一起,这台微型计算器就完成了。