出版时间:2012-3 出版社:机械工业出版社 作者:程晨 页数:323
Tag标签:无
内容概要
目前,在国内关注Arduino的人越来越多,但介绍Arduino的书籍却很少。Arduino是一个注重实际动手操作应用的产品,所以本书以实际应用为纽带将各个章节联系起来。本书首先介绍Arduino的一些基础知识,接着针对具体应用介绍了一些扩展板以及Arduino扩展库,最后应用之前的内容完成了具有视频监控功能的履带车、遥控机械臂以及双足机器人的制作。内容是循序渐进,使读者深刻的理解Arduino的优点,本书会引领您走入Arduino的精彩世界。
作者简介
程晨,国内较早接触Arduino的硬件工程师,在Arduino的应用方面拥有丰富的实战经验。对Arduino的底层代码进行了长达一年的学习与研究,同时使用过大量的ArdtJino类库,对于Arduino的架构和实现原理有着非常深入的理解和认识。同时在PC端、手机端的应用程序开发方面也有一定的经验,应用Arduino进行过多款交互式产品制作。
书籍目录
前言
第一篇 基础篇
第1章 初识Arduino
1.1 Arduino的历史
1.2 Arduino的家族
1.3 Arduino的资源
1.4 Arduino的开发环境
1.5 添加新硬件及设置开发环境
1.6 Arduino开发环境的应用
第2章 编写Arduino程序
2.1 绘制流程图
2.1.1 流程图基本符号
2.1.2 流程图的三种基本结构
2.2 C语言的标识符与关键字
2.2.1 标识符
2.2.2 关键字
2.2.3 运算符
2.2.4 分隔符
2.2.5 常量
2.2.6 注释符
2.3 控制语句
2.3.1 if语句
2.3.2 switch语句
2.3.3 while语句
2.3.4 do-while语句
2.3.5 for语句
2.3.6 break语句
2.3.7 continue语句
2.3.8 goto语句
2.4 程序结构
第3章 Arduino的基本函数
3.1 数字I/O
3.1.1 pinMode(pin,mode)
3.1.2 digitalWrite(pin,value)
3.1.3 digitalRead(pin)
3.2 模拟I/O
3.2.1 analogReference(type)
3.2.2 analogRead(pin)
3.2.3 analogWrite(pin, value)
3.3 高级I/O
3.3.1 shiftOut(dataPin,clockPin, bitOrder,val)
3.3.2 pulseIn(pin,state,timeout)
3.4 时间函数
3.4.1 millis( )
3.4.2 delay(ms)
3.4.3 delayMicroseconds(us)
3.5 数学库
3.5.1 min(x,y)
3.5.2 max(x,y)
3.5.3 abs(x)
3.5.4 constrain(amt,low,high)
3.5.5 map(x,in_min,in_max,out_min, out_max)
3.5.6 三角函数
3.6 随机数
3.6.1 randomSeed(seed)
3.6.2 random(howsmall,howbig)
3.7 位操作
3.8 中断函数
3.8.1 interrupts( )和noInterrupts( )
3.8.2 attachInterrupt(interrupt,function,mode)
3.9 串口通信
3.10 SPI接口
3.10.1 SPI接口概述
3.10.2 SPI接口数据传输
3.10.3 SPI类及其成员函数
第4章 Arduino硬件平台
4.1 Arduino的原理图
4.2 串行通信口的使用
4.2.1 实例功能
4.2.2 硬件电路
4.2.3 程序设计
4.3 数字I/O口的使用
4.3.1 实例功能
4.3.2 硬件电路
4.3.3 程序设计
4.4 模拟I/O口的使用
4.4.1 实例功能
4.4.2 硬件电路
4.4.3 程序设计
4.5 烧写引导程序
4.5.1 下载器AVRISP
4.5.2 AVR Studio
4.5.3 烧写引导程序
第二篇 模块篇
第5章 Arduino基本扩展模块
5.1 L293 Motor Shield
5.1.1 直流电机的工作原理
5.1.2 H桥驱动电路
5.1.3 线性放大调速原理
5.1.4 PWM调速原理
5.1.5 L293 Motor Shield的原理
5.1.6 L293 Motor Shield的应用
5.1.7 程序设计
5.1.8 程序分析
5.1.9 程序的精练
5.2 Input Shield
5.2.1 Input Shield原理图
5.2.2 Input Shield的实例
5.2.3 程序设计
5.2.4 程序分析
5.2.5 使用摇杆控制直流电机转速
5.3 LCD Keypad Shield
5.3.1 液晶显示原理
5.3.2 标准1602液晶模块
5.3.3 1602液晶模块控制方式
5.3.4 LCD Keypad Shield原理图
5.3.5 LCD Keypad Shield应用实例
5.3.6 程序设计
5.3.7 程序分析
5.3.8 Arduino的液晶控制方式
5.3.9 “hello Arduino!”
5.4 Ethernet Shield
5.4.1 Ethernet Shield原理图
5.4.2 W5100芯片介绍
5.4.3 W5100芯片的寄存器
5.4.4 W5100芯片的使用
5.4.5 Ethernet Shield应用实例
5.4.6 程序设计
5.5 I/O扩展板
5.5.1 Xbee传感器扩展板V5
5.5.2 伺服电机控制
5.5.3 伺服电机应用实例
5.5.4 Interface shield
5.5.5 RGB LED Module
5.5.6 RGB LED Module应用实例
5.5.7 程序的精练
第6章 Arduino的扩展库
6.1 Arduino扩展库介绍
6.1.1 Arduino扩展库的作用
6.1.2 Arduino扩展库的应用
6.2 对象和类
6.2.1 类的定义
6.2.2 对象的创建及成员函数的调用
6.2.3 对象的初始化和构造函数
6.2.4 函数的重载
6.2.5 析构函数
6.3 LiquidCrystal库
6.3.1 构造函数
6.3.2 command( )和write( )
6.3.3 begin( )
6.3.4 clear( )
6.3.5 home( )
6.3.6 setCursor( )
6.3.7 noDisplay( )和display( )
6.3.8 cursor( )和noCursor( )
6.3.9 blink( )和noBlink( )
6.3.10 autoscroll( )和
noAutoscroll( )
6.3.11 scrollDisplayLeft( )和scrollDisplayRight( )
6.3.12 print( )
6.4 Ethernet库
6.4.1 EthernetClass类定义
6.4.2 Server类定义
6.4.3 Server类构造函数
6.4.4 Server类成员函数
6.4.5 Client类定义
6.4.6 Client类构造函数
6.4.7 Client类成员函数
6.5 SoftwareSerial库
6.5.1 构造函数
6.5.2 begin( )
6.5.3 read( )
6.5.4 print( )和println( )
6.5.5 使用限制
6.6 EEPROM库
6.6.1 read( )
6.6.2 write( )
6.7 Wire库
6.7.1 IIC总线概述
6.7.2 TwoWire类定义
6.7.3 begin( )
6.7.4 requestFrom( )
6.7.5 available ( )
6.7.6 receive( )
6.7.7 beginTransmission( )
6.7.8 endTransmission( )
6.7.9 send( )
6.7.10 onReceive( )
6.7.11 onRequest( )
6.8 Servo库
6.8.1 构造函数
6.8.2 attach()
6.8.3 write( )
6.8.4 writeMicroseconds( )
6.8.5 read( )
6.8.6 readMicroseconds( )
6.8.7 attached( )
6.8.8 detach( )
6.9 Stepper库
6.9.1 步进电机概述
6.9.2 步进电机的基本参数
6.9.3 步进电机的优缺点
6.9.4 步进电机的工作原理
6.9.5 步进电机的控制电路
6.9.6 Stepper类定义
6.9.7 构造函数
6.9.8 setSpeed( )
6.9.9 step( )
6.10 TLC5940库
6.10.1 Tlc5940类的定义
6.10.2 init( )
6.10.3 update( )
6.10.4 set( )
6.10.5 get( )
6.10.6 setAll( )
6.10.7 clear( )
6.11 OneWire库
6.11.1 单总线的结构
6.11.2 单总线控制方式
6.11.3 单总线信号形式
6.11.4 OneWire类
6.11.5 构造函数
6.11.6 reset( )
6.11.7 write_bit( )
6.11.8 read_bit( )
6.11.9 write( )
6.11.10 read( )
6.11.11 select( )
6.11.12 skip( )
6.12 XBee库
6.12.1 XBee类定义
6.12.2 构造函数
6.12.3 begin( )
6.12.4 readPacket( )
6.12.5 send( )
6.13 创建自己的库
6.13.1 库的功能—Morse
6.13.2 MorseCode类的定义
6.13.3 MorseCode类的成员函数
6.13.4 MorseCode库的使用
6.13.5 关键字的定义
第7章 无线模块的应用
7.1 APC220
7.1.1 APC220性能指标
7.1.2 模块引脚定义
7.1.3 模块的使用
7.1.4 注意事项
7.2 DFduino wireless
7.2.1 DFduino wireless性能指标
7.2.2 模块引脚定义
7.2.3 模块的使用
7.3 Bluetooth V3
7.3.1 Bluetooth V3性能指标
7.3.2 模块引脚定义
7.3.3 模块的使用
7.4 XBee和XBee PRO
7.4.1 XBee及XBee PRO性能指标
7.4.2 模块引脚定义
7.4.3 模块的使用
7.4.4 程序设计
第三篇 应用篇
第8章 打造自己的遥控履带车
8.1 履带车的驱动
8.1.1 实现功能
8.1.2 所需器材
8.1.3 硬件连接
8.1.4 程序设计
8.1.5 MotorCar类
8.1.6 类的应用
8.2 添加感知器件
8.2.1 实现功能
8.2.2 所需器材
8.2.3 器材介绍
8.2.4 硬件连接
8.2.5 程序设计
8.3 添加无线模块
8.3.1 实现功能
8.3.2 所需器材
8.3.3 硬件连接
8.3.4 程序设计
8.4 制作遥控器
8.4.1 实现功能
8.4.2 所需器材
8.4.3 硬件连接
8.4.4 程序设计
8.5 履带车遥控调速
8.5.1 实现功能
8.5.2 程序设计
8.6 添加无线摄像头
8.6.1 实现功能
8.6.2 所需器材
8.6.3 器材介绍
8.6.4 硬件连接
8.6.5 程序设计
8.7 环境信息获取器件
8.7.1 实现功能
8.7.2 所需器材
8.7.3 器材介绍
8.7.4 硬件连接
8.7.5 程序设计
第9章 仿生机器人
9.1 遥控机械臂
9.1.1 实例功能
9.1.2 器材列表
9.1.3 搭建硬件环境
9.1.4 安装控制部分
9.1.5 Wii游戏手柄
9.1.6 机械臂程序设计
9.2 双足机器人
9.2.1 实例功能
9.2.2 器材列表
9.2.3 搭建硬件环境
9.2.4 双足机器人程序设计
9.2.5 PC调试软件编写
9.2.6 双足机器人的调试
附录A Arduino引脚与AVR单片机管脚对应关系
附录B Arduino扩展板
附录C 其他可扩展模块
章节摘录
版权页:插图:Arduino是源自意大利的一个开放源代码的硬件项目平台,该平台包括一块具备简单I/O功能的电路板以及一套程序开发环境软件。Arduino可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制电灯、电机和其他各式各样的物理设备;Arduino也可以开发出与PC相连的周边装置,能在运行时与PC上的软件进行通信。Arduino的硬件电路板可以自行焊接组装,也可以购买已经组装好的模块,而程序开发环境的软件则可以从网上免费下载与使用。说到Arduino的起源似乎有点令人感觉无心插柳柳成荫。MassimoBanzi是意大利米兰互动设计学院的教师,他的学生常常抱怨不能找到一块价格便宜且功能强大的控制主板来设计他们的机器人。2005年的冬天,Banzi和1DavidCual。tielles讨论到这个问题,David Cuartielles是西班牙的微处理器设计工程师,当时在这所学校做访问研究。他们决定自己设计一块控制主板。他们找来了Banzi的学生DavidMellis,让他来编写代码程序。DavidMellis只花了两天时间就完成了代码的编写,然后又过了3天,板子就设计出来了,取名为Arduino。很快,这块板子受到了广大学生的欢迎。这些学生当中那些甚至完全不懂计算机编程的人,都用Arduino做出了“很炫”的东西:有人用它控制和处理传感器,有人用它控制灯闪烁,有人用它制作机器人……之后Banzi、Cuartielles和Mellis将设设计图上传到网上,然后花了3000欧元加工出第一批板子。Banzi等人当时加工了200块板子,卖给学校50块,起初还担心剩下的150块怎么卖出去,但是几个月后,他们的设计作品在网上得到了快速传播,接着他们收到了几个上百块板子的订单。这时他们明白Arduino是很有市场价值的,所以,他们决定开始Arduino的事业,但是有个原则——开源。他们规定任何人都可以复制、重设计甚至出售Arduino板子。人们不用花钱购买版权,连申请许可权都不用。但是,如果你加工出售Arduino原板,版权还是归Arduino团队所有。如果你是在基于.Arduino的设计上修改,你的设计必须也和Arduino一样开源。
媒体关注与评论
这是一本全面讲述Arduino应用开发的书,它从Arduino的I/O板和最基本的C语言入门开始,详细介绍了Arduino库和10多个第三方开源库及其对应的外围设备的使用与编程。这本书第三部分通过详细介绍两个实例展示了Arduino作品开发的过程,也体现了Arduino的强大潜力。本书适合Arduino的初学者作为循序渐进的教材,也适合希望深入学习Arduino的开发者作为参考手册。 ——浙江大学计算机学院Arduino创新教学实践者翁恺老师A rduIno是一个开源硬件平台,电子专业的学生完全可以通过查资料、买元件、做PCB、焊电路,制作自己的ArduIno硬件模块;同时,很多厂商也开发了各种各样的ArdtJino外围功能电路供学生选择,无论是电机驱动、无线通信、音乐播放,还是各种传感器压力、速度、倾角、方向等),这些均为学生在学习和设计与自动控制、物联网、无线传感网相关的知识提供了不同的学习途径,并且使得学习电子知识变得相对容易。另外,Arduino的代码语法简单易懂,对于学过C语言程序设计甚至没有任何编程经验的读者来说,Arduino程序也是简单易读的。因此,这本书非常适合作为Arduino爱好者的参考教材。同时。通过全面系统介绍Arduino及其开发方法,本书也为电子和计算机类专业低年级学生打开了一扇兴趣之门,书中丰富的实例更是增强学生动手能力不可多得的素材。 ——西安邮电大学计算机学院周立功“3+1”创新教育实验班班主任马博老师这是一本关于Arduino及其开发方法的书。本书内容涵盖广泛,但又不失重点。通过系统的理论知识介绍和精彩的实例讲解,将Arduino这个开源硬件平台阐释得淋漓尽致。这本书的内容包括Arduino的来龙去脉、C语言基础、Arduino开发平台的使用以及实战项目。与之前看过的几本直接翻译的国外Arduino书籍相比,这本书更加生动。读者即使原来没有在嵌入式平台上编写过软件,通过这本书也可以学会Arduino的开发方法,实现自己的产品创意。这也是Arduino的魔力所在。本书作者有非常丰富的Arduino项目开发经验,后面几个章节的项目记录了作者使用Arduino的开发心得。通过阅读此书你也可以DIY出充满创意的产品原型! ——DFRobot创始人、Arduino首批引入者之一庄明波
编辑推荐
《Arduino开发实战指南(AVR篇)》编辑推荐:国内首本Arduino著作,全面而系统地讲解Arduino平台的功能特性和开发方法。注重实战。包含大量实战案例,不懂硬件的工程师也能迅速搭建产品原型。资深Arduino玩家、硬件工程师主笔。创客联盟与学术专家联袂推荐,权威性毋庸置疑。
图书封面
图书标签Tags
无
评论、评分、阅读与下载