树莓派学习之旅:资料记录器
学习资料来自Get started with MicroPython on Raspberry Pi Pico
此前我们一直是将树莓派Pico连接到电脑上的。但树莓派具有自主的处理能力、内存等用于独立工作的一切。
文件系统
存储我们所写程序的文件系统与我们电脑上的硬盘(或固态硬盘)是等价的,因此,即便我们把它从数据线上拔下来也可以把文件存储到位。
打开Thonny,在终端(shell)区输入
1 | file = open("test.txt", "w") |
这样,我们就打开了test.txt并写入——w即代表写入,输入这行代码后什么也不会显示,因为我们什么也没做呢。接着,写入:
1 | file.write("File,你好!") |
按下回车后,我们可以看见16——也就是确认我们输入了16个字节到我们打开的文件(注意,一个汉字(或中文标点)占3个字节)。
写入后,我们需要将他关闭——以确认数据确实被写入到文件系统中了。
1 | file.close() |
这使,我们就可以打开了。当然,也可以输入
1 | file = open("test.txt") |
可以看到,这时,我们并没有输入w,因为我们应该是要读取文件,因此,我们可以用r代替。但MicroPython用只读模式默认打开一个文件,所以也就不用指明r。
接着
1 | file.read() |
如图:

当然,别忘了关闭文件
1 | file.close() |
记录温度
再打开一个文件,输入
1 | import machine |
接着,输入:
1 | file = open("temps.txt", "w") |
如果该文件不存在,那么将创建一个,如果存在,那么文件将被覆写。
注意!
覆写一个文件将清除其所有内容。
接着,输入
1 | file.write(str(temperature)) |
当然,别忘了关闭文件。
1 | file.close() |
正如我们刚刚提到的,覆写文件会清除其原有的所有内容,因此文件中只有一个数字。
为了实现不断计数,我们需要加入循环
1 | import machine |
flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。
一般情况下,文件关闭后会自动刷新缓冲区,但有时你需要在关闭前刷新它,这时就可以使用 flush() 方法。
——菜鸟教程
Pico的文件系统无论是否连接到电脑都能工作,因此,我们只需要有Micro USB的充电线就可以在任何空间工作。但是我们需要找到一种不需要点击运行图标的方法来运行程序。
这时,我们就需要将文件使用特定的名称main.py存储,这样的话,Pico在充电或是重启时就会自动运行该文件。
另存为后,什么也不会发生。因为Thonny自动将其设置为inactive模式。为了强制程序运行,点击Shell区域,按住CTRL键,再按下(再放开)D,接着放开CTRL键。
等一会儿,按下停止键,再打开temps.txt,我们就能看到一系列的温度数值,尽管我们没有按运行键。
接着,找一个micro USB充电器,再过一会儿,将Pico插回电脑,再读取文件,当看到一行行温度时,就证明我们成功了。
