logo
分类于: 计算机基础 设计

简介

Arduino开发实战指南: AVR篇

Arduino开发实战指南: AVR篇 7.6分

资源最后更新于 2020-07-24 15:49:43

作者:程晨

出版社:机械工业出版社

出版日期:2012-01

ISBN:9787111370055

文件格式: pdf

标签: arduino 单片机 AVR Arduino 开源硬件 计算机 交互设计 开发

简介· · · · · ·

本书主要通过了解,学习,使用Arduino开源模块,让读者在实战过程中学习并掌握基于AVR8位单片机的项目开发技巧。

在2011年举行的Google I/O开发者大会上,Google发布了基于Arduino的Android Open Accessory标准和ADK工具,这使得大家对Arduino的前景十分看好。Phillip Torrone大胆地预测Google将用Android+Arduino的形式掀起自己的“Kinect模式”浪潮。目前,国内关注Arduino的人越来越多,但介绍Arduino的书籍却很少。笔者由于工作的关系,接触Arduino较早,所以希望通过自己的努力让更多的人了解Arduino,在近一年的时间里,通过不断学习、查阅Arduino相关知识,终于完成了书稿的撰写工作。但在书稿完成之后,心中却一直忐忑不安,Arduino是一个介于...

想要: 点击会收藏到你的 我的收藏,可以在这里查看

已收: 表示已经收藏

Tips: 注册一个用户 可以通过用户中心得到电子书更新的通知哦

目录

前言
第一篇  基础篇
第1章  初识Arduino 2
1.1  Arduino的历史 2
1.2  Arduino的家族 3
1.3  Arduino的资源 6
1.4  Arduino的开发环境 9
1.5  添加新硬件及设置开发环境 9
1.6  Arduino开发环境的应用 14
第2章  编写Arduino程序 16
2.1  绘制流程图 16
2.1.1  流程图基本符号 16
2.1.2  流程图的三种基本结构 17
2.2  C语言的标识符与关键字 18
2.2.1  标识符 18
2.2.2  关键字 18
2.2.3  运算符 19
2.2.4  分隔符 21
2.2.5  常量 21
2.2.6  注释符 21
2.3  控制语句 21
2.3.1  if语句 21
2.3.2  switch语句 22
2.3.3  while语句 23
2.3.4  do-while语句 24
2.3.5  for语句 25
2.3.6  break语句 26
2.3.7  continue语句 26
2.3.8  goto语句 26
2.4  程序结构 27
第3章  Arduino的基本函数 29
3.1  数字I/O 30
3.1.1  pinMode(pin,mode) 30
3.1.2  digitalWrite(pin,value) 31
3.1.3  digitalRead(pin) 32
3.2  模拟I/O 33
3.2.1  analogReference(type) 33
3.2.2  analogRead(pin) 33
3.2.3  analogWrite(pin, value) 34
3.3  高级I/O 37
3.3.1  shiftOut(dataPin,clockPin, bitOrder,val) 37
3.3.2  pulseIn(pin,state,timeout) 38
3.4  时间函数 39
3.4.1  millis( ) 39
3.4.2  delay(ms) 40
3.4.3  delayMicroseconds(us) 40
3.5  数学库 41
3.5.1  min(x,y) 41
3.5.2  max(x,y) 41
3.5.3  abs(x) 41
3.5.4  constrain(amt,low,high) 41
3.5.5  map(x,in_min,in_max,out_min, out_max) 41
3.5.6  三角函数 42
3.6  随机数 42
3.6.1  randomSeed(seed) 42
3.6.2  random(howsmall,howbig) 42
3.7 位操作 43
3.8 中断函数 43
3.8.1 interrupts( )和noInterrupts( ) 43
3.8.2 attachInterrupt(interrupt,function,mode) 43
3.9  串口通信 45
3.10  SPI接口 48
3.10.1  SPI接口概述 48
3.10.2  SPI接口数据传输 48
3.10.3  SPI类及其成员函数 49
第4章  Arduino硬件平台 52
4.1  Arduino的原理图 52
4.2  串行通信口的使用 55
4.2.1  实例功能 56
4.2.2  硬件电路 56
4.2.3  程序设计 56
4.3  数字I/O口的使用 58
4.3.1  实例功能 59
4.3.2  硬件电路 59
4.3.3  程序设计 59
4.4  模拟I/O口的使用 61
4.4.1  实例功能 61
4.4.2  硬件电路 61
4.4.3  程序设计 62
4.5  烧写引导程序 62
4.5.1  下载器AVRISP 63
4.5.2  AVR Studio 64
4.5.3  烧写引导程序 65
第二篇  模块篇
第5章  Arduino基本扩展模块 68
5.1  L293 Motor Shield 68
5.1.1  直流电机的工作原理 68
5.1.2  H桥驱动电路 70
5.1.3  线性放大调速原理 71
5.1.4  PWM调速原理 72
5.1.5  L293 Motor Shield的原理 72
5.1.6  L293 Motor Shield的应用 74
5.1.7  程序设计 75
5.1.8  程序分析 76
5.1.9  程序的精练 77
5.2  Input Shield 78
5.2.1  Input Shield原理图 79
5.2.2  Input Shield的实例 79
5.2.3  程序设计 80
5.2.4  程序分析 81
5.2.5  使用摇杆控制直流电机转速 81
5.3  LCD Keypad Shield 83
5.3.1  液晶显示原理 83
5.3.2  标准1602液晶模块 83
5.3.3  1602液晶模块控制方式 84
5.3.4  LCD Keypad Shield原理图 87
5.3.5  LCD Keypad Shield应用实例 89
5.3.6  程序设计 89
5.3.7  程序分析 92
5.3.8  Arduino的液晶控制方式 93
5.3.9  “hello Arduino!” 94
5.4  Ethernet Shield 97
5.4.1  Ethernet Shield原理图 97
5.4.2  W5100芯片介绍 97
5.4.3  W5100芯片的寄存器 101
5.4.4  W5100芯片的使用 105
5.4.5  Ethernet Shield应用实例 105
5.4.6  程序设计 106
5.5  I/O扩展板 109
5.5.1  Xbee传感器扩展板V5 109
5.5.2  伺服电机控制 110
5.5.3  伺服电机应用实例 111
5.5.4  Interface shield 114
5.5.5  RGB LED Module 114
5.5.6  RGB LED Module应用实例 118
5.5.7  程序的精练 123
第6章  Arduino的扩展库 126
6.1  Arduino扩展库介绍 126
6.1.1  Arduino扩展库的作用 126
6.1.2  Arduino扩展库的应用 126
6.2  对象和类 130
6.2.1  类的定义 130
6.2.2  对象的创建及成员函数的调用 131
6.2.3  对象的初始化和构造函数 132
6.2.4  函数的重载 133
6.2.5  析构函数 133
6.3  LiquidCrystal库 134
6.3.1  构造函数 136
6.3.2  command( )和write( ) 139
6.3.3  begin( ) 140
6.3.4  clear( ) 142
6.3.5  home( ) 142
6.3.6  setCursor( ) 142
6.3.7  noDisplay( )和display( ) 143
6.3.8  cursor( )和noCursor( ) 143
6.3.9  blink( )和noBlink( ) 143
6.3.10  autoscroll( )和
noAutoscroll( ) 144
6.3.11  scrollDisplayLeft( )和scrollDisplayRight( ) 144
6.3.12  print( ) 145
6.4  Ethernet库 146
6.4.1  EthernetClass类定义 146
6.4.2  Server类定义 148
6.4.3  Server类构造函数 148
6.4.4  Server类成员函数 148
6.4.5  Client类定义 152
6.4.6  Client类构造函数 152
6.4.7  Client类成员函数 153
6.5  SoftwareSerial库 158
6.5.1  构造函数 159
6.5.2  begin( ) 160
6.5.3  read( ) 160
6.5.4  print( )和println( ) 161
6.5.5  使用限制 164
6.6  EEPROM库 165
6.6.1  read( ) 165
6.6.2  write( ) 166
6.7  Wire库 166
6.7.1  IIC总线概述 166
6.7.2  TwoWire类定义 167
6.7.3  begin( ) 168
6.7.4  requestFrom( ) 168
6.7.5  available ( ) 169
6.7.6  receive( ) 169
6.7.7  beginTransmission( ) 170
6.7.8  endTransmission( ) 170
6.7.9  send( ) 171
6.7.10  onReceive( ) 172
6.7.11  onRequest( ) 173
6.8  Servo库 174
6.8.1  构造函数 175
6.8.2  attach() 176
6.8.3  write( ) 177
6.8.4  writeMicroseconds( ) 177
6.8.5  read( ) 178
6.8.6  readMicroseconds( ) 178
6.8.7  attached( ) 178
6.8.8  detach( ) 179
6.9  Stepper库 179
6.9.1  步进电机概述 179
6.9.2  步进电机的基本参数 180
6.9.3  步进电机的优缺点 181
6.9.4  步进电机的工作原理 181
6.9.5  步进电机的控制电路 183
6.9.6  Stepper类定义 185
6.9.7  构造函数 186
6.9.8  setSpeed( ) 188
6.9.9  step( ) 188
6.10  TLC5940库 189
6.10.1  Tlc5940类的定义 190
6.10.2  init( ) 191
6.10.3  update( ) 192
6.10.4  set( ) 193
6.10.5  get( ) 194
6.10.6  setAll( ) 194
6.10.7  clear( ) 195
6.11  OneWire库 195
6.11.1  单总线的结构 195
6.11.2  单总线控制方式 195
6.11.3  单总线信号形式 196
6.11.4  OneWire类 198
6.11.5  构造函数 200
6.11.6  reset( ) 200
6.11.7  write_bit( ) 201
6.11.8  read_bit( ) 202
6.11.9  write( ) 202
6.11.10  read( ) 203
6.11.11  select( ) 203
6.11.12  skip( ) 204
6.12  XBee库 204
6.12.1  XBee类定义 204
6.12.2  构造函数 205
6.12.3  begin( ) 206
6.12.4  readPacket( ) 206
6.12.5  send( ) 209
6.13  创建自己的库 210
6.13.1  库的功能—Morse 210
6.13.2  MorseCode类的定义 213
6.13.3  MorseCode类的成员函数 214
6.13.4  MorseCode库的使用 222
6.13.5  关键字的定义 223
第7章  无线模块的应用 224
7.1  APC220 224
7.1.1  APC220性能指标 224
7.1.2  模块引脚定义 226
7.1.3  模块的使用 226
7.1.4  注意事项 227
7.2  DFduino wireless 228
7.2.1  DFduino wireless性能指标 228
7.2.2  模块引脚定义 229
7.2.3  模块的使用 229
7.3  Bluetooth V3 231
7.3.1  Bluetooth V3性能指标 231
7.3.2  模块引脚定义 232
7.3.3  模块的使用 232
7.4  XBee和XBee PRO 234
7.4.1  XBee及XBee PRO性能指标 235
7.4.2  模块引脚定义 235
7.4.3  模块的使用 236
7.4.4  程序设计 236
第三篇  应用篇
第8章  打造自己的遥控履带车 242
8.1  履带车的驱动 242
8.1.1  实现功能 242
8.1.2  所需器材 242
8.1.3  硬件连接 243
8.1.4  程序设计 246
8.1.5  MotorCar类 251
8.1.6  类的应用 255
8.2  添加感知器件 257
8.2.1  实现功能 257
8.2.2  所需器材 257
8.2.3  器材介绍 257
8.2.4  硬件连接 258
8.2.5  程序设计 258
8.3  添加无线模块 261
8.3.1  实现功能 261
8.3.2  所需器材 261
8.3.3  硬件连接 261
8.3.4  程序设计 262
8.4  制作遥控器 264
8.4.1  实现功能 264
8.4.2  所需器材 265
8.4.3  硬件连接 265
8.4.4  程序设计 265
8.5  履带车遥控调速 267
8.5.1  实现功能 267
8.5.2  程序设计 267
8.6  添加无线摄像头 272
8.6.1  实现功能 272
8.6.2  所需器材 272
8.6.3  器材介绍 272
8.6.4  硬件连接 273
8.6.5  程序设计 277
8.7  环境信息获取器件 283
8.7.1  实现功能 283
8.7.2  所需器材 284
8.7.3  器材介绍 284
8.7.4  硬件连接 285
8.7.5  程序设计 286
第9章  仿生机器人 295
9.1  遥控机械臂 295
9.1.1  实例功能 295
9.1.2  器材列表 295
9.1.3  搭建硬件环境 296
9.1.4  安装控制部分 298
9.1.5  Wii游戏手柄 298
9.1.6  机械臂程序设计 300
9.2  双足机器人 304
9.2.1  实例功能 304
9.2.2  器材列表 304
9.2.3  搭建硬件环境 305
9.2.4  双足机器人程序设计 307
9.2.5  PC调试软件编写 310
9.2.6  双足机器人的调试 317
附录A  Arduino引脚与AVR单片机管脚对应关系 319
附录B  Arduino扩展板 320
附录C  其他可扩展模块 322