ArduPy:当Arduino遇上Python,会擦出怎样的火花
发布于2022-05-06
Python最近的成功很大程度上得益于它的简单性和不断发展迎接新挑战的能力。从台式机和Web应用到机器学习和数据科学应用,Python不断进军一个又一个新领域。最近市场上发布了一个好玩的编程语言组合ArduPy,用于嵌入式系统开发。众所周知,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 Integrated Platform (AIP)。AIP是一种命令行实用程序,让开发人员能够快速、轻松地与兼容ArduPy的开发板交互。要下载并安装AIP,请打开命令行界面,并发出以下命令:
#pip3 install ardupy-aip
最后,下载并安装Visual Studio Code和Seeed ArduPy IDE扩展。Visual Studio Code可以从此处下载,适用于Windows、Mac和Linux。安装后,搜索Extensions Market for Seeed ArduPy IDE。选择了搜索结果后,点击Install,该插件将添加到Visual Studio。现在就可以利用ArduPy工具套件的所有功能了。
为什么选择ArduPy?
那么,与使用Arduino或直接使用MicroPython相比,ArduPy工具套件究竟有哪些优势呢? ArduPy的开发商Seeed认为,ArduPy有多个优点可以吸引创客和专业人士,包括:
- 在资源有限的嵌入式设备上体验功能丰富的Python3编程环境。
- 由于使用了无处不在的Visual Studio Code IDE,入门方便快捷。ArduPy的安装和配置也是快速简单。
- 支持简单的文件系统,非常适合使用HTML、CSS和JavaScript文件提供简单Web服务的物联网设备。
- 支持boot.py在电路板重启时自动运行。
- 支持串行终端交互 (REPL),使原型设计快速简单。无需上传新固件即可测试各种创意设计。
- 借助Arduino库Python包装器,可以访问能与MicroPython兼容的丰富第三方库。
- 用户可以通过AIP定制自己的ArduPy固件,而不必知道底层ArduPy工具套件的任何细节。
第一个ArduPy项目
首先使用USB电缆将兼容的开发板插入计算机。我们推荐使用贸泽提供的Seeed Wio Terminal开发板,可点击此处购买。Wio Terminal是一种方便易用的微控制器开发平台,功能齐全,包括LCD显示屏、2.4 GHz/5 GHz Wi-Fi (802.11 a/b/g/n)、蓝牙LE 5.0、IMU、麦克风、蜂鸣器、microSD卡、可配置按钮、光传感器、五向开关、红外发射器 (IR 940 nm),并支持 CryptoAuthentication。它搭载Microchip ATSAMD51P19 ARM® Cortex®-M4F内核(运行频率为120 MHz,但可提升至200 MHz),另外还有4 MB外部闪存和192 KB RAM。
将Wio(或任何兼容ArduPy的电路板)插入计算机后,打开命令行界面,然后发出以下命令:
#aip board
此命令将列出当前连接到计算机的所有ArduPy兼容电路板。如果你忘记了此命令,或者想了解如何使用AIP,可发出help命令:
#aip help
help命令是一条求助命令,可用来了解能通过ArduPy命令行工具实现的任何事情。可通过AIP使用的其他一些命令包括:
- build:使用已安装的库构建ArduPy固件内容
- list:列出已安装的ArduPy库
- install:安装与ArduPy绑定的Arduino库
- uninstall:卸载ArduPy库
- flash:将固件刷到ArduPy板
- shell:集成mpfshell以便与ArduPy板实时交互
现在,在开发计算机上设置好工具后,就可以将ArduPy固件刷到开发板上。每个开发板都有必须下载并安装的唯一UF2 ArduPy固件文件。Wio Terminal的固件文件在这里。接下来,必须将Wio Terminal插入开发计算机,并设置为bootloader模式。通过快速滑动电源开关两次即可完成此操作。如果操作成功,一个蓝色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 /<your-file-path-here>/boot.py"
拔出Wio Terminal并将其重新插入,然后代码应该会自动开始运行。你的第一个ArduPy项目现在就完成了!
欢迎尝试ArduPy
ArduPy仍然相对较新,并且正在迅速扩展以包含新的开发板和Python库。ArduPy固件为保持轻便,只包含MicroPython库的一个子集,包括时间、引脚、DAC、ADC、PWM和LCD。但是它很容易扩展,以满足任何特定应用的具体需求。而且,如果你对预先构建的库不满意,ArduPy还允许你编写自己的ArduPy库并将其实现到ArduoPy项目中。
对于那些希望在学习嵌入式开发时利用其Python编程经验的人来说,ArduPy是一种非常灵活的方法。而对于那些在Arduino生态系统中刻苦学习的人来说,ArduPy也是学习Python编程语言的不错途径,它在嵌入式环境外也很有用。
你尝试过ArduPy了吗? 请在评论中告诉我们,你使用ArduPy工具构建了哪些项目。
作者简介
专业工程师Michael Parks是Green Shoe Garage的所有者。Green Shoe Garage是一家提供定制电子设计的工作室和技术咨询机构,位于马里兰州南部。Michael Parks创办了《S.T.E.A.M. Power Podcast》播客来提升公众对科技的认知。他拥有马里兰州专业工程师资质,并拥有约翰·霍普金斯大学的系统工程硕士学位。