了解 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 项目)是一款小型且可伸缩的实时操作系统,尤其适用于资源受限的系统,可支持多种架构:该系统高度开源,对于开发人员社区完全开放,开发人员可根据 ...
随机推荐
- TODO:Laravel 内置简单登录
TODO:Laravel 内置简单登录 1. 激活Laravel的Auth系统Laravel 利用 PHP 的新特性 trait 内置了非常完善好用的简单用户登录注册功能,适合一些不需要复杂用户权限管 ...
- 前端学Markdown
前面的话 我个人理解,Markdown就是一个富文本编辑器语言,类似于sass对于css的功能,Markdown也可以叫做HTML预处理器,只不过它是一门轻量级的标记语言,可以更简单的实现HTML ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(75)-微信公众平台开发-用户管理
系列目录 前言 本节主要是关注者(即用户)和用户组的管理,微信公众号提供了用户和用户组的管理,我们可以在微信公众号官方里面进行操作,添加备注和标签,以及移动用户组别,同时,微信公众号也提供了相应的接口 ...
- 使用Java原生代理实现AOP
### 本文由博主柒.原创,转载请注明出处 ### 完整源码下载地址 [https://github.com/MatrixSeven/JavaAOP](https://github.com/Matri ...
- Android注解使用之通过annotationProcessor注解生成代码实现自己的ButterKnife框架
前言: Annotation注解在Android的开发中的使用越来越普遍,例如EventBus.ButterKnife.Dagger2等,之前使用注解的时候需要利用反射机制势必影响到运行效率及性能,直 ...
- 计算机程序的思维逻辑 (54) - 剖析Collections - 设计模式
上节我们提到,类Collections中大概有两类功能,第一类是对容器接口对象进行操作,第二类是返回一个容器接口对象,上节我们介绍了第一类,本节我们介绍第二类. 第二类方法大概可以分为两组: 接受其他 ...
- 多线程条件通行工具——CountDownLatch
CountDownLatch的作用是,线程进入等待后,需要计数器达到0才能通行. CountDownLatch(int)构造方法,指定初始计数. await()等待计数减至0. await(long, ...
- 灵魂宝石 bzoj 2663
灵魂宝石(1s 128MB)soulgem [问题描述] "作为你们本体的灵魂,为了能够更好的运用魔法,被赋予了既小巧又安全的外形" 我们知道,魔法少女的生命被存放于一个称为灵魂宝 ...
- “老坛泡新菜”:SOD MVVM框架,让WinForms焕发新春
火热的MVVM框架 最近几年最热门的技术之一就是前端技术了,各种前端框架,前端标准和前端设计风格层出不穷,而在众多前端框架中具有MVC,MVVM功能的框架成为耀眼新星,比如GitHub关注度很高的Vu ...
- canvas快速绘制圆形、三角形、矩形、多边形
想看前面整理的canvas常用API的同学可以点下面: canvas学习之API整理笔记(一) canvas学习之API整理笔记(二) 本系列文章涉及的所有代码都将上传至:项目代码github地址,喜 ...