书籍详情
《Arduino软硬件协同设计实战指南(第2版)(清华开发者书库)》[41M]百度网盘|亲测有效|pdf下载
  • Arduino软硬件协同设计实战指南(第2版)(清华开发者书库)

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

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

内容介绍

内容简介

《Arduino软硬件协同设计实战指南》(第2版以物联网和智能开源硬件的发展为背景,总结了基于Arduino开源硬件的开发方法,并给出了系统开发Arduino智能硬件产品的实际案例。主要内容分四个方面: Arduino开源硬件产品、开发环境及编程语言(第1~3章)——主要介绍当今常用的开发板,以及Arduino IDE的使用和相关的编程语言等; Arduino开发产品的基本方法(第4~6章)——主要介绍硬件设计方法Fritzing的使用、Arduino程序设计和扩展板的使用; 外围硬件及传感器使用方法(第7~10章)——主要介绍智能开源硬件平台、各种传感器和模块; 综合案例的开发(第11~20章)——主要介绍游戏类开发、控制类开发、交互类开发、物联网开发以及大型综合项目开发。本书内容由浅入深、先思考后实践,创新思维与实践案例相结合,以满足不同层次读者的需求; 同时,本书配有实际项目的硬件设计图和软件实现代码,可供读者学习使用。

本书可作为高校信息与通信工程专业的本科生教材,也可以作为智能硬件爱好者的参考用书。对于从事物联网开发的专业技术人员,也可以作为参考用书。

目录

目录


第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 Ethernet Shield


6.1.1概述


6.1.2技术规范


6.2Arduino GSM Shield


6.2.1概述


6.2.2技术规范


6.3Arduino Motor Shield


6.3.1概述


6.3.2技术规范


6.4Arduino 9 Axes Motion Shield


6.4.1概述


6.4.2技术规范


6.5Arduino WiFi Shield


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.4Ethernet通信


10.4.1原理


10.4.2电路图及使用


10.4.3实验代码


10.5WiFi通信


10.5.1原理


10.5.2电路图及使用


10.5.3实验代码


10.6BlueTooth通信


10.6.1原理


10.6.2电路图及使用


10.6.3实验代码


10.7XBee通信


10.7.1原理


10.7.2电路图及使用


10.7.3实验代码


第11章游戏类开发


11.1Jumping Pong


11.1.1功能构思


11.1.2设计原理


11.1.3参考代码


11.2打地鼠游戏机


11.2.1功能构思


11.2.2设计原理


11.2.3参考代码


第12章控制类开发


12.1蓝牙控制智能车


12.1.1功能构思


12.1.2设计原理


12.1.3参考代码


12.2可抓取机械手臂


12.2.1功能构思


12.2.2设计原理


12.2.3参考代码


第13章交互类开发


13.1虚拟架子鼓


13.1.1功能构思


13.1.2设计原理


13.1.3参考代码


13.2触摸按键交互设计


13.2.1功能构思


13.2.2设计原理


13.2.3参考代码


第14章物联网开发


14.1植物生长助手


14.1.1功能构思


14.1.2设计原理


14.1.3参考代码


14.2环境信息采集系统


14.2.1功能构思


14.2.2设计原理


14.2.3参考代码


14.3家居灯光控制系统


14.3.1功能构思


14.3.2设计原理


14.3.3参考代码


第15章智慧农业设计与开发


15.1简介


15.2系统逻辑结构图


15.3开发板选型


15.3.1开发板简介


15.3.2参考代码


15.4感知层的设计


15.4.1流程图


15.4.2Arduino的GET、POST程序


15.5平台层的设计


15.5.1创建RESTFul WCF服务


15.5.2相关数据库设计


15.5.3平台数据接口开发


15.5.4Fiddler测试REST服务


15.5.5编写平台图片数据接收


15.5.6Arduino请求平台


第16章手势图案解锁门项目设计


16.1项目背景


16.2创意描述


16.3功能及总体设计


16.3.1功能介绍


16.3.2总体设计


16.3.3模块介绍


16.4产品展示


16.5故障及问题分析


16.6元器件清单


第17章激光雕刻机项目设计


17.1项目背景


17.2创意描述


17.3功能及总体设计


17.3.1功能介绍


17.3.2总体设计


17.3.3模块介绍


17.4产品展示


17.5故障及问题分析


17.6元器件清单


第18章App遥控四轴飞行器项目设计


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元器件清单


参考文献


附录A面包板的使用



精彩书摘

第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


}


3.2数字I/O口的操作函数

数字I/O口的操作函数主要有pinMode()、digitalWrite()、digitalRead(),下面分别介绍各自的用法。

1. pinMode()

pinMode(pin,mode)函数将指定的数字I/O引脚设置为INPUT、OUTPUT或INPUT_PULLUP。可以使用digitalWrite()和digitalRead()方法设置或读取数字I/O引脚的值,它是一个无返回值函数。函数有两个参数: pin和mode。pin参数表示要配置的引脚,mode参数表示设置的参数INPUT(输入)、OUTPUT(输出),也可以使用INPUT_PULLUP模式使能内部上拉电阻。此外,INPUT模式显式禁用内部上拉。

INPUT参数用于读取信号,OUTPUT用于输出控制信号。PIN的范围是数字引脚0~13,也可以把模拟引脚(A0~A5)作为数字引脚使用,此时编号为14脚对应模拟引脚0,19脚对应模拟引脚5。一般会放在setup里,先设置再使用。

在下面的例子中,将数字引脚3定义为pinIN,将数字引脚4定义为pinOUT。通过方法pin将pinIN编程为INPUT,将pinOUT设置为OUTPUT。在循环中,用数字读数读取pinIN的值,如果为高电平(值为1),引脚输出设置为高电平或低电平。


int pinIN = 3;


int pinOUT = 4;


int value = 0;


void setup() {


pinMode(pinIN, INPUT);


pinMode(pinOUT, OUTPUT);


}


void loop() {


value = digitalRead(pinIN);


if (value == HIGH)


{


digitalWrite(pinOUT, HIGH);


} else {


digitalWrite(pinOUT, LOW);


}


}


前言/序言

前言

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

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

本书以当前物联网和智能开源硬件的发展为背景,总结Arduino开源硬件的开发方法,给出了系统开发Arduino智能硬件产品的实际案例。主要内容分四个方面: Arduino开源硬件产品、开发环境及编程语言(第1~3章),为开源硬件开发提供基本的知识和方法,主要介绍常用的开发板以及Arduino IDE的使用和相关的编程语言等; Arduino开发产品的基本方法(第4~6章),包括硬件设计方法Fritzing的使用、Arduino入门程序设计和扩展板的使用; 外围硬件及传感器使用方法(第7~10章),包括智能开源硬件平台、各种传感器和模块,从功能、使用方法、电路连接和实例程序等方面介绍其使用方法; 综合案例的开发(第11~20章),包括游戏类开发、控制类开发、交互类开发、物联网开发及大型综合项目开发。

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

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

本书内容由浅入深、先思考后实践,创新思维与实践案例相结合,以满足不同层次的人员需求; 同时,本书附有实际项目的硬件设计图和软件实现代码,供读者自我学习和自我提高。本书可作为大学信息与通信工程及相关领域的本科生教材,也可以作为智能硬件爱好者的创新手册使用,还可以为创客的需求产生、分析产品、设计生产、实现产品提供帮助。对于从事物联网、创新开发和设计的专业技术人员,本书也可以作为主要的技术参考书。

本书主要由李永华、王思野编著。此外,李和禹、陈河泉、陈向梅、张秋彤、李昕烨、张国利也参与了部分内容的编写。

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



李永华于北京邮电大学2018年1月