编辑推荐
本书从构思、设计到实现,深入理解Arduino项目开发!《Arduino案例实战》系统论述了Arduino开源硬件的开发方法和技术。书中以丰富Arduino设计实例,介绍了智能硬件的物联网应用。在处理嵌入式系统的开发过程中,使用Arduino开源平台,将事半功倍,极大提高效率。本书涉及的主题:
(1) 智能控制类开发案例
(2) 人机交互类开发案例
(3) 生活便捷类开发案例
(4) 物联网络类开发案例
(5) 其他创意类开发案例
本书突出的特点:
(6) 典型场景的创新应用
(7) 智能开源的编程实践
(8) 不同领域的经典案例
(9) 多种产品的功能实现
注:本书提供配套学习资源,下载地址为清华大学出版社本书页面。
内容简介
本书以“大众创业,万众创新”为时代背景,以物联网和智能开源硬件发展为技术背景,总结信息时代的创新模式、创新方法和创新产品。以Conceive�睤esign�睮mplement�睴perate(CDIO)方法为指导,构建创新产品,将北京邮电大学信息工程专业同学的创新产品开发案例进行总结,主要内容有Arduino设计基础及开发案例,包括智能控制类开发案例,生活便捷类开发案例,物联网络类开发案例,人机交互类开发案例和其他创意类开发案例。
本书主要对创新产品的实际开发案例进行描述,包括软件设计流程图、硬件电路图、各种传感器和模块,从功能、使用方法、电路连接和实例程序等方面介绍其使用方法; 综合应用各种技术,提高产品的总体性能和可实现性。本书案例的内容由总到分、先模块后代码,创新思维与实践案例相结合,以满足不同层次人员的需求。同时,本书附有实际项目的硬件设计图和软件实现代码,可供读者自我学习和提高使用。
本书可作为大学信息与通信工程及相关专业的本科生教材,也可以作为智能硬件爱好者的创新手册使用,还可以为创客的需求产生、分析产品、设计生产、实现产品等方面提供帮助。对于从事物联网、创新开发和设计的专业技术人员,也可以作为主要的技术参考书。
作者简介
作者简介
李永华 现执教于北京邮电大学,拥有超过10年的嵌入式开发经验,致力于物联网和智能硬件的研究开发工作。在教学中以兴趣为导向,激发学生的创造性;以素质为基础,提高自身教学水平;以科研为手段,促进教学理念转变。通过信息工程专业综合改革,探索了以“学生学为中心”的教学模式,营造生动活泼的学习方法,提高学生独立思考问题、发现问题、解决问题的能力,激发学生的创造激情。在研发及教学实践中指导学生实现200余个创新案例,并指导着一支物联网开发团队,曾在物联网、开源硬件等技术领域进行了多场学术报告,并且出版了《AllJoyn技术原理及物联网程序开发指南》《Arduino实战指南——游戏开发、智能硬件、人机交互、智能家居与物联网设计30例》《Arduino软硬件协同设计实战指南》等多部物联网技术方向的著作。
目录
目录
前言Ⅰ
第1章Arduino项目设计基础
1.1开源硬件概述
1.2Arduino开源硬件
1.2.1Arduino开发板
1.2.2Arduino扩展板
1.3Arduino软件开发平台
1.3.1Arduino平台特点
1.3.2Arduino IDE的安装
1.3.3Arduino IDE的使用
1.4Arduino编程语言
1.4.1Arduino编程基础
1.4.2数字I/O口的操作函数
1.4.3模拟I/O口的操作函数
1.4.4高级I/O PulseIn(pin,state,timeout)
1.4.5时间函数
1.4.6中断函数
1.4.7串口通信函数
1.4.8Arduino的库函数
1.5Arduino硬件设计平台
1.5.1Fritzing软件简介
1.5.2Fritzing使用方法
1.5.3Arduino电路设计
1.5.4Arduino样例与编程
第2章变声器
2.1项目背景
2.2创新描述
2.3功能及总体设计
2.3.1功能介绍
2.3.2总体设计
2.3.3模块介绍
2.4产品展示
2.5故障及问题分析
2.6元器件清单
第3章自动浇花机
3.1项目背景
3.2创意描述
3.3功能及总体设计
3.3.1功能介绍
3.3.2总体设计
3.3.3模块介绍
3.4产品展示
3.5故障及问题分析
3.6元器件清单
第4章移动花盆
4.1项目背景
4.2创意描述
4.3功能及总体设计
4.3.1功能介绍
4.3.2总体设计
4.3.3模块介绍
4.4产品展示
4.5故障及问题分析
4.6元器件清单
第5章智能花盆
5.1项目背景
5.2创意描述
5.3功能及总体设计
5.3.1功能介绍
5.3.2总体设计
5.3.3模块介绍
5.4产品展示
5.5故障及问题分析
5.6元器件清单
第6章植物精灵
6.1项目背景
6.2创意描述
6.3功能及总体设计
6.3.1功能介绍
6.3.2总体设计
6.3.3模块介绍
6.4产品展示
6.5故障及问题分析
6.6元器件清单
第7章测温加热杯
7.1项目背景
7.2创意描述
7.3功能及总体设计
7.3.1功能介绍
7.3.2总体设计
7.3.3模块介绍
7.4产品展示
7.5故障及问题分析
7.6元器件清单
第8章Audio Visualizer
8.1项目背景
8.2创意描述
8.3功能及总体设计
8.3.1功能介绍
8.3.2总体设计
8.3.3模块介绍
8.4产品展示
8.5故障及问题分析
8.6元器件清单
第9章温湿度环境监测仪
9.1项目背景
9.2创意描述
9.3功能及总体设计
9.3.1功能介绍
9.3.2总体设计
9.3.3模块介绍
9.4产品展示
9.5故障及问题分析
9.6元器件清单
第10章基于体表温度的自动调速风扇
10.1项目背景
10.2创意描述
10.3功能及总体设计
10.3.1功能介绍
10.3.2总体设计
10.3.3模块介绍
10.4产品展示
10.5故障及问题分析
10.6元器件清单
第11章多功能加湿器
11.1项目背景
11.2创意描述
11.3功能及总体设计
11.3.1功能介绍
11.3.2总体设计
11.3.3模块介绍
11.4产品展示
11.5故障及问题分析
11.6元器件清单
第12章基于语音芯片的MP3
12.1项目背景
12.2创意描述
12.3功能及总体设计
12.3.1功能介绍
12.3.2总体设计
12.3.3模块介绍
12.4产品展示
12.5故障及问题分析
12.6元器件清单
第13章Virtual Drum Kit(虚拟架子鼓)
13.1项目背景
13.2创意描述
13.3功能及总体设计
13.3.1功能介绍
13.3.2总体设计
13.3.3模块介绍
13.4产品展示
13.5故障及问题分析
13.6元器件清单
第14章智能实物架子鼓
14.1项目背景
14.2创意描述
14.3功能及总体设计
14.3.1功能介绍
14.3.2总体设计
14.3.3模块介绍
14.4产品展示
14.5故障及问题分析
14.6元器件清单
第15章音乐心情助手
15.1项目背景
15.2创意描述
15.3功能及总体设计
15.3.1功能介绍
15.3.2总体设计
15.3.3模块介绍
15.4产品展示
15.5故障及问题分析
15.6元器件清单
第16章基于计算机的模拟架子鼓
16.1项目背景
16.2创意描述
16.3功能及总体设计
16.3.1功能介绍
16.3.2总体设计
16.3.3模块介绍
16.4产品展示
16.5故障及问题分析
16.6元器件清单
第17章The Beats音乐游戏
17.1项目背景
17.2创意描述
17.3功能及总体设计
17.3.1功能介绍
17.3.2总体设计
17.3.3模块介绍
17.4产品展示
17.5故障及问题分析
17.6元器件清单
第18章音乐灯
18.1项目背景
18.2创意描述
18.3功能及总体设计
18.3.1功能介绍
18.3.2总体设计
18.3.3模块介绍
18.4产品展示
18.5故障及问题分析
18.6元器件清单
第19章智能门禁刷卡系统
19.1项目背景
19.2创意描述
19.3功能及总体设计
19.3.1功能介绍
19.3.2总体设计
19.3.3模块介绍
19.4产品展示
19.5故障及问题分析
19.6元器件清单
第20章高温预警模拟
20.1项目背景
20.2创意描述
20.3功能及总体设计
20.3.1功能介绍
20.3.2总体设计
20.3.3模块介绍
20.4产品展示
20.5故障及问题分析
20.6元器件清单
参考文献
精彩书摘
第5章智能花盆
5.1项目背景
在日常生活中,人们一方面想在家中养些花花草草,让他们在白天能够吸收二氧化碳清新室内空气的同时净化有毒气体; 另一方面因为工作太忙或者经常出差,没空浇水导致花草长势不好甚至枯死,又影响了室内的装饰效果。
本项目设计者为李明正、高原、赵雳欧。
因此,设计一种能实时监测多盆花的土壤温湿度,实现智能浇水的智能花盆,让花卉在人们无暇顾及时也能得到及时的照顾。
5.2创意描述
相比于普通的花盆,首先,它可以通过按键输入阈值(即所养花卉的适宜湿度),通过实时监控土壤湿度并与阈值作比较来决定是否开启自动浇水以及浇水量; 其次,通过一个程序完成同时控制多个花盆的功能,使养花更方便、更智能。
它的创新点有: 按键输入阈值,方便快捷; 实时监控土壤湿度,浇水量准确,节约水资源,避免过量浇水对花卉的伤害; 同时控制多个花盆,对多个花卉的生长状况一目了然,掌控更方便。
5.3功能及总体设计
本作品主要分为三个部分进行设计: 按键模块、浇水系统以及LCD显示模块。按键部分的主要功能是可以选择花盆手动设置阈值; 浇水系统由水泵、水箱、自制“喷头”、继电器以及电源构成,保证浇水随时待命; LCD显示模块可以在设置过程中显示下一步的选项,实时显示土壤湿度以及空气的温湿度。
5.3.1功能介绍
本项目的智能花盆可以通过手动按键分别设置多盆花卉的适宜土壤湿度,满足同时照顾多盆花卉的需要。通过每十秒对土壤连续十次的湿度采样取均值与阈值比较来判断花卉是否处于缺水状态,进而控制水泵抽水浇水,直至均值达到阈值时停止。同时LCD可以显示空气中的温湿度,也可以让主人根据花卉的生长条件进行相应的操作。
5.3.2总体设计
要实现上述功能,需要将作品分成三个部分来设计: 按键部分、浇水系统以及LCD显示部分。
1. 整体框架图
项目的整体框架,如图5��1所示。
图5��1项目整体框架图
其中,4×4按键板、LCD显示屏、DHT11温湿度传感器以及整个浇水系统都连接在Arduino板上,由MK227土壤温湿度传感器控制继电器常开端是否闭合,控制水泵是否工作。
2. 系统流程图
系统流程如图5��2所示。
前言/序言
前言
物联网、智能硬件和大数据技术给社会带来了巨大的冲击,个性化、定制化和智能化的硬件设备成为未来的发展趋势。中国制造2025计划,德国的工业4.0,美国的工业互联网,都是将人、数据和机器连接起来,其本质是工业的深度信息化,为未来智能社会的发展提供制造技术基础。
在“大众创业,万众创新”的时代背景下,人才的培养方法和模式,也应该满足当前的时代需求。作者试图依据当今信息社会的发展趋势,结合Arduino开源硬件的发展及智能硬件的发展要求,采取激励创新的工程教育方法,培养可以适应未来工业4.0发展的人才。因此,尝试探索基于创新工程教育的基本方法,并将其提炼为适合我国国情、具有自身特色的创新实践教材。本书将实际教学中应用智能硬件的创新工程教学经验进行总结,包括具体的创新方法和开发案例,希望对教育、教学及工业界有所帮助,起到抛砖引玉的作用。
本书系统地介绍了如何利用Arduino开发平台进行产品开发,包括相关的设计、实现与产品的应用。传统Arduino方面的书籍仅侧重介绍具体硬件开发平台的实现方法,而很少关注具体创新案例的开发及工程教育方法应用。本书则试图面向未来的工业创新与发展,通过CDIO的工程教育方法,以智能开源硬件平台为基础,培养面向工业4.0的创新型人才。
本书的内容和素材,主要来自于作者所在的学校近几年承担的教育部和北京市的教育、教学改革项目和成果,是北京邮电大学信息工程专业的所有同学的成果。通过基于CDIO工程教育方法的实施,同学们创新产品的整个过程得到了实现,不但学到了知识,提高了能力,而且为本书提供了第一手素材和资料。本书的主要内容包括Arduino项目设计基础及开发案例,涉及智能控制类开发案例,生活便捷类开发案例,物联网络类开发案例,人机交互类开发案例和其他创意类开发案例。
书中对于每个案例都从项目背景、创意描述、功能及总体设计、具体电路图、系统流程图、子模块介绍、产品展示、故障及问题分析以及每个案例所用元器件进行详细讲解,使读者可以从不同层面对开发案例进行分析、理解和具体实现。
本书的编写得到了教育部电子信息类专业教学指导委员会、信息工程专业国家第一类特色专业建设项目、信息工程专业国家第二类特色专业建设项目、教育部CDIO工程教育模式研究与实践项目、教育部本科教学工程项目、信息工程专业北京市特色专业建设、北京市教育教学改革项目、北京邮电大学教学综合改革项目的大力支持,在此表示感谢!
同时,也特别感谢林家儒教授的鼎力支持和悉心指导,感谢郑铖、谭扬、黄旭新、顾铁玥等研究生同学的大力协助,感谢北京邮电大学信息工程专业所有同学,感谢父母妻儿在精神上给予的支持与鼓励,才使得本书得以问世!
本书由北京市教育科学“十二五”规划重点课题(优先关注)、北京市职业教育产教融合专业建设模式研究(ADA15159)资助,特此表示感谢!
由于作者的水平有限,书中不当及错误之处在所难免,衷心地希望各位读者多提宝贵意见及具体的整改措施,以便作者进一步修改和完善。
李永华于北京邮电大学
2017年7月
《Arduino案例实战(卷Ⅲ)》:开启智能硬件与嵌入式开发的无限可能 《Arduino案例实战(卷Ⅲ)》是“清华开发者书库”系列中备受期待的一部力作,它承载着前两卷的精髓,并在此基础上深度拓展,为广大Arduino爱好者、嵌入式系统开发者、创客以及相关专业领域的学生提供了一套全面、系统且极具实践价值的学习资源。本书旨在打破理论与实践的壁垒,通过大量精心设计的案例,带领读者一步步探索Arduino在现代智能硬件开发和嵌入式系统构建中的强大潜力。 为何选择《Arduino案例实战(卷Ⅲ)》? 在当今科技飞速发展的时代,智能硬件和嵌入式系统已经渗透到我们生活的方方面面,从智能家居、物联网设备到工业自动化、机器人技术,无处不见它们的身影。Arduino以其开源、易学、易用的特点,成为了无数开发者和创客入门嵌入式世界的首选平台。 《Arduino案例实战(卷Ⅲ)》并非一本简单的“点石成金”的速成手册,它更像是一位经验丰富的导师,引导您循序渐进地掌握Arduino开发的精髓。本书的价值体现在以下几个方面: 1. 深度与广度并存的案例设计: 本卷精选了数十个覆盖不同应用领域、不同技术难度的案例。这些案例并非孤立存在,而是有机地串联起Arduino开发中的核心概念和进阶技术。从基础的传感器数据采集与控制,到复杂的通信协议应用、嵌入式视觉、甚至与云平台的交互,每一个案例都精心设计,旨在让读者在动手实践中深刻理解理论知识,并能灵活应用于实际项目中。 2. 循序渐进的学习路径: 针对不同水平的读者,本书提供了清晰的学习路径。初学者可以从最基础的案例入手,熟悉Arduino IDE的使用、基本语法和常用模块。随着内容的深入,读者将接触到更复杂的多任务处理、中断机制、高级传感器集成、无线通信等技术。对于有一定Arduino基础的开发者,本书提供了挑战性的项目,帮助您突破技术瓶颈,掌握更高级的应用技巧。 3. 强调工程思维与项目化开发: 本书不仅仅是教您如何“连接电路”和“写代码”,更注重培养读者的工程思维和项目化开发能力。每个案例在介绍硬件连接和代码实现的同时,还会深入分析项目的设计思路、潜在问题及优化方案。读者将学习如何进行需求分析、系统设计、模块化开发、代码调试和项目测试,这对于未来独立完成更复杂的嵌入式项目至关重要。 4. 紧跟技术前沿: 智能硬件和嵌入式技术日新月异。《Arduino案例实战(卷Ⅲ)》紧密追踪行业发展趋势,引入了当前热门的技术和应用方向,例如: 物联网(IoT)集成: 学习如何利用Wi-Fi、蓝牙、LoRa等无线模块,将Arduino设备接入互联网,实现远程监控、数据上传和控制。本书将详细讲解MQTT、HTTP等物联网通信协议,并演示如何与各种云平台(如阿里云、腾讯云、ThingsBoard等)进行对接。 嵌入式视觉与人工智能(AI)基础: 探索Arduino在简单的图像处理、目标检测等领域的应用,介绍如何集成OV7670、OpenMV等摄像头模块,并讲解一些基础的机器视觉算法。部分案例还将触及轻量级的AI模型部署,为开发更智能的嵌入式系统打下基础。 高级传感器与执行器应用: 除了常见的温湿度、光照传感器,本书还将介绍如GPS模块、IMU(惯性测量单元)、超声波测距、步进电机、舵机等更复杂的传感器和执行器,并演示如何在复杂的场景下进行集成与控制。 实时操作系统(RTOS)与多任务处理: 对于需要处理复杂逻辑和实时性要求的项目,本书将适时引入FreeRTOS等嵌入式实时操作系统,讲解任务调度、同步通信等概念,帮助读者构建更健壮、可扩展的嵌入式系统。 低功耗设计与电源管理: 在电池供电的嵌入式设备中,低功耗设计至关重要。本书将介绍一些低功耗模式的使用技巧、电源管理策略,帮助读者延长设备的续航时间。 5. 丰富多样的学习资源与辅助工具: 除了书本内容,本书还可能提供配套的电子资源,如: 完整的源代码: 所有案例的代码均提供下载,方便读者直接运行、修改和学习。 电路图与PCB参考: 部分案例提供详细的电路图,甚至可以提供简单的PCB设计参考,帮助读者从原型制作走向更成熟的产品形态。 推荐硬件清单: 列出每个案例所需的元器件和工具,方便读者采购。 在线社区支持(可能): 鼓励读者参与线上技术交流,分享项目经验,解决开发难题。 本书适合谁? Arduino初学者: 希望系统学习Arduino基础知识,并通过大量实践项目掌握其核心技能。 嵌入式开发工程师: 寻求拓宽技术视野,学习和应用新的嵌入式技术,解决实际工程问题。 创客与DIY爱好者: 热衷于将创意变为现实,希望通过Arduino构建各种有趣的智能硬件项目。 高校学生与教师: 作为嵌入式系统、物联网、机器人等相关课程的辅助教材或实践参考。 对智能硬件感兴趣的各领域人士: 希望了解智能硬件的实现原理,并能动手实现简单的智能设备。 《Arduino案例实战(卷Ⅲ)》将引领您: 掌握从硬件选型、电路设计到软件编程的全流程开发能力。 深入理解各种传感器、执行器的工作原理及其在实际项目中的应用。 熟练运用Arduino进行数据采集、信号处理、逻辑控制等核心任务。 构建能够联网、交互、具备一定智能的嵌入式系统。 培养独立解决嵌入式开发问题的能力,为未来的项目打下坚实基础。 本书的出版,是“清华开发者书库”在推动中国开发者技术进步道路上的又一重要里程碑。我们相信,《Arduino案例实战(卷Ⅲ)》将成为您在智能硬件与嵌入式开发领域探索未知、实现创想的得力伙伴。无论您是初出茅庐的探索者,还是经验丰富的实践者,都能在这本书中找到属于自己的收获与启发,共同迈向更广阔的技术天地。