Seeeduino XIAO入门详解


文章目录

  • Seeeduino XIAO入门详解
  • 一、开发板概述
  • 二、Arduino IDE开发
  • 三、CircuitPython开发

一、开发板概述

  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来完成其的相关开发工作。

  1. 打开IDE,将Seeeduino XIAO连接到计算机。此时,黄色电源LED指示灯应点亮。

  2. 将Seeeduino开发板信息添加到Arduino IDE中

    依次点击文件–>首选项,将下面网址复制到附加开发板管理网址列表中:https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json

    添加完成后,点击工具–>开发板–>开发板管理器。等待平台索引完成,搜索关键字“Seeeduino XIAO”,出现"Seeed SAMD Boards",点击并安装它。安装可能需要一会儿。。。

  3. 选择端口和开发板型号

    开发板信息添加成功后,打开目录菜单工具–>开发板 ,查找并选择 Seeeduino XIAO

  4. 上传程序并运行

    上传完成几秒钟后,可以看到板上的引脚13(L)LED开始闪烁(橙色),代表上传成功,单片机开始运行程序。

三、CircuitPython开发

  Seeeduino XIAO同样支持circuitPython开发,也是本文重点讲述的开发入门方式。

  1. 安装并配置Mu

    Mu是一个简单的代码编辑器,可用于Python开发板。它是用Python编写的,适用于Windows、MacOS、Linux和Raspberry Pi。内置串行控制台,可以从开发板的串行输出中获得即时反馈。同样Mu也支持circuitpython、micropython的开发。

      从Mu官网:https://codewith.mu/下载安装。
      第一次启动Mu时,会提示选择“模式”,选择“CircuitPython”。如果这里选成其他的,之后也可以在上方工具栏点击“模式”进行选择。

      选择完成后,可能会弹出如下警告。这是正常的,原因是Seeeduino XIAO开发板里没有刷入支持CircuitPython的相关固件,或者。。。Seeeduino XIAO没有连接电脑。

  2. 安装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驱动器中,程序将自动执行,非常方便。

  3. 在Mu中进行开发
      打开Mu,确保“模式”选择为“CircuitPython”且电脑连接开发板。点击工具栏中的串口选项。当出现如下信息时,单击enter键,进入REPL。

    然后打印出如下信息,表示Mu与Seeeduino XIAO连接成功。

    上图所示,其实是调用了circuitpython固件中内置的解释器,和python解释器很相似。不妨输入print("hello world")看看有何反应。

    记住Mu编译器最好到官网上去下载最新版本,因为我电脑上之前下载的老版本在点击串口连接开发板时总是报错找不到相关开发板串口信息。下载新版本后成功解决了这个问题,并连接上了开发板。

      现在我们可以做一个小测试。在Mu中新建文件,并将如下代码copy进去。

    import time
    import board
    from digitalio import DigitalInOut, Directionled = DigitalInOut(board.D13)
    led.direction = Direction.OUTPUTwhile True:led.value = Truetime.sleep(1)led.value = Falsetime.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了~

  4. 后续学习
      后续学习差不多落在对circuitpython的语法和库的学习上,更多circuitpython入门内容请详见:https://learn.adafruit.com/welcome-to-circuitpython,相关库文档请详见:https://circuitpython.readthedocs.io/projects/bundle/en/latest/。


  文章到此就结束了,若有纰漏疏忽之处,还望诸君不吝赐教!也十分欢迎大家在下方评论留言,互相交流进步~

peace!

Seeeduino XIAO入门详解相关推荐

  1. linux 日志按大小切割_nginx入门详解(六)- 日志切割

    上一章讲解了nginx的目录加密功能,本章重点介绍nginx的日志切割. 笨办法学linux:nginx入门详解(五)- 目录加密​zhuanlan.zhihu.com 在第二章,我们探讨了nginx ...

  2. python怎么安装myqr模块-python二维码操作:对QRCode和MyQR入门详解

    python是所有编程语言中模块最丰富的 生活中常见的二维码功能在使用python第三方库来生成十分容易 三个大矩形是定位图案,用于标记二维码的大小.这三个定位图案有白边,通过这三个矩形就可以标识一个 ...

  3. python语言编程基础-Python语言入门详解!快速学成Python!

    原标题:Python语言入门详解!快速学成Python! 很多技能是被职场所需要的,但很可惜... 这些技能在大学中并学习不到. 大学和职场现实存在的横沟对大部分同学来说难以跨越或碰得头破血流... ...

  4. python语言入门m-Python语言入门详解!快速学成Python!

    今日主题 "Python语言入门详解" 近两年来,Python语言借着数据科学和人工智能的"东风"成为了最流行的编程语言--街头巷尾人们口口相传.同时,Pyth ...

  5. python语言入门详解-python初级教程:入门详解

    python初级教程:入门详解 Crifan Li 目录 前言 .................................................................... ...

  6. 【GCN】图卷积网络(GCN)入门详解

    机器学习算法与自然语言处理出品 @公众号原创专栏作者 Don.hub 单位 | 京东算法工程师 学校 | 帝国理工大学 图卷积网络(GCN)入门详解 什么是GCN GCN 概述 模型定义 数学推导 G ...

  7. python符号格式化设置区间_Python 数值区间处理_对interval 库的快速入门详解

    使用 Python 进行数据处理的时候,常常会遇到判断一个数是否在一个区间内的操作.我们可以使用 if else 进行判断,但是,既然使用了 Python,那我们当然是想找一下有没有现成的轮子可以用. ...

  8. 【JSON】JSON入门详解(二)

    文章目录 JSON基础文章荐读 JavaScript创建JSON对象 JSON与XML的那些事 JSON与XML的相同之处 JSON与XML的不同之处 AJAX相关JSON与XML JSON与XML的 ...

  9. python怎么安装myqr_python二维码操作:对QRCode和MyQR入门详解

    python是所有编程语言中模块最丰富的 生活中常见的二维码功能在使用python第三方库来生成十分容易 三个大矩形是定位图案,用于标记二维码的大小.这三个定位图案有白边,通过这三个矩形就可以标识一个 ...

最新文章

  1. CSS中overflow:scroll怎么设置只上下滚动而不左右滚动
  2. 2019年十二周总结
  3. 图形处理(一)离散指数映射参数化-Siggraph 2006
  4. java基础系列:集合基础(3)
  5. 《系统集成项目管理工程师》必背100个知识点-61识别干系人分析的步骤
  6. qt 配置的相对路径写法
  7. java开发C编译器:结构体的解析和执行
  8. Java实例分析:宠物商店
  9. Rust: Atom中cargo build error
  10. mysql数据迁移数据一致性检教6_数据迁移后的一致性校验
  11. 身份证号判断男女和生日
  12. Qt动画入门QPropertyAnimation
  13. 引擎开发-图形渲染器开发
  14. 命主属性是水什么意思_五行为水的命主会有怎么样的性格特点
  15. 如何 接收消息服务器url,(读书笔记)网络是怎样连接的——浏览器生成消息...
  16. react中使用ECharts绘制各省市地图
  17. 批量爬起百度图片上的数据代码--python
  18. KMP算法求循环节,为什么能求循环节
  19. 混迹在腾讯微博的知名站长名单
  20. 谷歌手表android wear2,Android Wear 2.0正式发布:将谷歌助手放进你的手表

热门文章

  1. OS开发UI篇—核心动画(基础动画)
  2. CSS根据屏幕分辨率宽度自动适应的办法
  3. 短视频制作必备——故障明灭霓虹倒计时PR标题MOGRT模板
  4. Teamcenter Organization
  5. 信息科服务器应急预案,我院开展信息系统故障应急预案演练
  6. oracle用户sysman过期,sysman密码过期导致oem无法使用
  7. oracle有什么发展方向,OracleDBA的前景
  8. S60V3是什么意思?
  9. access百科 pc_access
  10. android 按home键 activity生命中周期,Android Activity 生命周期全解析