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
    +关注

    关注

    58

    文章

    4885

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    什么是嵌入式应用开发?

    、实现和部署,还包括硬件选择、软件设计、测试、集成和维护等流程‌。 定义和背景 嵌入式应用开发是指将软件部署到嵌入式系统中,这些系统广泛应用于消费电子和工业自动化中。嵌入式系统通常
    发表于 01-12 16:13

    嵌入式与FPGA的区别

    \"嵌入式开发门槛低、就业广,适合转行;FPGA技术深、薪资高,但要求学历和数学功底。选哪个?看你的基础和职业目标。\" ⭕我们先来明白下两者区别在哪? ✅1、嵌入式:分两部分
    发表于 11-20 07:12

    嵌入式和FPGA的区别

    开发中做出更明智的技术选择。 基本概念解析 嵌入式系统(Embedded System)是一种专用计算机系统,通常包含微处理器/微控制器、存储器和专用外围设备,被设计用于执行特定功能。它强调
    发表于 11-19 06:55

    2025年最佳的嵌入式编程语言有哪些呢?

    嵌入式系统是现代科技不可或缺的一部分。它们存在于家用电器、汽车、住宅、医院、商店等各个领域。它们与我们的社会紧密相连。选择合适的语言来构建嵌入式系统对于成功至关重要。那么,2025年最佳的嵌入式编程
    的头像 发表于 11-14 10:27 1763次阅读
    2025年最佳的<b class='flag-5'>嵌入式</b>编程语言有哪些呢?

    嵌入式需要掌握哪些核心技能?

    : 1)C语言与底层编程 核心地位:C语言是嵌入式开发的基石,需精通指针操作、内存管理、位运算,直接操控硬件资源。 延伸技能:C++用于复杂项目架构设计,汇编语言优化底层性能(如启动代码、中断处理
    发表于 10-21 16:25

    嵌入式达到什么水平才能就业?

    很多想入行嵌入式的朋友,都在纠结:自己得学到啥水平,才能找到工作?要是现在还没达到这种水平/刚想入行嵌入式,现在开始学还来得及嘛?别慌,今天就来好好聊聊~ 嵌入式就业,需要达到这些水平: (一
    发表于 09-15 10:20

    新一代嵌入式开发平台 AMD嵌入式软件和工具2025.1版现已推出

    AMD 2025.1 版嵌入式软件和工具是面向新一代嵌入式系统开发而打造的综合平台,全面加速概念构想到部署落地。 2025.1 版嵌入式软件和工具的新 增功能 AMD 嵌入式开发框架(
    的头像 发表于 08-20 09:15 4204次阅读

    盘点嵌入式就业所需要的技能有哪些?

    ,把握未来的职业机遇。 1.智能汽车行业: - 熟悉嵌入式编程语言,如C/C++、Python等。 - 掌握嵌入式系统设计与开发流程,了解汽车电子控制系统的基本原理。 - 具备良好的数据结构和算法
    发表于 08-11 15:43

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

    飞凌嵌入式旗下教育品牌ElfBoard与河北传媒学院-人工智能学院共同召开“产教融合”沟通会
    的头像 发表于 07-01 09:18 1913次阅读
    飞凌<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 1198次阅读
    【新品发布】<b class='flag-5'>嵌入式</b>人工智能实验箱EDU-AIoT ELF 2正式发布

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

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

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

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

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

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

    飞凌嵌入式2025嵌入式及边缘AI技术论坛圆满结束

    飞凌嵌入式「2025嵌入式及边缘AI技术论坛」在深圳深铁皇冠假日酒店盛大举行,此次活动邀请到了200余位嵌入式技术领域的技术专家、企业代表和工程师用户,共享嵌入式及边缘AI技术的盛宴!
    的头像 发表于 04-28 13:57 4344次阅读
    飞凌<b class='flag-5'>嵌入式</b>2025<b class='flag-5'>嵌入式</b>及边缘AI技术论坛圆满结束