奥松机器人专利产品AS-6DOF铝合金六自由度机械臂喜登《Arduino机器人制作指南》封面
《Arduino机器人制作指南》内容简介
为你的机器人梦注入新动力——无需高级的电子电路或者编程技巧。《Arduino机器人制作指南》向你展示了如何仅仅使用普通的工具和零件来制作自动机器人。你可以学到如何进行电路连接,如何对机器人“大脑”编程,为机器人添加独一无二的特性等技能。本书内容通俗易懂,全景式讲解如何从轮式机器人平台Teachbot 逐渐扩展到功能更加复杂的机器人项目,还有音乐机器人 Tunebot、遥控机器人 Telebot\机器蛇 Snakebot,以及一个工作范围约 50cm 的机械手。
† Arduino 主板和编程的入门
† 制作一个基于微控制器的“大脑”
† 了解高科技传感器和控制器
† 编写和调试强大的 Arduino 应用程序
† 了解行走和转向技术
† 对机器人进行编程以使其自动循迹、避障
† 添加遥控和无线视频功能
† 增添声效及合成语音
† 开发功能性机器人手臂及夹持器
† 进行功能扩展并添加激动人心的新特性
书 名 《Arduino机器人制作指南》
标准书号 ISBN 978-7-03-038620-5
编目分类 TP-6480.01
作 者 〔美〕Gordon McComb著
译 者 唐 乐 译
定 价 78元
致 谢
特别感谢来自于Parallax的Ken Gracey、Matt Gilliland、Jim Carey及其他朋友;感谢来自Lynxmotion的Jim Frye,来自 SparkFun的Nathan Seidle、Pete Dokter和Robert Cowan,来自Devantech的Gerry Coe,来自DAGU的Russell Cameron、Claudia及其他员工,来自McGraw-Hill Education 的Roger Stewart和编辑团队,还有我的代理人Matt Wagner。
当然,始终感谢我的妻子Jennifer。
前 言
这是你的机器人——拥有Arduino的大脑
在我最开始制作机器人的时候,第一个微处理器还没有被发明。机器人的大脑仅仅只是一块手工线路板,而板子上面则分布着老式电阻、超贵的三极管,可能还有一两个继电器。而在当今,我们可以使用微控制器——非常棒的微型化产物,可以直接连接到灯、报警器、电动机、电磁铁、传感器及其他传感器。实际上,这一概念已经形成了所谓的“物理计算”这个专业名词。之所以提到这个,是因为物理计算直接与机器人制作相关联,这也是为何类似于Arduino的微控制器对于机器人会如此重要。
Arduino类似于存放在瓶子中的大脑……就其自身而言,它缺乏直接探测周围环境或者操作任何事物的能力。但是它可以根据用户的意愿配置传感器、电动机和其他控制电路,然后通过Arduino编程,使其能够执行命令。这也是本书的切入点:《Arduino机器人制作指南》将帮助用户使用Arduino作为中央大脑,从而构建6个机器人。书中展示了如何把零部件连接起来,然后编写程序使得机器人跟随指令行动。
《Arduino机器人制作指南》中的各个项目,只需要普通的工具和一般的制作技术,便可以容易地进行复现。所有的项目既不需要切割大块的金属或者进行焊接,而我们制作的6个机器人都只需要很容易获得的零件,并不需要任何特殊的及少见的零件。通常的机器人制作工作是一个极为费钱的行为,但是所有本书中涉及的机器人部件都相当廉价,且鼓励零件的重复利用。
免费的在线内容、零件查找和奖品
本书包含免费的在线内容:ARB在线支持网站。参照附录A的内容:
●访问“Project Parts Finder”以寻找本书将会用到的所有零件
●下载所有项目的源代码
●随时新建和更新网站信息和供应商信息
●强化和升级机器人的设计(e-plans)
●有奖论文、机器人制作指导及更多
始于此,但并非止于此
《Arduino机器人制作指南》可以被认为是通往某处的道路,但并非最终目的地。本书的6个机器人项目只是起到跳板的作用——能够较理想地帮助你入门。所有的代码——使用Arduino的术语来说是Sketch——尽量编写得简单明了,以便弄清楚它的工作原理,然后可以迅速地将其分成若干个部分,再加入你自己的创意。
许多项目都只提供了最核心的少量代码。当然,如果代码不长,则将所有的代码都罗列了出来。不过,可以在ARB在线支持网站迅速而容易地下载所有的源代码。
我从来都只认为我所有的机器人项目都是“在制”状态,经常会升级和调整。在ARB在线支持网站会同时提供可供选择的各个版本的代码,我也非常欢迎你提交经过加强和改进的Sketch!
现在,是时候上车了,发动引擎,然后开始你的旅程吧!
目 录
第 1 章 Arduino开发平台介绍
为何制作机器人… …………………………………………………………………………… 2
为何用Arduino制作机器人…………………………………………………………………… 3
Arduino可以为机器人做什么………………………………………………………………… 4
Arduino:硬件和软件的整合………………………………………………………………… 5
近距离观察Arduino硬件…………………………………………………………………… 6
Arduino主板上需要关注的重点…………………………………………………………… 7
可用内存… …………………………………………………………………………………14
关于电压和处理速度… ………………………………………………………………………15
Arduino工作电压:3.3V或5V………………………………………………………………15
Arduino工作速度……………………………………………………………………………16
了解主板上所有的LED… ……………………………………………………………………17
旧版本的Arduino主板…………………………………………………………………………17
了解Arduino软件………………………………………………………………………………17
IDE版本………………………………………………………………………………………19
USB驱动… …………………………………………………………………………………20
使用面包板或扩展板扩展… …………………………………………………………………20
第 2 章 让Arduino跑起来
所需零件… ……………………………………………………………………………………23
Arduino快速上手………………………………………………………………………………25
步骤1——下载Arduino…IDE…………………………………………………………………25
步骤2——解压缩软件包……………………………………………………………………26
步骤3——安装USB驱动……………………………………………………………………26
步骤4——确认Arduino正常工作……………………………………………………………27
步骤5——启动Arduino…IDE…………………………………………………………………28
步骤6——选定Arduino主板类型和通信端口………………………………………………29
步骤7——上传测试Sketch…………………………………………………………………29
步骤8——修改测试Sketch…………………………………………………………………30
再次了解Arduino…………………………………………………………………………………31
微控制器编程入门… …………………………………………………………………………32
概念:全都是“数字”… …………………………………………………………………32
HIGH到底是多高……………………………………………………………………………33
bit、byte、word………………………………………………………………………………33
烦人的概念:命令、函数、声明、数据类型运算符及变量名… ………………………34
语法和结构… ………………………………………………………………………………35
Sketch的结构分析… …………………………………………………………………………36
上手实验1:我们的LED闪光灯………………………………………………………………36
上手实验2:我们的LED闪光灯,镜头2… …………………………………………………39
上手实验3:读取按键状态……………………………………………………………………41
上手实验4:让Arduino发出声音… …………………………………………………………44
第 3 章 制作Teachbot学习平台
舵机版Teachbot概述… ………………………………………………………………………47
舵机版Teachbot的功能… ……………………………………………………………………49
制作舵机版Teachbot底板… …………………………………………………………………50
切割零件… …………………………………………………………………………………51
开孔技巧… …………………………………………………………………………………53
添加甲板… …………………………………………………………………………………54
组装Teachbot… ………………………………………………………………………………54
步骤0——准备好基本零件…………………………………………………………………54
步骤1——将舵机安装到舵机固定座上……………………………………………………55
步骤2——将L支架和舵机固定座连接在一起……………………………………………55
步骤3——将舵机固定座安装到底层甲板上………………………………………………55
步骤4——安装平衡支撑杆…………………………………………………………………56
步骤5——给舵机安装轮子…………………………………………………………………57
步骤6——安装电池…………………………………………………………………………57
步骤7——将Arduino安装到第二层甲板上…………………………………………………58
步骤8——在第二层甲板上固定面包板……………………………………………………59
步骤9——在底层甲板上添加第二层甲板…………………………………………………59
舵机版Teachbot如何… ………………………………………………………………………61
舵机ABC… …………………………………………………………………………………62
改进普通舵机的方法… ………………………………………………………………………64
基本改进步骤… ……………………………………………………………………………64
所需工具… …………………………………………………………………………………65
选择改进对象… ……………………………………………………………………………65
Hitec…HS-422改进实例………………………………………………………………………65
Futaba…S3003改进实例………………………………………………………………………67
改进后测试… ………………………………………………………………………………68
第 4 章 教学机器人编程:使其运动
接线并尝试驱动一个舵机… …………………………………………………………………69
舵机控制编程… ……………………………………………………………………………71
舵机控制Sketch分析…………………………………………………………………………72
两个舵机的控制… ……………………………………………………………………………75
面包板接线… ………………………………………………………………………………79
运行舵机测试sketch…………………………………………………………………………80
分析测试Sketch………………………………………………………………………………83
舵机版Teachbot的有线控制… ………………………………………………………………83
关于Servo对象的更多知识……………………………………………………………………87
连接和分离舵机… …………………………………………………………………………88
从特定位置开始运行… ……………………………………………………………………91
设定舵机转速… ……………………………………………………………………………91
使用变量指代I/O引脚编号…………………………………………………………………93
让舵机无延迟运转… ………………………………………………………………………94
连续旋转舵机的不足之处… …………………………………………………………………94
第 5 章 编程教学机器人:观察其反应 ………………………………101
让机器人具有触觉… …………………………………………………………………………95
用微动开关检测碰撞… ………………………………………………………………………97
了解碰撞检测Sketch……………………………………………………………………… 101
使用轮询或中断的方法来判断开关的触发… ………………………………………… 102
抖动和防抖… …………………………………………………………………………… 105
安装更多的开关… ……………………………………………………………………… 106
光线检测… ………………………………………………………………………………… 106
将光敏电阻的输出转换成电压信号… ………………………………………………… 106
基础的光线传感器应用… ……………………………………………………………… 107
用手电筒控制机器人… ………………………………………………………………… 108
循迹… ……………………………………………………………………………………… 112
循迹基础… ……………………………………………………………………………… 112
使用成品循迹传感器模块… …………………………………………………………… 114
制作自己的循迹模块… ………………………………………………………………… 118
红外线LED和光敏三极管的安装… …………………………………………………… 120
双传感器的循迹… ……………………………………………………………………… 121
第 6 章 教学机器人编程:使其开始探索
“非接触”和“近距检测”概述… ……………………………………………………… 124
使用超声波测距传感器… ………………………………………………………………… 124
超声波传感器的基本功能… …………………………………………………………… 126
安装传感器… …………………………………………………………………………… 127
使用超声波传感器避障… ……………………………………………………………… 128
添加旋转云台… …………………………………………………………………………… 128
添加夏普GP2Y0D810红外线测距传感器… ……………………………………………… 132
添加一个夏普GP2D120红外线传感器… ………………………………………………… 133
将GP2D120连接到Arduino……………………………………………………………… 135
给Teachbot添加电源开关… ……………………………………………………………… 137
回顾Teachbot的舵机连接… ……………………………………………………………… 139
第 7 章 机械制作
制作机器人的重要工具… ………………………………………………………………… 142
制作机器人的材料… ……………………………………………………………………… 143
使用木材制作机器人… ………………………………………………………………… 143
使用塑料制作机器人… ………………………………………………………………… 144
使用铝型材制作机器人… ……………………………………………………………… 146
使用泡沫板和硬纸板制作机器人… …………………………………………………… 147
组装技术… ………………………………………………………………………………… 148
胶… 带… ………………………………………………………………………………… 148
魔术贴… ………………………………………………………………………………… 149
塑料扎带… ……………………………………………………………………………… 150
胶水… …………………………………………………………………………………… 150
机械紧固件… …………………………………………………………………………… 150
紧固件类型… …………………………………………………………………………… 152
制作过程… ………………………………………………………………………………… 153
钻孔技巧… ……………………………………………………………………………… 153
切割技巧… ……………………………………………………………………………… 153
第 8 章 制作:电子电路
面包板… …………………………………………………………………………………… 157
透视面包板… …………………………………………………………………………… 158
如何使面包板电路持久工作… ………………………………………………………… 159
面包板的使用技巧… …………………………………………………………………… 159
扩展板(Shield)…………………………………………………………………………… 160
I/O冲突…………………………………………………………………………………… 161
电路过流… ……………………………………………………………………………… 161
物理和机械特性的限制… ……………………………………………………………… 161
处理扩展板I/O重复使用的问题………………………………………………………… 161
扩展板和不同版本Arduino主板的兼容性……………………………………………… 162
电路制作的工具… ………………………………………………………………………… 163
导线… ……………………………………………………………………………………… 163
接线… ……………………………………………………………………………………… 163
使用将导线焊接到排针上的方法制作排线… ………………………………………… 165
使用压接的方法制作排线… …………………………………………………………… 166
电路制作… ………………………………………………………………………………… 167
面包板… ………………………………………………………………………………… 167
万用板… ………………………………………………………………………………… 167
定制PCB… ……………………………………………………………………………… 168
接口技术… ………………………………………………………………………………… 170
LED接口… ……………………………………………………………………………… 171
电动机接口… …………………………………………………………………………… 172
输入保护… ……………………………………………………………………………… 174
减少输入/输出的线路干扰………………………………………………………………… 177
减少来自于电动机的干扰… …………………………………………………………… 177
减少来自于电子设备的电学噪声… …………………………………………………… 178
第 9 章 强化教学机器人
总物料清学… ……………………………………………………………………………… 179
制作直流电机版Teachbot… ……………………………………………………………… 181
对直流电机版Teachbot接线… …………………………………………………………… 186
电源开关连线… ………………………………………………………………………… 187
面包板接线… …………………………………………………………………………… 187
最后一次检查接线… …………………………………………………………………… 189
让直流电机版Teachbot迈出第一步… …………………………………………………… 189
测试电动机速度控制… …………………………………………………………………… 192
添加循迹模块… …………………………………………………………………………… 193
旋转转向和圆角转向… ………………………………………………………………… 198
测试传感器的红外线LED是否点亮… ………………………………………………… 199
开始循迹学习… ………………………………………………………………………… 199
添加编码器… ……………………………………………………………………………… 200
编码器的工作机制… …………………………………………………………………… 201
Teachbot编码器的硬件制作……………………………………………………………… 202
加强编码器的实用性… ………………………………………………………………… 209
提高编码器的分辨率… ………………………………………………………………… 210
添加发声功能… …………………………………………………………………………… 211
安装喇叭… ……………………………………………………………………………… 211
对Babblebot模块进行控制… …………………………………………………………… 213
Teachbot应该扩展… ……………………………………………………………………… 214
第 10 章 有趣的音乐机器人
Tunebot设计概述…………………………………………………………………………… 215
制作Tunebot……………………………………………………………………………… 217
组装和固定电动机… …………………………………………………………………… 218
安装背板… ……………………………………………………………………………… 221
组装橡胶履带… ………………………………………………………………………… 221
测试和使用Tunebot的减速电动机………………………………………………………… 222
制作可逆控制板… ……………………………………………………………………… 222
对电动机和控制板接线… ……………………………………………………………… 224
手动操纵Tunebot………………………………………………………………………… 226
使用电机控制模块… ……………………………………………………………………… 228
使用H桥电路控制电动机………………………………………………………………… 228
更换Tamiya减速箱的电动机……………………………………………………………… 229
安装Arduino和其他电子零件……………………………………………………………… 230
MIDI模块………………………………………………………………………………… 230
安装Arduino主板………………………………………………………………………… 232
安装ArduMoto扩展板… ………………………………………………………………… 233
将电动机连接到电动机扩展板(ArduMoto)… ……………………………………… 233
安装面包板扩展板… …………………………………………………………………… 234
配备供电电池组… ………………………………………………………………………… 236
电源和电动机测试… ……………………………………………………………………… 237
使传动系统更加耐用… ………………………………………………………………… 240
添加循迹模块… …………………………………………………………………………… 240
使用MIDI产生音乐………………………………………………………………………… 242
关于乐器、音色库、通道的知识… …………………………………………………… 243
通道音频信息… ………………………………………………………………………… 245
变更设置信息… ………………………………………………………………………… 246
MIDI作曲………………………………………………………………………………… 247
常… 数… ………………………………………………………………………………… 249
演奏复合音节… ………………………………………………………………………… 251
对机器人运动和音乐编程… ……………………………………………………………… 254
为Tunebot扩展接近传感器和碰撞传感器………………………………………………… 254
在线内容:为Tunebot添加扎实的履带…………………………………………………… 255
第 11 章 让遥控机器人到达指定位置 ………………………………273
无线控制机器人… ………………………………………………………………………… 257
ZigBee入门… …………………………………………………………………………… 259
了解ZigBee标准的变迁… ……………………………………………………………… 259
使用XBee…Series…1通信…………………………………………………………………… 260
三个Arduino,一个遥控机器人…………………………………………………………… 260
制作无线遥控器… ………………………………………………………………………… 261
安装Arduino和面包板扩展板…………………………………………………………… 261
连接XBee无线模块……………………………………………………………………… 262
使用主令开关… ………………………………………………………………………… 263
使用两轴加速度传感器或电子罗盘… ………………………………………………… 264
使用复合传感器… ……………………………………………………………………… 266
给Telebot添加XBee接收器………………………………………………………………… 270
使用主令开关控制Telebot… …………………………………………………………… 271
使用电子罗盘控制Telebot… …………………………………………………………… 274
在线内容:使用电子罗盘的方位数据控制Telebot……………………………………… 276
给Telebot加载实时视频传输功能………………………………………………………… 277
为视频添加字幕… ……………………………………………………………………… 278
将信息写入Backpack模块… …………………………………………………………… 280
显示环境数据… ………………………………………………………………………… 283
加强遥控机器人… ………………………………………………………………………… 285
第 12 章 机器蛇 ………………………………………………………303
模仿蛇的运动… …………………………………………………………………………… 287
机器蛇设计概述… ………………………………………………………………………… 288
体… 节… ………………………………………………………………………………… 289
Arduino主板……………………………………………………………………………… 289
自动化和遥控… ………………………………………………………………………… 291
制作机器蛇… ……………………………………………………………………………… 291
组装体节… ……………………………………………………………………………… 292
设定舵机的中点… ……………………………………………………………………… 295
电池和舵机接线板的安装… …………………………………………………………… 297
使用舵机延长线… ……………………………………………………………………… 299
体节间接线… …………………………………………………………………………… 300
Arduino…Pro…Mini接线……………………………………………………………………… 302
对机器蛇编程… …………………………………………………………………………… 303
降低舵机的运行速度… ………………………………………………………………… 305
加载和运行机器蛇的Sketch……………………………………………………………… 307
在线内容:将Arduino用作舵机控制器…………………………………………………… 309
用遥控器控制机器蛇… …………………………………………………………………… 310
第 13 章 机械手 ………………………………………………………331
了解机械手… ……………………………………………………………………………… 316
剖析机械手结构… ………………………………………………………………………… 317
自由度… ………………………………………………………………………………… 318
舵机的选择… …………………………………………………………………………… 318
舵… 盘… ………………………………………………………………………………… 319
特殊的Arduino主板……………………………………………………………………… 319
制作机械手… ……………………………………………………………………………… 320
将所有舵机调整到中点… ……………………………………………………………… 320
切割底板… ……………………………………………………………………………… 321
制作肩部基板… ………………………………………………………………………… 322
组装肩部… ……………………………………………………………………………… 323
制作上臂和前臂… ……………………………………………………………………… 330
制作腕部… ……………………………………………………………………………… 333
制作夹持器… …………………………………………………………………………… 335
连接前臂和上臂… ……………………………………………………………………… 335
连接上臂和旋转平台… ………………………………………………………………… 336
增加逆向弹性平衡… …………………………………………………………………… 336
安装Arduino主板…………………………………………………………………………… 339
电源接线… ………………………………………………………………………………… 339
将控制电路接到Arduino…………………………………………………………………… 342
添加橡胶脚垫… …………………………………………………………………………… 344
对机械手编程… …………………………………………………………………………… 344
测试起始位置和最小/最大位置………………………………………………………… 344
使用串口监视器控制机械手… ………………………………………………………… 346
使用带Joystick手柄和键盘的控制器控制机械手……………………………………… 349
对机械手编程以实现交互控制… ………………………………………………………… 350
操纵机械手… ……………………………………………………………………………… 357
使用Joystick手柄来操纵………………………………………………………………… 358
使用键盘操纵… ………………………………………………………………………… 358
附件 A ARB支持网站 ………………………………………………379
在线资源… ………………………………………………………………………………… 359
特殊零件来源或网站… …………………………………………………………………… 359
附件 B 物料采购链接 …………………………………………………381
机器人… …………………………………………………………………………………… 361
电子零件… ………………………………………………………………………………… 362
爱好者商店… ……………………………………………………………………………… 363
特殊资源… ………………………………………………………………………………… 363
支架:金属和塑料… …………………………………………………………………… 363
竞赛和机器人小组… …………………………………………………………………… 363
电子套件… ……………………………………………………………………………… 364
论坛(非产品专题)… ………………………………………………………………… 364
齿轮和机械件… ………………………………………………………………………… 364
塑料和结构件… ………………………………………………………………………… 364
二手货… ………………………………………………………………………………… 364
如何在一个大型目录中找到所需的电子零件… ………………………………………… 365
附件 C 排错及如何避免犯错 …………………………………………387
预防检查… ………………………………………………………………………………… 367
系统开发和排错… ………………………………………………………………………… 368
使用串口监视器调试问题… ……………………………………………………………… 369
插入到setup()函数中间…………………………………………………………………… 370
插入到loop()函数的开头或结尾部分…………………………………………………… 371
插入到用户自定义函数中… …………………………………………………………… 371
插入到Sketch中任何使用到循环的位置………………………………………………… 372
插入到任何需要预览的某个值附近… ………………………………………………… 372
排错建议… ………………………………………………………………………………… 373
无电源,指示灯不亮,处于最原始的状态… ………………………………………… 373
行为异常… ……………………………………………………………………………… 374
指示灯亮,但是没有串口调试信息… ………………………………………………… 374
串口监视器窗口显示乱码… …………………………………………………………… 374
调试信息重复出现,但是设计并非如此… …………………………………………… 374
数据结果错误或是未预料的… ………………………………………………………… 375
Sketch无法编译…………………………………………………………………………… 375
一切都在工作,除了电动机… ………………………………………………………… 375
本书封底由奥松机器人提供图片,是奥松机器人今年正式成为arduino代理商引进的Arduino首款带有车轮的机器人——Arduino Robot,目前国内很少买到正品,且全球限量发行,购买请提前预订
2013年Arduino官方对奥松机器人企业资质、行业地位、业务能力、技术条件以及售后服务等多方面经过数月考核,通过认证,并授予奥松机器人(ALSRobotBase)成为意大利Arduino官方授权的中国大陆区域总代理商。
Arduino Robot与奥松机器人自主研发产品超声波传感器的完美结合,并且超声波支架为奥松机器人代理的3D打印行业国际一流品牌美国Makerbot其Makerbot Replicator 2打印机的产物。
相关文章:
【独家首发】《树莓派应用速成 Raspbmc媒体中心》--私人定制属于你自己的媒体中心
【独家首发】进阶网络“骇客”的“葵花宝典”—《树莓派应用速成-网络应用秘方》
【独家首发】《Arduino机器人权威指南》于欣龙译著重磅发行
-----------------------------------------------------------------------------------------
奥松机器人官网:www.robotbase.cn
微信号:搜索公众号“奥松机器人”
QQ群: 271230889(讨论,解惑)
微博:@奥松机器人基地
----------------------------------------------------------------------------------------------------------------
温馨提示:予人玫瑰,手留余香;如果你喜欢这篇文章,不妨转发推荐给你身边的朋友!