编辑推荐
本书从构思、设计到实现,深入理解Arduino项目开发!《Arduino案例实战》系统论述了Arduino开源硬件的开发方法和技术。书中以丰富Arduino设计实例,介绍了智能硬件的物联网应用。在处理嵌入式系统的开发过程中,使用Arduino开源平台,将事半功倍,极大提高效率。本书涉及的主题:
(1) 智能控制类开发案例
(2) 人机交互类开发案例
(3) 生活便捷类开发案例
(4) 物联网络类开发案例
(5) 其他创意类开发案例
本书突出的特点:
(6) 典型场景的创新应用
(7) 智能开源的编程实践
(8) 不同领域的经典案例
(9) 多种产品的功能实现
注:本书提供配套学习资源,下载地址为清华大学出版社本书页面。
内容简介
本书以“大众创业万众创新”为时代背景,以物联网和智能开源硬件发展为技术背景,总结信息时代创新模式、创新方法和创新产品。以CDIO(Conceive�睤esign�睮mplement�瞣perate)方法为指导,构建创新产品,将北京邮电大学信息工程专业同学的创新产品开发案例进行总结,其基本内容包括Arduino设计基础和22个案例,主要涉及智能控制类开发案例、生活便捷类开发案例、物联网络类开发案例、人机交互类开发案例和其他创意类开发案例。
本书主要针对创新产品的实际开发案例进行描述,包括软件设计流程图、硬件电路图、各种传感器和模块,从功能、使用方法、电路连接和实例程序等方面介绍其使用方法; 综合应用各种技术,提高产品的总体性能和可实现性。本书案例的内容由总到分、先模块后代码,创新思维与实践案例相结合,以满足不同层次人员的需求; 同时,本书附有实际项目的硬件设计图和软件实现代码,可供读者自我学习和自我提高使用。
本书可作为高等院校信息与通信工程及相关专业的本科生教材,也可以作为智能硬件爱好者创新手册使用,还可以为创客的需求产生、分析产品、设计生产、实现产品提供帮助。对于从事物联网创新开发和设计的专业技术人员,本书也可以作为主要的技术参考书。
作者简介
李永华 现执教于北京邮电大学,拥有超过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函数
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章基于Arduino的四轴飞行器
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章App遥控四轴飞行器
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章自行车测速里程计
12.1项目背景
12.2创意描述
12.3功能及总体设计
12.3.1功能介绍
12.3.2总体设计
12.3.3模块介绍
12.4产品展示
12.5故障及问题分析
12.6元器件清单
第13章超声波自动避障小车
13.1项目背景
13.2创意描述
13.3功能及总体设计
13.3.1功能介绍
13.3.2总体设计
13.3.3模块介绍
13.4产品展示
13.5故障及问题分析
13.6元器件清单
第14章DIY四轴飞行器
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元器件清单
精彩书摘
第5章
北邮艇
设计者: 白帅邢瑞波凌通
5.1项目背景
常见Arduino应用主要局限于陆地和天上,将基于Arduino进行水中的创意项目则很少,基于以上事实设计制作一个微型舰艇。水中项目最大的挑战是防水,对防水进行评估后,决定设计并制作——北邮艇,以求实现远程操作、动力控制、超声波探测、武器攻击、音乐娱乐等功能,并实现蓝牙手控和系统自动扫描两种工作模式。
5.2创意描述
本项目在网络上进行了基于Arduino的遥控船的搜索,发现几乎没有基于Arduino板的舰艇产品。因此发挥想象为北邮艇设计了以下几个系统: 动力系统、蓝牙远程操控系统、侦察系统、攻击系统、庆祝系统。其中,动力与蓝牙远程操控系统是本艇的核心,而侦察与攻击系统相互配合使用。
本项目的创新点在于: 当侦察系统启动后,会对周围进行探测,当发现目标后水炮发射,攻击目标,若攻击结束,音乐响起,为胜利而庆祝。通过Arduino Uno板的指令进行控制操作,完成舰艇的所有功能。
5.3功能及总体设计
本产品主要分为4个部分进行设计: 动力系统、侦察系统、攻击系统以及庆祝系统。动力系统方面提供的电压和功率要能够带动舰艇的电机,同时负责船体的方向控制; 侦察系统方面,通过舵机控制方向,带动超声波探测敌方战舰,前方180°准确扫描,不断返回前方障碍物距离,一旦侦察到敌方目标,启动攻击系统进行攻击; 本舰的攻击系统由一门水炮构成,当超声波探测到目标后,舵机停止转动,水炮向目标发射水柱攻击目标;庆祝系统通过控制播放“无敌”之歌,“传邮万里”来宣扬校训,以及在成功攻击的时候庆祝胜利。
5.3.1功能介绍
当超声波探测系统启动后,会对周围进行探测,发现目标(返回值小于定量)后水炮发射,攻击目标,攻击结束,音乐响起,为胜利而庆祝。这一系列功能也可以通过手机端发送的指令进行操作。
舰艇的动力系统会在客户端发送指令后启动,当两个电机同时启动后,船会前行; 当左侧电机单独启动,船将右转; 当右侧电机单独启动,船将左转。
5.3.2总体设计
本作品分成4部分进行设计: 动力系统、侦察系统、攻击系统以及庆祝系统。
1. 整体框架图
项目整体框架如图5��1所示。通过Arduino Uno板串联整体,蓝牙起到远程操控作用。驱动板控制两个电机的运转来整体控制舰艇的行进方向。超声波探测到目标后,舵机停止运转,继电器接通,水泵开始工作,当水泵停止工作,音乐播放。
图5��1整体框架图
2. 系统流程图
系统流程如图5��2所示。
前言/序言
前言
物联网、智能硬件和大数据技术给社会带来了巨大的冲击,个性化、定制化和智能化的硬件设备成为未来的发展趋势。中国制造2025计划、德国的工业4.0及美国的工业互联网,都是将人、数据和机器连接起来,其本质是工业的深度信息化,为未来智能社会的发展提供制造技术基础。
在“大众创业万众创新”的时代背景下,人才的培养方法和模式,也应该满足当前的时代需求。作者试图依据当今信息社会的发展趋势,结合Arduino开源硬件的发展及智能硬件的发展要求,探索基于创新工程教育的基本方法,并将其提炼为适合我国国情、具有自身特色的创新实践教材。本书将实际教学中应用智能硬件的创新工程教学经验进行总结,包括具体的创新方法和开发案例,希望对教育教学及工业界有所帮助,起到抛砖引玉的作用。
本书系统地介绍了如何利用Arduino开发平台进行产品开发,包括相关的设计、实现与产品的应用。传统Arduino方面的书籍仅侧重介绍硬件开发平台的实现方法,而很少关注具体创新案例的开发及工程教育方法应用。因此,本书试图面向未来的工业创新与发展,通过CDIO的工程教育方法,以智能开源硬件平台为基础,培养面向工业4.0的创新型人才。
本书的内容和素材主要来自于作者所在的学校近几年承担的教育部和北京市的教育、教学改革项目和成果,是北京邮电大学信息工程专业的所有同学,通过基于CDIO工程教育方法的实施,使得创新产品的整个过程得到了实现,同学们不但学到了知识,提高了能力,而且为本书提供了第一手素材和资料。本书的主要内容包括Arduino项目设计基础和22个开发案例,涉及智能控制类开发案例、生活便捷类开发案例、物联网络类开发案例、人机交互类开发案例及其他创意类开发案例。
对于书中的每个案例从项目背景、创意描述、功能及总体设计、具体电路图、系统流程图、子模块介绍、产品展示、故障及问题分析以及每个案例所用元器件进行详细讲解,使读者可以从不同层面对开发案例进行分析、理解和具体实现。
本书的编写得到了教育部电子信息类专业教学指导委员会、信息工程专业国家第一类特色专业建设项目、信息工程专业国家第二类特色专业建设项目、教育部CDIO工程教育模式研究与实践项目、教育部本科教学工程项目、信息工程专业北京市特色专业建设、北京市教育教学改革项目及北京邮电大学教学综合改革项目的大力支持,在此表示感谢!
同时,也特别感谢林家儒教授的鼎力支持和悉心指导,感谢谭扬、郑铖、黄旭新、顾铁玥等研究生同学的大力协助,感谢北京邮电大学信息工程专业所有同学,感谢父母妻儿在精神上给予的支持与鼓励,才使得本书得以问世!
本书由北京市教育科学“十二五”规划重点课题(优先关注)和北京市职业教育产教融合专业建设模式研究(ADA15159)资助,特此表示感谢!
本书内容由总到分、先思考后实践,创新思维与实践案例相结合,以满足不同层次人员的需求; 同时,本书附有实际项目的硬件设计图和软件实现代码,可供读者自我学习和自我提高使用。本书可作为大学信息与通信工程及相关专业的本科生教材,也可以作为智能硬件爱好者创新手册使用,还可以为创客的需求产生、分析产品、设计生产、实现产品提供帮助。对于从事物联网创新开发和设计的专业技术人员,本书也可以作为主要的技术参考书。
由于作者的水平有限,书中难免存在不当之处,衷心地希望各位读者提出宝贵意见及具体的整改措施,以便作者进一步修改和完善。
李永华
2017年9月
于北京邮电大学
Arduino:点燃创意火花,开启智能制造之旅 在这个日新月异的时代,科技的触角已深入我们生活的方方面面,从智能家居的便捷舒适,到工业生产的精益求精,再到科学研究的探索未知,无不闪耀着电子技术与编程智慧的光芒。而 Arduino,作为一款开源的、易于上手的硬件原型开发平台,正以前所未有的力量,将复杂的电子世界变得触手可及,让每一个有创意、有想法的人,都能有机会将脑海中的蓝图变为现实。 本书,《Arduino案例实战(卷Ⅰ)/清华开发者书库》,并非一本简单的技术手册,而是一次充满激情的探索之旅。我们旨在带领您走进 Arduino 的奇妙世界,让您在亲手实践中,深刻理解电子元器件的工作原理,掌握编程的逻辑思维,并最终能够独立设计和实现各种智能化的小项目。本书将重点聚焦于 Arduino 的核心应用,通过一系列精心设计的实战案例,引导您一步步掌握 Arduino 的基础知识,并将其融会贯通,应用于实际问题解决。 为什么选择 Arduino? Arduino 平台的核心魅力在于其 开放性、易用性与强大的社区支持。 开放性: Arduino 的硬件设计图纸和软件代码都是开源的,这意味着您可以自由地学习、修改、甚至重新设计 Arduino 的硬件。这种开放性催生了无数的第三方硬件扩展板(Shields)和传感器,极大地丰富了 Arduino 的应用可能性。 易用性: 与传统的嵌入式开发相比,Arduino 的开发环境(IDE)极其简洁直观,编程语言基于 C/C++,但进行了大量简化,使得初学者也能快速上手。Arduino 的核心开发板通常集成了微控制器、USB 接口、电源管理等,无需复杂的外部电路即可直接连接电脑进行编程和供电。 社区支持: Arduino 拥有一个庞大而活跃的全球社区。无论您遇到任何问题,都能在论坛、博客、教程中找到答案,或者获得热心的帮助。这为您的学习之路扫清了障碍,让您少走弯路。 本书将带您领略哪些精彩? 本书的每一章都围绕着一个或一组核心技术点,通过 理论讲解、实例剖析、代码解析、实验演示 等多种形式,帮助您扎实掌握每一个知识点。我们深知理论学习的枯燥,因此,本书将 “实战” 置于核心地位,让您在动手操作中,真正理解技术。 第一篇:Arduino 的基石——硬件与软件的初步认知 在本篇中,我们将为您奠定坚实的 Arduino 基础。 认识 Arduino: 您将了解 Arduino 的历史渊源、不同型号开发板的特点与选型建议。从最经典的 Arduino Uno 开始,我们将深入剖析其核心组件,如 ATmega 微控制器、供电电路、数字与模拟 I/O 引脚等。 搭建开发环境: 我们将一步步指导您下载、安装 Arduino IDE,并配置好您的开发环境,让您能够轻松地将代码上传到 Arduino 板上。 点亮第一盏 LED: 这是一个经典的起点,但它包含着深刻的意义。您将学会如何通过数字输出来控制 LED 的开关,理解高低电平的概念,并学会编写简单的“Blink”程序。 数字输入与输出: 除了控制 LED,您还将学习如何读取按钮的状态,并通过按钮来控制 LED 的亮灭,从而理解数字输入与输出的交互逻辑。 模拟世界的探索: 现实世界充满了模拟信号,如温度、光照强度等。您将接触到模拟输入,学习使用电位器、光敏电阻等传感器,并通过 Arduino 的 ADC(模数转换器)将模拟信号转换为数字信号进行处理。 PWM 控制: 您将学习脉冲宽度调制(PWM)技术,这是一种强大的技术,可以用来控制 LED 的亮度,甚至驱动直流电机实现速度调节。 串口通信: 学习如何利用 Arduino 的串口通信功能,将数据发送到电脑,并在串口监视器中查看,这是调试程序、观察传感器数据的重要手段。 第二篇:传感器与执行器——与世界互联的桥梁 了解了 Arduino 的基本操作后,我们将进一步扩展其能力,使其能够感知和影响外部世界。 数字传感器的应用: 您将学习如何连接和使用各种常见的数字传感器,如温湿度传感器(DHT11/DHT22)、红外传感器、超声波传感器、光敏传感器等。通过这些传感器,Arduino 可以获取环境信息,并根据这些信息做出相应的决策。 模拟传感器的精妙: 除了前面提到的基础模拟传感器,我们还将深入探索更多复杂的模拟传感器,例如土壤湿度传感器、倾角传感器等,理解它们的工作原理和数据读取方法。 步进电机与舵机控制: 学习如何精确控制步进电机和舵机。步进电机可以实现精确的角度定位,常用于打印机、机器人手臂等;舵机则广泛应用于模型制作、机器人关节等需要角度控制的场合。 LCD/OLED 显示屏的交互: 如何将信息直观地展示出来?您将学习如何连接和驱动 LCD 或 OLED 显示屏,将传感器数据、程序状态等信息显示在屏幕上,实现更友好的用户交互。 蜂鸣器与音频输出: 让您的 Arduino 发出声音!您将学习如何驱动蜂鸣器,发出不同频率和时长的声音,甚至尝试创作简单的旋律。 第三篇:进阶应用与案例实战——构筑您的智能梦想 在掌握了基础知识和常见外围设备的使用后,我们将进入更具挑战性和创造性的阶段,通过一系列综合性的案例,将所学知识融会贯通。 智能家居入门: 智能灯光控制: 利用光敏传感器和继电器,实现根据光照强度自动开关灯的功能;结合按钮或遥控,实现手动控制。 温湿度监测与报警: 使用温湿度传感器实时监测室内环境,当温度或湿度超出设定范围时,通过蜂鸣器或短信(通过GPRS模块)发出警报。 智能门锁模拟: 利用键盘模块和舵机,模拟一个简单的密码锁,输入正确密码后,舵机转动,模拟门锁打开。 物联网(IoT)基础: ESP8266/ESP32 Wi-Fi 通信: 学习如何将 Arduino 与 ESP8266 或 ESP32 等 Wi-Fi 模块结合,实现与互联网的连接。 数据上传与云平台对接: 将传感器数据上传到 ThinkSpeak、Blynk 等云平台,并通过手机 APP 或网页进行远程监控和控制。 简易机器人制作: 循迹小车: 利用红外传感器或超声波传感器,制作一个能够沿着黑线(或避开障碍物)行进的小车。 遥控小车: 结合蓝牙模块或射频模块,实现通过手机 APP 或无线遥控器控制小车的移动。 其他趣味项目: 电子时钟: 利用 RTC 模块(实时时钟)和 LCD 显示屏,制作一个精确的电子时钟。 天气预报显示: 通过 Wi-Fi 获取网络天气数据,并显示在 LCD 屏上。 简易游戏机: 利用按钮和 LCD 屏,制作一个简单的贪吃蛇或打砖块游戏。 学习方法与本书特色 本书强调 “做中学” 的学习理念。每一章的案例都设计得循序渐进,从简单到复杂,从独立模块到系统集成。我们不仅提供清晰的代码,更重要的是 深入剖析代码背后的逻辑,让您理解“为什么这么写”,而不仅仅是“怎么写”。 完整的代码示例: 每一段代码都经过严格测试,可以直接运行。 详细的电路图: 配备清晰直观的电路连接图,帮助您准确无误地连接硬件。 原理讲解深入浅出: 对于关键的电子元件和编程概念,我们会进行通俗易懂的讲解,避免过于晦涩的技术术语。 常见问题解答: 在各个章节的末尾,我们会总结该章节可能遇到的常见问题,并提供解决方案,帮助您规避学习中的“坑”。 拓展思考: 在每个案例之后,我们都会提出一些拓展思路,鼓励您在此基础上进行二次创新,设计出更符合您需求的个性化项目。 本书的目标读者 本书适合所有对电子制作、机器人、物联网、创客文化感兴趣的读者,无论您是: 初学者: 对电子和编程完全陌生的学生、爱好者,希望以一种有趣、有效的方式入门。 在校学生: 学习电子工程、计算机科学、自动化等专业的学生,希望通过实践加深理论理解,提升动手能力。 业余爱好者: 喜欢动手制作、追求科技乐趣的个人,希望将创意转化为现实。 教育工作者: 寻找优秀的 Arduino 教材,用于课堂教学或课外活动。 初级工程师: 希望快速了解 Arduino 平台,并将其应用于原型开发和产品验证的工程师。 结语 Arduino 的世界是广阔而精彩的。它不仅仅是一块开发板,更是一种 创造的工具,一种解决问题的思维方式,一种连接现实与虚拟的桥梁。本书《Arduino案例实战(卷Ⅰ)/清华开发者书库》,将是您在这条探索之路上最忠实的伙伴。 请准备好您的 Arduino 开发板、各种传感器、执行器,以及一颗充满好奇的心。让我们一起,点燃创意的火花,开启您的智能制造之旅,用 Arduino 创造属于您自己的科技奇迹!