作者:陈吕洲

出版社:清华大学出版社

出版时间:2017-9-1

ISBN:978-7-3024-7852-2

内容简介

Genuino 101是一个极具特色的Arduino开发板,它基于Intel Curie模组,不仅有着和Arduino UNO一样特性和外设,还集成了低功耗蓝牙(BLE)和六轴姿态传感器(IMU)功能,借助intel Curie模组上模式匹配引擎,甚至可以进行机器学习操作。因此使用Genuino 101,可以完成一些传统单片机或者Arduino难以胜任的工作,制作更为惊艳的作品。

本书以清晰的结构讲述Genuino 101开发基础,内容涵盖Arduino编程基础知识和Genuino 101高级API的使用。

全书共计九章,第一章简述Arduino与Genuino 101的历史、软硬件及开发环境使用方法;第二章至第四章讲解Arduino核心API的使用方法;第五章至第九章讲解了Genuino 101独有的Curie API和u8g2驱动显示设备的方法。完成本书的学习后,可以具备大多数常见项目的开发能力,本书也可以作为日后项目开发的资料查阅。

前言

Genuino 101是一个极具特色的Arduino开发板,它基于Intel Curie模组,不仅有着和Arduino UNO一样特性和外设,还集成了低功耗蓝牙(BLE)和六轴姿态传感器(IMU)功能,借助intel Curie模组上模式匹配引擎,甚至可以进行机器学习操作。因此使用Genuino 101,可以完成一些传统单片机或者Arduino难以胜任的工作,制作更为惊艳的作品。

相较于传统的Arduino开发板,Genuino 101具有如下优势:

一、控制核心intel Curie是一个带有机器学习功能的模组

机器学习是当今技术领域的热点,但真想弄懂机器学习需要你具备数学、逻辑学、统计学等多学科的知识。现在你只需要有个Genuino 101,即可在你的项目上应用或者体验机器学习的魅力了。

Genuino 101自带有神经元,能进行基础的分类学习。这样带来的好处是巨大的。结合101的IMU,可以进行动作识别,而不用复杂的编程。想象一下如何用纯编程的方法,实现动作识别,真的是太难了。

 

二、可以进行的真正的蓝牙开发

蓝牙是目前最流行的无线通信方式之一,几乎我们用的移动设备都带了蓝牙功能,了解蓝牙开发,对开发人员大有裨益。

有些人说,二三十块钱买个蓝牙模块接到Arduino UNO上,就行了,为啥要买101?这是一个不懂蓝牙通信之言。网上购买的二三十元的串口蓝牙模块,通常只是用于无线通信,相当于把原本的串口连接线换成了蓝牙。而蓝牙基础本身的原理和精髓,使用的人并不清楚,更不可能用于开发蓝牙设备。商用的蓝牙设备,是在手机或者PC上模拟一个串口通信的吗?几乎没有。

但101可以。Genuino 101是蓝牙官方(SIG)推荐的蓝牙开发入门平台,其上集成有Nordic蓝牙模组,并提供了CurieBLE库用于开发,它能让你了解什么是真正的蓝牙通信,可以制作成各种蓝牙BLE设备。

 

三、硬件配置更为强大

相比Arduino UNO,其配置更为强大。intel Curie上集成有x86和arc两个核心,能有更强的运算能力。

除开前面提到的完整的蓝牙BLE、神经元等亮点外,其上集成的姿态识别IMU也是高配版。我们常见的IMU传感器都是民用级别,而101上自带的博世IMU BMI160是一个车载级别的芯片,其性能远高于民用标准。

另外Genuino 101每一个IO口都支持外部中断,使得程序编写和硬件连接更具灵活性。

这里还得强调下,树莓派等linux开发板和arduino之间并没有可比性,两者应用场合不一样,就像你比较洗衣粉和洗碗粉一样,正常情况下,我们不会用洗衣粉洗碗。

 

四、可以使用更多的开发方式,更适合学生和爱好者使用

Genuino 101除了能使用arduino方式开发,还可以切换到Zephyr RTOS进行开发。而在Zephyr基础上,intel还提供了javascript解释器,因此还可以使用js进行开发。

这些特点,使得101对爱好者更具可玩性,对学生更有学习价值,不仅能通过101学习arduino开发方法,还能了解RTOS等更高级的知识。

 

intel和arduino强强联合

过去的arduino开发板大多是arduino官方独立设计开发制造,而Genuino 101由Arduino和intel两个团队共同呈现,从arduino社区关注度到源代码的更新进度,都可见一斑。

 

以上为使用Genuino 101的优势,但在使用101之前,你也应该知道,目前使用101有哪些阻碍:

目前intel Curie芯片没有对个人用户销售。但企业用户是可以购买到的,国内外已经有基于intel Curie的产品量产。

价格较高。大部分人告诉我他们没用101的原因只是因为太贵,但相信大部分人用arduino并不是开发大批量量产的产品,我认为并没有必要节约那么百来块钱。即使你是开发量产产品,也可以先购买101用于原型制作。量产时自己layout PCB,采购intel Curie模组进行生产。

部分基于AVR的arduino库,在101上无法使用。但这个问题不大,还有非常多的标准arduino库可以在101上使用,101还自带蓝牙BLE、IMU、机器学习等功能,intel和arduino官方也提供了数个对应的库,这些库组合起来,已经可以满足大部分项目需求了。另外,在可穿戴领域,101比其他arduino方案更有优势。

 

本书是笔者将过去在Arduino中文社区上撰写的Genuino 101相关教程与自身开发经验相结合整理而成,内容涵盖Arduino编程基础知识和Genuino 101高级API的使用,主要针对大学生和开发者编写,适合入门学习。

由于写作本书时Genuino 101的蓝牙BLE库正在大版本更新过程中,相关API可能会有很大变化,因此本书中没有蓝牙BLE开发章节,待BLE库稳定版本推出后,读者可在Arduino中文社区上阅读BLE开发章节。

参与本书编撰和校审的还有邱力超(const)、魏宇科(leonardo)、王翔、赵东相、任蕾凡、邹东雁。

特别感谢英特尔在线业务部在写作本书时提供的支持与帮助。

由于笔者水平有限,书中难免存在不足与错误之处,敬请读者批评指正。可以通过Arduino中文社区(http://www.arduino.cn/)参与本书相关内容的讨论。本书相关资料及代码均可在我的个人网站(http://clz.me/101-book/)获取。

 

陈吕洲

2017年2月24日