首页 > 评测 > 再不学点Python,咱真老了--Adafruit Metro M0 Express开发板评测

再不学点Python,咱真老了--Adafruit Metro M0 Express开发板评测

Python   Adafruit   Metro   M0   Express   开发板   Atmel   ATSAMD21   
  • 作者:SATURN
  • 来源:21ic
  • [导读]
  • 这块板子可以看作是M0的翻版,但是把玩度高很多。首先是硬件参数提升了,更高的运行主频及更大的存储空间,完败Arduino UNO R3!;其次,引入了CircuitPython的新式编程语言,一方面程序代码更简单,另一方面也为那些想要学习和了解Python的用户提供了一个学习的理由;最后一点就是灵活的引导配置模式,使得在二种编程语言(c/c++及Python)之间可以灵活切换!

Mu聪明的地方在于它能将代码保存到开发板映射到PC的磁盘上,将文件命名为sum.py并保存。然后看串口中是否有输出。然而并没有,仍然是main.py程序的输出!

原来,CircuitPython在处理程序的执行时,会遵循一定的规则。CircuitPython会在磁盘上依次查找code.txt, code.py, main.txt及main.py,找到并执行第一个程序。咱们将上述代码保存为sum.py,根本不是上述文件之列,所以刚创建的文件根本就不会运行!

明白了这一点,就好办了。只需要将sum.py更名为code.py就可以了,试试!

更名后的代码文件即时生效了,如下

image10.png

可以看到咱们期望的结果了。

不止如此,提示还给出了一些有用的信息,比如"Auto-reload is on"这句话告诉我们,代码文件修改并保存后会即时生效,同时我们也看到了code.py执行会优先于main.py。

最后一个有趣的地方在于,当code.py执行完毕后,我们可以按任意键进入REPL环境,如下

image11.png

确实很好很强大!

不过我们前面提到Mu这个IDE时也说了,Mu本身就提供了一个REPL环境,

image12.png

下面这个窗口就是REPL环境了,这是个很有用的窗口,例如我们想看看开发板GPIO接口的命名,可以在REPL里执行如下命令

image13.png

熟悉Arduino编程的用户一定对A0、A1这些接口耳熟能详,所以,如果要引用其中一个接口,按照Python的规则,应该是board.XX,其中XX就是上面列出的名称了。

好,下面开始正式点灯,编辑如下代码

image14.png

很光棍的一段代码,当然也好懂!保存,然后就自动运行了。看到LED灯闪啊闪,串口也有对应的输出。

然而问题来了,Cpython中的哪些库可以用呢?这个可以参考官方的文档,参见附录。上面代码中用到的一些库都在参考资源中列出来了,花5分钟熟悉一下!

说了半天,CircuitPython是啥?CircuitPython是大名鼎鼎的MicroPython的再移植产品,专门为Adafruit的部分硬件定制。

除了支持Python,开发板也支持Arduino模式开发。按照Arduino一般的开发模式,首先要下载并安装对应的板级库文件,Metro M0 Express也不例外,如下

image15.png

确定后,就可以在Arduino的开发板管理器里添加对应的开发板类型了。这里碰到一点糟心的事,就是官方的PDF文档里举例使用的是另一款开发板,不是针对Metro M0 Express的,花了很长时间安装后却发现找不到Metro M0 Express这一开发板型号,重新在网页版里找到了正确的库文件后才解决!因为Arduino现在支持的开发板种类太多,很多开发板的命名也比较相似,结果往往就是找错了对象,闹了笑话,浪费了时间!

下图是正确安装了软件库后显示的板卡名称

image16.png

现在可以打开一个blink程序来点灯了,编译并上传的结果如下

image17.png

LED灯又开始闪烁了。

不过问题又来了,Python不能用了!

这是正常现象,现在的存储空间被ARDUINO程序占用了,所以PYTHON当然也就不能用了。怎么办呢,下面是切换回Python的方法。

首先双击开发板上的复位键,进入bootloader模式,此时PC端映射的盘符会变成METROBOOT,里面有3个文件,如下

image18.png

从附录给出的CircuitPython参考里下载一个扩展名为.bin的文件,注意不要下载错了,必须是针对Metro M0的.bin文件,然后拖动到映射的盘符里,等待大约15秒钟,奇迹出现了,CircuitPython又出现了。只是此时的CircuitPython里还没有创建可运行的Python文件,自己写一个,命名为code.py或main.py,然后丢到映射盘里,又可以了!

总体来说,Metro M0 Express还是很好玩的。首先是硬件参数提升了,更高的运行主频及更大的存储空间,完败Arduino UNO R3!;其次,引入了CircuitPython的新式编程语言,一方面程序代码更简单,另一方面也为那些想要学习和了解Python的用户提供了一个学习的理由;最后一点就是灵活的引导配置模式,使得在二种编程语言(c/c++及Python)之间可以灵活切换!

至于配置过程中碰到的文档不一致的问题,只能怪笔者看文档的时候不够细心,不过如果官方在整理文档时,针对性更具体一点,也许用户的体验会更好一点吧!

附录:

CircuitPython参考:https://github.com/adafruit/circuitpython

开发板:https://www.adafruit.com/product/3505

  • 本文系21ic原创,未经许可禁止转载!

网友评论