0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CircuitPython:用于教育的嵌入式 Python

gfhtrdfd ? 2022-12-29 10:02 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

“变化是唯一不变的”是希腊哲学家赫拉克利特的智慧明珠。这一点在数字电子世界中最为真实。C 语言是 1970 年代初期计算热潮的产物,自从 BASIC 语言放弃其对微控制器编程的统治地位以来,它就一直主导着嵌入式开发。今天风向又变了,这次转向了日益流行的 Python 编程语言。MicroPython 在过去几年出现,以弥合面向桌面的 CPython 参考语言与相对有限的微控制器硬件规格之间的差距。

尽管如此,对于新手嵌入式开发人员来说,MicroPython 还是有点挑战。输入CircuitPython,它是 MicroPython 语言的一个分支,经过调整以满足学生和其他希望学习现代嵌入式系统开发的人的特定需求。自 2017 年夏季首次发布以来,由Adafruit Industries主办的CircuitPython 语言在制造商和教育标记中的受欢迎程度一直在稳步增长。

在其当前迭代中,即本文的 6.1.0 版,CircuitPython 支持由 Microchip Technology Atmel SAMD21和SAMD51微控制器以及 Nordic Semiconductor nRF52840片上系统 (SoC) 提供支持的众多开发板。以前的 CircuitPython 版本支持流行的 ESP8266 微控制器,但从版本 4 开始不再支持。虽然 CircuitPython 在许多方面与 MicroPython 相似,但它确实去除了复杂性并为那些刚刚接触嵌入式电子产品的人提供了更直接的开发工作流程。

CircuitPython 入门

首先,与 MicroPython 一样,CircuitPython 需要将特殊固件上传到开发板,称为 USB 闪存版本 2 或 UF2。许多受支持的开发板都预装了固件。但是,所有开发板都提供一种机制,使系统进入引导加载程序模式,从而允许刷新 UF2 固件。UF2 固件特定于每个开发板,因此请确保下载特定于您的开发板的最新固件。CircuitPython网站使这项任务变得简单。将开发板插入计算机并启用引导加载程序模式后,开发板应显示为名为BOOT的闪存驱动器。只需将之前下载的UF2文件拖入BOOT的根目录即可驾驶。成功安装后,将出现一个名为CIRCUITPY的新驱动器。至此,开发板已经为它的第一个项目做好了准备。

虽然任何代码编辑器都可用于编辑 CircuitPython 源文件 (.py ),但建议初学者使用Mu 编辑器。安装并运行编辑器后,只需单击“新建”按钮即可创建一个空白的 Python 脚本文件。有大量示例代码可以满足几乎所有需求。当然,举世闻名的Blinky LED就是硬件世界的Hello, World。这是一个闪烁 LED 的示例:

进口板

进口数码

导入时间

led = digitalio.DigitalInOut(board.D13)

led.direction = digitalio.Direction.OUTPUT

而真实的:

led.value = 真

时间.睡眠(0.5)

led.value = 假

时间.睡眠(0.5)

输入代码后,将文件命名为code.py并将其保存到CIRCUITPY驱动器的根目录。如果您将文件保存在其他地方,例如桌面,只需单击文件并将其从桌面拖动到CIRCUITPY驱动器图标即可。重要说明,文件名对 CircuitPython 很重要,因为有些文件名是为特殊目的保留的。code.py 文件在每次重新加载后运行。要建立仅在启动时运行一次的任何设置函数,请将该代码放在名为boot.py的文件中。

CircuitPython 的一个很好的特性是它可以检测到任何时候添加或更新文件并自动重新启动代码。无需按下重置按钮或拔下/重新插入开发板的 USB 电缆。所有源代码都保留为用户可读文件,因此您可以将开发板连接到任何计算机并以零配置管理工作进行代码更改。换句话说,您始终在设备上拥有最新的源代码。

CircuitPython 通过使用库使扩展功能变得非常简单。在CIRCUITPY驱动器的根文件夹中,应该有一个名为 lib 的文件夹。如果没有,使用计算机的文件资源管理器从头开始创建文件夹是安全的。这是存储添加功能或与传感器和执行器交互所需的所有支持文件的地方。CircuitPython 提供标准的库包,这些库在 CircuitPython 开发人员中很受欢迎。这些库文件针对嵌入式设备进行了显式优化,并以 . MPY文件扩展名。确保库包的版本号与您正在使用的 CircuitPython 的版本号相匹配至关重要。在升级 CircuitPython 固件时,不要忘记同时升级库包。

CircuitPython 与 MicroPython

CircuitPython 和 MicroPython 之间的其他一些主要区别包括:

所有构建都启用了浮点数。

不支持并发。

CircuitPython 中引入了一种安全模式,可在检测到硬崩溃或掉电情况时阻止用户代码运行。

模块别名不可用。换句话说,uos和utime模块不能作为os和time 使用。为了保持 CPython 兼容性,CircuitPython 操作系统和时间模块是其 CPython 对应项的子集。因此,CircuitPython 代码在 CPython 中是可执行的,但反之则不一定。

引入存储模块来挂载文件系统。

与其他 Python 版本一样,CircuitPython 通过读取-评估-打印循环 (REPL) 终端提供交互式编程体验。对于 CircuitPython,可以在主代码完成后通过串行终端连接到电路板并按键盘上的任意键进入 REPL 环境。输入 REPL 会禁用自动重新加载功能。

CircuitPython 的另一个令人兴奋的方面是Blinka。虽然 CircuitPython 在微控制器上运行,但 Blinka 将 CircuitPython 库带到了微型个人计算机上,这些个人计算机被称为单板计算机 (SBC),例如 Raspberry Pi。对于那些来自桌面开发人员背景的人,Blinka 使 MicroPython 成为可在面向桌面的 Python 版本中运行的 pip 可安装 Python 库,从而使使用与 SBC 相同的库与各种传感器和执行器交互成为可能用于微控制器。

Python,Python,无处不在

CircuitPython 是进入嵌入式系统软件开发“Python 化”的激动人心的入口。它的设计简单,加上强大的功能集,使其成为教育工作者和创客等人的诱人编程语言。CircuitPython 还为专业人士提供了独特的机会。对于嵌入式工程师来说,学习 Python 等强大语言的机会有助于教授桌面和 Web 应用程序技能。对于传统的桌面应用程序软件开发人员,CircuitPython 提供了一种将他们的编码技能从 PC 迁移到嵌入式系统的方法。

无论您的经验如何,CircuitPython 都是嵌入式开发领域值得一提的新编程语言。它的独特功能使嵌入式开发入门变得轻而易举,同时还提供了一些新概念,这些概念也应该会吸引资深程序员。CircuitPython 是嵌入式开发编程语言传奇历史中一个受欢迎的新成员。

我们想知道您是否有使用 CircuitPython 的经验?在Twitter 上与我们联系并与我们分享您的 CircuitPython 支持的项目!有兴趣开始使用 CircuitPython,请查看此Adafruit CircuitPython 入门工具包。

审核编辑黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • python
    +关注

    关注

    56

    文章

    4831

    浏览量

    87436
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    飞凌嵌入式旗下教育品牌ElfBoard与河北传媒学院-人工智能学院,成功举办“产教融合”沟通会

    飞凌嵌入式旗下教育品牌ElfBoard与河北传媒学院-人工智能学院共同召开“产教融合”沟通会
    的头像 发表于 07-01 09:18 ?1309次阅读
    飞凌<b class='flag-5'>嵌入式</b>旗下<b class='flag-5'>教育</b>品牌ElfBoard与河北传媒学院-人工智能学院,成功举办“产教融合”沟通会

    Linux嵌入式和单片机嵌入式的区别?

    区别 单片机嵌入式系统和Linux嵌入式系统是两种不同的嵌入式系统开发方式,它们在应用领域、开发环境、资源需求等方面都有显著的区别。以下是它们的主要区别: 1.应用领域: 单片机嵌入式
    发表于 06-20 09:46

    【新品发布】嵌入式人工智能实验箱EDU-AIoT ELF 2正式发布

    在万物互联的智能化时代,将AI算法深度植入硬件终端的技术,正悄然改变着工业物联网、智慧交通、智慧医疗等领域的创新边界。为了助力嵌入式人工智能在教育领域实现高质量发展,飞凌嵌入式旗下教育
    的头像 发表于 05-27 14:01 ?618次阅读
    【新品发布】<b class='flag-5'>嵌入式</b>人工智能实验箱EDU-AIoT ELF 2正式发布

    飞凌嵌入式旗下教育品牌ElfBoard即将亮相「第63届高等教育博览会」

    :服务高等教育强国建设"为主题,旨在搭建高等教育全要素协同发展平台。飞凌嵌入式旗下教育品牌ElfBoard依托自身技术优势,助力高校教师制定嵌入式
    的头像 发表于 05-15 13:34 ?534次阅读
    飞凌<b class='flag-5'>嵌入式</b>旗下<b class='flag-5'>教育</b>品牌ElfBoard即将亮相「第63届高等<b class='flag-5'>教育</b>博览会」

    嵌入式开发入门指南:从零开始学习嵌入式

    随着物联网、智能硬件的发展,嵌入式开发成为热门技能之一。以下将为初学者提供一份详细的嵌入式开发入门指南,涵盖学习路径、必备工具、推荐资源等内容。 1. 嵌入式系统的定义与应用嵌入式系统
    发表于 05-15 09:29

    嵌入式教育科普|SPI接口全面解析

    在现代科技领域,嵌入式系统接口作为信息交互的核心枢纽,扮演着不可或缺的角色。
    的头像 发表于 03-24 16:45 ?1520次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>教育</b>科普|SPI接口全面解析

    Python嵌入式系统中的应用场景

    你想把你的职业生涯提升到一个新的水平?Python嵌入式系统中正在成为一股不可缺少的新力量。尽管传统上嵌入式开发更多地依赖于C和C++语言,Python的优势在于其简洁的语法、丰富的
    的头像 发表于 03-19 14:10 ?790次阅读

    嵌入式教育科普|GPIO接口全面解析

    在现代科技领域,嵌入式系统接口作为信息交互的核心载体,发挥着至关重要的作用,各类接口通过预定义的通信协议与标准化规范,可以实现设备间的精准数据传输与智能控制。 作为嵌入式开发的技术基础,接口
    的头像 发表于 03-05 11:11 ?1909次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>教育</b>科普|GPIO接口全面解析

    嵌入式主板选型与应用指南

    嵌入式主板是专为嵌入式系统设计的核心硬件平台,广泛应用于工业控制、物联网、医疗设备等领域。以下是关于嵌入式主板的详细介绍:1.嵌入式主板的核
    的头像 发表于 02-27 14:53 ?589次阅读
    <b class='flag-5'>嵌入式</b>主板选型与应用指南

    嵌入式主板的概述与发展

    随着科技的迅猛发展,嵌入式系统在现代电子产品中扮演着越来越重要的角色。嵌入式主板作为嵌入式系统的核心组件之一,承担着控制、处理和通讯等多种功能。本文将对嵌入式主板的基本概念、构成部分、
    的头像 发表于 01-13 16:30 ?820次阅读
    <b class='flag-5'>嵌入式</b>主板的概述与发展

    ARM架构嵌入式主板特点

    嵌入式主板可以理解为嵌入在设备中用于控制和数据处理的CPU板,也就是设备的“大脑”。当主板嵌入到设备中,当然对主板的体积和功耗会有更严格的要求(嵌入
    的头像 发表于 12-31 16:03 ?1112次阅读
    ARM架构<b class='flag-5'>嵌入式</b>主板特点

    什么是嵌入式人工智能

    嵌入式人工智能是指将人工智能技术应用于嵌入式系统中的一种技术。嵌入式系统是嵌入到其他设备或系统中的计算机系统,通常
    的头像 发表于 12-11 09:23 ?1060次阅读
    什么是<b class='flag-5'>嵌入式</b>人工智能

    什么是嵌入式?一文读懂嵌入式主板

    在现代科技浪潮中,嵌入式技术已成为支撑各种智能设备和系统运行的核心力量。那么,究竟什么是嵌入式嵌入式系统,顾名思义,是将计算机的硬件和软件嵌入到某种设备或系统中,以实现特定功能的计算
    的头像 发表于 10-16 10:14 ?2696次阅读

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被称为嵌入式系统的核心组件,是一种用于控制和数据处理的计算机硬件,其设计旨在嵌入特定设备中执行专门任务。嵌入式主板如同是设备
    的头像 发表于 09-30 10:05 ?1665次阅读

    飞凌嵌入式旗下教育品牌ElfBoard亮相全国大学生嵌入式竞赛总决赛现场

    ElfBoard作为嵌入式教育市场的新生力量,凭借母公司飞凌嵌入式多年深耕企业级嵌入式板卡的经验亮相全国嵌赛总决赛现场,希望将企业的实践经验与高校的理论研究相结合,共同推动产学研结合,
    的头像 发表于 08-15 09:39 ?1082次阅读
    飞凌<b class='flag-5'>嵌入式</b>旗下<b class='flag-5'>教育</b>品牌ElfBoard亮相全国大学生<b class='flag-5'>嵌入式</b>竞赛总决赛现场