首页 > 评测 > ATSAMD51的特快专递--Adafruit Metro M4开发板评测

ATSAMD51的特快专递--Adafruit Metro M4开发板评测

ATSAMD51   Adafruit   Metro   M4   开发板   Microchip   
  • 作者:SATURN
  • 来源:21ic
  • [导读]
  • 准备好了么,来自ATSAMD51的特快专递已准备就绪,就等你来!

最后还要提一下库文件的问题。Python之所以强大,是因为有大量三方的库供我们调用,Adafruit也为Circuit提供了大量的库支持,在使用一些外设时,不需要自己去再造一个轮子,直接引用这些库就可以完成任务,这当然是一件妙事!

从官方下载库文件解压后会得到一个lib文件夹,将该文件夹复制到CURCUITPY所在的磁盘根目录下,就可以使用这些三方库来增强程序功能。

rId27.png

现在开始,可以愉快的使用Metro M4 Express来体验CIRCUITPYTHON了。

点灯我们就不点了,但是看下代码,熟悉下编程风格还是有必要的,如下

import board

import digitalio

import time

led = digitalio.DigitalInOut(board.D13)

led.direction = digitalio.Direction.OUTPUT

while True:

led.value = 0

time.sleep(.5)

led.value = 1

time.sleep(.5)

如果不熟悉这些函数,可以按照Arduino代码的风格来猜,基本上是一致的。

要熟悉相关的代码及库,可以借助Python自身的帮助功能,举例如下,假设我不知道board模块里有哪些功能,在Serial窗口里执行如下的代码

>>> import board

>>> dir(board)

['A0', 'A1', 'A2', 'A3', 'A4', 'A5', 'D0', 'RX', 'D1', 'TX', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9', 'D10', 'D11', 'D12', 'D13', 'SDA', 'SCL', 'NEOPIXEL', 'SCK', 'MOSI', 'MISO', 'LED_RX', 'LED_TX', 'I2C', 'SPI', 'UART']

>>>

其中>>>正是Python交互的提示符,我们可以看到board模块基本只提供了一些开发板的接口定义,我们在上述源代码中使用的board.D13就是开发板的13号pin。

在lib目录下有个simpleio.mpy,这是一个简单IO封装库,如果想获取其帮助,参考如下代码

>>> import simpleio

>>> dir(simpleio)

['tone', 'DigitalOut', 'time', 'shift_out', 'bitWrite', 'array', '__name__', 'DigitalIn', 'digitalio', 'shift_in', 'map_range', 'pulseio', 'audioio', 'Servo']

>>>

另外也可以使用help()来获取更详细的帮助,如下

>>> help(simpleio)

object is of type module

tone --

DigitalOut --

time --

shift_out --

bitWrite --

array --

__name__ -- simpleio

DigitalIn --

digitalio --

shift_in --

map_range --

pulseio --

audioio --

Servo --

>>>

这样看是不是更清晰了!

差不多了,该写个完整的脚本来体验Python的便利了。这次使用的是DHT11温湿度传感器,在一些精度要求不同的场合,DHT11还是很不错的,如果对精度要求高,可以使用DHT22,这些设备都有一个优势,只使用一根信号线,连接非常简单。将DHT11的信号线连接至D2,然后开始写程序,代码如下

import board

import adafruit_dht as dht

import time

dht11 = dht.DHT11(board.D2)

while True:

temp, humi = dht11.temperature, dht11.humidity

print('temperature: {}\nhumidity: {}%'.format(temp, humi))

time.sleep(5)

保存为code.py,让它自动运行,在Mu中打开串口,得到如下的结果

rId28.png

从未如此简单,是不是?

rId29.jpg

只可惜Metro M4 Express开发板没有网络连接能力,否则就可以将检测到的数据发布到Internet上了!

总结来说,Metro M4 Express开发板还是值得一试的。以前总有人担心,在MCU上使用Python,性能是否会有瓶颈,但是在120MHz的频率之下,简单的应用场合下,使用起来还是很流畅的!

在AI呼声越来越高的今天,了解一点Python,学一点Python,未尝不是一种好的选择,也许一觉醒来,AI已普及到了MCU上,谁能说得好呢? 

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

网友评论