ArduPy 入门指南
要开始使用 ArduPy,首先需要安装 aip
- ArduPy 集成平台,这是一个用于开发 ArduPy 并与 ArduPy 开发板交互的实用工具。它使用户能够快速开始使用 ardupy。aip
是一个简单的命令行工具。您可以通过它自定义自己的 ardupy 固件,而无需了解更多关于 ArduPy 的详细信息。
支持的开发板
ArduPy 快速入门
以下方法用于以最简单的方式体验 ArduPy 软件。按照以下步骤立即开始!
- 步骤 1 进入引导加载程序模式
通过 USB 连接将您的设备连接到 PC。通过快速重置设备进入引导加载程序模式。
您的 PC 中应该会出现一个名为 Arduino
的 USB 驱动器。进入 Arduino USB 驱动器位置。

- 步骤 2 下载 ArduPy UF2 固件
以 UF2 文件形式下载 ArduPy 固件。
- 对于 Wio Terminal
- 对于 Seeeduino XIAO
并将其保存到您的驱动器中。
- 步骤 3 将 ArduPy 固件刷写到设备
下载适用于您设备的固件后。将 .UF2
文件拖到 ARDUINO
USB 驱动器。现在,您的开发板将从 PC 中消失。重置开发板,它已将 ArduPy 固件加载到其中!
- 步骤 4 让设备闪烁
现在,您的 PC 中将出现一个名为 ARDUPY
的 USB 驱动器。打开 ARDUPY
,您将看到一个 main.py
python 文件。使用您喜欢的编辑器(如 Microsoft Visual Studio Code、Atom、Sublime Text 等)打开 main.py
。复制以下代码并保存 main.py
。
from machine import Pin, Map
import time
LED = Pin(Map.LED_BUILTIN, Pin.OUT)
while True:
LED.on()
time.sleep(1)
LED.off()
time.sleep(1)
现在您应该看到设备的内置 LED 开始闪烁!查看以下部分了解更多关于 ArduPy 的信息!您将了解 ArduPy-aip
工具以及如何使用 aip
构建并将您自己的固件刷写到设备!
在 macOS 上安装 aip
对于 macOS 用户,您可以在终端中简单运行以下命令来安装 ArduPy-aip:
pip3 install ardupy-aip
注意: 请确保您已在 macOS 上安装了 Python 3。要安装 Python 3,您可以使用 Homebrew,这是 macOS 的软件包管理器。安装 Homebrew 后,运行以下命令安装 python 3:brew install python3
。您也可以从官方 Python 网站下载并安装 Python 3。
在 Windows 上安装 aip
您可以在下面的部分下载适用于 Windows 的最新版本 ArduPy。下载后,将二进制文件 aip
解压到您的 PATH
中的目录。
或者如果您有 Python 3 环境,您也可以使用 pip3
安装:
pip3 install ardupy-aip
在 Linux 上安装 aip
对于 Linux 用户,您可以在终端中运行以下命令来安装 ArduPy-aip:
pip3 install ardupy-aip
注意: 请确保您已安装 Python 3 并且 pip3
是最新版本。
ArduPy-aip CLI
aip
是 ArduPy 的命令行界面,您可以使用 aip 来安装 ArduPy 库、构建 ArduPy 固件并轻松地将其刷写到硬件中。只需使用 help
来获取更多信息:
aip help

- 获取开发板信息(固件信息):
aip board
- 安装与 ArduPy 绑定的 Arduino 库:
请在此处查看可用的 ArduPy 库。
aip install <ArduPy Library Path>
# 使用示例:
# aip install Seeed-Studio/seeed-ardupy-ultrasonic-sensor
- 卸载 ArduPy 库:
aip uninstall <ArduPy Library Path>
# 使用示例:
# aip uninstall Seeed-Studio/seeed-ardupy-ultrasonic-sensor
- 列出已安装的 ArduPy 库
aip list
- 构建包含您安装的库和基本 ArduPy 功能的 ArduPy 固件。请注意,您现在可以选择为 Seeeduino XIAO 或 Wio Terminal 构建!
aip build --board=<board>
# 对于 Seeeduino XIAO:
# aip build --board=xiao
# 对于 Wio Terminal:
# aip build --board=wio_terminal
- 将 ArduPy 固件刷写到硬件:
aip flash
!!!Note
在命令后,您可以使用 -h
标志来查看该命令的更多用法。例如,aip flash -h
。
- 与开发板交互(基于 shell 的文件浏览器):
aip shell
注意: 一旦进入 ardupy-mpfshell,您可以使用 help
获取更多信息和命令。
- 进入 REPL 模式:
aip shell -c "repl"

- 运行 Python 文件:
aip shell -n -c "runfile <YourPythonFilePath> [Path]"
# 使用示例:
# aip shell -n -c "runfile /Users/ansonhe/Desktop/ur.py"
- 使用 shell 将文件加载到开发板:
aip shell -n -c "put <YourPythonFilePath> [Path]"
# 使用示例:
# aip shell -n -c "put /Users/ansonhe/Desktop/ur.py"
运行您的第一个脚本
一旦刷写了 ArduPy 固件,您的 PC 中应该会出现一个名为 ARDUPY
的 USB 驱动器。您可以创建以下 Python 文件来开始使用。
boot.py
要从启动时运行 MicroPython 脚本,只需将您的项目命名为 boot.py
并放在开发板的根目录位置。此脚本在设备启动时执行。
main.py
这是默认的 python 脚本,但它不会在启动时运行。当 main.py
保存更改时,main.py
会运行。即它可以自动重新加载。
在 ardupy-mpfshell 下的使用
一旦进入 ardupy-mpfshell,使用 help
检查命令用法。这里列出了一些有用的命令:
- 列出设备上的文件:
ls
- 删除设备上的文件(或目录):
rm <File/Directory>
- 将本地文件(例如
boot.py
)上传到设备:
put <YourPythonFilePath> [Path]
- 执行设备上的文件,例如
test.py
:
execfile test.py

使用 aip 包含其他 ArduPy 库的示例
aip
是 ArduPy 的关键特性之一,可用于将 Arduino 库转换为 Python 接口以供 ArduPy 使用。这里我们提供一个示例,展示如何使用 Wio Terminal 将 ArduPy 库包含到 ArduPy 固件中:
1.打开终端/Powershell,运行以下命令安装 ardupy 库。
aip install Seeed-Studio/seeed-ardupy-ultrasonic-sensor
2.构建固件:
aip build --board=wio_terminal
注意: 烧录固件的用法将出现在构建的底部。
3.通过复制构建结束时的用法将"新"固件烧录到开发板中。这里 aip 将自动查找连接到 PC 的开发板并上传固件。如果开发板未连接,将出现错误。
aip flash

库示例用法
一旦库被包含在 ArduPy 固件中并烧录到设备中,您可以按如下方式导入和使用模块:
aip shell -n -c "put /Users/ansonhe/Desktop/ur.py"
将
/Users/ansonhe/Desktop
替换为您的路径。
其中 ur.py
是:
from arduino import grove_ultra_ranger
import time
ur = grove_ultra_ranger(0)
while True:
print ("The distance to obstacles in front is:", ur.cm, 'centimeter')
time.sleep(1)
更多参考,请查看 seeed-ardupy-ultrasonic-sensor。
常见问题
更多 aip 参考,请访问 ardupy-aip 了解更多。
时间和延时
- 导入时间模块和延时:
import time
time.sleep(1) # 延时 1 秒
time.sleep_ms(500) # 延时 500 毫秒
time.sleep_us(500) # 延时 500 微秒
- 使用时间计数器:
import time
time.ticks_ms() # 毫秒计数器
start = time.ticks_us() # 微秒计数器
time.ticks_diff(time.tick_us(), start) # 测量计数器之间的差值
注意: 您可以使用 TAB
键进行自动建议并查看所有可用的函数。例如,在输入 time.
后,按 TAB
键查看时间模块中的所有函数。
更多参考,请访问 MicroPython 时间相关函数。
引脚和 GPIO
Seeeduino XIAO 引脚图
Wio Terminal 引脚图
要在 ArduPy 中引用 GPIO,只需使用您正在使用的设备的物理引脚映射。例如,对于 Wio Terminal,引脚 1 是 3.3V,引脚 2 是 5V。
- 导入 Pin 并配置 GPIO:
from machine import Pin
p3 = Pin(3, Pin.OUT) # 将引脚 3 设置为输出引脚
p3.on() # 将引脚 3 设置为高电平
p3.off() # 将引脚 3 设置为低电平
p3.value(1) # 使用 value 方法将引脚 3 设置为高电平
p5 = Pin(5, Pin.IN) # 将引脚 5 设置为输入引脚
p5.value() # 打印输入引脚的值
p3 = Pin(3, Pin.OUT, value=1) # 在一行中将引脚 3 设置为输出引脚并设为高电平
p5 = Pin(5, Pin.IN, Pin.PULL_UP) # 将引脚 5 设置为带上拉电阻的输入
映射
为了更容易访问开发板外设,ArduPy 映射了与 Arduino 相同的调用方法:
from machine import Pin, Map
import time
LED = Pin(Map.LED_BUILTIN, Pin.OUT) # 将内置LED设置为输出
while True:
LED.on()
time.sleep(1)
LED.on()
time.sleep(1)
PWM(脉宽调制)
要使用 PWM,您必须使用设备上的 PWM 通道。请参考设备引脚图,查看 PWM 通道的位置。
- 使用 PWM:
from machine import Pin, PWM
pwm0 = PWM(Pin(13)) # 在引脚13上创建PWM通道
pwm0.freq() # 当前频率
pwm0.freq(1000) # 将频率设置为1000Hz
pwm0.duty() # 当前占空比
pwm0.duty(200) # 将占空比设置为200
pwm0.deinit() # 关闭引脚上的PWM
pwm1 = PWM(Pin(16), freq=1000, duty=200) # 一行代码设置PWM
ADC
要在设备上使用 ADC,您必须使用模拟引脚。例如,Wio Terminal 上的引脚 13(A0)。
注意:Wio Terminal 上的 ADC 通道是 10 位(0-1023)。
- 使用 ADC
from machine import ADC, Pin
adc = ADC(Pin(13)) # 在引脚13上创建ADC
adc.read() # 读取ADC值,0 ~ 1023
DAC
要在设备上使用 DAC,您必须使用开发板上的 DAC 引脚或 PWM 引脚。例如,Wio Terminal 上的引脚 11(DAC0)。
注意:Wio Terminal 上的 DAC 通道是 12 位(0-4095)。
- 使用 DAC:
from machine import DAC, Pin
dac0 = DAC(Pin(11)) # 在引脚11上创建DAC
dac0.write(512) # 向DAC写入值,512/4096*3.3 = 0.4125 V
dac1 = DAC(Pin(26), resolution=10) # 在引脚26上创建DAC并使用10位分辨率
dac1.write(1023) # 向DAC写入最大输出值,3.3V
注意: 在 PWM 引脚上使用 DAC 时,通道的分辨率将只有 8 位。
# 在PWM引脚上使用DAC
from machine import DAC, Pin
dac2 = DAC(Pin(16)) # 在引脚16上创建DAC
dac2.write(128) # 向DAC写入值,128/255*3.3 = 1.65V
LCD
对于 Wio Terminal,TFT LCD 显示屏可以按如下方式使用。更多 LCD 参考,请访问 ArduPy LCD API 参考。
- 使用 LCD 模块:
from machine import LCD
lcd = LCD() # 初始化LCD并打开背光
lcd.fillScreen(lcd.color.BLACK) # 用黑色填充LCD屏幕
lcd.setTextSize(2) # 将字体大小设置为2
lcd.setTextColor(lcd.color.GREEN) # 将文本颜色设置为绿色
lcd.drawString("Hello World!", 0, 0) # 在(0, 0)位置打印Hello World
注意:使用 tab
键查看可用函数。
IDE 入门
如前所述,您可以使用您喜欢的编辑器来编写 Python 程序。为了轻松运行和测试程序,您可以简单地编辑 ARDUPY
USB 位置中的 main.py
文件(自动重新加载功能)。这里将使用 Wio Terminal 演示另一个快速示例:
确保您在下一节之前已经遵循了上述步骤。
1.在 ARDUPY
USB 位置打开 main.py
。
2.将以下代码复制到 main.py
并保存文件。
from machine import LCD
import time, math
DEG2RAD = 0.0174532925
lcd = LCD()
lcd.fillScreen(lcd.color.BLACK)
# 绘制圆形扇形
# x,y == 圆心坐标
# start_angle = 0 - 359
# sub_angle = 0 - 360 = 圆心角
# r = 半径
# colour = 16位颜色值
def fillSegment(x, y, startAngle, subAngle, r, color):
# 计算扇形起始的第一对坐标
sx = math.cos((startAngle - 90) * DEG2RAD)
sy = math.sin((startAngle - 90) * DEG2RAD)
x1 = sx * r + x
y1 = sy * r + y
# 每inc度绘制颜色块
for i in range(startAngle, startAngle+subAngle, 1):
# 计算扇形结束的坐标对
x2 = math.cos((i + 1 - 90) * DEG2RAD) * r + x
y2 = math.sin((i + 1 - 90) * DEG2RAD) * r + y
lcd.fillTriangle(int(x1), int(y1), int(x2), int(y2), x, y, color)
# 将扇形结束点复制为下一个扇形的起始点
x1 = x2
y1 = y2
def main():
# 绘制4个饼图扇形
fillSegment(160, 120, 0, 60, 100, lcd.color.RED)
fillSegment(160, 120, 60, 30, 100, lcd.color.GREEN)
fillSegment(160, 120, 60 + 30, 120, 100, lcd.color.BLUE)
fillSegment(160, 120, 60 + 30 + 120, 150, 100, lcd.color.YELLOW)
time.sleep(1)
fillSegment(160, 120, 0, 360, 100, lcd.color.BLACK)
if __name__ == "__main__":
while True:
main()
3.您应该看到 Wio Terminal 立即开始在屏幕上绘制饼图!
自动重新加载在测试小程序时非常有用。
技术支持
请将任何技术问题提交到我们的论坛