跳转到主要内容

一个模块和工具,用于将Python烧录到BBC micro:bit。

项目描述

uFlash

本模块只适用于PYTHON 2.7或3.3+。

一个用于使用Python脚本和MicroPython运行时将BBC micro:bit烧录的实用工具。你将此实用工具的名字读作“micro-flash”。;-)

它提供三项服务

  1. 一个函数库,用于编程创建十六进制文件并将其烧录到BBC micro:bit。

  2. 一个名为uflash的命令行实用工具,可以将Python脚本烧录到BBC micro:bit。

  3. 一个名为py2hex的命令行实用工具,用于从Python脚本创建十六进制文件并将它们保存在本地文件系统中

实现了几个基本操作

  • 将Python编码成十六进制格式。

  • 将生成的十六进制Python嵌入到MicroPython运行时十六进制文件中。

  • 从MicroPython十六进制文件中提取编码的Python脚本。

  • 发现连接的micro:bit。

  • 将生成的十六进制文件复制到micro:bit,从而烧录设备。

  • 指定要嵌入Python代码的MicroPython运行时十六进制文件。

安装

要安装,只需键入

$ pip install uflash

……并且包将从PyPI下载。如果您想升级到最新版本,请使用以下命令

$ pip install --no-cache --upgrade uflash

注意:您必须使用USB 数据 线将micro:bit连接到计算机(某些线缆仅为电源线)。如果连接后micro:bit在文件系统中显示为USB存储设备,则表示状态良好。

Linux用户:为了使uflash工作,您必须确保micro:bit已作为USB存储设备挂载。通常这会自动完成。如果没有,您可能已将自动挂载配置为关闭。如果是这种情况,我们假设您具备自己挂载设备或安装缺少的内核模块的技术知识。流行Linux发行版的默认安装“应该能够直接使用”(tm)。

命令用法

uflash

要查看帮助,请输入

$ uflash --help

$ uflash -h

要查看版本信息,请输入

$ uflash --version

如果单独输入该命令,则uflash将尝试查找已连接的BBC micro:bit,并将其上的未修改的默认版本MicroPython运行时烧录到它上

$ uflash
Flashing Python to: /media/ntoll/MICROBIT/micropython.hex

要烧录包含指定脚本(在BBC micro:bit启动时运行)的MicroPython运行时版本,请将Python脚本的路径作为命令的第一个参数传递

$ uflash my_script.py
Flashing my_script.py to: /media/ntoll/MICROBIT/micropython.hex

您可以让uflash监视脚本的变化。每次保存时都会自动将其烧录

$ uflash -w my_script.py

$ uflash --watch my_script.py

此时,uflash将尝试自动检测设备路径。但是,如果您已连接多个设备且/或知道BBC micro:bit在文件系统中的路径,您可以将其指定为命令的第二个参数

$ uflash myscript.py /media/ntoll/MICROBIT
Flashing myscript.py to: /media/ntoll/MICROBIT/micropython.hex

您甚至可以一次烧录多个设备

$ uflash myscript.py /media/ntoll/MICROBIT /media/ntoll/MICROBIT1
Flashing myscript.py to: /media/ntoll/MICROBIT/micropython.hex
Flashing myscript.py to: /media/ntoll/MICROBIT1/micropython.hex

要从一个十六进制文件中提取Python脚本,请使用“-e”标志,如下所示

$ uflash -e something.hex myscript.py

这会将从“something.hex”恢复的Python脚本保存到文件“myscript.py”。如果您不提供目标,则恢复的脚本将输出到stdout。

如果您正在开发MicroPython并有一个自定义运行时十六进制文件,可以指定uflash使用它而不是内置的MicroPython版本,方法如下

$ uflash -r firmware.hex

$ uflash --runtime=firmware.hex

py2hex

在输入.py文件的同一目录中创建输出.hex文件

$ py2hex tests/example.py
Hexifying example.py as: tests/example.hex

py2hex包括与uflash相同的-r/–runtime和-m/–minify选项,并添加了额外的选项-o/–outdir

在不同的目录中创建输出.hex文件

$ py2hex example.py -o /tmp
Hexifying example.py as: /tmp/example.hex

$ py2hex example.py --outdir /tmp
Hexifying example.py as: /tmp/example.hex

py2hex可以处理多个输入文件

$ py2hex a.py b.py c.py
Hexifying a.py as: a.hex
Hexifying b.py as: b.hex
Hexifying c.py as: c.hex

$ py2hex *.py
Hexifying a.py as: a.hex
Hexifying b.py as: b.hex
Hexifying c.py as: c.hex

开发

源代码托管在GitHub上。请随意复制存储库。假设您已安装Git,您可以使用以下命令从规范存储库下载代码

$ git clone https://github.com/ntoll/uflash.git

确保通过创建虚拟环境和运行以下命令安装了开发所需的正确依赖项

$ pip install -r requirements.txt

要将在虚拟环境中本地安装您的开发版本模块,请运行以下命令

$ python setup.py develop

有一个Makefile可以帮助处理大多数与开发相关的常见工作流程。单独输入make将列出选项,如下所示

$ make

There is no default Makefile target right now. Try:

make clean - reset the project and remove auto-generated assets.
make pyflakes - run the PyFlakes code checker.
make pep8 - run the PEP8 style checker.
make test - run the test suite.
make coverage - view a report on test coverage.
make check - run all the checkers and tests.
make package - create a deployable package for the project.
make rpm - create an rpm package for the project.
make publish - publish the project to PyPI.
make docs - run sphinx to create project documentation.

发布历史

1.2.4

  • 更新到micro:bit的最新版本MicroPython(1.0.1)

  • 这是Mu 1.0.2中将使用的uflash版本。

1.2.3

  • 更新到micro:bit的MicroPython最新版本(1.0.0)。

  • 这是Mu 1.0.1中将使用的uflash版本。

1.2.2

  • 更新到micro:bit的MicroPython最新版本(1.0.0-rc.3)。

1.2.1

  • 更新到最新版本的MicroPython。感谢Damien George和Carlos Pereira Atencio的辛勤工作。

  • 这是Mu 1.0.0(最终版)中将使用的uflash版本。

1.2.0

  • 更新到最新版本的MicroPython。感谢Damien George。

  • 添加了名为MICROPYTHON_VERSION的属性,用于报告uflash捆绑的MicroPython版本。

1.1.1

  • 更新到BBC micro:bit的最新版本MicroPython – 修复了与洪水和无线电模块相关的错误。一如既往,感谢Damien George在MicroPython方面的工作。

1.1.0

  • 更新到BBC micro:bit的MicroPython最新版本(多谢Damien George的惊人努力!)。

  • 为uflash添加一个版本号标志,使其打印当前版本号(感谢Lenz Grimmer为此做出的贡献)。

  • 允许uflash接受脚本的内容以及脚本的路径(感谢Zander Brown为此做出的贡献)。

  • 确保uflash与外部工具配合得更好(感谢Lex Robinson为此做出的贡献)。

  • 在脚本的开头添加版权和许可信息。

1.0.8

  • 重构十六进制提取,使其在脚本之前不依赖于扩展地址记录(感谢Carlos)。

  • 重构tox测试以修复与Windows相关的Gremlin(再次感谢,Carlos)。

1.0.7

  • 监控脚本中的更改。自动在保存时闪存。

1.0.5

  • 更新运行时以包括最新的错误修复和内置input()函数。

  • 在Windows 10中检测驱动器不再在特定情况下引起弹出窗口。

  • 更新文档。

1.0.4

  • 添加支持同时闪存多个微比特。

1.0.3

  • 更新运行时以包括音频和语音模块。

1.0.2

  • 更新运行时以包括新的无线模块。

1.0.1

  • 更新运行时以包括与文件系统相关的更改。

1.0.0.final.0

  • 运行时已更新到BBC micro:bit的MicroPython 1.0版本。

1.0.0.beta.7

  • 运行时更新以修复显示相关错误。

1.0.0.beta.6

  • 运行时更新以修复DAL(交换引脚4和5)的最新版本。

1.0.0.beta.5

  • 运行时更新以修复错误报告错误。

1.0.0.beta.4

  • 更新文档。

  • 更新帮助文本。

1.0.0.beta.3

  • 添加指定要使用的MicroPython运行时的功能。

  • 测试修复。

1.0.0.beta.2

  • 更新到MicroPython运行时的最新版本。

1.0.0.beta.1

  • 与Python 2.7兼容(感谢@Funkyhat)。

  • 更新到BBC micro:bit的最新MicroPython构建版本。

  • 由于MicroPython更新而对测试套件进行了一些微小的重构和更新。

0.9.17

  • 对代码进行了微小的重构。

  • 更新文档。

0.9.14

  • 功能完善。

  • 完整的测试套件 - 100%覆盖率。

  • 在Linux和Windows上进行了测试。

  • 文档。

  • 通过“uflash”命令访问。

0.0.1

  • 初始版本。基本功能。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

uflash-2.0.0.tar.gz (756.4 kB 查看哈希值)

上传时间 源代码

支持