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

    关注

    57

    文章

    4858

    浏览量

    89588
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    留言有礼 | 立创 × 瑞萨--立创·地奇星RA6E2征集令来啦!!!最高2000元等你来拿!!!

    RA MCU遇见Zephyr,打通嵌入式开发任督二脉!
    的头像 发表于 12-08 17:14 78次阅读
    留言有礼 | 立创 × 瑞萨--立创·地奇星RA6E2征集令来啦!!!最高2000元等你来拿!!!

    Arduino plc和termux esp

    Arduino plc和termux esp
    的头像 发表于 12-06 06:41 1402次阅读

    三菱遇见西门子:CCLINKIE转PROFINET一座网关,让机器人“默契”共舞

    三菱遇见西门子:CCLINKIE转PROFINET一座网关,让机器人“默契”共舞 车间里,三菱PLC控制的搬运机械臂刚把零件精准送达,西门子PLC控制的装配机械臂便无缝衔接开始组装——这行
    的头像 发表于 11-13 16:36 415次阅读
    <b class='flag-5'>当</b>三菱<b class='flag-5'>遇见</b>西门子:CCLINKIE转PROFINET一座网关,让机器人“默契”共舞

    EtherCAT遇上PROFINET:我们的“协议小翻译”让矿井安全手拉手

    PLC控制的EtherCAT从站网络与西门子S7-1500主站的PROFINET系统无缝对接,让新型智能漏电综合保护器融入了这个钢铁巨人的神经网络。 协议边界的破壁者 EtherCAT遇见PROFINET,就像两位顶尖工程师的握手。在炼钢车间这个特殊战场,EtherCA
    的头像 发表于 10-22 10:00 183次阅读
    <b class='flag-5'>当</b>EtherCAT遇上PROFINET:我们的“协议小翻译”让矿井安全手拉手

    termux如何搭建python游戏

    termux如何搭建python游戏 Termux搭建Python游戏开发环境的完整指南 一、Termux基础环境准备 Termux是一款无需root即可在安卓设备上运行的Linux终端
    发表于 08-29 07:06

    DeviceNET遇见CANopen:我的工业协议转换实践手记

    的“语言”,沟通不畅成了最大瓶颈。我的任务,就是为它们担任一名高效的“翻译官”。 一、项目背景:产线遇上“语言障碍” 这个项目涵盖分拣系统、输送线和堆垛机,需要高度协同。核心控制器是欧姆龙NJ系列PLC,通过DeviceNET协议连接远程I/O站和部分传
    的头像 发表于 08-20 15:49 372次阅读
    <b class='flag-5'>当</b>DeviceNET<b class='flag-5'>遇见</b>CANopen:我的工业协议转换实践手记

    python app不能运行怎么解决?

    ;python_agent[1241]: xmlrpc request method supervisor.stopProcess failed;python_agent[1241]: xmlrpc request method supervisor.stopProces
    发表于 08-06 06:27

    【Milk-V Duo S 开发板免费体验】Milk-V DuoS之使用Arduino开发小核

    ; Blink 测试程序,该程序功能实现的是 Arduino 设备板载 LED 闪烁,DuoS 中也是支持的。 注: 在编译下载代码之前,请确保您的计算机中安装了 python 环境,并正确的配置了
    发表于 07-17 21:01

    基础篇3:掌握Python中的条件语句与循环

    Python编程语言中,条件语句和循环是构成复杂逻辑和数据处理的基石。本篇基础教程将帮助您深入了解Python中的条件语句和循环结构,让您能够更好地控制程序流程。 条件语句 条件语句允许程序根据
    发表于 07-03 16:13

    智能 “眼睛” 遇见制造业,质检迎来新革命

    智能视觉和多模态数据融合让微小瑕疵无所遁形,动态学习和预测性质量干预让检测更准确,新型复合材料应用下,质检系统学习能力强。
    的头像 发表于 04-28 10:19 490次阅读
    <b class='flag-5'>当</b>智能 “眼睛” <b class='flag-5'>遇见</b>制造业,质检迎来新革命

    4G仪表&quot;遇见&quot;EIOT

    安科瑞销售工程师冯东铖  17821170233 4G仪表"遇见"EIOT:解锁工业物联网时代的云端智控新姿势在数字化转型浪潮中,您是否还在为能源数据采集而烦恼?遍布厂区的仪表数据如何实时"开口说
    的头像 发表于 04-15 17:10 394次阅读
    <b class='flag-5'>当</b>4G仪表&quot;<b class='flag-5'>遇见</b>&quot;EIOT

    零基础入门:如何在树莓派上编写和运行Python程序?

    在这篇文章中,我将为你简要介绍Python程序是什么、Python程序可以用来做什么,以及如何在RaspberryPi上编写和运行一个简单的Python程序。什么是Python程序?
    的头像 发表于 03-25 09:27 1528次阅读
    零基础入门:如何在树莓派上编写和运行<b class='flag-5'>Python</b>程序?

    安防摄像头遇见DeepSeek

    本文介绍了DeepSeek,一种基于观澜大模型技术体系的安防+AI产品。AI大模型在安防领域的落地面临机遇和阻碍,包括高像素、AI大模型、4G、低功耗、毫米波雷达等技术的融合。
    的头像 发表于 03-05 09:16 741次阅读

    Python绘图Matplotlib快速参考手册

     PYTHON
    发表于 02-07 14:04 0次下载

    使用Python实现xgboost教程

    使用Python实现XGBoost模型通常涉及以下几个步骤:数据准备、模型训练、模型评估和模型预测。以下是一个详细的教程,指导你如何在Python中使用XGBoost。 1. 安装XGBoost
    的头像 发表于 01-19 11:21 2223次阅读