描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302521938丛书名: 高等学校电子信息类专业系列教材
◆ 教学课件 案例代码以及电路图可到清华大学出版社网站本书页面下载。
◆ 学习辅导 《Arduino软硬件协同设计实战指南(第2版)》(李永华等编著,清华大学出版社)。
◆ 实验指导 《Arduino案例实战(卷Ⅰ)》~《Arduino案例实战(卷Ⅷ)》(李永华等编著,清华大学出版社)。
本书特色
本书严格参照教育部《普通高等学校本科专业目录(2012年)》、教育部高等学校电子信息类专业教学指导委员会规划教材的要求编写,是作者在教学改革实践中的成果总结。目前市场上出版的Arduino开源硬件图书以面向开发者的居多,而针对创新创业、开源硬件教学的图书比较缺乏。本书的讲解力求理论联系实际,注重培养读者分析问题和程序设计的能力,具体体现在如下四个方面:
◆ 受众广泛 本书介绍了Arduino基础知识到开发的整个过程,即可作为本科生教材,也可作为智能硬件爱好者的创新手册,同时还可作为从事物联网、创新开发和设计人员的技术参考书。
◆ 习题丰富 每章配备了涵盖主要知识点的习题及答案,通过边学边练、学练结合的方式,帮助读者巩固所学知识,掌握应知必会的内容。
◆ 实用性强 采取与案例相结合的教学方法,将程序设计、方法和技巧贯穿在实际案例中,构建了完善的教学解决
本书可作为大学信息与通信工程及相关专业的本科生教材,也可以作为智能硬件爱好者的创新手册或从事物联网、创新开发和设计的专业技术人员的参考书,还可以为创客需求产生、产品分析、设计生产、产品实现提供帮助。
第0章开源硬件概述
0.1Arduino
0.2Raspberry Pi
0.3BeagleBone
0.4Cubieboard
本章习题
第1章Arduino开源硬件
1.1Arduino UNO开发板
1.1.1概述
1.1.2技术规范
1.2Arduino YUN开发板
1.2.1概述
1.2.2技术规范
1.3Arduino DUE开发板
1.3.1概述
1.3.2技术规范
1.4Arduino MEGA 2560开发板
1.4.1概述
1.4.2技术规范
1.5Arduino LEONARDO开发板
1.5.1概述
1.5.2技术规范
1.6Arduino ETHERNET开发板
1.6.1概述
1.6.2技术规范
1.7Arduino ROBOT
1.7.1概述
1.7.2技术规范
1.8Arduino NANO开发板
1.8.1概述
1.8.2技术规范
本章习题
第2章Arduino软件开发平台
2.1Arduino平台特点
2.2Arduino IDE的安装
2.3Arduino IDE的使用
本章习题
第3章Arduino编程语言
3.1Arduino编程基础
3.2数字I/O引脚的操作函数
3.3模拟I/O引脚的操作函数
3.4高级I/O操作函数
3.5时间函数
3.6中断函数
3.7串口通信函数
本章习题
第4章Arduino硬件设计平台
4.1Fritzing软件简介
4.1.1主界面
4.1.2项目视图
4.1.3工具栏
4.2Fritzing使用方法
4.2.1查看元件库已有元件
4.2.2添加新元件到元件库
4.2.3添加新元件库
4.2.4添加或删除元件
4.2.5添加元件间连线
4.3Arduino电路设计
4.4Arduino开发平台样例与编程
本章习题
第5章Arduino开发基础
5.1入门开发例程
5.1.1Blink
5.1.2AnalogReadSerial
5.1.3DigitalReadSerial
5.1.4Fade
5.1.5ReadAnalogVoltage
5.2数字信号处理开发例程
5.2.1BlinkWithoutDelay
5.2.2Button
5.2.3Debounce
5.2.4DigitalInputPullup
5.2.5StateChangeDetection
5.2.6toneKeyboard
5.2.7toneMelody
5.2.8toneMultiple
5.2.9tonePitchFollower
5.3模拟信号处理开发例程
5.3.1AnalogInOutSerial
5.3.2AnalogInput
5.3.3AnalogWriteMega
5.3.4Calibration
5.3.5Fading
5.3.6Smoothing
本章习题
第6章Arduino扩展板
6.1Arduino以太网扩展板
6.1.1概述
6.1.2技术规范
6.2Arduino GSM扩展板
6.2.1概述
6.2.2技术规范
6.3Arduino电机扩展板
6.3.1概述
6.3.2技术规范
6.4Arduino 9轴运动扩展板
6.4.1概述
6.4.2技术规范
6.5Arduino WiFi扩展板
6.5.1概述
6.5.2技术规范
6.6Arduino的库文件
本章习题
第7章Arduino数据采集
7.1温湿度采集
7.1.1原理
7.1.2实验代码
7.2水位采集
7.2.1原理
7.2.2实验代码
7.3光强采集
7.3.1原理
7.3.2实验代码
7.4气体传感器
7.4.1原理
7.4.2实验代码
7.5超声波传感器
7.5.1原理
7.5.2实验代码
7.6压力传感器
7.6.1原理
7.6.2实验代码
7.7风速传感器
7.7.1原理
7.7.2实验代码
7.8拍照模块
7.8.1原理
7.8.2实验代码
本章习题
第8章Arduino显示控制
8.1LED
8.1.1原理
8.1.2电路图
8.1.3实验代码
8.2数码管
8.2.1原理
8.2.2电路图
8.2.3实验代码
8.3点阵
8.3.1原理
8.3.2点阵的使用方法
8.3.3实验代码
8.4液晶LCD
8.4.1原理
8.4.2电路图
8.4.3引脚扩展
8.4.4实验代码
本章习题
第9章Arduino电流控制
9.1直流电机
9.1.1原理
9.1.2电路图
9.1.3实验代码
9.2步进电机
9.2.1原理
9.2.2电路图
9.2.3实验代码
9.3舵机
9.3.1原理
9.3.2电路图
9.3.3实验代码
9.4继电器
9.4.1原理
9.4.2电路图
9.4.3实验代码
本章习题
第10章Arduino通信控制
10.1SPI串口通信
10.1.1原理
10.1.2电路图及使用
10.1.3实验代码
10.2红外线通信
10.2.1原理
10.2.2电路图及使用
10.2.3实验代码
10.3RFID通信
10.3.1原理
10.3.2电路图及使用
10.3.3实验代码
10.4以太网通信
10.4.1原理
10.4.2电路图及使用
10.4.3实验代码
10.5WiFi通信
10.5.1原理
10.5.2电路图及使用
10.5.3实验代码
10.6蓝牙通信
10.6.1原理
10.6.2电路图及使用
10.6.3实验代码
10.7XBee通信
10.7.1原理
10.7.2电路图及使用
10.7.3实验代码
本章习题
第11章自动还原魔方人工智能项目设计
11.1功能及总体设计
11.1.1功能介绍
11.1.2总体设计
11.2模块介绍
11.2.1ESP8266模块
11.2.2输出模块
11.2.3主程序模块
11.3产品展示
11.4故障及问题分析
11.5元件清单
第12章蓝牙智能锁项目设计
12.1功能及总体设计
12.1.1功能介绍
12.1.2总体设计
12.2模块介绍
12.2.1自动解锁模块
12.2.2手动解锁模块
12.2.3手机APP
12.2.4主程序模块
12.3产品展示
12.4故障及问题分析
12.5元件清单
第13章LED多模式显示时钟项目设计
13.1功能及总体设计
13.1.1功能介绍
13.1.2总体设计
13.2模块介绍
13.2.1模式控制模块
13.2.2DS1307模块
13.2.3显示模块
13.2.4主程序模块
13.3产品展示
13.4故障及问题分析
13.5元件清单
附录A习题参考答案
自21世纪以来,信息技术的发展日新月异,特别是经过近五年的快速发展,移动互联网、物联网、智能硬件给社会带来了巨大的冲击,个性化、定制化和时尚化的智能硬件设备已经成为未来发展的趋势。大学作为传播知识、科研创新、服务社会的最主要机构,为社会培养具有创新思维的现代化人才责无旁贷,而具有时代特色的教材又是培养现代化人才的基础,所以教材的重要性不言而喻。
工业的发展使人类社会经历了大规模生产、电气化生产、自动化生产、智能定制化生产的阶段。不同的发展阶段对人才需求是不同的,因此,人才培养模式在不同的时代背景下,应该具有不同的要求。作者依据当今信息社会的发展趋势,结合智能硬件的发展需求,基于工程教育教学经验,探索创新工程教育的基本方法,意欲将其提炼为适合我国国情,具有自身特色的创新实践教材。尽管这个理想是非常远大的,却可以进行大胆尝试。因此,本书针对实践教学,对开源硬件的教学应用进行描述,同时总结了智能开源硬件在工程教学中的具体案例,包括开源硬件的基本开发方法、软件和硬件设计及应用实现等内容,希望对教育教学及工业界有所帮助,起到抛砖引玉的作用。
本书在“大众创业,万众创新”的时代发展背景下,总结了开源硬件的发展,并详细介绍了Arduino开源硬件的开发方法,给出了系统开发Arduino智能开源硬件产品的实际案例。其主要内容包括四个方面: Arduino开源硬件与Arduino开发板、开发环境及编程语言(第0~3章),介绍了开源硬件开发的基本知识和方法,包括开源硬件的发展、常用的开发板以及Arduino IDE的使用和相关的编程语言等; Arduino开发产品的基本方法(第4~6章),包括硬件设计方法Fritzing的使用、Arduino入门程序设计和扩展板的使用; 外围硬件及传感器使用方法(第7~10章),包括智能开源硬件平台、传感器和模块,从功能、电路连接和实例程序等方面介绍其使用方法; 综合案例的开发(第11~13章),包括控制类项目开发、交互类项目开发以及大型综合项目开发。
本书的内容和素材,除了引用的参考文献之外,主要来源于以下几方面: 作者所在学校近几年承担的教育部和北京市的教育教学改革项目与成果,在此特别感谢林家儒教授的鼎力支持和悉心指导; 作者指导的研究生在物联网和智能硬件方面的研究工作及成果总结,在此特别感谢郑铖、谭扬、黄旭新、顾铁钥、高凡石和陈佳丰等的大力协助; 北京邮电大学信息工程专业的创新实践,该专业同学通过基于CDIO工程教育方法,实现创新产品,不但学到了知识,提高了能力,而且为本书提供了第一手素材和资料,在此向信息工程专业的所有同学表示感谢。
需要说明的是: 本书电路图的绘制采用Fritzing英文版软件,所以图中术语用英文表示。
本书的编写得到了海尔创客实验室、教育部电子信息类专业教学指导委员会,信息工程专业国家第一类特色专业建设项目,信息工程专业国家第二类特色专业建设项目,教育部CDIO工程教育模式研究与实践项目,教育部本科教学工程项目,信息工程专业北京市特色专业项目,北京市高等学校教育教学改革项目的大力支持; 本书由北京邮电大学教育教学改革项目(2018JC01)资助,特此表示感谢!
由于作者的水平有限,书中不当之处在所难免,衷心地希望各位读者多提宝贵意见及建议,以便作者进一步修改和完善。
李永华
于北京邮电大学
2019年1月
CHAPTER 3
Arduino编程语言
Arduino编程语言是建立在C/C 语言基础上的,即以C/C 语言为基础,通过把AVR单片机(微控制器)相关的一些寄存器参数设置等进行函数化,以利于开发者更加快速地使用,其主要使用的函数包括: 数字I/O操作、模拟I/O操作、高级I/O操作、时间、中断、通信和数学等多种函数。
3.1Arduino编程基础
Arduino的程序结构主要包括两部分: void setup()和void loop()。其中,前者是声明变量及引脚名称(例如: int val;int ledPin=13;),是在程序开始时使用,初始化变量、引脚模式、调用库函数等(例如: pinMode(ledPin,OUTUPT);)。而void loop(),是在setup()函数之后,voidloop()程序不断地循环执行,是Arduino的主体。
主要使用的关键字有: if、if…else、for、switch、case、while、do…while、break、continue、return、goto。
语法符号: 每条语句以分号“;”结尾,每段程序以花括号“{}”括起来。
数据类型: boolean、char、int、unsigned int、long、unsigned long、float、double、string、array、void。
常量: HIGH或者LOW,表示数字I/O引脚的电平,HIGH表示高电平(1),LOW表示低电平(0)。INPUT或者OUTPUT,表示数字I/O引脚的方向,INPUT表示输入(高阻态),OUTPUT表示输出(AVR能提供5V电压,40mA电流)。TRUE或者FALSE,TRUE表示真(1),FALSE表示假(0)。
1. setup()
当程序开始运行时,函数调用一次。用于在循环loop()开始执行之前定义初始环境属性,如引脚模式(INPUT或OUTPUT)、启动串行端口等。在setup()中声明的变量在loop()中是不可访问的。语法规则为void setup() {},举例如下:
void setup()
{
pinMode(8, OUTPUT);
Serial.begin(9600);
}
void loop()
{
Serial.print(‘.’);
delay(1000);
}
2. loop()
连续执行包含在其内的代码行,直到程序停止。loop()函数与setup()一起使用。每秒执行loop()的次数可以用delay()和delayMicroseconds()函数来控制。
语法规则为loop() {},举例如下:
void setup()
{
pinMode(WLED, OUTPUT); //设置板载LED引脚为输出
}
void loop()
{
digitalWrite(WLED, HIGH); //设置LED为开
delay(1000); //延迟1s
digitalWrite(WLED, LOW); //设置LED为关
delay(1000); //延迟1s
}
评论
还没有评论。