如何将micro:bit写入的文件传输到PC上?

How to get files written by the micro:bit to the PC?

提问人:am2 提问时间:4/12/2017 更新时间:11/22/2017 访问量:3488

问:

我是BBC micro:bit的新手,所以我有以下问题:

我想读取动作并将其写入 m:b 上的文件,毕竟我想从那里将其下载到 PC 上进行处理。

我是这样写的文件:

from microbit import *

with open('FileName.txt', 'w') as my_file:
    my_file.write('text to write down')

当我将 m:b 用作 USB 设备时,我看不到该文件。 但是当我对 m:b 进行编程以列出所有文件时,它在文件之前写得很短。

我知道,m:b没有磁盘操作系统,所以我尝试用python代码拉它,我在Windows PC上启动了以下python代码: (参见:Docs 到 microfs)

import microfs
print microfs.ls()

但是我收到错误IOError:找不到micro:bit。

我想没有找到 m:b。 我做错了什么?我还能尝试什么?

python 串口 bbc-microbit

评论


答:

1赞 carlosperate 4/14/2017 #1

有时,如果像uFlash或MicroFs这样的脚本找不到micro:bit,如果你拔掉USB电缆,等待几秒钟,然后重新插入,它会有所帮助(Linux用户的附加说明,虽然我知道你不是这种情况,但在Linux上,等到micro也很有帮助:已安装位驱动器)。

使用 MicroFs 访问 MicroPython 文件是正确的,因为它们位于微控制器闪存中,无法通过 USB 大容量存储接口访问。请记住,在micro:bit中编写一个新程序确实会删除所有Flash内容,包括你以前的程序可能创建的任何文件。

为了便于使用,我建议使用Mu编辑器(https://codewith.mu),因为它提供了一个GUI来将文件移入和移出micro:bit。值得注意的是,Mu 在内部使用 uFlash 和 MicroFs,因此它会给你与使用这些单独的命令行工具相同的结果。

评论

0赞 am2 4/18/2017
谢谢你的回答。编辑器很好,例如你可以很容易地找到语法错误。但我的问题仍然是一样的:我经常断开和连接,我经常将程序加载到 m:b ->,只要我编写代码或通过 USB 查看那里,m:b 是“打开”的,如果我尝试通过“文件”查看,我得到答案:“找不到连接的 BBC microbit。请确保设备已插入此计算机。在文件系统工作之前,设备必须将 MicroPython 刷入其中。..."也许我必须将 MicroPython 闪存到 m:b 上?如何做到这一点?
0赞 carlosperate 4/19/2017
是的,MicroPython必须首先烧录到micro:bit中才能访问文件系统。你可以用Mu烧录一个空脚本(我假设它能够将程序加载到micro:bit中,对吗?),或者如果使用uFlash,你可以自己输入命令,它也会这样做。uflash
0赞 am2 4/19/2017
恐怕,第一种方法行不通。我用了mu,打开了一张新的(空)纸,把它刷到了m:b。LED 闪烁约 10 秒,消息“闪烁”无标题“闪烁到 m:b 上”,USB 设备确实重新启动,但当我尝试打开“文件”(mu)时,相同的消息“找不到......”出现。我怎样才能知道,MicroPython是否被烧录到m:b上?如何使用uFlash?
1赞 Big G 11/3/2017 #2

我也花了几个小时寻找让 microfs 和 mu 在收到“找不到它”消息后从 microbit 读取文件的答案。

我刚刚找到了一个解决方案:更新microbit固件

我将一个空的 Python 文件从 mu 闪存到 microbit,然后使用命令行 ufs put 复制创建文本文件并在 microbit 上显示心形的代码。<path to file>\main.py

现在 mu 中的选项正确显示,并且创建的文本文件在我的 microbit 上。Filesmain.py

我希望这会有所帮助。

1赞 Oppy 11/22/2017 #3

如前所述,您可以使用命令行 ufs 在微位上放置、获取、列出和删除文件。

pip install microfs --user

然后使用 ufs 列出、删除、放置和获取文件到和离开微比特。 GitHub 站点:https://github.com/ntoll/microfs。 命令包括:

ufs ls #list files on the card
ufs rm <filename> # remove a file
ufs put <filename> # write a file to the micro:bit
ufs get <filename> # get a file from the micro:bit

首先,将一个空白的.py文件放到micro:bit上。在 Linux 中,您可以使用以下命令创建它:

touch empty.py

使用文件浏览器双击microbit(例如Linux中的Nautilus)与microbit连接。 使用 mu 将 empty.py 刷到微位上。 然后编写你的 Micropython 代码并将其命名为 main.py。使用 ufs 将 main.py 写入 micro:bit。

ufs main.py

此文件将在重置和重新启动时运行。你可以让你的 main.py 文件导入并在micro:bit上使用其他Micropython文件。使用ufs把它们放到micro:bit上。

ufs <file to import to main.py>.py

例如

ufs put utilities.py

可以使用 ufs put 覆盖文件。 不能同时使用 ufs 和 repl。 现在,您可以编写和读取文本文件了。请找到我为此使用的两个示例函数。

def read_file(filename):
    with open(filename, 'r') as my_file:
        read_value = my_file.read()
        return read_value

def write_file(filename, value):
    with open(filename, 'w') as my_file:
        my_file.write(str(value))
        my_file.close()

文件被写入微比特,在重新供电设备后,数据保持不变。可以使用以下方法查看数据文件:

ufs ls

然后使用以下命令复制到本地计算机:

ufs get <filename>

评论

0赞 phil 8/20/2018
ufs put 和 ufs get 接受第二个文件名作为目标。因此,将文件my_script.py从您的计算机复制到 Microbit,但在 Microbit 上,它将被称为 main.pyufs put my_script.py main.py