fbpx

[email protected]

购物车

 查看订单

  • 我的帐户
东东购 | EasternEast
  • 中文书店
    • 畅销排行榜
      • 小说 畅销榜
      • 童书 畅销榜
      • 外语畅销榜
      • 管理畅销榜
      • 法律畅销榜
      • 青春文学畅销榜
    • 热门分类
      • 社会小说
      • 成功/励志 畅销榜
      • 人物传记
      • 大陆原创
      • 绘本童书
      • 影视小说
    • 文学推荐
      • 文集
      • 戏剧
      • 纪实文学
      • 名家作品
      • 民间文学
      • 中国现当代随笔
    • 新书热卖榜
      • 小说 新书热卖榜
      • 青春文学 新书热卖榜
      • 童书 新书热卖榜
      • 管理 新书热卖榜
      • 成功/励志 新书热卖榜
      • 艺术 新书热卖榜
  • 精选分类
    • 小说
    • 保健养生
    • 烹饪/美食
    • 风水/占卜
    • 青春文学
    • 童书
    • 管理
    • 成功/励志
    • 文学
    • 哲学/宗教
    • 传记
    • 投资理财
    • 亲子家教
    • 动漫/幽默
    • 法律 Legal
    • 经济 Economics
    • 所有分类
  • 关于东东
  • 帮我找书
搜索
首页计算机/网络移动开发Arduino自动小车最佳入门与应用:打造轮型机器人轻松学

Arduino自动小车最佳入门与应用:打造轮型机器人轻松学

小成本,创造无限可能!软硬件结合的经典范例, 易学易用的初学者指南

作者:杨明丰 出版社:清华大学出版社 出版时间:2017年05月 

ISBN: 9787302468363
年中特卖用“SALE15”折扣卷全场书籍85折!可与三本88折,六本78折的优惠叠加计算!全球包邮!
trust badge

EUR €40.99

类别: 移动开发 SKU:5c23b060421aa985877ab93f 库存: 有现货
  • 描述
  • 评论( 0 )

描述

开 本: 32开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302468363

产品特色
编辑推荐
本书是为了对自动机器人感兴趣,却苦于没有足够知识、经验与技术开发设计的读者编写的。本书配有浅显易懂的图文解说,只要按图操作就能快速入门。本书除了介绍软硬件知识与所需的基本电路原理外,还涵盖大多数机器人自动小车的控制范例,如使用红外线循迹模块、RFID模块、超音波模块、红外线遥控器、十字摇杆模块、手机触控、手势操控等控制方式,并通过红外线、RF、XBee、蓝牙、Wi-Fi等无线通信控制机器人自动小车,另附有组装参考解说,是非常全面的实战经典。 
内容简介
“本书除了介绍软硬件知识与所需基本电路原理外,还涵盖大多数机器人自动小车的控制范例,如使用红外线循迹模块、RFID模块、超音波模块、红外线遥控器、十字摇杆模块等,并通过红外线、RF、XBee、蓝牙、Wi-Fi等无线通信控制机器人自动小车,另附有组装参考解说,是非常全面的实战经典。
本书是为对自动机器人感兴趣,却苦于没有足够知识、经验与技术开发设计的读者编写的。
“
作者简介
杨明丰,台湾IT图书作者,拥有许多相关畅销著作。
目  录

第1章  Arduino快速入门

1-1  认识Arduino 2

1-2  Arduino硬件介绍 2

1-2-1  Duemilanove板 3

1-2-2  UNO板 3

1-2-3  Leonardo板 4

1-2-4  DUE板 4

1-2-5  Mini板 5

1-2-6  Micro板 5

1-2-7  Nano板 5

1-2-8  Mega 2560板 6

1-2-9  LilyPad板 6

1-2-10  Fio板 7

1-3  Arduino软件介绍 7

1-3-1  下载Arduino开发环境 7

1-3-2  安装Arduino板驱动程序 9

1-3-3  Arduino开发环境使用说明 13

1-3-4  执行第一个Arduino范例程序 14

1-4  Arduino语言基础 16

1-4-1  变量与常数 17

1-4-2  运算符 18

1-4-3  Arduino程序流程控制 24

1-4-4  数组 32

1-4-5  预处理命令 33

1-4-6  函数 34

1-4-7  Arduino常用函数 36

第2章  基本电路原理

2-1  电的基本概念 42

2-1-1  电荷 42

2-1-2  电压 43

2-1-3  电流 43

2-1-4  电阻 43

2-1-5  电能 44

2-1-6  功率 44

2-2  数字系统 44

2-2-1  十进制表示法 45

2-2-2  二进制表示法 45

2-2-3  十六进制表示法 45

2-2-4  常用进位转换 46

2-3  认识基本手动工具 46

2-3-1  面包板 47

2-3-2  电烙铁 48

2-3-3  剥线钳 49

2-3-4  尖嘴钳 49

2-3-5  斜口钳 50

2-4  认识万用表 50

2-4-1  电压的测量 51

2-4-2  电流的测量 51

2-4-3  电阻的测量 52

2-5  认识基本电子元件 52

第3章  自动机器人实习

3-1  认识机器人 56

3-2  认识自动机器人 56

3-3  认识自动机器人的部件 57

3-3-1  Arduino控制板 58

3-3-2  马达驱动模块 59

3-3-3  马达部件 60

3-3-4  万向轮 61

3-3-5  电源电路 62

3-3-6  杜邦线 65

3-3-7  Arduino周边扩展板 66

3-4  制作自动机器人 67

3-4-1  车体制作 68

3-4-2  行走原理 70

3-4-3  直线行走测试实习 73

3-4-4  转弯测试实习 74

第4章  红外线循迹自动机器人实习

4-1  认识红外线 78

4-2  认识红外线循迹模块 78

4-2-1  CNY70红外线模块  78

4-2-2  TCRT5000红外线模块  80

4-2-3  红外线循迹模块 82

4-2-4  红外线模块的数量 84

4-2-5  红外线模块排列的间距 85

4-3  认识红外线循迹自动机器人 85

4-4  制作红外线循迹自动机器人 87

 

第5章  红外线遥控自动机器人实习

5-1  认识无线通信 94

5-2  认识红外线发射模块 94

5-2-1  编码电路 94

5-2-2  载波电路与调制电路 97

5-3  认识红外线接收模块 97

5-3-1  红外线接收模块 98

5-3-2  IRremote.h函数库 98

5-4  认识红外线遥控自动机器人 101

5-5  制作红外线遥控自动机器人 105

第6章  手机蓝牙遥控自动机器人实习

6-1  认识蓝牙 110

6-2  认识蓝牙模块 110

6-2-1  蓝牙工作模式 112

6-2-2  蓝牙参数的设置 112

6-2-3  SoftwareSerial.h函数库 117

6-2-4  使用Arduino IDE设置蓝牙参数 118

6-3  认识手机蓝牙模块 121

6-4  认识手机蓝牙遥控自动机器人 123

6-5  制作手机蓝牙遥控自动机器人 128

6-5-1  手机蓝牙遥控App程序 128

6-5-2  修改手机蓝牙遥控App程序的界面设置 129

6-5-3  蓝牙遥控自动机器人的电路 133

第7章  RF遥控自动机器人实习

7-1  认识RF 138

7-2  认识RF模块 138

7-3  认识RF遥控自动机器人 142

7-4  制作RF遥控自动机器人 143

7-4-1  RF发射电路 144

7-4-2  RF遥控自动机器人电路 146

第8章  XBee遥控自动机器人实习

8-1  认识ZigBee 152

8-2  认识XBee模块 152

8-2-1  XBee扩展板 153

8-2-2  XBee配置的设置 153

8-3  认识XBee遥控自动机器人 156

8-4  制作XBee遥控自动机器人 156

8-4-1  XBee发射电路 156

8-4-2  XBee遥控自动机器人电路 159

第9章  加速度计遥控自动机器人实习

9-1  认识加速度计 164

9-2  认识加速度计模块 164

9-2-1  加速度计的g值灵敏度 164

9-2-2  倾斜角度与X、Y、Z三轴输出电压的关系 165

9-2-3  最大倾斜角度与X、Y、Z三轴输出电压的关系 165

9-3  认识加速度计遥控自动机器人 166

9-4  制作加速度计遥控自动机器人 167

9-4-1  加速度计遥控电路 167

9-4-2  XBee遥控自动机器人电路 170

9-5  认识手机加速度计 174

9-5-1  手机倾斜角度与X、Y、Z三轴输出值的关系 174

9-5-2  手机最大倾斜角度与X、Y、Z三轴输出值的关系 174

9-6  认识手机加速度计遥控自动机器人 175

9-7  制作手机加速度计遥控自动机器人 176

9-7-1  手机加速度计遥控App程序 176

9-7-2  蓝牙遥控自动机器人电路 180

第10章  超声波避障自动机器人实习

10-1  认识超声波 186

10-2  认识超声波模块 186

10-2-1  工作原理 187

10-2-2  物体定位 187

10-3  认识超声波避障自动机器人 188

10-3-1  工作原理 188

10-3-2  行走策略 189

10-4  制作超声波避障自动机器人 190

第11章  RFID导航自动机器人实习

11-1  认识声音 196

11-2  认识RFID 196

11-2-1  RFID读取器 197

11-2-2  RFID标签 198

11-3  认识RFID模块 199

11-3-1  125kHz低频RFID模块 199

11-3-2  13.56MHz高频RFID模块 200

11-4  认识RFID导航自动机器人 200

11-5  读取RFID标签序号 202

11-6  制作RFID导航自动机器人 204

第12章  Wi-Fi遥控自动机器人实习

12-1  认识计算机网络 214

12-1-1  局域网(LAN) 214

12-1-2  广域网(WAN) 215

12-1-3  无线局域网(WLAN) 216

12-2  认识以太网模块 218

12-3  制作以太网家电控制电路 218

12-4  认识Wi-Fi模块 225

12-4-1  官方Wi-Fi扩展板 226

12-4-2  兼容Wi-Fi扩展板 226

12-4-3  下载WiShield函数库 226

12-5  认识Wi-Fi遥控自动机器人 227

12-6  制作Wi-Fi遥控自动机器人 227

12-7  认识ESP8266 Wi-Fi模块 236

12-7-1  ESP8266 Wi-Fi功能AT命令 238

12-7-2  设置ESP8266模块参数 239

12-8  认识ESP8266 Wi-Fi遥控自动机器人 243

12-9  制作ESP8266 Wi-Fi遥控自动机器人 244

12-9-1  手机Wi-Fi遥控App程序 244

12-9-2  ESP8266 Wi-Fi遥控自动机器人电路 249

 

附录A  实习材料表

A-1  如何购买本书材料 258

A-2  全书实习材料表 258

A-3  各章实习材料表 259

A-3-1  第3章实习材料表 259

A-3-2  第4章实习材料表 260

A-3-3  第5章实习材料表 260

A-3-4  第6章实习材料表 261

A-3-5  第7章实习材料表 261

A-3-6  第8章实习材料表 262

A-3-7  第9章实习材料表 263

A-3-8  第10章实习材料表 264

A-3-9  第11章实习材料表 265

A-3-10  第12章实习材料表 265

附录B  刻录ATmega开机引导程序

B-1  认识引导程序(Bootloader) 268

B-2  认识Arduino UNO板引脚 268

B-3  使用ArduinoISP烧录ATmega引导程序 270

附录C  Arduino自动机器人组装说明

C-1  自动机器人车体的组装 276

C-2  Arduino控制板和原型扩展板的组装 279

C-3  超声波模块和伺服马达的组装 281

C-4  红外线循迹模块的组装 283

前  言
在英、美、日、德等工业发达的国家中,工业型机器人(Robot)早已成为自动化生产的主角。除了工业型机器人外,服务型机器人也开始应用于国防、救灾、医疗、运输、农用、建筑等领域。机器人是集机械、电子、电机、控制、计算机、传感、人工智能等多种先进科学技术的产品。随着机器人工业的兴起,对于程序设计、嵌入系统、材料零部件、机电集成等研发人才的需求也与日俱增。机器人的运动方式大致上可以分为轮型机器人和足型机器人两种。轮型机器人具有快速移动的优点,而足型机器人具有机动性、可步行于危险环境、跨越障碍物以及可上下台阶等优点。本书主要介绍轮型自动机器人(后面简称为自动机器人)的制作技术。几十年前要制作一台自动机器人,不但技术复杂而且价格昂贵,随着开放源码(open-source)Arduino的出现,在软件方面已内建了多样化的函数,以此简化了周边部件的底层控制程序,硬件方面也有多样化的周边模块可供选择。另外,网络上也提供了相当丰富的共享资源,让没有电子、信息相关专业背景的人也可以快速又简单地制作一台Arduino自动机器人。本书为谁而写《Arduino自动小车最佳入门与应用》是为一些对自动机器人感兴趣,却又苦于没有足够知识、经验与技术能力去开发设计的读者而编写的。通过本书浅显易懂的图文解说,读者只要按图施工,就能保证成功。本书如何编排本书内容已经涵盖了大多数自动机器人的控制范例,如使用红外线循迹模块、RFID模块、超声波模块、红外线遥控器、十字游戏杆模块等,并且通过红外线、RF、XBee、蓝牙、Wi-Fi等无线通信来建立连接,以便控制自动机器人。本书中每一章所需的软、硬件知识和相关技术都有详细的图文解说,读者可根据自己的喜好自行安排阅读顺序并轻松组装完成具有个人特色的Arduino自动机器人。第1章 Arduino快速入门:快速引领读者认识Arduino硬件和软件的相关知识,并介绍Arduino开发环境的建立和使用。另外,提供了Arduino语言的语句、语法以及常用内部函数的说明,以方便读者随时查阅。如果要进一步了解详情,可到官方网站arduino.cc上阅读。第2章 基本电路原理:本章主要是针对从未学过电子、信息等相关知识的初学者而编写的。内容包含电的基本概念、数字系统等电学理论基础,并且介绍基本手动工具和万用电表的使用方法。如果读者已经熟悉,可以直接跳过本章。第3章 自动机器人实习:认识与使用自动机器人所需的Arduino板、马达驱动模块、马达部件、电源电路、周边扩展板等模块,以及如何制作一台自动机器人,如何利用Arduino板来控制自动机器人执行前进、后退、右转、左转、停止等行走动作。本章是后面各章的基础,读者有必要详细阅读。第4章 红外线循迹自动机器人实习:认识与使用红外线循迹模块CNY70和TCRT5000,并且利用红外线循迹模块TCRT5000来控制自动机器人自动行走在黑色或白色轨道上。第5章 红外线遥控自动机器人实习:认识与使用红外线遥控器和38kHz、940nm红外线接收模块,并且利用红外线遥控器控制“红外线遥控自动机器人”的前进、后退、右转、左转以及停止等行走动作。第6章 手机蓝牙遥控自动机器人实习:认识与使用Android手机蓝牙模块和HC-05蓝牙模块,并且利用手机蓝牙来控制“蓝牙遥控自动机器人”的前进、后退、右转、左转及停止等行走动作。第7章 RF遥控自动机器人实习:认识与使用RF模块,并且使用VirtualWire函数库进行RF无线通信。通过十字游戏杆的按压方向, 远程控制“RF遥控自动机器人”执行前进、后退、右转、左转及停止等行走动作。第8章 XBee遥控自动机器人实习:认识与使用XBee模块,并且使用XBee模块进行无线通信。通过十字游戏杆的按压方向,远程控制“XBee遥控自动机器人”执行前进、后退、右转、左转及停止等行走动作。第9章 加速度计遥控自动机器人实习:本章可分为两部分,第一部分通过MMA7260加速度计模块的重力变化,使用XBee模块进行无线通信,远程控制“XBee遥控自动机器人”执行前进、后退、右转、左转及停止等行走动作;第二部分通过手机加速度计的手势控制,使用蓝牙模块进行无线通信,远程控制“蓝牙遥控自动机器人”执行前进、后退、右转、左转及停止等行走动作。第10章 超声波避障自动机器人实习:认识与使用PING)))TM超声波模块及伺服马达,并且利用伺服马达转动超声波模块检测自动机器人右方(45°)、前方(90°)和左方(135°)3个方向的障碍物距离。通过Arduino板的判断,选择一条不会碰撞到任何障碍物的安全路线前进。第11章 RFID导航自动机器人实习:认识与使用RFID模块,并且利用RFID读取器读取RFID标签控制码,控制自动机器人执行前进、后退、右转、左转及停止等行走动作。 第12章 Wi-Fi遥控自动机器人实习:认识与使用Wi-Fi模块和HTML网页设计,通过手机或计算机网页控制,利用Wi-Fi模块进行无线通信,远程控制“Wi-Fi遥控自动机器人”执行前进、后退、右转、左转及停止等行走动作。本书特色学习最容易:Arduino公司提供了免费的Arduino IDE开发软件,内建了多样化的函数,因而简化了周边部件的底层控制程序。本书使用开放式架构的自动机器人车体,电路不预制于印刷电路板(Printed Circuit Board,PCB)车体中,创意不受限制。读者可以根据自己的喜好,使用市售或自制的各种传感器模块快速、轻松地组装出具有创意的自动机器人。学习花费少:Arduino自动机器人与乐高机器人所使用的控制器和周边模块相比较,在功能性和灵活度上毫不逊色,而且可以使用最少的花费实现更多功能。学习资源多:Arduino IDE提供了多样化的范例程序,不但在官方网站上可以找到多元的技术支持资料,而且网络上也提供了相当丰富的共享资源。另外,硬件开发商也提供了多样化的周边模块可供选择,或者直接向本书合作厂商——慧手科技有限公司购买自动机器人的开发工具包。内容多样化:本书内容涵盖了大多数自动机器人的控制范例,例如红外线循迹自动机器人、红外线遥控自动机器人、RF遥控自动机器人、XBee遥控自动机器人、手机蓝牙遥控自动机器人、手机加速度计遥控自动机器人、超声波避障自动机器人、RFID导航自动机器人、Wi-Fi遥控自动机器人等。另外,只要稍加修改本书的自动机器人范例,就可以轻松完成其他有趣又好玩的自动机器人,例如温控自动机器人、声控自动机器人、光控自动机器人、竞速自动机器人、相扑自动机器人、负重自动机器人等。商标声明Arduino是Arduino公司的注册商标。ATmega是ATMEL公司的注册商标。Fritzing是FRITZING公司的注册商标。除了上述商标和名称外,其他本书所提及的商标和名称均为该公司的注册商标。本书的学习资源本书的程序范例可以从提供下载的“ino(范例程序)”文件夹中找到,可以直接用Arduino IDE打开这些范例程序,并且将文件上传至Arduino控制板中,之后就可以正确执行范例程序设计的功能了。各章所需的外接函数库也可以从下载的“func(外接函数库)”文件夹中找到,必须将它们解压缩并且存入Arduino/libraries文件夹中才能使用。下载地址本书配套的范例程序、外接函数库和附录内容可以从以下网址下载(注意区分数字和英文字母大小写):http://pan.baidu.com/s/1cD1bUu如果下载有问题,请发送电子邮件至[email protected]进行咨询,邮件主题设置为“Arduino自动小车配套资源”。致谢本书能够顺利完成,要感谢基峰信息公司的企划与协调,以及慧手科技有限公司的协助与全力配合,他们开发了书中各种自动机器人所需的部件与模块。期盼通过本书的学习,能让读者快快乐乐、轻轻松松地制作出一台属于自己的自动小车!

杨明丰

媒体评论
评论
免费在线读
第11章  RFID导航自动机器人实习
11-1 认识声音11-2 认识RFID11-3 认识RFID模块11-4 认识RFID导航自动机器人11-5 读取RFID标签序号11-6 制作RFID导航自动机器人
11-1  认识声音声音是一种波动,声音的振动会引起空气分子有节奏的振动,使周围的空气产生疏密变化,形成疏密相间的纵波,因而产生了声波。人耳可以听到的声音频率范围在20Hz~20kHz之间。如图11-1所示为常用的声音输出设备蜂鸣器(buzzer)和扬声器(loudspeaker)。如图11-1(a)所示的蜂鸣器可以分为有源蜂鸣器和无源蜂鸣器两种,有源又称为自激式,内含驱动电路,必须加直流电压,而且只能产生单一固定频率的声音输出。无源又称为他激式(或被激式),没有内部驱动电路,不同频率的交流信号可以产生不同频率的声音输出。如图11-1(b)所示的扬声器也称为喇叭,输出功率比蜂鸣器大,音质也较蜂鸣器好,但价格较高。 (a) 蜂鸣器 (b) 扬声器
图11-1 声音输出设备图11-2所示为声音信号,图11-2(a)所示是正弦波为组成声音的基本波形,声音的音量与其振幅Vm成正比;声音的音调与其周期T成反比;声音的发音长度与其输出时间长度成正比。在数字电路中经常使用图11-2(b)所示的方波来模拟正弦波,方波是由奇次谐波(harmonic)所组成的,奇次谐波频率为基本波频率的奇数倍,奇次谐波的数量越多,波形越接近方波。因数字电路带宽有限,只能以有限带宽来合成方波。    (a) 正弦波 (b) 方波
图11-2 声音信号11-2  认识RFID射频识别(Radio Frequency IDentification,RFID)又称为电子标签,是一种通信技术。RFID系统包含天线(antenna或coil)、读取器(reader)和RFID标签(Tag)3个部分。RFID的工作原理是利用传感器发射无线电波,去触发感应范围内的RFID标签。RFID标签借助电磁感应产生电流,来驱动RFID标签上的IC芯片的运行,并且利用电磁波返回RFID标签序号。RFID是一种非接触式、短距离的自动识别技术,RFID读取器识别RFID标签完成后,会将数据传到系统端进行追踪、统计、核查、结账、存货控制等处理。RFID技术被广泛运用于各种行业中,如门禁管理、货物管理、防盗应用、联合票证、动物监控追踪、仓储物料管理、医疗病历系统、卖场自动结账、自动控制、员工身份识别、生产流程追踪、高速公路自动收费系统等。RFID具有小型化、多样化、可穿透性、可重复使用、高环境适应性等优点。表11-1所示为RFID的频率范围,可分为低频(LF)、高频(HF)、超高频(UHF)和微波4种。低频RFID主要应用于门禁管理,高频RFID主要应用于智能卡,而超高频RFID不开放,主要应用于卡车或拖车追踪等,微波RFID则应用于高速公路电子收费系统(Electronic Toll Collection,ETC)。超高频RFID和微波RFID采用主动式标签,通信距离最长可达10~50米。表11-1 RFID的频率范围频段命名 频段 常用频率 通信距离 传输速度 标签价格 主要应用低频 9~150kHz 125kHz 小于等于10cm 低速 0.2元 门禁管理高频 1~300MHz 13.56MHz 小于等于10cm 低中速 0.1元 智能卡超高频 300~1200MHz 433MHz 大于等于1.5m 中速 1元 卡车追踪微波 2.45~5.80GHz 2.45GHz 大于等于1.5m 高速 5元 ETC
11-2-1  RFID读取器RFID读取器通过无线电波来存取RFID标签上的数据。按其存取方式可分成RFID读取器和RFID读写器两种。RFID读取器内部组成包含电源电路、天线、微控制器、接收器和发射器等。发射器负责将信号和交流电源通过天线发送给RFID标签。接收器负责接收RFID标签所回传的信号,通过近距离无线通信(Near Field Communication,NFC,或称为近场通信)技术将信号转交给微控制器处理。RFID读取器除了可以读取RFID标签内容外,也可以将数据写入RFID标签中。按照其功能可分成图11-3(a)所示的固定型读取器(stationary reader)和图11-3(b)所示的手持式读取器(handheld reader)两种类型,各有其用途。固定型读取器的数据处理速度快、通信距离较长、覆盖范围较大,但机动性较低。手持式读取器的机动性较高,但通信距离较短、覆盖范围较小。 (a) 固定型读取器 (b) 手持式读取器
图11-3 RFID读取器11-2-2  RFID标签图11-4所示的RFID标签,按其种类可以分成贴纸型、卡片型和钮扣型等。如图11-4(a)所示为贴纸型RFID标签,采用纸张印刷,常应用于物流管理、防盗管理、图书馆管理、供应链管理等。卡片型和钮扣型RFID标签采用塑料包装,常应用于门禁管理、大众运输等。  (a) 贴纸型 (b) 卡片型 (c) 钮扣型
图11-4 RFID 标签种类图11-5所示为RFID标签的内部电路,由微芯片(microchip)和天线所组成。微芯片存储唯一的序号信息,而天线的功能用于感应电磁波和发送RFID标签序号。较大面积的天线所能感应的范围较远,但所占的空间较大。 (a) 卡片型 (b) 钮扣型
图11-5 RFID 标签的内部电路RFID标签按其驱动能量的来源可分为被动式、半主动式和主动式3种。被动式RFID标签本身没有电源,所需电流全靠RFID读取器的无线电磁波利用电磁感应原理所产生。只有在接收到RFID读取器所发出的信号,才会被动地响应信号给读取器,因为感应电流较小,所以通信距离较短。半主动式RFID标签的规格类似于被动式,但多了一颗小型电池,若RFID读取器所发出的信号微弱,RFID标签还是有足够的电力将其内部存储器的数据回传到读取器。半主动式RFID标签比被动式RFID标签的反应速度更快、通信距离更长。主动式RFID标签内置电源用来供应内部IC芯片所需的电能,主动传送信号供读取器读取,电磁波信号较强,因此通信距离最长。另外,主动式RFID标签有较大的内存容量可用来存储RFID读取器所发送的附加信息。11-3  认识RFID模块常用的RFID模块有125kHz低频RFID模块和13.56MHz高频RFID模块两种。前者使用125kHz低频载波通信,主要应用于门禁管理,后者使用13.56MHz高频载波通信,主要应用于智能卡、门禁管理、员工身份识别等,两者无法通用。11-3-1  125kHz低频RFID模块图11-6所示为Parallax公司所生产的125kHz低频RFID模块,使用标准串行通信接口,输出TTL电位,工作电压为5V,最大传输速率为2400bps,通信距离在10厘米以内。通信协议为8个数据位、无同步位(或起始位)和1个停止位的8N1格式。125kHz低频RFID模块所读取的RFID标签序号包含10个字节的数据。 (a) 模块外观 (b) 引脚图
图11-6 低频125KHz RFID模块因为125kHz低频RFID模块与Arduino控制板都是使用串行通信接口,在Arduino控制板上传程序时可能会相冲突而造成宕机。因此,在每次要上传程序到Arduino控制板之前,必须先将RFID模块串口的输出SOUT引脚与Arduino控制板的连接移除,待上传程序代码结束后,再将SOUT引脚接回Arduino板的数字引脚0(RX)。若觉得麻烦,也可以直接使用SoftwareSerial函数设置RFID模块使用软件串口。11-3-2  13.56MHz高频RFID模块图11-7所示为NXP公司所生产的13.56MHz高频RFID模块,使用SPI通信接口,输出TTL电位,工作电压为3.3V,最大传输速率10Mbps,通信距离在6厘米以内。13.56MHz高频RFID模块所读取的RFID标签序号包含5个字节的数据。 (a) 模块外观 (b) 引脚图
图11-7 高频13.56MHz RFID模块13.56MHz高频RFID模块内部使用Philips公司生产的MFRC522原装芯片,所需函数库可到官方网站https://github.com/miguelbalboa/rfid下载。进入如图11-8所示的官方网站后,单击右下角的下载按钮,下载压缩文件MFRC522.ZIP。下载并且解压缩后,将其存放在Arduino/libraries目录下。下载完成后,可以将MFRC522文件夹、MFRC522.cpp和MFRC522.h这3个文件更名为RFID文件夹、RFID.cpp和RFID.h,这样比较容易识别。
图11-8 RFID-RC522函数库的下载页面11-4  认识RFID导航自动机器人所谓RFID导航自动机器人,是指利用RFID标签来定位自动机器人当前的位置,并按RFID标签所定义的内容,来控制车子执行前进、后退、右转、左转和停止等行走动作。在第4章所述的红外线循迹自动机器人必须运行在黑色或白色的轨道上,而且轨道必须事先铺设完成。使用RFID技术进行自动机器人的导航,与红外线循迹技术相似,但是轨道颜色不要求,要更改自动机器人的行走路线也比较容易而且更有弹性。本章使用被动式RFID标签,每一个RFID标签都有一组独一无二的标签序号,必须先使用RFID-RC522模块来读取RFID标签序号并将其编码为前进、后退、右转、左转和停止等行走动作。图11-9所示为RFID导航自动机器人的行走情况,黑色轨道只是说明RFID导航自动机器人行走情况,实际上并不存在。在图中的导航轨道实际上是使用3张“前进标签(Tag)”、4张“左转标签(Tag)”和1张“右转标签(Tag)”共8张RFID标签所组成的。RFID导航自动机器人并没有实际的“黑色”行走轨道,完全是由RFID标签来控制。因此RFID标签放置的位置必须按实际车速和RFID-RC522模块的感应速度来调整位置,才能得到正确的运行轨道。
图11-9 RFID导航自动机器人的行走情况当自动机器人行进至位置A时,感应到“前进标签”,自动机器人向前行走。当自动机器人行进至位置B时,感应到“左转标签”,自动机器人就左转。当自动机器人左转行进至位置C时,感应到“前进标签”,自动机器人就向前行走。当自动机器人行进至位置D时,感应到“左转标签”,自动机器人就左转。当自动机器人左转行进至位置E时,感应到“前进标签”,自动机器人就向前行走。当自动机器人行进至位置F时,感应到“左转标签”,自动机器人就左转。当自动机器人左转行进至位置G时,感应到“右转标签”,自动机器人就右转。当自动机器人右转行进至位置H时,感应到“左转标签”,走机器人就左转。当自动机器人左转行进至位置A时,感应到“前进标签”,走机器人就向前行走,因此自动机器人可以重复行走在所设置的轨道上。如表11-2所示为RFID导航自动机器人行走的控制策略。表11-2 RFID导航自动机器人行走的控制策略RFID 标签 控制策略 左轮 右轮前进标签 前进 反转 正转后退标签 后退 正转 反转右转标签 右转 反转 停止左转标签 左转 停止 正转停止标签 停止 停止 停止
11-5  读取RFID标签序号图11-10所示为RFID标签读取机的电路接线图,包含13.56MHz高频RFID模块、声音模块、Arduino控制板3个部分。
图11-10 RFID标签读取器的电路接线图1. 13.56MHz高频RFID模块Arduino控制板使用数字引脚10~13作为SPI接口的SS、MOSI、MISO和SCK引脚,将其与RFID模块相对应的引脚连接。并由Arduino控制板的 5V供电给RFID模块。2. 声音模块声音模块使用他激式蜂鸣器,可以由Arduino控制板输出不同频率的交流信号来控制蜂鸣器产生不同音调的声音。将蜂鸣器的正端连接到Arduino控制板数字引脚3,蜂鸣器的负端连接到Arduino控制板GND引脚。当读取到RFID标签序号时,蜂鸣器会发出短哔声。3. Arduino控制板Arduino控制板为控制中心,控制RFID模块读取RFID标签序号,并将其显示在“串口监视器”窗口中。? 功能说明:使用RFID模块读取RFID标签序号,并且将RFID标签序号以十进制数值显示在Arduino IDE的“串口监视器”窗口中。程序: ch11_1.ino#include   //使用SPI.h函数库。#include   //使用RFID.h函数库。const int speaker=3; //喇叭连接到Arduino控制板数字引脚3。const int RST_PIN=9;   //RFID模块RST脚连接到数字引脚9。const int SS_PIN=10;   //RFID模块SDA脚连接到数字引脚10。RFID rfid(SS_PIN,RST_PIN);  //设置RFID模块的RST、SDA数字引脚。//设置初值void setup(){     Serial.begin(9600);   //设置串口速率为9600bps。   SPI.begin();   //初始化SPI通信接口。   rfid.init();   //初始化RFID通信接口。}  //主循环void loop(){     if(rfid.isCard()) //感应到RFID 标签?   {       if(rfid.readCardSerial())  //已读到RFID 标签的5个序号?     {         Serial.print(rfid.serNum[0],DEC);  //显示标签序号的第1个数字。       Serial.print(“ “);         Serial.print(rfid.serNum[1],DEC);  //显示标签序号的第2个数字。       Serial.print(“ “);         Serial.print(rfid.serNum[2],DEC);  //显示标签序号的第3个数字。       Serial.print(“ “);         Serial.print(rfid.serNum[3],DEC);  //显示标签序号的第4个数字。       Serial.print(“ “);         Serial.print(rfid.serNum[4],DEC);  //显示标签序号的第5个数字。       Serial.println(“”);         tone(speaker,1000);   //产生1kHz单音50毫秒。       delay(50);           noTone(speaker);   //关闭蜂鸣器输出。      }        rfid.halt();    //RFID标签读取器进入待命状态。      delay(1000); //延迟1秒后再读取RFID 标签。   }  }
1. 设计Arduino程序,使用RFID模块读取RFID标签序号,并且将RFID标签序号以十六进制数值显示在Arduino IDE的“串口监视器”窗口中。2. 设计Arduino程序,使用RFID模块读取“公交智能卡”的标签序号,并以十进制数值显示在Arduino IDE的“串口监视器”窗口中。
11-6  制作RFID导航自动机器人图11-11所示为RFID导航自动机器人的电路接线图,包含13.56MHz高频RFID模块、声音模块、Arduino控制板、马达驱动模块、马达部件和电源电路6个部分。
图11-11 RFID导航自动机器人的电路接线图1. 13.56MHz高频RFID模块Arduino控制板使用数字引脚10~13作为SPI接口的SS、MOSI、MISO和SCK引脚,与RFID模块相对应的引脚互相连接,由Arduino控制板板的 5V供电给RFID模块。 2. 声音模块声音模块使用他激式蜂鸣器,可以由Arduino控制板输出不同频率的交流信号来控制蜂鸣器产生不同音调的声音。将蜂鸣器的正端连接到Arduino控制板数字引脚3,蜂鸣器的负端连接到Arduino控制板GND引脚。3. Arduino控制板Arduino控制板为控制中心,控制RFID模块读取RFID标签序号,并按照序号所设置的自动机器人控制码来驱动左、右两组减速直流马达,使自动机器人能够正确行走在预先规划的轨道上。4. 马达驱动模块马达驱动模块使用L298驱动芯片来控制两组减速直流马达,其中IN1、IN2输入信号控制左轮转向,而IN3、IN4输入信号控制右轮转向。另外,Arduino控制板输出两组PWM信号连接到ENA和ENB,分别控制左轮和右轮的转速。因为马达有最小的启动扭矩电压,所输出的PWM信号平均值不可太小,以免无法驱动马达转动。PWM信号只能微调马达转速,如果需要较低的转速,可以改用较大减速比的减速直流马达。5. 马达部件马达部件包含两组300rpm/min(测试条件为6V)的金属减速直流马达、两个固定座、两个D型接头43mm橡皮车轮和一个万向轮,橡皮材质的轮子比塑料材质的轮子摩擦力大而且易于控制。6. 电源电路电源模块包含4个1.5V一次性电池或4个1.2V充电电池及DC-DC升压模块,调整DC-DC升压模块中的SVR1可变电阻,使输出升压至9V,再将其连接到Arduino控制板和马达驱动模块以给它们供电。如果使用的是两个3.7V的18650锂电池,就不需要再使用DC-DC升压模块了。每个容量2000mAh的1.2V镍氢电池的售价约18元,每个容量3000mAh的18650锂电池的售价约50元。? 功能说明:使用RFID标签来控制RFID导航自动机器人按顺时针方向行走在如图11-12所示的轨道上。每次感应到RFID标签时,蜂鸣器都会发出提示的短哔声以提醒人员,自动机器人同时会变换行进方向。自动机器人的车速不可以太快,否则无法正确感应到RFID标签。另外,RFID标签必须预放置于预先规划的运行轨道上。
图11-12 RFID导航自动机器人的顺时针行走的轨道    程序:ch11_2.ino#include   //使用SoftwareSerial.h函数库。#include   //使用RFID.h函数库。const int speaker=3; //蜂鸣器连接Arduino控制板数字引脚3。const int RST_PIN=9;   //RFID模块RST引脚连接数字引脚9。const int SS_PIN=10;   //RFID模块SDA引脚连接数字引脚10。boolean exact=true; //RFID序号判断位。int serNum[5];  //所读取的RFID标签序号的存储位置。int temp[5];  //所读取的RFID标签序号的临时存储位置。int cardNo=-1;  //RFID标签控制码。const int count=8; //使用8张RFID标签。const int tagLen=5; //每张RFID标签有5个数字的序号。int card[count][tagLen]=  {   {148,174,192, 14,244},    //前进标签,cardNo=0。           { 90,115,236,164, 97},     //右转标签,cardNo=1。          {194, 31,236,164,149},    //前进标签,cardNo=2。        {160,230,233,132, 43},    //右转标签,cardNo=3。   {140,174,234,132, 76},    //前进标签,cardNo=4。   {121,234,233,132,254},    //右转标签,cardNo=5。    {150,112,233,132,139},    //前进标签,cardNo=6。   { 93, 47,234,132, 28}     //右转标签,cardNo=7。   }; RFID rfid(SS_PIN,RST_PIN);  //设置RFID模块SDA、RST的数字引脚。const int negR=A0; //右轮负极连接Arduino控制板A0引脚。const int posR=A1;  //右轮正极连接Arduino控制板A1引脚。const int negL=A2;  //左轮负极连接Arduino控制板A2引脚。const int posL=A3;  //左轮正极连接Arduino控制板A3引脚。const int pwmR=5; //右轮转速控制引脚。const int pwmL=6; //左轮转速控制引脚。const int Rspeed=125; //右轮转速。const int Lspeed=130; //左轮转速。int i,j;    //整数变量。void compTag(void);  //RFID标签序号对比函数。//设置初值void setup() {    Serial.begin(9600);   //串口速率为9600bps。   SPI.begin();   //初始化SPI接口。   rfid.init();     //初始化RFID接口。   pinMode(posR,OUTPUT); //设置A0引脚为输出引脚。   pinMode(negR,OUTPUT); //设置A1引脚为输出引脚。   pinMode(posL,OUTPUT); //设置A2引脚为输出引脚。   pinMode(negL,OUTPUT);  //设置A3引脚为输出引脚。} //主循环void loop() {   if(rfid.isCard()) //已感应到RFID标签?   {       if(rfid.readCardSerial())  //读取RFID标签序号。     {         Serial.print(rfid.serNum[0],DEC);  //显示标签序号的第1个数字。       Serial.print(“ “);         Serial.print(rfid.serNum[1],DEC);  //显示标签序号的第2个数字。       Serial.print(“ “);         Serial.print(rfid.serNum[2],DEC);  //显示标签序号的第3个数字。       Serial.print(“ “);         Serial.print(rfid.serNum[3],DEC);  //显示标签序号的第4个数字。       Serial.print(“ “);         Serial.print(rfid.serNum[4],DEC);  //显示标签序号的第5个数字。       Serial.println(“”);         tone(speaker,1000); //产生提示哔哔声。       delay(50);          noTone(speaker);           for(i=0;i<5;i ) //把序号暂存在temp中。         temp[i]=rfid.serNum[i];     }       rfid.halt();   //RFID模块进入待机状态1秒。     delay(1000);           compTag(); //对比所读取标签序号的行走动作。     Serial.print(“cardNo=”); //显示标签控制码。     Serial.println(cardNo);      if(cardNo==0) //标签控制码=0?        forward(Rspeed,Lspeed); //车子前进。      else if(cardNo==1) //标签控制码=1?        right(Rspeed,Lspeed); //车子右转。      else if(cardNo==2) //标签控制码=2?        forward(Rspeed,Lspeed); //车子前进。      else if(cardNo==3) //标签控制码=3?        right(Rspeed,Lspeed); //车子右转。      else if(cardNo==4) //标签控制码=4?        forward(Rspeed,Lspeed); //车子前进。      else if(cardNo==5) //标签控制码=5?        right(Rspeed,Lspeed);  //车子右转。      else if(cardNo==6) //标签控制码=6?        forward(Rspeed,Lspeed); //车子前进。      else if(cardNo==7) //标签控制码=7?        right(Rspeed,Lspeed);  //车子右转。      else   //无法识别的标签控制码。        pause(0,0);     //车子停止。   }  }//对比RFID卡号void compTag(void){   cardNo=-1;  //清除标签控制码。   for(i=0;i1. 设计Arduino程序,使用RFID 标签来控制RFID导航自动机器人逆时针行走如图11-13所示的轨道。每次感应到RFID 标签时,蜂鸣器都会发出短哔声。
图11-13 RFID导航自动机器人逆时针行走的轨道2. 设计Arduino程序,使用RFID标签来控制RFID导航自动机器人的行走方向。当RFID-RC522模块感应到“前进标签”时,车子前进。当RFID-RC522模块感应到“后退标签”时,车子后退。当RFID-RC522模块感应到“右转标签”时,车子右转。当RFID-RC522模块感应到“左转标签”时,车子左转。当RFID-RC522模块感应到“停止标签”时,车子停止。每次感应到RFID标签时,蜂鸣器都会发出短哔声。

 何谓NFC?近距离无线通信(Near Field Communication,NFC,近场通信)是一种短距离的高频无线通信技术,允许电子设备之间在20厘米的范围内进行非接触式的点对点数据传输。NFC是由Philips和Sony联合开发的一种无线连接技术,整合了RFID和互连等技术,主要应用于数字消费类电子产品,如手机、手表、PDA、数字相机、游戏机、计算机以及金融、交通等。NFC可使蓝牙、无线USB和Wi-Fi网络等设备之间的连接变得极为简单。虽然NFC的传输速度与距离均比不上蓝牙,但比蓝牙受到的干扰小,极适合于设备密集的场所。

何谓 SPI?串行外设接口总线(Serial Peripheral Interface bus,SPI)是一种短距离、快速的4线同步串行通信接口,包含串行频率(SCLK)、主出从入(MOSI)、主入从出(MISO)和从线选(SS)共4线。SPI使用主(Master)/ 从(Slave)结构进行通信,如图11-14(a)所示为一对一主/从结构,由主设备(通常是微控制器)产生同步频率,将线选引脚的电位拉低,即可通过MOSI和MISO与从设备进行数据的传输。如图11-14(b)所示为一对多主/从结构,当主设备要与多个从设备进行通信时,由主设备(通常是微控制器)产生同步频率,再将要进行通信的从设备的线选电位拉低,即可通过MOSI和MISO与从设备进行数据的传输。因为是点对点数据传输,所以每次只启用SS1、SS2、SS3中的一个从设备。    (a) 一对一主/从结构                                         (b) 一对多主/从结构图11-14 SPI主/从结构

书摘插画
插图

插图

插图

插图

插图

插图

插图

插图

抢先评论了 “Arduino自动小车最佳入门与应用:打造轮型机器人轻松学” 取消回复

评论

还没有评论。

相关产品

加入购物车

跟着项目学iOS应用开发:基于Swift 4

EUR €53.99
阅读更多
缺货

第一行代码 Android 第2版

EUR €48.99
评分 5.00 &sol; 5
加入购物车

Android进阶之光

EUR €53.99
阅读更多
缺货

Android组件化架构

EUR €48.99

东东购的宗旨是服务喜爱阅读中文书籍的海外人民,提供一个完善的购书平台,让国人不论何时何地都能沉浸在书香之中,读着熟悉的中文字,回忆着家乡的味道。


安全加密结账 安心网络购物 支持Paypal付款

常见问题

  • 货物配送
  • 退换货政策
  • 隐私政策
  • 联盟营销

客户服务

  • 联系东东
  • 关于东东
  • 帮我找书
  • 货物追踪
  • 会员登入

订阅最新的优惠讯息和书籍资讯

选择币别

EUR
USD
CAD
AUD
NZD
NOK
GBP
CHF
SEK
CNY
UAH
ILS
SAR
MXN
KRW
MYR
SGD
HUF
TRY
JPY
HKD
TWD
facebookinstagram
©2020 东东购 EasternEast.com

限时特卖:用“SALE15”优惠券全场书籍85折!可与三本88折,六本78折的优惠叠加计算。 忽略