了解 ARDUINO 101* 平台
简介
作为一名物联网 (IoT) 开发人员,您需要根据项目的不同需求,选择最适合的平台来构建应用。 了解不同平台的功能至关重要。 本文第一部分比较了 Arduino 101 平台和 Arduino UNO,为不熟悉 Arduino 101 特性的开发人员提供基本的了解。 第二部分深入探讨了 Arduino 101* 平台的功能。
Arduino 101* 与 Arduino UNO* 对比
Arduino UNO 使用 Atmel ATmega328P* 模块,Arduino 101 使用基于英特尔® Quark SE SoC 的低功耗英特尔® Curie™ 模块。 UNO 的工作电压为 5V,而 Arduino 101 的工作电压为 3.3 V(尽管也支持 5V 电源)。 Arduino 101 新增了板载蓝牙* 低能耗 (LE) 和带有加速计和陀螺仪的 6 轴组合传感器,而 UNO 没有。 两者的尺寸和引脚相同(见图 1 和图 2)。

图 1: Arduino 101* 平台。

图 2: Arduino UNO* 平台
此处汇总了 Arduino 101 和 Arduino UNO 平台功能。
| 产品亮点 | Arduino 101* | Arduino UNO* |
|---|---|---|
| 微控制器 | 英特尔® CurieTM 模块 | Atmel ATmega328P* |
| 工作电压 | 3.3 V(支持 5V I/O) | 5 V |
| CPU 速度 | 32 MHz | 16 MHz 晶体振荡器 |
| 架构 | 32 位英特尔® QuarkTM SE SoC | 8 位 |
| 闪存 | 196 KB | 32 KB |
| SRAM | 24 KB | 2 KB |
| EEPROM | 1 KB | 1 KB |
| 操作系统 | 开源 RTOS | 不适用 |
| 时钟速度 | 32 MHz | 16 MHz |
| 特性 | 集成数字信号 | 用作 DSP |
| 处理器 (DSP) 传感器中枢和 6 轴组合传感器(包括加速计和陀螺仪) | ||
| 蓝牙* | 蓝牙低能耗 | 不适用 |
| 数字 I/O 针脚 | 14 个数字输入/输出针脚 | 14 个数字输入/输出针脚 |
| 模拟 I/O 针脚 | 6 个模拟输入针脚 | 6 个模拟输入针脚 |
| USB 接口 | 1 个用于串行通信和 sketch 上传的 USB 接口 | 1 个用于串行通信和 sketch 上传的 USB 接口 |
| 带有 SPI 信号的 ICSP header | 1 个 带有 SPI 信号的在线串行编程 header | 1 个 带有 SPI 信号的在线串行编程 header |
| I2C | I2C 专用针脚 | I2C 专用针脚 (Arduino UNO rev3) |
| 重置 | 1 个重置按钮 | 1 个重置按钮 |
| 尺寸 (长 x 宽) |
68.6 毫米 x 53.4 毫米 | 68.6 毫米 x 53.4 毫米 |
Arduino 101 详细信息
处理器
英特尔 Quark SE SoC 包含单核 32 MHz x86(英特尔® Quark™ 处理器)和 32 MHz Argonaut RISC Core (ARC)* EM 处理器。 这两颗处理器可同时运行,并共享内存。 ARC 处理器也被称为数字信号处理器 (DSP) 传感器中枢(取决于您所阅读的文档)。 从理论上来说,DSP 能够以最低的功率运行,收集和处理传感器数据,此时 x86 处理器以低功耗模式等待,因此非常适用于“始终在线”的应用。 不过,此时软件并不具备这种能力。
加载 Arduino sketch 时,它在 ARC 上运行。 不过英特尔® 工具链对 sketch 进行编译,以便 ARC 按照需求通过静态邮箱与 x86 处理器进行交互。 如欲测试这项功能,您可以访问开源内核库,查找 01.org’s GitHub* 上的 Arduino 101。
实时操作系统 (RTOS)
从软件角度来说,Arduino 101 的突出功能是能够运行 RTOS。 英特尔将发布一款软件开发套件 (SDK),其中包含一套软件开发工具、资源库、文档和示例代码,支持开发人员使用英特尔 Curie 模块创建物联网应用。 该 SDK 基于 Zephyr 项目*,能够兼容 Arduino 101 平台,数月后即将发布。 通过注册接收更多信息:https://software.intel.com/zh-cn/iot/hardware/curie。
Zephyr 项目是面向物联网的一个小型开源 RTOS。 它可提供面向低功耗、小内存空间设备而优化的连接协议,并支持蓝牙、蓝牙低功耗,Wi-Fi* 等。 RTOS 保持较低的内存使用量,并对任务执行进行优先级划分。 它还有助于保持最高能效。 RTOS 包含强大的开发人员工具和稳定的硬件特性。 开发人员工具包括自定义工具链和编译器优化。 如欲了解更多有关 Zephyr 项目和支持的硬件特性信息,请访问 zephyrproject.org。
蓝牙低功耗(蓝牙 LE* 或蓝牙智能*)
Arduino 101 新增了板载蓝牙 LE,以支持 Arduino 101 与计算机、智能手机和平板电脑等不同设备直接通信和交互,无需使用蓝牙 LE 护罩。 支持蓝牙的 Arduino 101 能够直接与其他设备进行通信,无需使用附加硬件。 蓝牙 LE 最适合低能耗应用。 CurieBLE 示例代码请见 https://www.arduino.cc/en/Reference/CurieBLE。
其他库
库是可提供用于 sketch 的额外功能的代码集合。 Arduino 101 库有助于轻松连接至蓝牙 LE、传感器和计时器。 如欲开始使用内置 Arduino 101 库,请访问 https://www.arduino.cc/en/Guide/Libraries。
- Curie BLE: 将计算机、智能手机和平板电脑连接至蓝牙 LE 模块
- Curie IMU: 使用板载 6 轴加速计和陀螺仪
- Curie TimerOne: 管理计时器功能
加速计和陀螺仪
加速计和陀螺仪是 Arduino 101 平台的板载传感器。 加速计主要用于测量加速和倾斜。 陀螺仪用于测量角速度和方位。 这些传感器有助于精确识别物体的方向和移动。 这项新特性支持 Arduino 101 平台增强可穿戴设备的用户体验。
加速计的一种使用方法是计算步数,和计步器一样。 Arduino 101 平台做出步进动作后,这一步将会被检测到。 检测到这一步进动作后,x、y 和 z 轴的速度相对于其他状态会有明显变化。 有关计步器的更多信息,请访问:https://www.arduino.cc/en/Tutorial/Genuino101CurieIMUStepCounter。
与 Arduino UNO 类似,使用 Arduino IDE* 软件可对 Arduino 101 进行编程。 如欲开始使用 Arduino 101,请前往 https://software.intel.com/zh-cn/articles/fun-with-the-arduino-101-genuino-101。 将计步 sketch 上传至 Arduino 101,查看计步器的工作原理(见图 3)。

图 3: 使用 Arduino IDE* 加载计步 sketch。
上传计步 sketch(见图 4):

图 4: 在 Arduino IDE* 上运行计步 sketch。
移动 Arduino 101 平台以出现步数,并查看串行监控器(见图 5)。

图 5: 串行窗口。
中断针脚
Arduino 101 和 Arduino UNO 都有 20 个 I/O 针脚。 Arduino 101 接受中断的针脚比 Arduino UNO 多。 Arduino UNO 在数字针脚 2 和 3 上对于中断进行触发,而 Arduino 101 能在所有针脚进行触发。 因外部事件触发的中断可发生在所有针脚上。 低值、高值、边缘上升或下降都可触发所有针脚上的中断,但只有针脚 2、5、7、8、10、11、12、13 支持变化值。
总结
本文对 Arduino 101 的特性进行了汇总。 Arduino 101 平台所包含的传感器、护罩、组件和库使其功能得以显著增强。 订购 Arduino 101 平台:http://www.intel.com/buy/us/en/product/emergingtechnologies/intel-arduino-101-497161。请访问 https://software.intel.com/zh-cn/articles/fun-with-the-arduino-101-genuino-101,测试并尽享英特尔 Curie 模块的强大功能。
实用参考资料
英特尔® 开发人员专区:
https://software.intel.com/zh-cn/iot/home英特尔 Curie 模块:
https://software.intel.com/zh-cn/iot/hardware/curie
http://www.intel.com/content/www/us/en/wearables/wearable-soc.html
http://www.intel.com/content/www/us/en/wearables/intel-curie-fact-sheet.htmlArduino 101 硬件:
https://www.arduino.cc/en/Main/ArduinoBoard101
https://www.arduino.cc/en/Guide/Arduino101
https://software.intel.com/zh-cn/articles/fun-with-the-arduino-101-genuino-101Arduino UNO 硬件:
http://www.arduino.org/products/boards/4-arduino-boards/arduino-unoGrove* Starter Kit Plus:
https://software.intel.com/zh-cn/iot/hardware/devkitZephyr:
https://www.zephyrproject.org/about
https://www.zephyrproject.org/doc/board/arduino_101.html
关于作者
Nancy Le 是英特尔公司软件与服务事业部的一名软件工程师,主要负责英特尔® 凌动™ 处理器扩展支持项目。
了解 ARDUINO 101* 平台的更多相关文章
- Arduino 101/Genuino101使用-第2篇
1. Arduino 101编程只是在ARC的核心上进行,其具体架构为ARCv2EM.. 2. 而Quark核心,从目前可知的信息来看,其应该运行着名为Zephyr的RTOS 3.101并没有EEPR ...
- Arduino 101/Genuino101使用-第一篇
1. 函数API说明文档在哪里? 2. 如果我想定义一个引脚做GPIO,不是库里有的. 3. digitalWrite(13, lighting); 这个函数里面 13代表的是啥? 4. setup( ...
- NFC:Arduino、Android与PhoneGap近场通信
NFC:Arduino.Android与PhoneGap近场通信(第一本全面讲解NFC应用开发的技术著作移动智能设备近距离通信编程实战入门) [美]Tom Igoe(汤姆.伊戈),Don Colema ...
- 什么是arduino及.arduino分类
关于什么是arduino没有什么可说的,想要接触arduino多多少少的都会对arduino有一定的理解,我认为,arduino应该算是一个连接硬件与软件的平台,通过他,你可以将你的想法以代码的形式呈 ...
- CREELINKS平台_处理器CeGpio资源使用说明(CeGpio的配置与使用)
0x00 CREELINKS平台简介 CREELINKS(创e联)是由大信科技有限公司研发,集合软硬件.操作系统.数据云储存.开发工具于一体,用于物联网产品的设计.研发与生产的平台. 平 ...
- Python玩转Arduino——简单介绍
关于Python语言的介绍安装请参考廖雪峰的Python教程 Python是一门解释型语言,虽然不能够像c语言一样编译上传到Arduino--什么你说MicroPython,我们再说Arduino呢- ...
- 开源IOT平台
用于IoT应用程序开发的10大开源软件: 1. DeviceHive DeviceHive基于AllJoyn的Data Art设备,同时也是AllSeen的联盟成员.这一款免费开源机器和机器通信(M2 ...
- Arduino 烧写bootloader
什么是bootloader 一般情况下微处理器写入程序时都通过专门的编程器进行烧写,但是也可以通过在MCU中预先写入一些程序来实现某些基本功能,这些预先写入的程序代码就是bootloader.这样每次 ...
- Zephyr OS 简介
最新发布的开源 Zephyr Project™(Zephyr 项目)是一款小型且可伸缩的实时操作系统,尤其适用于资源受限的系统,可支持多种架构:该系统高度开源,对于开发人员社区完全开放,开发人员可根据 ...
随机推荐
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- RxJS + Redux + React = Amazing!(译二)
今天,我将Youtube上的<RxJS + Redux + React = Amazing!>的后半部分翻译(+机译)了下来,以供国内的同学学习,英文听力好的同学可以直接看原版视频: ht ...
- HTML 事件(二) 事件的注册与注销
本篇主要介绍HTML元素事件的注册.注销的方式. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流.事件委托 4. ...
- jQuery学习之路(2)-DOM操作
▓▓▓▓▓▓ 大致介绍 jQuery作为JavaScript库,继承并发扬了JavaScript对DOM对象操作的特性,使开发人员能方便的操作DOM对象. ▓▓▓▓▓▓ jQuery中的DOM操作 看 ...
- CSS知识总结(七)
CSS常用样式 5.背景样式 1)背景颜色 background-color : transparent | color 常用值:①英文单词,②十六进制,③RGB或RGBA 另外,还有一种是 渐变色彩 ...
- (翻译)FIFO In Hardware
翻译一些自己觉得有价值的材料,工作中碰到英语大多数是读,基本没有写或者翻的,翻得不好不到位的敬请指摘. 同时也附原文以供参考. http://electronics.stackexchange.com ...
- jQuery标准的AJAX模板
$('#saveInformationTemplate_button').on('click', function(){ if(isEmpty($("#name").val())) ...
- NOT IN 和NOT EXISTS
今天写了一个简单的NOT IN语句,结果跟预期大相径庭,百度之发现深坑一个,遂录之. 登陆账户表logins code name status a admin N b guest N c member ...
- win7,Mindmanager2012使用模板时弹出Runtime error R6025解决方法
Mindjet.MindManager2012.v10.0在应用个别模板时提示"参数错误",然后自动关闭. 解决办法: 如果是win7系统,可以进入C:\Users\(用户名)\A ...
- 初探java中this的用法
一般this在各类语言中都表示“调用当前函数的对象”,java中也存在这种用法: public class Leaf { int i = 0; Leaf increment(){ i++; retur ...