第1章 导言 1
1.1 “中国制造2025”的创新与人才问题 1
1.2 “大众创业、万众创新”全民创客运动浪潮 2
1.3 基于“中国制造2025”的创新工程教育改革 2
第2章 机器人的零件 3
2.1 零件体系 3
2.1.1 创新的必备条件——零件的扩展性 3
2.1.2 连杆类零件 4
2.1.3 平板类零件 4
2.1.4 框架类零件 4
2.1.5 辅助类零件 4
2.1.6 空间关系 6
2.2 基本结构与几何造型 9
2.2.1 刚体结构 10
2.2.2 可动结构 10
2.2.3 实验1:机构造型设计实验 11
2.3 构建机械原理模型 12
2.3.1 平面连杆机构 12
2.3.2 凸轮机构 13
2.3.3 齿轮机构 14
2.3.4 轮系机构 15
2.3.5 棘轮机构 16
2.3.6 实验2:机械原理模型组装实验 17
第3章 机器人的模块化设计 19
3.1 机器人的功能模块 19
3.1.1 驱动轮模块 19
3.1.2 随动轮模块 20
3.1.3 履带模块 21
3.1.4 关节模块 22
3.1.5 机械手模块 23
3.1.6 其他功能模块 23
3.1.7 实验1:功能模块组装实验 24
3.2 模块化设计的通用思路 25
3.2.1 整机的构成 25
3.2.2 机构库的管理 26
3.3 机器人模块化设计案例 28
3.3.1 底盘转向机构设计案例 28
3.3.2 收集装置设计案例 29
3.3.3 机械臂设计案例 30
3.3.4 仿生机器人设计案例 31
3.3.5 实验2:模块化设计及CDIO教学实验 32
第4章 机器人的主控和IDE 34
4.1 ARM7主控板 34
4.1.1 接口介绍 34
4.1.2 编程手柄 36
4.1.3 实验1:安装ARM7主控板下载驱动 38
4.2 TKStudio 38
4.2.1 各功能函数 39
4.2.2 底层代码 41
4.2.3 实验2:编写并烧录一个简单的ARM程序 43
4.3 Basra主控板 49
4.3.1 Arduino概述 49
4.3.2 接口介绍 49
4.3.3 扩展板系统 51
4.3.4 实验3:安装Basra驱动 54
4.4 Click 56
4.5 Arduino 58
4.5.1 C语言界面 58
4.5.2 图形化界面 59
4.5.3 常用图块与函数 60
4.5.4 实验4:编写并烧录一个简单的Arduino程序 61
4.6 示教编程 64
4.6.1 ARM7实现 64
4.6.2 Basra实现 65
4.6.3 Click实现 67
4.6.4 实验5:用示教编程的方法编写程序 67
第5章 机器人的执行器 68
5.1 伺服电机 68
5.1.1 伺服电机概述 68
5.1.2 舵机的控制方法 69
5.1.3 舵机的工作原理 69
5.1.4 实验1:控制伺服电机 71
5.2 直流电机 72
5.2.1 直流电机概述 72
5.2.2 实验2:控制直流电机 74
5.3 其他执行器 76
5.3.1 6V大功率直流电机 77
5.3.2 12V大功率直流电机 77
5.3.3 无刷电机 78
5.3.4 步进电机 79
5.3.5 气动系统 80
第6章 机器人的检测与交互 81
6.1 数字量传感器 81
6.1.1 在ARM7上使用数字量传感器 84
6.1.2 实验1:ARM上的传感器信号接收实验 85
6.1.3 在Basra/Click上使用数字量传感器 86
6.1.4 实验2.:Basra/Click上的传感器触发实验 87
6.2 模拟量传感器 87
6.2.1 模拟量传感器概述 87
6.2.2 模拟量传感器的编程 90
6.2.3 实验3:模拟量传感器的编程 91
6.3 传感器类模块 92
6.3.1 自平衡模块 92
6.3.2 摇杆模块 93
6.3.3 语音识别模块 93
6.3.4 HBR740语音识别模块 94
6.3.5 摄像头 95
6.4 传感器的测值 95
6.4.1 Serial Monitor 95
6.4.2 模拟量传感器的监测 97
6.4.3 数字量传感器的监测 100
6.4.4 实验4:Basra/Click串口监控实验 101
6.4.5 实验5:ARM7串口监控实验 102
6.5 检测功能方案举例 103
6.5.1 开关功能 103
6.5.2 障碍识别功能 104
6.5.3 悬崖识别功能 104
6.5.4 搜索/跟随功能 104
6.5.5 循迹功能 104
6.5.6 姿态/体感/平衡功能 104
6.5.7 对话/语音命令功能 105
6.5.8 物体辨认功能 105
6.5.9 反馈功能 105
6.6 ARM7的输出模块 105
6.6.1 语音模块 105
6.6.2 LED模块 106
6.6.3 实验6:ARM7控制LED模块实验 106
6.7 Basra的输出模块 108
6.7.1 实验7:Basra控制LED模块实验 108
6.7.2 实验8:LED点阵显示实验 109
6.7.3 实验9:贪食蛇游戏实验 113
6.7.4 实验10:OLED显示实验 116
第7章 机器人的通信 119
7.1 ARM7的通信模块 119
7.1.1 红外接收头 119
7.1.2 蓝牙模块 120
7.2 Basra的通信模块 120
7.2.1 蓝牙串口模块 120
7.2.2 NRF无线串口模块 121
7.2.3 Wi-Fi无线模块 122
7.2.4 ZigBee模块 123
7.2.5 串口通信——强大的扩展技术 123
7.3 通信实验 124
7.3.1 实验1:ARM7蓝牙串口通信实验 124
7.3.2 实验2:Basra蓝牙串口通信实验 127
7.3.3 实验3:NRF无线遥控实验 130
第8章 机器人经典编程框架 134
8.1 编程的思想 134
8.2 条件判断 136
8.2.1 实验1:ARM7控制扫地机器人项目 136
8.2.2 实验2:Basra控制扫地机器人项目 139
8.3 for循环 139
8.3.1 实验3:ARM7控制机械手爪缓慢抓取 139
8.3.2 实验4:Basra控制机械手爪缓慢抓取 141
8.4 有限状态机 141
8.4.1 状态表 142
8.4.2 二进制状态表 144
8.4.3 算法 144
8.4.4 策略表 145
8.4.5 实验5:ARM7控制三轮循迹小车 147
8.4.6 实验6:Basra控制双轮循迹小车 148
8.5 运动规划 149
8.5.1 实验7:ARM7控制机器人运动及步态规划实验 149
8.5.2 实验8:Basra控制5自由度蛇形机器人 161
8.5.3 实验9:Basra控制6自由度双足机器人 170
第9章 机器人综合创新项目 177
9.1 双轮自平衡车 177
9.1.1 双轮自平衡车的组装 177
9.1.2 参考代码 177
9.1.3 调试要点 178
9.2 5自由度机械臂 179
9.2.1 5自由度机械臂的组装 179
9.2.2 参考代码 179
9.2.3 调试要点 180
9.2.4 按颜色分拣工件 182
9.3 月球车模型 186
9.3.1 月球车模型的组装 187
9.3.2 手机端控制方法 187
9.3.3 参考代码 188
第10章 开放性创新项目与活动 198
10.1 机器人黑标竞速赛 199
10.2 机器人自主搬运比赛 199
10.3 机器人自主格斗赛 200
10.4 码垛机器人设计赛 200
10.5 全地形机器人设计赛 201
附录 202
附录A ARM7主控板端口列表 202
附录B Basra Pin Mapping 204
附录C Mehran Pin 205
参考文献 206