书籍详情
《Arduino开源硬件概论/高等学校电子信息类专业系列教材》[38M]百度网盘|亲测有效|pdf下载
  • Arduino开源硬件概论/高等学校电子信息类专业系列教材

  • 出版时间:2019-04
  • 热度:6419
  • 上架时间:2024-06-30 09:38:03
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

产品特色

内容简介

本书在“大众创业,万众创新”的时代背景下,结合当前高等院校创新实践课程,总结基于Arduino开源硬件的开发方法,并给出系统开发Arduino智能硬件产品的实际案例。其主要内容包括四个方面: Arduino开源硬件与Arduino开发板、开发环境及编程语言,介绍了开源硬件开发的基本知识和方法,包括开源硬件的发展、常用的开发板以及Arduino IDE的使用和相关的编程语言等; Arduino开发产品的基本方法,包括硬件设计方法Fritzing的使用、Arduino入门程序设计和扩展板的使用; 外围硬件及传感器使用方法,包括智能开源硬件平台、传感器和模块,从功能、电路连接和实例程序等方面介绍其使用方法; 综合案例的开发,包括控制类项目开发,交互类项目开发以及大型综合项目开发。本书内容由浅入深,引导读者先思考后实践,将创新思维与实践案例相结合,以满足不同层次的人员需求。同时,本书提供实际项目的硬件设计图和软件实现代码,供读者自学和提高使用。

本书可作为大学信息与通信工程及相关专业的本科生教材,也可以作为智能硬件爱好者的创新手册或从事物联网、创新开发和设计的专业技术人员的参考书,还可以为创客需求产生、产品分析、设计生产、产品实现提供帮助。


作者简介

李永华 现执教于北京邮电大学,拥有超过10年的嵌入式开发经验,致力于物联网和智能硬件的研究开发工作。在教学中以兴趣为导向,激发学生的创造性;以素质为基础,提高自身教学水平;以科研为手段,促进教学理念转变。通过信息工程专业综合改革,探索了以“学生学为中心”的教学模式,营造生动活泼的学习方法,提高学生独立思考问题、发现问题、解决问题的能力,激发学生的创造激情。在研发及教学实践中指导学生实现200余个创新案例,并指导着一支物联网开发团队,曾在物联网、开源硬件等技术领域进行了多场学术报告,并且出版了《AllJoyn技术原理及物联网程序开发指南》《Arduino实战指南——游戏开发、智能硬件、人机交互、智能家居与物联网设计30例》《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习题参考答案



精彩书摘

第3章

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


}


前言/序言

前言

自21世纪以来,信息技术的发展日新月异,特别是经过近五年的快速发展,移动互联网、物联网、智能硬件给社会带来了巨大的冲击,个性化、定制化和时尚化的智能硬件设备已经成为未来发展的趋势。大学作为传播知识、科研创新、服务社会的最主要机构,为社会培养具有创新思维的现代化人才责无旁贷,而具有时代特色的教材又是培养现代化人才的基础,所以教材的重要性不言而喻。

工业的发展使人类社会经历了大规模生产、电气化生产、自动化生产、智能定制化生产的阶段。不同的发展阶段对人才需求是不同的,因此,人才培养模式在不同的时代背景下,应该具有不同的要求。作者依据当今信息社会的发展趋势,结合智能硬件的发展需求,基于工程教育教学经验,探索创新工程教育的基本方法,意欲将其提炼为适合我国国情,具有自身特色的创新实践教材。尽管这个理想是非常远大的,却可以进行大胆尝试。因此,本书针对实践教学,对开源硬件的教学应用进行描述,同时总结了智能开源硬件在工程教学中的具体案例,包括开源硬件的基本开发方法、软件和硬件设计及应用实现等内容,希望对教育教学及工业界有所帮助,起到抛砖引玉的作用。

本书在“大众创业,万众创新”的时代发展背景下,总结了开源硬件的发展,并详细介绍了Arduino开源硬件的开发方法,给出了系统开发Arduino智能开源硬件产品的实际案例。其主要内容包括四个方面: Arduino开源硬件与Arduino开发板、开发环境及编程语言(第0~3章),介绍了开源硬件开发的基本知识和方法,包括开源硬件的发展、常用的开发板以及Arduino IDE的使用和相关的编程语言等; Arduino开发产品的基本方法(第4~6章),包括硬件设计方法Fritzing的使用、Arduino入门程序设计和扩展板的使用; 外围硬件及传感器使用方法(第7~10章),包括智能开源硬件平台、传感器和模块,从功能、电路连接和实例程序等方面介绍其使用方法; 综合案例的开发(第11~13章),包括控制类项目开发、交互类项目开发以及大型综合项目开发。

本书的内容和素材,除了引用的参考文献之外,主要来源于以下几方面: 作者所在学校近几年承担的教育部和北京市的教育教学改革项目与成果,在此特别感谢林家儒教授的鼎力支持和悉心指导; 作者指导的研究生在物联网和智能硬件方面的研究工作及成果总结,在此特别感谢郑铖、谭扬、黄旭新、顾铁钥、高凡石和陈佳丰等的大力协助; 北京邮电大学信息工程专业的创新实践,该专业同学通过基于CDIO工程教育方法,实现创新产品,不但学到了知识,提高了能力,而且为本书提供了第一手素材和资料,在此向信息工程专业的所有同学表示感谢。

需要说明的是: 本书电路图的绘制采用Fritzing英文版软件,所以图中术语用英文表示。

本书的编写得到了海尔创客实验室、教育部电子信息类专业教学指导委员会,信息工程专业国家第一类特色专业建设项目,信息工程专业国家第二类特色专业建设项目,教育部CDIO工程教育模式研究与实践项目,教育部本科教学工程项目,信息工程专业北京市特色专业项目,北京市高等学校教育教学改革项目的大力支持; 本书由北京邮电大学教育教学改革项目(2018JC01)资助,特此表示感谢!

由于作者的水平有限,书中不当之处在所难免,衷心地希望各位读者多提宝贵意见及建议,以便作者进一步修改和完善。

李永华

于北京邮电大学

2019年1月