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

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

3天内不再提示

ArduPy:当Arduino遇见Python

陈存楼 来源:bluepink 作者:bluepink 2022-12-30 09:40 次阅读
Python 最近的成功在很大程度上取决于简单性和不断发展以应对新挑战的能力。Python 不断开拓新领域,从桌面和 Web 应用程序到机器学习和数据科学应用程序。最近,针对嵌入式系统开发发布了一种奇怪的编程语言组合。这个新工具套件被称为 ArduPy(Arduino 和 Python 的组合),旨在通过提供一种将流行的 Arduino 库转换为 MicroPython 库的方法来利用 Arduino 嵌入式生态系统的流行。

ArduPy 由两个主要组件组成。首先是 ArduPy Core,它充当支持兼容开发板上基本硬件操作的接口因为 ArduPy 利用了 MicroPython,它利用了通用的 Arduino API,所以可以毫不费力地完成对新板的支持。第二个组件是 Arduino 库 Python 包装器。这需要一个用于外部传感器或执行器的 Arduino 库,并将其转换为与 MicroPython 兼容的代码。无需从头开始,这绝对可以帮助您使用新传感器快速启动原型设计。鉴于可用的 Arduino 库过多,此功能对于 MicroPython 社区来说是一个难得的机会,可以进一步“滑行”到新的嵌入式系统项目中。

入门

要开始使用 ArduPy,首先要做的是下载并安装最新版本的 Python。Python 适用于 Windows、Mac 和 Linux最新版本可以在这里下载在您的环境中安装 Python 后,就可以下载 ArduPy 集成平台 (AIP)。AIP 是一个命令行实用程序,允许开发人员快速轻松地与任何 ArduPy 兼容板进行交互。要下载并安装 AIP,请打开命令行界面并发出以下命令:

#pip3 install ardupy-aip

最后,是时候下载并安装 Visual Studio Code 和 Seeed ArduPy IDE 扩展了。可在此处下载适用于 Windows、Mac 和 Linux 的 Visual Studio Code。安装后,在扩展市场中搜索Seeed ArduPy IDE。在搜索结果中选择后,单击“安装”,插件将添加到 Visual Studio。现在您已准备好利用 ArduPy 工具集的所有功能。

为什么选择 ArduPy?

那么,与 Arduino 或直接 MicroPython 相比,ArduPy 工具集到底有什么优势呢?根据 ArduPy 的开发人员 Seeed 的说法,有几个优势应该会吸引制造商和专业人士,包括:

  • 在资源有限的嵌入式设备上体验功能丰富的 Python3 编程环境。
  • 由于使用了无处不在的 Visual Studio Code IDE,入门变得快速而简单。ArduPy 的安装和配置既快速又简单。
  • 支持简单文件系统,非常适合使用 HTML、CSS 和 JavaScript 文件提供简单 Web 服务的 IoT 设备。
  • 支持单板复位时自动运行boot.py。
  • 支持串行终端交互 (REPL),使原型制作变得快速和简单。无需上传新固件即可测试想法。
  • 访问丰富的第三方库,由于 Arduino 库 Python 包装器,这些库可以与 MicroPython 兼容。
  • 通过 AIP 自定义您自己的 ArduPy 固件,而无需了解底层 ArduPy 工具集的任何细节。

第一个 ArduPy 项目

首先,使用 USB 数据线将兼容的开发板插入您的计算机。推荐之一是 Seeed Wio Terminal 开发板,可从 Mouser 购买;点击这里Wio 终端是一个方便但价格低廉的微控制器开发平台,具有丰富的实用功能,包括 LCD 显示屏、2.4GHz/5GHz Wi-Fi (802.11 a/b/g/n)、蓝牙 LE 5.0、IMU、麦克风、蜂鸣器、microSD卡、可配置按钮、光传感器、五向开关、红外发射器(IR 940 nm),并且已准备好加密身份验证。它由 Microchip ATSAMD51P19 Arm ® Cortex ® -M4F 内核提供动力,运行频率为 120MHz(升压至 200MHz)以及 4MB 外部闪存和 19 KB RAM

将 Wio(或任何 ArduPy 兼容板)插入计算机后,打开命令行界面,并发出以下命令:

#aip board

这将列出当前连接到您的计算机的所有 ArduPy 兼容板。如果您忘记了此命令或要了解如何使用 AIP,请发出帮助命令:

#aip help

help 命令是通过 ArduPy 命令行工具了解一切可能的首选命令。通过 AIP 可用的一些附加命令包括:

  • build:构建 ArduPy 固件包含使用已安装的库
  • list:列出已安装的 ArduPy 库
  • install : 安装 Arduino 库与 ArduPy 绑定
  • uninstall : 卸载 ArduPy 库
  • flash:将固件闪存到 ArduPy 板
  • shell:集成 mpfshell,用于与 ArduPy 板进行实时交互

现在工具已在开发计算机上设置好,是时候将 ArduPy 固件安装到开发板上了。每块板都有一个必须下载和安装的唯一 UF2 ArduPy 固件文件。对于 Wio 终端,可以在此处下载该文件。接下来,必须将 Wio 终端插入开发计算机并进入引导加载程序模式。这可以通过快速滑动电源开关两次来完成。如果成功,一个蓝色的 LED 将开始闪烁,一个名为ARDUPY的 USB 闪存驱动器将出现在桌面上。

双击ARDUPY文件夹将显示一个名为main.py的文件,其中包含每次更新文件时自动运行的默认 Python 脚本文件。但是,如果您希望该脚本在每次电路板启动时运行,请在您的桌面上创建一个名为boot.py的文件。让我们添加示例代码来使板载 LED 闪烁。使用Visual Studio Code编辑boot.py文件,添加如下代码:

import time

import board

from digitalio import DigitalInOut, Direction

led = DigitalInOut(board.D13)

led.direction = Direction.OUTPUT

while True:

led.value = True

print("LED ON")

time.sleep(1)

led.value = False

print("LED OFF")

time.sleep(1)

保存boot.py文件。接下来,从命令行界面发出以下命令:

# aip shell -n -c "put //boot.py"

拔下 Wio 终端并重新插入,代码应该会自动开始运行。你的第一个 ArduPy 项目已经完成!

试一试 ArduPy

ArduPy 仍然相对较新,并且正在迅速扩展以包括新的开发板和 Python 库。为了保持 ArduPy 固件的轻量级,它只包含 MicroPython 库的一个子集,包括时间、引脚、DACADC、PWM 和 LCD。但它很容易扩展以满足任何特定应用程序的特定需求。此外,如果您对预先构建的库不满意,ArduPy 提供了编写您自己的 ArduPy 库并将它们实施到 ArduoPy 项目中的方法。

对于那些希望在学习嵌入式开发的同时利用他们的 Python 编程经验的人来说,ArduPy 是一种巧妙的方式。对于那些一直在 Arduino 生态系统中崭露头角的人来说,ArduPy 是学习 Python 编程语言的好方法,它可以在嵌入式环境之外发挥作用。

你试过 ArduPy 了吗?在评论中让我们知道您使用 ArduPy 工具构建了哪些项目。

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

    关注

    56

    文章

    4793

    浏览量

    84631
  • Arduino
    +关注

    关注

    188

    文章

    6469

    浏览量

    186962
收藏 人收藏

    评论

    相关推荐

    基于Arduino的串口通信项目

    基于Arduino的串口通信项目涉及多个方面,包括硬件连接、软件编程、串口参数配置等。 一、硬件准备 Arduino开发板 :确保你有一块Arduino开发板,如Arduino Uno
    的头像 发表于 11-22 09:24 481次阅读

    如何帮助孩子高效学习Python:开源硬件实践是最优选择

    显著提升孩子的学习兴趣和对Python原理的理解。本文将探讨为何使用Raspberry Pi(树莓派)或Unihiker(行空板)等开源硬件是孩子们掌握Python的最佳途径。 让孩子们在Python学习中更加互动
    的头像 发表于 09-06 09:49 307次阅读

    pytorch和python的关系是什么

    在当今的人工智能领域,Python已经成为了最受欢迎的编程语言之一。Python的易学易用、丰富的库和框架以及强大的社区支持,使其成为了数据科学、机器学习和深度学习等领域的首选语言。而在深度学习领域
    的头像 发表于 08-01 15:27 1894次阅读

    Python建模算法与应用

    Python作为一种功能强大、免费、开源且面向对象的编程语言,在科学计算、数学建模、数据分析等领域展现出了卓越的性能。其简洁的语法、对动态输入的支持以及解释性语言的本质,使得Python在多个平台
    的头像 发表于 07-24 10:41 528次阅读

    Python在AI中的应用实例

    Python在人工智能(AI)领域的应用极为广泛且深入,从基础的数据处理、模型训练到高级的应用部署,Python都扮演着至关重要的角色。以下将详细探讨Python在AI中的几个关键应用实例,包括机器学习、深度学习、自然语言处理、
    的头像 发表于 07-19 17:16 1061次阅读

    为什么无法在nodemcu和arduino mega之间交换数据?

    从 nodemcu 接收 arduino mega 的数据。问题是我无法在nodemcu中接收数据。 它们断开连接时,我可以清楚地看到arduino mega发送我的数据,但是一旦我连接
    发表于 07-19 12:15

    如何实现Python复制文件操作

    Python 中有许多“开盖即食”的模块(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在这篇文章中,你将会看到一些用 Python 实现文件复制的特殊方法。下面我们开始学习这九种不同的方法来实现 Pyt
    的头像 发表于 07-18 14:53 411次阅读

    opencv-python和opencv一样吗

    不一样。OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它提供了大量的图像和视频处理功能。OpenCV-Python
    的头像 发表于 07-16 10:38 1161次阅读

    用pycharm进行python爬虫的步骤

    以下是使用PyCharm进行Python爬虫的步骤: 安装PyCharm和Python 首先,您需要安装PyCharm和Python。PyCharm是一个流行的Python集成开发环境
    的头像 发表于 07-11 10:11 824次阅读

    idf-arduino component组件怎么设置 ?

    menuconfig 根据 文档里面的 教程 ,设置 就是这个报错 。 idf.py add-dependency \"espressif/arduino-esp32^2.0.7\" 或者是在vscode 里面 用 python 脚本然后编译工程也是 一样的报错。
    发表于 06-12 07:27

    Python语言支持KIT_A2G_TC387_MOTORCTR吗?

    CSK BGT60TR13C。 在此之前,我使用的是 Arduino。 所以在这里我对这个KIT_A2G_TC387_MOTORCTR有一些疑问。 1. 什么是最适合且易于
    发表于 03-04 07:45

    基于Python的地图绘制教程

    本文将介绍通过Python绘制地形图的方法,所需第三方Python相关模块包括 rasterio、geopandas、cartopy 等,可通过 pip 等方式安装。
    的头像 发表于 02-26 09:53 1199次阅读
    基于<b class='flag-5'>Python</b>的地图绘制教程

    如何使用Arduino制作智能垃圾箱

    在这个项目中,我将向您展示如何使用Arduino制作智能垃圾箱,您带着垃圾接近时,垃圾箱的盖子会自动打开。
    的头像 发表于 02-11 12:22 2998次阅读
    如何使用<b class='flag-5'>Arduino</b>制作智能垃圾箱

    如何使用linux下gdb来调试python程序

    如何使用linux下gdb来调试python程序  在Linux下,可以使用GDB(GNU调试器)来调试Python程序。GDB是一个强大的调试工具,可以帮助开发者诊断和修复程序中的错误。在本文
    的头像 发表于 01-31 10:41 2595次阅读

    split在python中的用法

    split在python中的用法 split()是Python中一个非常常用的字符串函数,它能够根据指定的分隔符将一个字符串分割成多个子字符串,并返回一个包含这些子字符串的列表。本文将详细介绍
    的头像 发表于 12-25 15:12 2019次阅读