项目1 软件环境搭建与配置 1
1.1 项目描述 1
1.2 教学目标 1
1.3 知识准备 1
1.4 任务实现 2
1.4.1 安装VMware Workstation 2
1.4.2 在虚拟机上安装RedHat Linux操作系统 5
1.4.3 Linux的常用命令 22
1.4.4 vi编辑器的进入 25
1.4.5 vi编辑器的两种模式 25
1.4.6 vi编辑器的退出 25
1.4.7 vi编辑器的基本编辑 26
1.4.8 vi编辑器的文件操作指令 26
1.4.9 VMwaretools的安装 26
1.4.10 交叉编译环境配置 30
1.4.11 超级终端配置 32
1.4.12 NFS配置 33
1.5 考核评价 34
任务1 VMware安装 34
任务2 Linux安装 34
任务3 vi编辑器删除、复制文件及脚本编写 34
任务4 安装VMwaretools 35
任务5 配置交叉编译环境 35
任务6 搭建自己的NFS 35
1.6 拓展提高 35
任务1 Linux命令的使用 35
任务2 JTAG驱动安装配置及烧写文件 35
项目2 ARM2440开发板 36
2.1 项目描述 36
2.2 教学目标 36
2.3 知识准备 36
2.3.1 ARM2440开发板硬件 36
2.3.2 ARM2440开发板系统特性 38
2.3.3 ARM2440开发板接口布局及跳线 39
2.4 任务实现 52
2.4.1 编写Hello程序 52
2.4.2 编写LED程序 53
2.4.3 编写按键程序 55
2.4.4 编写PWM控制蜂鸣器程序 57
2.4.5 编写A/D输入程序 60
2.4.6 插入驱动程序 63
2.5 考核评价 68
任务1 编写GPIO程序 68
任务2 编写ADC程序 68
任务3 编写PWM程序 68
2.6 拓展提高 68
任务 编写蜂鸣器唱歌程序 68
项目3 运动模块设计 69
3.1 项目描述 69
3.2 教学目标 69
3.3 知识准备 69
3.3.1 关于直流电机 69
3.3.2 宏定义 70
3.3.3 结构体类型的使用 70
3.3.4 延时程序 71
3.3.5 ioctl函数 71
3.4 任务实现 71
3.4.1 方案设计 71
3.4.2 硬件电路设计 72
3.4.3 程序设计 72
3.4.4 程序代码编辑、调试及运行 73
3.4.5 用arm linux交叉编译程序 81
3.4.6 烧写可执行文件 81
3.4.7 设置开机自动运行程序 81
3.5 考核评价 82
任务1实现小车原地转圈 82
任务2实现小车8字线路巡航 82
3.6 拓展提高 83
任务实现小车进三退二巡航 83
项目4 循迹模块设计 84
4.1 项目描述 84
4.2 教学目标 84
4.3 知识准备 84
4.3.1 关于灰度传感器 84
4.3.2 按位“与”运算符(&) 85
4.3.3 按位“或”运算符(|) 85
4.3.4 关于read函数 86
4.3.5 关于sizeof使用 86
4.4 任务实现 86
4.4.1 方案设计 86
4.4.2 硬件电路设计 87
4.4.3 程序设计 88
4.4.4 程序代码编辑、调试及运行 89
4.4.5 用arm linux交叉编译程序 104
4.4.6 烧写可执行文件 105
4.5 考核评价 105
任务1 实现小车白线循迹 105
任务2 实现小车黑线循迹 106
4.6 拓展提高 106
任务 在中间灰度值低、四周灰度值高的平台上自主漫游 106
项目5 红外模块设计 107
5.1 项目描述 107
5.2 教学目标 107
5.3 知识准备 107
5.3.1 关于红外传感器 107
5.3.2 指针 108
5.3.3 break的使用 108
5.3.4 return语句的使用 109
5.3.5 continue语句的使用 109
5.4 任务实现 110
5.4.1 方案设计 110
5.4.2 硬件电路设计 110
5.4.3 程序设计 111
5.4.4 程序代码编辑、调试及运行 112
5.4.5 用arm_linux交叉编译程序 119
5.4.6 烧写可执行文件 120
5.5 考核评价 120
任务1 实现小车红外报警 120
任务2实现小车红外避障巡航 121
5.6 拓展提高 121
任务实现小车红外测距 121
项目6 超声模块设计 122
6.1 项目描述 122
6.2 教学目标 122
6.3 知识准备 122
6.3.1 超声波传感器 122
6.3.2 超声波测距原理及计算公式 123
6.3.3 超声波传感器工作时序 123
6.3.4 超声波不能测距的几种情况 124
6.4 任务实现 124
6.4.1 方案设计 124
6.4.2 硬件电路设计 125
6.4.3 程序设计 126
6.4.4 程序代码编辑、调试及运行 126
6.4.5 用arm_linux交叉编译程序 138
6.4.6 烧写可执行文件 139
6.5 考核评价 139
任务1 实现小车超声测距 139
任务2 实现小车超声波检测报警 139
6.6 拓展提高 140
任务实现小车超声波避障巡航 140
项目7 温度模块设计 141
7.1 项目描述 141
7.2 教学目标 141
7.3 知识准备 141
7.3.1 DS-18B20温度传感器介绍 141
7.3.2 DS-18B20温度传感器初始化 142
7.3.3 DS-18B20温度传感器写操作 142
7.3.4 DS-18B20温度传感器读操作 142
7.4 任务实现 143
7.4.1 方案设计 143
7.4.2 硬件电路设计 143
7.4.3 程序设计 143
7.4.4 程序代码编辑、调试及运行 145
7.4.5 用arm_linux交叉编译程序 151
7.4.6 烧写可执行文件 152
7.5 考核评价 152
任务 实现温度检测 152
7.6 拓展提高 153
任务 实现温度报警 153
项目8 图像采集模块设计 154
8.1 项目描述 154
8.2 教学目标 154
8.3 知识准备 154
8.3.1 camera介绍 154
8.3.2 sprintf介绍 154
8.3.3 malloc()介绍 155
8.3.4 free用法 156
8.3.5 RGB介绍 156
8.3.6 RGB565转换RGB888介绍 157
8.4 任务实现 157
8.4.1 无线环境配置 158
8.4.2 硬件电路设计 160
8.4.3 程序设计 161
8.4.4 程序代码编辑、调试及运行 162
8.4.5 用arm_linux交叉编译程序 171
8.4.6 烧写可执行文件 172
8.5 考核评价 172
任务1 图片格式转换 172
任务2 图片采集并保存 172
8.6 拓展提高 173
任务 无线数据传输图片 173
项目9 探月小车自主漫游设计 174
9.1 项目描述 174
9.2 教学目标 174
9.3 任务实现 175
9.3.1 方案设计 175
9.3.2 硬件电路设计 175
9.3.3 程序设计 176
9.3.4 程序代码编辑、调试及运行 180
9.3.5 用arm linux交叉编译程序 204
9.3.6 烧写可执行文件 205
9.3.7 设置开机自动运行程序 205
9.4 考核评价 206
任务1 小车自主漫游避障 206
任务2 小车自主漫游避障及障碍物图像采集 206
任务3 小车自主漫游避障、障碍物图像采集及环境温度采集 207
附录A C语言概要归纳 208
A.1 条件控制语句 208
A.1.1 if语句 208
A.1.2 switch语句 214
A.2 循环语句 218
A.2.1 while语句 218
A.2.2 for语句 221
A.3 函数 224
A.3.1 函数的定义 224
A.3.2 函数的声明和调用 225
附录B 安装所需元器件清单 227
附录C 调试所需仪器仪表清单 229
参考文献 230