麻雀虽小,五脏俱全——Arduino/Genuino 101全网首发深度评测
扫描二维码
随时随地手机看文章
一.开篇介绍
在去年的CES展会上,Intel推出了Intel Curie,刚看到“Curie”这单词,脑子里马上思索是什么意思,但一想到在2014年的IDF峰会上,Intel发布的Intel Edison后,马上联想到原来这是“居里夫人”的意思,看来Intel开始用上科学家的名字来命名,让我们来猜猜,下一款产品的名字会是“爱因斯坦”,还是“图灵”呢?真是有意思的命名方式。
今天,给大家带来Intel和Arduino联手推出的开发平台Genuino 101。可能有些细心的读者会发现,怎么不跟以往一样以Arduino Nano/Mega/Uno命名呢?其实不需奇怪,在美国就是命名为Arduino 101,而美国以外地区,统一称为Genuino 101。
二.Genuino 101 开箱
包装Genuino 101的是个长方形小盒子,外形只比公交卡稍大一点,不难想象,盒子内的Genuino 101会更加迷你。盒子上印着今天的主角——Genuino 101,从图片上可以看到Intel标志,Genuino 101搭载的主控制器是Intel Curie。
图1
打开包装,防静电袋子包裹着Genuino 101。与很多电器产品一样,厂商在出厂前都会贴上黄色的防静电标签,警示用户使用时Genuino 101需防止,以免手上的静电对开发板造成损害。
图2
拆开袋子,终于露出了Genuino 101卢山真面目,第一眼的印象便是熟悉的“Ardunio味道”,板面的设计仍然是传统的Arduino风格,但与以往不同,这次多了Intel的Logo。包装内还附有一小本橙色的使用规范。
图3
三.Genuino 101介绍
Genuino 101是一块可以让创客们进行快速DIY的开发板,保持了与Ardunio UNO相同的外观,但是性能上却更加强悍,它将高性能与低功耗相结合,价格却更加实惠。 Genuino 101加入了板载的低功耗蓝牙和六轴加速度计与陀螺仪传感器,能够帮助创客们更容易实现脑子中的好点子和开发IoT物联网产品。
图4
在Arduino官网上,我们可以看到以下这组参数,细心的读者可能会发现有两个参数与之前了解的并不一样,分别是384 kB的Flash和80kB的SRAM怎么缩水了,是不是标错了呢。其实在文中已经给出了说明:Intel Curie模块的flash和SRAM是两个微处理器共享的,所以留给用户使用的Flash只有196kB,而SRAM只有24kB。
Genuino 101特性表
图5 Genuino 101正面
图6 Genuino 101背面
图7 Genuino 101开发板细节
图8 Genuino 101开发板细节
图9 带有残留助焊剂的背部细节
早在去年一月份,便了解到Intel将会越来越重视IoT物联网和可穿戴技术。在2015 CES上,Intel发布了一款高度集成模块——Intel Curie。它只有手指甲那么大,但功能却十分强大,这使它在亮相之后就备受瞩目,大家纷纷猜想,这个神奇的小模块会出现在什么样的一个平台上。
图10
Intel Curie虽然是为了可穿戴设备而设计的,但是它却先应用到了Ardunio上。从Genuino 101上,我们可以看到这块Intel Curie模块。大小的确只有指甲盖那么大,该模块采用了BGA封装,在板子上占用了更少的面积。这极小的体积非常适合用于可穿戴设备,比如像智能手环、智能吊坠等。
图11
Intel Curie模块包含有以下特点:
· 包含了两个微处理器,分别是低功耗的X86 Intel Quark和32-bit的ARC,它们的时钟都为32MHZ
· 384kB flash内存,80kB SRAM
· 低功耗、集成DSP传感器hub和模式匹配技术
· 低功耗蓝牙(Bluetooth LE)
· 六轴的加速度计和陀螺仪传感器
· 电池充电电路(PMIC)[!--empirenews.page--]
四.硬件和电路介绍
图12
1. DC电源接口
2. MASTER复位键
3. USB接口
4. RESET复位键
5. I2C接口
6. 有14个数字I/O口,其中4组可用作PWM输出
7. 带有SPI接口的ICSP座子
8. 板载的PCB蓝牙天线
9. 6组AD口
10. 5V/3.3V/GND电源接口
11. 5V转3.3V LDO
12. 双向电压转换芯片LSF0108
13. Intel curie模块
14. Winbond的SPI Flash,型号为W25Q16DVSSIG,容量为16Mbit
在Arduino官网Genuino 101主页上(https://www.arduino.cc/en/Main/ArduinoBoard101),可以下载到<<Ardunio101-REV4Schematic.pdf>
下图为开发板的框架图,我们可以了解到Genuino 101以Intel Curie为核心,电源的输入分为两部分,用户可以选择使用USB电源,也可以选择5V DC电源作为输入。下图绿色的模块是SPI Flash模块,有16Mbit可供用户使用。而三个棕色写有“LEVEL SHIFTER”的模块是双向电压转换芯片,Intel Curie经过它们后,才与pin脚相连接。
图13 框架图
SPI Flash模块是Winbond的W25Q16DVSSIG,容量为16Mbit,用户可通过SPI接口来进行数据的读取和写入。
图14 SPI Flash
Genuino 101开发板上,可以看到三个TI公司的双向电压转换芯片LSF0108,它们可以使Intel Curie模块与不兼容的I/O口之间进行正常通信。
图15 双向电压转换芯片电路
在Genuino 101的开发板左下角,可以看到蓝牙LOGO,旁边是通过PCB走线设计而成的蓝牙的天线。在原理图上,可以看到预留出了可外接的天线接口,但实际在开发板上并没有接上。
图16 蓝牙天线
五.软件安装
与以往一样,我们可以在官网(https://www.arduino.cc/en/Main/Software)下载免费的开源软件Arduino Software(IDE)来进行软件开发,Arduino Software(IDE)同时支持Windows、Mac OS X、Linux,用户可以根据自己开发平台自行选择下载。
图17 IDE下载页
笔者直接下载Windows的解压版,解压完成后打开就可以开始Arduino程序的编写。
图18 IDE开发界面
在进行Genduino 101的开发,需要先在开发板管理器安装Arduino 101 Boards,否则在菜单-工具-开发板里找不到Arduino 101,这里需要进行安装,操作如下:
图19开发板管理
图20 下载安装
六.示例试跑
装好IDE后,便可以进行程序开发了。为了帮助创客们更快捷、方便的开发Genuino 101,Intel官方提供了Intel Curie的开发库。我们可以在IDE中选择项目-加载库-管理库来下载安装。
对于玩过平衡车、四轴飞行器的的创客们,我想大家肯定非常熟悉Madgwick滤波算法库。这个库可以通过加速度计和陀螺仪取得的原始数据,然后转换为四元数,再转换为可以供我们使用的欧拉角。
图21 Madgwick滤波算法库
这四个库是Intel为Intel Curie开发的,可用于开发低功耗蓝牙、加速度计和陀螺仪传感器、软件串口和RTC。
图22 Intel curie官方库
安装好两个库后,我们便可以通过示例来学习和使用这些库的用法。不难看出,这些示例都是为了帮助开发者们使用Intel Curie来开发可穿戴设备,分别有低功耗蓝牙的使用、计步功能、串口通信和实时时钟。有了这些强力工具,即使是初学者,也能很快上手。
图23示例图[!--empirenews.page--]
这里我们使用CurieImu示例的RawImuDataSerial。打开例程,把Genuino 101连接到电脑上,在(工具-端口)选择Genuino 101对应的端口号,点IDE的上传。上传过程要6秒左右,完成后,我们可以打开IDE自带的串口助手,可以采集到加速度计和陀螺仪的原始数据。
图24 IDE自带串口工具
按照上面介绍加入示例的方法,我们来运行一下BLE例程,选择菜单栏的文件-示例-CurieBle-LED。该例程可以使用手机端的APP来控制Genuino 101板上的LED亮灭,我们分析一下代码,如下图,APP发送不是0的值时LED打开,如果发送的值是0,则关闭LED灯。
图25 代码图
笔者使用安卓手机,所以可以在应用中心搜索 nRF Master Control Panel并下载 ,安装完成后,打开蓝牙就能搜索到名称为LED的设备。成功连接后会如下图所示,点击左图的上箭头后,在右图的Write value里填写01或00便能控制LED亮灭。
图26 蓝牙APP
图27 LED灯亮灭控制
七.Genuino 101总结
对于Genuino 101的评测体验,我想用可以“麻雀虽小,五脏俱全“来总结。整体而言,非常惊艳!虽然手上也有Arduino其他系列和其他厂商的开发板,但Genuino 101非常不一样。我们通常使用的开发板上面都是由处理器和各个传感器模块组成,而Genuino 101就单单一个Intel Curie就能实现了大多数的功能,这使我们的开发变得更加简单。
Intel拥有全球领先的科技,而Arduino是灵活便捷、极易上手的电子开源平台,他们这次的联手,无疑是双赢的结果。作为开发者的我们,拿到了创造性高、吸引人、并且性价比的开发板,我想这结果应该是三赢!
八.资料地址
Genuino 101主页:https://www.arduino.cc/en/Main/ArduinoBoard101
Intel Curie主页:http://www.intel.com/content/www/us/en/wearables/wearable-soc.html
IDE下载地址:https://www.arduino.cc/en/Main/Software
CurieIMU例程:https://www.arduino.cc/en/Tutorial/Genuino101CurieIMUOrientationVisualiser
计数器例程:https://www.arduino.cc/en/Tutorial/Genuino101CurieIMUStepCounter
BLE例程:https://www.arduino.cc/en/Tutorial/Genuino101CurieBLEHeartRateMonitor
——————本文系21ic原创, 未经许可严禁转载——————