新書推薦:
《
股市趋势技术分析(原书第11版)
》
售價:HK$
221.8
《
汉匈战争全史
》
售價:HK$
99.7
《
恶的哲学研究(社会思想丛书)
》
售價:HK$
109.8
《
不止江湖
》
售價:HK$
98.6
《
天才留步!——从文艺复兴到新艺术运动(一本关于艺术天才的鲜活故事集,聚焦艺术史的高光时刻!)
》
售價:HK$
154.6
《
双城史
》
售價:HK$
110.9
《
冯友兰和青年谈心系列:不是问题的问题(哲学大师冯友兰和年轻人谈心,命运解读)
》
售價:HK$
55.8
《
月与蟹(青鲤文库)荣获第144届直木奖,天才推理作家经典作品全新译本。一部青春狂想曲,带你登上心理悬疑之巅。
》
售價:HK$
50.4
|
編輯推薦: |
(1)本书有国内资深的Arduino开发者、Arduino中文社区创始人陈吕洲编写,体系结构清晰,由浅入深,适合初学者学习,亦适合开发者查阅。(2)在Arduino中文社区(www.arduino.cn)网站上提供本书相关问题的线上解答,让你学习无忧。(3)Genuino 101是一个极具特色的Arduino开发板,使用它可以完成一些传统单片机或者Arduino难以胜任的工作,制作更为惊艳的作品;借助intel Curie模组上的模式匹配引擎,甚至还可以进行机器学习操作。
|
內容簡介: |
Genuino 101是一个极具特色的Arduino开发板,它基于Intel Curie模组,不仅有着和Arduino UNO一样的特性和外设,还集成了低功耗蓝牙(BLE)和六轴姿态传感器(IMU)功能,借助Intel Curie模组上模式匹配引擎,甚至可以进行机器学习操作。因此,使用Genuino 101可以完成一些传统单片机或者Arduino难以胜任的工作,制作更为惊艳的作品。 本书以清晰的结构讲述Genuino 101开发基础,内容涵盖Arduino编程基础知识和Genuino 101高级API的使用。 全书共9章,第1章简述Arduino与Genuino 101的历史、软硬件及开发环境使用方法;第2~4章讲解Arduino核心API的使用方法;第5~9章讲解Genuino 101独有的Curie API和u8g2驱动显示设备的方法。完成本书的学习后,可以具备大多数常见项目的开发能力。 本书主要针对大学生、研究生和开发者编写,适合入门学习。
|
關於作者: |
作者简介
陈吕洲 Arduino中文社区创始人,硬件创业者,畅销图书《Arduino程序设计基础》的作者。早期从事机器人竞赛,现从事软硬件产品设计与开发工作。在业余时间致力于开源硬件的设计与推广,长期积极参与和推动国内开源硬件及相关社群的发展。研究领域涉及Arduino、mbed、ScriptBoard等硬件开发平台,Linux、Zephyr等嵌入式操作系统,也为Intel、Atmel等公司提供开源硬件产品设计与推广咨询服务。
|
目錄:
|
目录
第1章Arduino与Intel Curie
1.1什么是Arduino
1.2为什么使用Arduino作为开发平台
1.3Genuino 101与Intel Curie
1.4配置Genuino 101开发环境
1.5认识Arduino IDE
1.6添加Genuino 101支持
1.7BlinkArduino的Hello World
第2章Arduino编程基础
2.1Arduino语言
2.2CC语言基础
2.2.1数据类型
2.2.2运算符
2.2.3表达式
2.2.4数组
2.2.5字符串
2.2.6注释
2.2.7用流程图来表示程序
2.2.8顺序结构
2.2.9选择结构
2.2.10循环结构
2.3电子元件和扩展模块
2.4Arduino扩展板的使用
2.5数字IO的使用
2.5.1数字信号
2.5.2流水灯实验
2.5.3按键控制LED实验
2.6模拟IO的使用
2.6.1模拟信号
2.6.2呼吸灯实验
2.6.3光敏电阻检测环境光实验
2.7数字传感器与模拟传感器的使用
2.8与计算机交流串口的使用
2.8.1串口输出
2.8.2串口输入
2.8.3串口开关LED实验
2.9时间函数
2.9.1运行时间函数
2.9.2延时函数
2.9.3RTC函数
第3章IO的高级应用
3.1调声函数
3.1.1蜂鸣器发声
3.1.2简易电子琴
3.2脉冲宽度测量函数
3.3外部中断
3.3.1外部中断的使用
3.3.2外部中断触发蜂鸣器警报实验
第4章使用和编写类库
4.1通过库管理器添加库
4.2手动添加库并使用
4.3编写Arduino类库
4.3.1编写函数
4.3.2编写头文件与源文件
4.3.3关键字高亮
4.3.4建立示例程序
4.3.5类库优化与发布
第5章定时器
5.1定时器中断
5.2定时器输出PWM
第6章串口进阶
6.1串行与并行通信
6.2硬件串口
6.3print和write输出方式的差异
6.4HardwareSerial类成员函数
6.5read和peek输入方式的差异
6.6串口读取字符串
6.7串口事件
6.8串口缓冲区
6.9实验: 串口控制RGB LED调光
6.10软件模拟串口通信SoftwareSerial库的使用
6.10.1SoftwareSerial类成员函数
6.10.2建立软串口通信
6.10.3同时使用多个软串口
第7章显示篇
7.1认识显示设备
7.1.1I2C设备
7.1.2SPI设备
7.2u8g2标准库
7.2.1新建设备对象
7.2.2初始化与缓冲区操作
7.2.3文本显示
7.2.4数据显示
7.2.5中文显示
7.2.6绘制图形
7.2.7图片显示
第8章CurieIMU库的使用
8.1配置IMU及获取数据
8.2解算AHRS姿态
8.3姿态数据可视化
8.4IMU中断检测
8.5神经元与机器学习
第9章存储篇
9.1EEPROM的使用
9.1.1写数据
9.1.2读数据
9.1.3擦除数据
9.2SPI Flash的使用
9.2.1新建文件并写入
9.2.2列出文件
9.2.3读取文件
9.2.4擦除数据
附录AArduinoGenuino 101数据手册
附录BASCII码对照表
附录C串口通信可用config配置
附录DZephyr简介
后记
参考文献
|
內容試閱:
|
前言
Genuino 101是一个极具特色的Arduino开发板,它基于Intel Curie模组,不仅有着和Arduino UNO一样的特性和外设,还集成了低功耗蓝牙(Bluetooth Low Energy,BLE)和六轴姿态传感器(Inertial Measurement Unit,IMU)功能,借助Intel Curie模组上模式匹配引擎,甚至可以进行机器学习操作。因此,使用Genuino 101可以完成一些传统单片机或者Arduino难以胜任的工作,制作更为惊艳的作品。
相较于传统的Arduino开发板,Genuino 101具有如下优势。
1. 控制核心Intel Curie是一个带有机器学习功能的模组
机器学习是当今技术领域的热点,但真想弄懂机器学习需要具备数学、逻辑学、统计学等多学科的知识。现在只需要有Genuino 101,即可在项目上应用或者体验机器学习的魅力了。
Genuino 101自带神经元,能进行基础的分类学习,这带来的好处是巨大的。结合Genuino 101的IMU,可以进行动作识别,而不用复杂的编程。想象一下如何用纯编程的方法实现动作识别,真的是太难了。
2. 可以进行真正的低功耗蓝牙开发
低功耗蓝牙技术是目前最流行的无线通信技术之一,我们用的移动设备几乎都带低功耗蓝牙功能,了解低功耗蓝牙开发,对开发人员大有裨益。
Genuino 101是蓝牙官方(SIG)推荐的蓝牙开发入门平台,其上集成有Nordic蓝牙模组,并提供了CurieBLE库用于开发,它能让我们了解什么是真正的蓝牙通信,还可以制作各种蓝牙BLE设备。
3. 硬件配置更为强大
相比Arduino UNO,Genuino 101配置更为强大。Intel Curie上集成有x86和arc两个核心,拥有更强的运算能力。
除了前面提到的完整的蓝牙BLE、神经元等亮点外,Genuino 101上集成的姿态识别IMU也是高配版。我们常见的IMU传感器都是民用级别的,而Genuino 101上自带的博世IMU BMI160是一个车载级别的芯片,其性能远高于民用标准。
另外,Genuino 101的每一个IO口都支持外部中断,使得程序编写和硬件连接更具灵活性。
这里需要强调,树莓派等Linux开发板和Arduino之间并没有可比性,二者应用场合不一样。
4. 可以使用更多的开发方式,更适合学生和爱好者使用
Genuino 101除了能使用Arduino方式开发,还可以切换到Zephyr RTOS进行开发。而在Zephyr基础上,Intel还提供了JavaScript解释器,因此还可以使用JavaScript进行开发。
这些特点使得Genuino 101对爱好者更具可玩性,对学生更有学习价值,不仅能通过Genuino 101学习Arduino开发方法,还能了解RTOS等更高级的知识。
5. Intel和Arduino强强联合
过去的Arduino开发板大多是Arduino官方独立设计开发制造的,而Genuino 101由Arduino和Intel两个团队共同开发,从Arduino社区的关注度到源代码的更新进度,都可见一斑。
以上为使用Genuino 101的优势,但在使用Genuino 101之前也应该了解目前使用Genuino 101的阻碍。
1 目前Intel Curie芯片没有对个人用户销售,但企业用户是可以购买到的,国内外已经有基于Intel Curie的产品量产。
2 价格较高。大部分人没用Genuino 101的原因只是因为太贵,但相信大部分人用Arduino并不是开发量产的产品,笔者认为并没有必要节约百十块钱。即使是开发量产产品,也可以先购买Genuino 101用于原型制作。量产时可自己制作PCB,采购Intel Curie模组进行生产。
3 部分基于AVR的Arduino库,在Genuino 101上无法使用。但这个问题不大,还有非常多的标准Arduino库可以在Genuino 101上使用,Genuino 101还自带蓝牙BLE、IMU、机器学习等功能,Intel和Arduino官方也提供了对应的库,这些库组合起来已经可以满足大部分项目需求了。另外,在可穿戴领域,Genuino 101比其他Arduino方案更有优势。
本书是笔者将过去在Arduino中文社区上撰写的Genuino 101相关教程与自身开发经验相结合整理而成的,内容涵盖Arduino编程基础知识和Genuino 101高级API的使用,主要针对大学生、研究生和开发者编写,适合入门学习。
由于编写本书时Genuino 101的蓝牙BLE库正在大版本更新过程中,相关API可能会有很大变化,因此本书中没有蓝牙BLE开发章节,待BLE库稳定版本推出后,读者可在Arduino中文社区上阅读BLE开发章节。
参与本书编撰和校审的还有邱力超、魏宇科、王翔、赵东相、任蕾凡、邹东雁。
特别感谢Intel在线业务部在写作本书时提供的支持与帮助。
由于笔者水平有限,书中难免存在不足之处,敬请读者批评指正。欢迎读者通过Arduino中文社区(http:www.arduino.cn)参与本书相关内容的讨论。本书相关资料及代码均可在清华大学出版社本书页面以及笔者的个人网站(http:clz.me101book)获取。
陈吕洲
2017年7月
作者简介:
陈吕洲Arduino中文社区创始人,硬件创业者,畅销图书《Arduino程序设计基础》的作者。早期从事机器人竞赛,现从事软硬件产品设计与开发工作。在业余时间致力于开源硬件的设计与推广,长期积极参与和推动国内开源硬件及相关社群的发展。研究领域涉及Arduino、mbed、ScriptBoard等硬件开发平台,Linux、Zephyr等嵌入式操作系统,也为Intel、Atmel等公司提供开源硬件产品设计与推广咨询服务。
|
|