CircuitPython:Python中的编程硬件

2021-01-28 22:01:35

CircuitPython是Python的初学者友好型开放源代码版本,适用于名为微控制器的小型廉价计算机。微控制器是许多电子产品的大脑,包括用于构建业余项目和原型的各种开发板。 CircuitPython inelectronics是学习编码的最佳方法之一,因为它将代码与现实联系起来。只需通过拖放将CircuitPython安装在受支持的板上,然后在CIRCUITPY驱动器上编辑code.py文件。该代码将自动重新加载。除了文本编辑器外,无需安装任何软件(我们建议Mu初学者使用。)

CircuitPython具有统一的Python核心API以及越来越多的150多种与其一起使用的设备库和驱动程序。这些库还可以通过Adafruit Blinka库在带有RegularPython的单板计算机上工作。

CircuitPython基于MicroPython。差异见下文。 CircuitPython开发由Adafruit赞助,可在其教育开发板上找到。请同时支持MicroPython和Adafruit。

可通过circuitpython.org/downloads获得所有受支持板的官方二进制文件。该站点包括稳定,不稳定和连续的构建。完整的发行说明和资产也可以通过GitHub版本获得。

可以通过CircuitPython类别下的Adafruit学习系统获得指南和视频。 “阅读文档”中也提供了APIreference。可以在Awesome CircuitPython中找到令人敬畏的资源集合。

有关完整指南,请参见CONTRIBUTING.md,但请注意,向该项目做出贡献即表示您同意行为准则。欢迎遵守行为准则的贡献者提交拉取请求,项目管理员将立即对其进行审核。也请加入Discord。

我们很高兴看到CircuitPython进行了分叉和修改,但如果分叉的发行版不使用名称CircuitPython&#34 ;,我们将不胜感激。或Blinka徽标。 " CircuitPython"意味着一些特殊的话题,以及那些了解它的人。因此,我们希望确保引用该产品的产品符合一组通用要求。

如果您想使用" CircuitPython"我们在这里为您的产品提供Blinka:

主要的&adap; / adafruit / circuitpython"支持您的产品。回购。这样,我们可以在更新CircuitPython内部时更新任何自定义代码。

您的产品在circuitpython.org上列出(在此处提供源)。这是为了确保您产品的用户始终可以从标准位置下载最新版本的CircuitPython。

您的产品有一个用户可访问的USB插头,插入后会显示为CIRCUITPY驱动器。

如果您选择不满足这些要求,那么我们会要求您调用其他版本的CircuitPython(例如SuperDuperPython),并且不要使用Blinka徽标。您可以说它是" CircuitPython兼容"如果大多数CircuitPython驱动程序可以使用它。

不支持Python内的并发(包括中断和线程)。使用本机模块可以完成一些并发任务,例如音频文件回放。

文件的运行顺序和文件之间的共享状态。 CircuitPython的目标是弄清每个文件的角色,并使每个文件彼此独立。

boot.py(或settings.py)在初始化USB之前仅在启动时运行一次。这为在启动时配置USB奠定了基础,而不是固定它。由于序列号不可用,因此将输出写入boot_out.txt。

每次重新加载后都会运行code.py(或main.py),直到完成或中断。完成运行后,将重新初始化虚拟机和硬件。这意味着您不再能够从REPL中的code.py中读取状态。 CircuitPython进行此更改的目标包括减少有关所使用的引脚和内存的混淆。

在code.py之后,可以通过按任意键输入REPL。它不再与code.py共享状态,因此它是一个新的虚拟机。

添加安全模式,该模式在硬崩溃或掉电后不会运行用户代码。希望通过在崩溃后通过大容量存储使代码更容易修复导致讨厌的崩溃的代码。修复后需要复位(按钮)以返回正常模式。

文件系统通过USB大容量存储写入后,重新运行code.py或其他主文件。 (通过supervisor.disable_autoreload()禁用)

在完成主代码后输入REPL时,需要按键才能输入REPL并禁用自动重装。

没有模块别名。 (uos和utime不能分别用作os和time。)相反,os,time和random是CPython兼容的。

与CPython相对应的模块(例如时间,操作系统和随机)是其CPythonversion的严格子集。因此,CircuitPython的代码可在CPython上运行,但不必相反。 mpy-cross交叉编译器,用于在MicroPython中运行之前将Python文件转换为字节码。 对于减小库大小很有用。 共享绑定Python模块,其文档和支持C API的共享定义。 端口必须实现C API以支持相应的模块。 端口包括微控制器线特有的代码以及基于板的变化。 上面未列出的其余端口目录位于存储库中,以保持与MicroPython父项目的兼容性。