首页 > 评测 > 再不学点Python,咱真老了--Adafruit Metro M0 Express开发板评测
再不学点Python,咱真老了--Adafruit Metro M0 Express开发板评测
- [导读]
- 这块板子可以看作是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就可以了,试试!
更名后的代码文件即时生效了,如下
可以看到咱们期望的结果了。
不止如此,提示还给出了一些有用的信息,比如"Auto-reload is on"这句话告诉我们,代码文件修改并保存后会即时生效,同时我们也看到了code.py执行会优先于main.py。
最后一个有趣的地方在于,当code.py执行完毕后,我们可以按任意键进入REPL环境,如下
确实很好很强大!
不过我们前面提到Mu这个IDE时也说了,Mu本身就提供了一个REPL环境,
下面这个窗口就是REPL环境了,这是个很有用的窗口,例如我们想看看开发板GPIO接口的命名,可以在REPL里执行如下命令
熟悉Arduino编程的用户一定对A0、A1这些接口耳熟能详,所以,如果要引用其中一个接口,按照Python的规则,应该是board.XX,其中XX就是上面列出的名称了。
好,下面开始正式点灯,编辑如下代码
很光棍的一段代码,当然也好懂!保存,然后就自动运行了。看到LED灯闪啊闪,串口也有对应的输出。
然而问题来了,Cpython中的哪些库可以用呢?这个可以参考官方的文档,参见附录。上面代码中用到的一些库都在参考资源中列出来了,花5分钟熟悉一下!
说了半天,CircuitPython是啥?CircuitPython是大名鼎鼎的MicroPython的再移植产品,专门为Adafruit的部分硬件定制。
除了支持Python,开发板也支持Arduino模式开发。按照Arduino一般的开发模式,首先要下载并安装对应的板级库文件,Metro M0 Express也不例外,如下
确定后,就可以在Arduino的开发板管理器里添加对应的开发板类型了。这里碰到一点糟心的事,就是官方的PDF文档里举例使用的是另一款开发板,不是针对Metro M0 Express的,花了很长时间安装后却发现找不到Metro M0 Express这一开发板型号,重新在网页版里找到了正确的库文件后才解决!因为Arduino现在支持的开发板种类太多,很多开发板的命名也比较相似,结果往往就是找错了对象,闹了笑话,浪费了时间!
下图是正确安装了软件库后显示的板卡名称
现在可以打开一个blink程序来点灯了,编译并上传的结果如下
LED灯又开始闪烁了。
不过问题又来了,Python不能用了!
这是正常现象,现在的存储空间被ARDUINO程序占用了,所以PYTHON当然也就不能用了。怎么办呢,下面是切换回Python的方法。
首先双击开发板上的复位键,进入bootloader模式,此时PC端映射的盘符会变成METROBOOT,里面有3个文件,如下
从附录给出的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
- 本文系21ic原创,未经许可禁止转载!
网友评论
- 联系人:巧克力娃娃
- 邮箱:board@21ic.com
- 我要投稿
-
欢迎入驻,开放投稿
-
人均百万?英伟达中国员工收入曝光! 2024-08-29
-
《黑神话:悟空》玩家硬盘升级攻略:提升游戏体验,畅享3A大作 2024-08-29
-
数睿数据参加《系统与软件工程 低代码开发平台通用技术要求》国家标准编制 2024-08-29
- NRF52810蓝牙数字耳机找人定制
预算:¥30005天前
- 125KW模块式PCS软硬件外包开发
预算:¥1100000015小时前
- 12V汽车启动电源项目BMS设计
预算:¥50000023小时前
- 数据可视化软件 开发
预算:¥5000023小时前
- PLC项目调试修改
预算:¥100001天前
- 起动电机控制器开发
预算:¥1100001天前