Adafruit Metro328评测
Adafruit说他们非常喜欢使用ATmega328这个芯片去做各种的开发板和项目,Metro 328是他们在多年使用AVR后开发的一个“集大成者”,无论你是大神或者小白,想要快速实现一个功能又不想牵涉太多精力在底层的驱动部分,那么Metro 328可以满足你,他数量众多的IO和外设都被引出接口,它兼容Arduino拥有很多开源的代码和易于使用的IDE,能帮你快速的建立的项目原型。
Metro 328 是一款全兼容Arduino的开发板,由开发过各种很“酷”的DIY套件和扩展版的Adafruit出品。Arduino是一个包含硬件和软件开源的电子原型平台,从创立到现在的十几年里已经推出和衍生了众多的型号,在众多的创客、Hacker、电子DIY爱好者中久负盛名,要是没用过Arduino估计都不好意思和别人说自己真正玩过“开发板”,比较悲伤的是在遇到这块Metro 328之前我还没有玩过任何一款Arduino板子,感谢21IC开发板评测栏目组能让我从Arduino的世界走过。
Metro 328的主控为ATmega328 ,Metro 系列根据尺寸和配置的不同还有一款小块头的Metro Mini 和一个主控为SAMD21的Metro M0 Express,Metro 328的包装采用黑色的小盒子,正面是白色文字Metro及几条抽象电路走线,简约美观。
打开包装盒可以看到小巧的Metro 328以及Adafruit 很贴心送的4个黑色的小药丸( 官方叫Rebber Bumper---其实就是橡胶缓冲器),可以直接贴到板子的背面用于保护板子不被磨损。
把目光聚集到Metro 328板子本身,板子的丝印详细标注了各个扩展接口的功能,电源、模拟输入、数字接口、串口、IIC,ATmega328的各种外设几乎都引出了扩展接口。
Metro 328 详细的硬件资源如下:
电源: 7-9V的DC供电或者Micro USB,在2.1mm DC 插孔旁边有个开关可以用于关闭或者打开DC的供电的功能。
GPIO: 6个模拟输入,6个PWM输出,1个硬件SPI,一个硬件IIC,一个硬件UART
4个LED: 绿色的电源指示灯,2个RX/TX通信指示灯,1个红色LED可以用于点灯使用,下面我们点灯就用它。
下载接口: Metro 上的ATmega328 内置了 Optiboot bootloader,可以方便的使用Arduino IDE下载
Micro USB: 这个USB是USB转串口可用于输出调试信息,内置bootloader用于更新下载通信。
Metro 328 的所有元器件有是贴片的封装放置在了板子的正面,背面只有Adafruit Logo 和Metro 标志。
在简单的了解Metro 328的硬件配置和外设资源之后,我们开始体验下开发板的软件开发的流程。不得不说adafruit真可是个非常贴心的公司,为了让各种各样的使用者快速上手开发板,adafruit提供了一个详细的指导文档,从配套开发板的各个扩展元器件到IDE的使用再到各个函数API的含义都有详细的解释,即使从来没有接触过Arduino的也能通过这个文档快速上手学习这个开发板。因为完全兼容Arduino Uno,熟悉Arduino 的同学可以很快的上手了。
文档的在线地址为:https://learn.adafruit.com/experimenters-guide-for-metro/intro
也可以下载文档看:https://cdn-learn.adafruit.com/downloads/pdf/experimenters-guide-for-metro.pdf
如果你看了上面的文档就会发现,里面的各个例子描述的是配套的Metro 328的外设配件,官方的确有个完整的套件出售,如果预算足够可以选购带扩展的套件进行学习,官方提供了几个可选的套件。
如果电脑上没有没有安装Arduino IDE 要先下载安装,然后还要下载安装一个adafruit Boards Driver ,这里包含了Metro 328 USB转串口的驱动程序,如果是WIN10电脑不安装这个驱动也会自动加载兼容驱动也能正常工作。
打开安装好的Arduino IDE ,在菜单File-->Preferences 中添加adafruit 的开发板的板子支持包地址
1https://adafruit.github.io/arduino-board-index/package_adafruit_index.json
这样我们就可以在Tools->Board->Boards Manager 中安装Metro 的支持包了。
这个时候还要在Tools->Port 选择Metro 328在电脑上枚举的串口,我电脑上是COM7,这2步都整好了就是下面这个样子的。
Arduino 很大强大的部分就体现在软件的开发非常简单,有非常多的开源的例子可以直接使用,这给初学者降低了门槛,能让更多人加入使用Arduino的大军中。软件底层大都进行了封装,用户直接调用API进行操作,简单快捷。
详细的文档可参考:https://www.arduino.cc/reference/en/#functions
Arduino IDE 中有很多的例子可以直接使用,我们可以从下面的菜单找到点灯的程序
点灯的代码如下,主要有2个函数,负责初始化的setup()和负责死循环执行任务的loop(),只需要将初始化的代码和任务代码分别加到上面2个函数中去就行。这里我们保持代码不修改,直接编译下载到Metro 328 ,就是这么简单。
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
程序执行的效果如下:
体验了点灯的快捷方便后,我们也可以试着自己编写一个小程序,使用Metro 328 的串口输出字符。这个时候如果我们不知道串口的初始化和输出函数API该如何调用可以先去上面的网站:https://www.arduino.cc/reference/en/#functions 查看有关通信的的Serial的部分内容,里面有详细的的函数说明和代码例子可以参考。下面的代码是周期打印字符到串口外设,串口的初始化和打印函数都非常简单。
// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop() {
Serial.print("Hi,I am Metro 328\r\n");
delay(1000); // delay in between reads for stability
}
串口输出如下
上面2个例子虽然比较简单但是可以让我们体验Metro 328 使用Arduino IDE 进行快捷方便的开发过程,这样我们就对Metro 328的使用有个整体认识了,对应其他的外设使用和扩展控制都可以去网上查看相应的API函数和参考例子。官方的教程中也说明了在Mac和Linux中如何安装IDE和使用开发板,如果你有这方面的需求可以参考上面提到的文档。
Adafruit说他们非常喜欢使用ATmega328这个芯片去做各种的开发板和项目,Metro 328是他们在多年使用AVR后开发的一个“集大成者”,无论你是大神或者小白,想要快速实现一个功能又不想牵涉太多精力在底层的驱动部分,那么Metro 328可以满足你,他数量众多的IO和外设都被引出接口,它兼容Arduino拥有很多开源的代码和易于使用的IDE,能帮你快速的建立的项目原型。最后感谢Arduino的开源和Adafruit 充满魔性的创意。