Seeeduino XIAO入门详解
一、开发板概述
Seeeduino XIAO是Seeeduino家族中的最小成员(20x17.5mm)。它使用了功能强大却低功耗的微控制器——ATSAMD21G18A-MU。意味该小板在处理方面具有良好的性能,但需要的功率更少。由于它的设计尺寸很小,它可以被灵活运用于多种场景,特别是可穿戴设备和小型项目。
接口方面,Seeeduino XIAO拥有11个数字/模拟引脚,10个PWM引脚(D1~D10),1个DAC输出,1个SWD焊盘接口,1个I2C接口,1个UART接口,1个SPI接口。串行通信指示灯(T/R),闪烁指示灯(L)。LED的颜色为绿色、黄色、蓝色和蓝色分别对应电源、L、RX和TX。此外,Seeeduino XIAO具有Type-C接口,用于提供电源和数据传输。板上有两个重置按钮 (不是两个焊点吗。。。),短接可以重置板子。
一些Tips:
- 微控制器的工作电压为3.3V。如果连接到通用输入输出(GPIO)引脚的电压输入高于3.3V,则可能会损坏芯片。
- 内置的DC-DC转换电路能够将5V电压转换为3.3V,从而可以通过VIN引脚和5V引脚用5V电源为设备供电。
- 当编程失败导致端口消失时,将Seeeduino XIAO连接到电脑,使用镊子或短线将RST引脚短路两次,等至橙色LED灯闪烁并点亮。
- 所有引脚都支持中断,但是不能同时使用两个引脚:5引脚和7引脚。
- 引脚多路复用,不需要自己手动配置引脚。
二、Arduino IDE开发
Seeeduino XIAO与Arduino IDE兼容,所以我们可以使用Arduino IDE来完成其的相关开发工作。
-
打开IDE,将Seeeduino XIAO连接到计算机。此时,黄色电源LED指示灯应点亮。
-
将Seeeduino开发板信息添加到Arduino IDE中
依次点击文件–>首选项,将下面网址复制到附加开发板管理网址列表中:
https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json
添加完成后,点击工具–>开发板–>开发板管理器。等待平台索引完成,搜索关键字“Seeeduino XIAO”,出现"Seeed SAMD Boards",点击并安装它。安装可能需要一会儿。。。
-
选择端口和开发板型号
开发板信息添加成功后,打开目录菜单工具–>开发板 ,查找并选择
Seeeduino XIAO
。 -
上传程序并运行
上传完成几秒钟后,可以看到板上的引脚13(L)LED开始闪烁(橙色),代表上传成功,单片机开始运行程序。
三、CircuitPython开发
Seeeduino XIAO同样支持circuitPython开发,也是本文重点讲述的开发入门方式。
-
安装并配置Mu
Mu是一个简单的代码编辑器,可用于Python开发板。它是用Python编写的,适用于Windows、MacOS、Linux和Raspberry Pi。内置串行控制台,可以从开发板的串行输出中获得即时反馈。同样Mu也支持circuitpython、micropython的开发。
从Mu官网:https://codewith.mu/下载安装。
第一次启动Mu时,会提示选择“模式”,选择“CircuitPython”。如果这里选成其他的,之后也可以在上方工具栏点击“模式”进行选择。
选择完成后,可能会弹出如下警告。这是正常的,原因是Seeeduino XIAO开发板里没有刷入支持CircuitPython的相关固件,或者。。。Seeeduino XIAO没有连接电脑。
-
安装circuitpython
随着CircuitPython的持续更新,会停止对旧版本进行支持和维护。所以建议安装最新的版本。通常,Adafruit将支持最后两个主要版本。
最新CircuitPython版本下载网址:https://circuitpython.org/downloads
选择“Seeeduino XIAO”,点击下载.UF2文件(这里我选择的是稳定版本)。
建议不要下载中文版本,当然要看个人习惯。
中文版固件的REPL界面如图(感觉拼音比英文还难认):
使用type-C数据线将Seeeduino XIAO与电脑连接,此时win10应该会自动识别并为其安装驱动。如果是win7或者win8.1版本,需要先安装驱动才行,驱动下载地址:https://github.com/adafruit/Adafruit_Windows_Drivers/releases/download/2.5.0.0/adafruit_drivers_2.5.0.0.exe。驱动安装成功后,可以在设备管理器中发现新的端口。然后找一根公公杜邦线或者其他导电物质,将开发板上的RST两个焊点短路两次(观察板载LED红色快闪然后变绿,算短路一次)。短路两次后,会弹出一个新的名叫“Arduino”的磁盘窗口(可能是之前连接过arduino IDE)。
接下来最关键的步骤来了。把下载下来的.uf2文件拖到这个新的磁盘里。当整个文件被复制进去后,这个磁盘短暂会消失,接着会出现另一个名叫“CIRCUITPY”的磁盘。
到这里,CircuitPython就算安装完成了。接下来,来讲一下这个CIRCUITPY
驱动盘。
当开发板插入计算机时,计算机将看到电路板的闪存作为USB闪存驱动器(也就是这个名叫CIRCUITPY的驱动盘),可以存储文件。成功安装CircuitPython后,将看到CIRCUITPY驱动器。当在次重置两次时(短路两次),我们将会看到boardnameBOOT驱动器(也就是之前那个名叫Arduino的驱动盘,开发板上有这两个分区,通过重置两次来切换不同分区)。我们可以将文件拖动到这两个位置,只有CIRCUITPY才会运行CircuitPython代码,而boardnameBOOT驱动器主要用于固件的安装和更新,所以.uf2安装文件需要切换到boardnameBOOT驱动器并拖入才能完成相关安装和更新。通常,当文件拖动到已安装的USB驱动器时,文件会复制到该驱动器,然后可以在文件资源管理器中看到。但是,当CircuitPython UF2文件拖动到boardnameBOOT驱动器时,它似乎消失了,并且驱动器断开了连接。这是正常的!UF2本质上是一个安装程序文件,不只是安装在驱动器上,而是在主板处于引导加载程序模式(即boardnameBOOT)时安装CircuitPython。
CIRCUITPY
驱动盘做为circuitpython相关文件和库的存放位置,每当更改其中文件内容时,都会导致开发板重启。所以每当写好代码后,只需把文件命名为code.py
或者main.py
(cricuitpython开机时运行的主程序,相似于micropython的mian.py
),然后拖入CIRCUITPY
驱动器中,程序将自动执行,非常方便。 -
在Mu中进行开发
打开Mu,确保“模式”选择为“CircuitPython”且电脑连接开发板。点击工具栏中的串口
选项。当出现如下信息时,单击enter
键,进入REPL。
然后打印出如下信息,表示Mu与Seeeduino XIAO连接成功。
上图所示,其实是调用了circuitpython固件中内置的解释器,和python解释器很相似。不妨输入print("hello world")
看看有何反应。记住Mu编译器最好到官网上去下载最新版本,因为我电脑上之前下载的老版本在点击
串口
连接开发板时总是报错找不到相关开发板串口信息。下载新版本后成功解决了这个问题,并连接上了开发板。现在我们可以做一个小测试。在Mu中新建文件,并将如下代码copy进去。
import time import board from digitalio import DigitalInOut, Direction led = DigitalInOut(board.D13) led.direction = Direction.OUTPUT while True: led.value = True time.sleep(1) led.value = False time.sleep(1)
然后以名称为
code.py
(main.py也行)保存到名为CIRCUITPY
的驱动器中(这个驱动器的名称可以更改,更改方法详见:https://learn.adafruit.com/welcome-to-circuitpython/the-circuitpy-drive)。然后等待它保存成功后,可以观察到,开发板上的LED闪烁(橙色)。接下来,打开Mu再次从CIRCUITPY
的驱动器中加载这个文件,尝试修改闪烁频率time.sleep()
,修改后保存,会发现开发板在保存后立刻执行了最新的程序。切记:不要在开发板驱动器传输文件时断开与电脑的连接或者短接重置焊点,都可能损坏驱动器造成文件丢失等无法挽回的后果!!!所以尽可能备份开发板驱动盘。就凭即时反馈这一点,i了i了。太pythonic了~
-
后续学习
后续学习差不多落在对circuitpython的语法和库的学习上,更多circuitpython入门内容请详见:https://learn.adafruit.com/welcome-to-circuitpython,相关库文档请详见:https://circuitpython.readthedocs.io/projects/bundle/en/latest/。
文章到此就结束了,若有纰漏疏忽之处,还望诸君不吝赐教!也十分欢迎大家在下方评论留言,互相交流进步~
peace!