Arduino机器人权威指南作 者: (美)John-David Warren(约翰-戴维.沃伦),Josh Adams(约什.亚当斯),Harald Molle(哈拉尔德.莫勒)著 于欣龙 译出版时间: 2014内容简介 你想制作有趣的机器人吗?你想让机器人沿着指定的路线行走吗?你想让机器人帮助你清扫庭院吗?你想让机器人载着你逛街吗?那么请选择《Arduino机器人权威指南》吧!John-David Warren、Josh Adams和Harald Molle会带你走进机器人的世界,教会你如何寻找配件、怎样制作机器人、怎样进行编程,甚至告诉你如何对机器人进行安全测试。本书可以教会你如何用Arduino来控制各式各样的机器人,同时提供了每一步的详细指导。你不仅可以学会Arduino的基本使用方法,还可以了解各种电机的特性。同样,你会掌握其控制和排除故障的方法,将之应用到你的机器人项目中。本书从易到难,讲解了各种各样机器人的制作方法,其中包括GPS机器船、草地机器人、格斗机器人及赛格威机器人等。无论你是只会摆弄Arduino的初学者,还是一个制作小工具的专家,《Arduino机器人权威指南》都会帮助你制作出意想不到的机器人作品。目 录第1章 基础 11.1 电学 21.1.1 电模拟 31.1.2 电的基础知识 41.1.3 电路 61.1.4 电信号测量 71.1.5 万用表 71.1.6 电压测量 81.1.7 电流强度测量 91.1.8 电容测量 91.1.9 电阻测量 101.1.10 使用欧姆定律计算电阻功率 111.1.11 示波器 121.1.12 负载 131.1.13 电路连接 141.2 电子学 151.2.1 半导体 161.2.2 技术手册 171.2.3 集成电路 181.2.4 通孔元件 191.3 Arduino初级读本 201.3.1 Arduino变体 211.3.2 Arduino集成开发环境 241.3.3 草稿 241.3.4 信号 281.4 构建电路 381.4.1 电路设计 381.4.2 原理图 391.4.3 原型 411.5 搭建机器人 471.5.1 硬件 471.5.2 材料 491.5.3 工作区域 501.6 总结 51第2章 基于Arduino的机器人 522.1 Arduino接口 522.1.1 继电器 532.1.2 晶体管 592.1.3 电机控制器的接口 662.2 用户控制 692.2.1 连线(有线)控制 702.2.2 红外控制(IR) 702.2.3 无线电控制系统 712.3 传感器导航 742.3.1 接触式感知 752.3.2 距离和反射式感知 752.3.3 方向(定位) 782.3.4 非自主传感器 812.4 总结 84第3章 让机器人动起来 853.1 电机 853.1.1 有刷直流电机(永久磁铁型) 863.1.2 无刷直流电机 873.1.3 步进电机 883.1.4 齿轮减速电机 903.1.5 伺服舵机 913.1.6 线性制动器 923.1.7 功率计算 933.1.8 驱动 933.1.9 寻找合适的电机 943.2 H桥 953.2.1 产生制动 963.2.2 实现 973.2.3 H桥集成电路 1003.2.4 更改PWM频率 1013.2.5 反电动势 1033.2.6 电流检测 1053.2.7 基于H桥的商品(电机控制器) 1063.3 电池 1093.3.1 镍镉电池(NiCad) 1103.3.2 镍氢电池(NiMH) 1103.3.3 锂聚合物电池(LiPo) 1113.3.4 铅酸蓄电池 1123.3.5 充电 1143.4 材料 1153.4.1 木材 1153.4.2 金属 1163.4.3 螺栓和螺母 1163.4.4 塑料 1173.4.5 链条和链轮齿 1173.4.6 车轮 1183.5 总结 118第4章 莱纳斯寻线机器人 1204.1 莱纳斯的零件清单 1214.2 如何使莱纳斯工作 1234.2.1 轨道 1234.3 制作红外传感器电路板 1244.4 改装成连续旋转的伺服舵机 1324.4.1 方法1:带有外部速度控制器的直接直流驱动 1324.4.2 方法2:带有内部电机驱动电路的伺服脉冲驱动 1354.5 合适的驱动轮 1374.6 制作框架 1414.7 制作连接 1464.8 电池安装 1474.8.1 安装电源开关 1484.9 加载代码 1484.10 制作轨道 1554.11 测试 1564.12 附加组件 1574.12.1 LED指示灯 1574.12.2 喷漆 1594.12.3 添加速度调节器(电位器) 1624.13 总结 164第5章 墙追踪机器人Wally 1665.1 如何让Wally工作 1675.2 Wally的零件清单 1695.3 电机控制器 1715.3.1 高侧开关 1715.3.2 低侧开关 1715.3.3 电路制作 1735.4 制作框架 1785.5 安装传感器 1825.6 安装电池和电源开关 1855.6.1 电源开关安装 1865.7 代码 1875.7.1 代码目标 1895.8 总结 198第6章 制作PCB板 1996.1 PCB基础 1996.2 你需要什么来开始 2006.3 电路设计 2026.3.1 搜索开源设计 2036.3.2 制作你自己的设计 2046.3.3 使用Eagle原理图编辑器工作 2076.3.4 使用Eagle电路板编辑器工作 2116.4 转印设计 2196.4.1 让我们制作一块Arduino克隆板――Jduino 2196.4.2 开始转印 2216.5 腐蚀 2276.5.1 测量腐蚀液 2276.5.2 腐蚀(方法1) 2286.5.3 腐蚀(方法2) 2306.5.4 清除墨粉 2326.6 钻孔 2346.7 焊接 2356.7.1 制作Arduino克隆板 2356.7.2 制作BJT H-桥 2386.8 测试 2406.9 总结 243第7章 昆虫机器人 2447.1 通过Arduino读取开关 2457.2 如何使昆虫机器人工作 2467.2.1 天线传感器 2467.2.2 碰撞传感器 2477.3 昆虫机器人的零件清单 2477.4 电机 2497.4.1 改装伺服舵机 2497.4.2 控制伺服舵机 2517.4.3 将脉冲值转换为角度值 2527.4.4 将车轮安装到伺服舵机 2537.5 制作框架 2557.5.1 标记有机玻璃 2557.5.2 切割有机玻璃 2567.5.3 安装电机 2587.5.4 安装脚轮 2587.5.5 安装Arduino 2607.5.6 安装电池 2607.6 制作传感器 2627.6.1 前置天线传感器 2627.6.2 后置碰撞传感器 2637.7 制作连线 2667.8 加载代码 2677.8.1 创建一个延迟 2677.8.2 变量 2687.8.3 代码 2697.9 制作一顶帽子 2777.10 总结 280第8章 探险者机器人 2818.1 如何使探险者机器人工作 2828.1.1 R/C控制 2828.1.2 强大的电机 2838.1.3 电流检测 2838.1.4 启动视频 2838.1.5 启动Xbee 2848.2 探险者机器人的零件清单 2848.3 制作框架 2868.3.1 规格 2868.3.2 添加电池支架 2878.3.3 切割底部框架支架 2898.3.4 切割顶部框架支架 2898.3.5 切割和弯曲主框架板 2908.3.6 添加横杆和安装脚轮 2918.3.7 有机玻璃甲板(任选) 2938.4 制作电机控制器 2938.4.1 电流检测和限流 2938.4.2 H桥设计 2948.5 设置Arduino 2988.5.1 连接H桥 2998.6 设置Xbee 3008.6.1 测试Xbee 3028.7 添加摄像头 3038.7.1 二自由度云台 3048.7.2 制作第一个支架 3058.7.3 制作第二个支架 3068.8 加载代码 3078.9 总结 316第9章 机器船 3189.1 开场白 3199.2 机器船的零件清单 3199.2.1 聚苯乙烯泡沫塑料 3219.2.2 环氧树脂 3229.2.3 手套 3239.2.4 玻璃纤维布 3239.2.5 胶水 3249.2.6 泡沫塑料切割机和美工刀 3259.2.7 杂项 3259.3 机器船设计 3259.4 组装机器船 3279.4.1 模板 3279.4.2 将模板胶合到EPS/ XPS板上 3299.4.3 切出分段 3309.4.4 把分段胶合在一起 3329.4.5 插入泡沫锚 3339.4.6 涂层 3349.4.7 涂抹成品 3359.4.8 鳍 3369.4.9 上色 3369.4.10 甲板 3369.4.11 完成组装 3379.5 推进装置 3389.5.1 底板 3409.5.2 枢轴 3409.5.3 管子 3419.5.4 舵角 3429.5.5 电机 3439.5.6 舵机 3449.5.7 推杆 3449.6 电子设备 3449.6.1 系统的核心――ArduPilot PCB 3459.6.2 GPS模块 3469.6.3 电子调速器(ESC) 3469.6.4 电机 3479.6.5 舵机 3479.6.6 电池组 3479.6.7 安装电子设备 3489.7 软件和任务规划 3519.7.1 GPS接收器 3519.7.2 软件 3529.7.3 安装软件 3729.7.4 任务规划 3779.8 全部放在一起 3809.8.1 集成系统 3819.8.2 船,欢呼吧! 3839.9 故障排除 3839.9.1 电机/螺旋桨的推力不够 3849.9.2 电机不启动 3859.10 总结 385第10章 草地机器人400 38610.1 如何使草地机器人400工作 38710.1.1 割草机甲板 38810.1.2 大容量电池 38810.1.3 钢框架 38910.1.4 卸料斗 38910.1.5 充气轮胎 39010.1.6 前灯 39010.1.7 失效保护 39010.2 工具和零件列表 39110.2.1 割草机 39110.2.2 零件清单 39110.3 轮子 39210.3.1 前脚轮 39310.3.2 后驱动轮 39310.3.3 安装链轮 39410.4 框架 39510.5 传动系统 40210.5.1 安装电机支架 40310.5.2 安装链条 40610.6 电机控制器 40810.6.1 选购一个电机控制器 40810.6.2 散热风扇 41010.6.3 电机控制器反馈 41110.7 Arduino 41310.7.1 固定好连接以防行驶颠簸 41310.8 失效保护 41710.8.1 无线电遥控拨动开关 41810.8.2 功率继电器 42010.8.3 避免无线电遥控本身的失效保护 42110.9 连接电路 42210.10 代码 42310.11 美化和添加附件 42910.11.1 喷漆 42910.11.2 前灯 43010.11.3 卸料斗 43010.11.4 割草机安全开关 43210.12 总结 432第11章 赛格威机器人 43411.1 如何使赛格威机器人工作 43511.1.1 惯性测量单元 43511.1.2 转向和增益 43611.1.3 啮合器 43611.2 赛格威机器人的零件清单 43611.3 选择合适的传感器 43811.3.1 3.3V电源 43911.3.2 加速度计 44011.3.3 陀螺仪 44211.3.4 陀螺仪和加速度计的总结 44311.3.5 角度滤波 44411.4 制作惯性测量单元适配板 44511.5 选择电机 44611.5.1 卸掉电力制动器 44811.5.2 电机安装位置 45011.6 选择电机控制器 45111.6.1 SoftwareSerial库 45211.6.2 Sabertooth控制器的简化串口 45311.7 电池 45411.7.1 密封铅酸蓄电池 45511.7.2 充电 45611.7.3 12V供电 45611.8 框架 45611.8.1 框架设计 45811.8.2 制作框架 45811.9 输入装置 46211.9.1 转向 46211.9.2 增益 46211.9.3 啮合器 46311.9.4 水平启动 46311.9.5 安装输入装置到框架上 46311.10 安装电子设备 46711.10.1 焊接输入装置 47011.10.2 连接线路 47011.11 分析代码 47111.11.1 sample_accel()函数 47211.11.2 sample_gyro()函数 47311.11.3 检查角度读数 47411.11.4 calculate_angle() 函数 47511.11.5 read_pots()函数 47611.11.6 auto_level()函数 47711.11.7 update_motor_speed() 函数 47911.11.8 time_stamp()函数 48211.11.9 serial_print_stuff()函数 48211.11.10 完整代码 48411.12 测试 49111.13 总结 49311.14 参考资料 493第12章 格斗机器人 49412.1 机器人格斗的诞生 49612.1.1 格斗机器人的规章制度 49612.1.2 没有价格限制 49712.2 格斗机器人零件清单 49812.3 输入控制 50012.3.1 Fly Sky CT-6:32美元、5通道、2.4GHz无线控制器备选方案 50112.4 电子设备 50412.4.1 Arduino 50412.4.2 电机控制器 50512.5 框架 50712.5.1 是买,还是做 50812.5.2 改装轮子 50912.5.3 制作框架 51012.6 传动系统 51312.6.1 齿轮传动装置 51412.6.2 链条张力调整螺母 51512.7 电池 52012.8 安装电子设备 52212.8.1 保护好你的大脑 52212.8.2 连接线路 52412.9 代码 52612.10 盔甲 53212.11 武器 53412.12 附加信息 54012.13 总结 541第13章 其他控制方式 54213.1 用Processing来解码信号 54313.2 其他控制方式所用零件清单 54313.3 选择输入设备 54413.4 Processing必备文件 54513.5 遵照协议 54613.6 检查Processing的代码 54613.6.1 代码解析 54913.6.2 测试Processing 55113.7 检查Arduino的代码 55313.8 总结 560