第1章 竞赛简介 1
1.1 竞赛与规则简介 1
1.1.1 竞赛介绍 1
1.1.2 竞赛规则 2
1.2 历届承办单位及获奖情况 2
第2章 智能汽车硬件设计 4
2.1 供电模块电路设计 4
2.1.1 单片机供电电路设计 5
2.1.2 舵机供电电路设计 7
2.1.3 特殊传感器的升压供电 9
2.1.4 传感器等其他外设供电 11
2.2 电动机驱动电路设计 12
2.2.1 脉宽调制基本原理 12
2.2.2 H桥的基本原理 14
2.2.3 A车模、D车模电动机驱动方案 15
2.2.4 B车模电动机驱动方案 16
2.3 信号传递电路的设计 19
2.3.1 电动机控制信号的电平转换与隔离 19
2.3.2 传感器数据信号的电平转换 21
2.3.3 舵机控制信号的隔离 24
2.4 测速模块原理与电路设计 25
2.4.1 光电脉冲测速原理 25
2.4.2 低成本方案——光电码盘 26
2.4.3 高精度方案——光电编码器 27
2.4.4 第五轮测速方式 29
2.5 辅助调试设备及其电路设计 29
2.5.1 液晶显示 30
2.5.2 矩阵键盘 32
2.5.3 拨码开关 33
2.5.4 串口通信 34
2.5.5 无线通信 36
2.5.6 SD卡读写 37
2.6 主板外形设计 37
2.6.1 A型车模主板设计参考 37
2.6.2 B型车模主板设计参考 39
2.7 PCB实体电路的设计 39
2.7.1 元器件封装选择 39
2.7.2 基于原理图设计实体电路 40
2.7.3 电路抗干扰、防静电设计 43
2.7.4 自制PCB的方法指导 44
本章小结 45
第3章 智能汽车软件设计 46
3.1 C语言核心内容与芯片编程规范 46
3.1.1 C语言核心内容 46
3.1.2 命名规则 53
3.1.3 注释 54
3.1.4 统一类型别名定义 56
3.1.5 编码 56
3.2 控制主程序 57
3.2.1 摄像头组主程序设计 57
3.2.2 电磁组主程序设计 57
3.2.3 光电组主程序设计 59
3.3 赛道信息的获取 60
3.3.1 摄像头图像的获取 60
3.3.2 电磁传感器信号的获取 67
3.3.3 光电传感器信号的获取 70
3.4 信号处理与赛道识别 71
3.4.1 摄像头图像处理与赛道边沿识别 71
3.4.2 电磁车信号放大与赛道边沿识别 73
3.4.3 光电车信号处理与赛道边沿识别 74
3.5 赛道分析与控制策略 74
3.5.1 摄像头组 74
3.5.2 电磁组及光电组 77
3.6 起跑线的识别 78
3.6.1 摄像头组 78
3.6.2 电磁组 78
3.6.3 光电组 80
3.7 PID控制算法和应用 80
3.7.1 PID控制算法 80
3.7.2 PID控制在智能汽车上的实现 84
3.8 其他控制算法和应用 85
3.8.1 模糊控制 85
3.8.2 赛道记忆算法 87
3.9 计算机辅助调试 87
3.9.1 开发软件介绍 87
3.9.2 C#上位机获取图像 88
3.9.3 MATLAB调试PID 88
3.9.4 按键及显示屏模块 89
第4章 智能汽车机械结构设计 90
4.1 机械设计软件——Pro-Engineer 90
4.1.1 简介 90
4.1.2 历史版本 90
4.1.3 主要模块 91
4.1.4 主要特性 91
4.1.5 Pro-Engineer在智能汽车上的应用 92
4.1.6 用户关注热点 92
4.2 智能汽车机械零件设计的一般步骤与准则 92
4.2.1 相关概念 92
4.2.2 设计机械零件的一般步骤 93
4.2.3 设计机械零件的基本准则 93
4.3 工具准备 94
4.3.1 锯切工具——钢锯 94
4.3.2 打孔工具 95
4.3.3 支持定位工具——桌虎钳 96
4.3.4 画线工具 97
4.3.5 螺丝刀 98
4.3.6 钳子 98
4.3.7 粘连工具 99
4.4 常用材料 100
4.4.1 铝合金 100
4.4.2 碳素纤维 100
4.4.3 润滑剂 101
4.5 智能汽车机械结构优化 102
4.5.1 智能汽车的整体结构 102
4.5.2 智能汽车防护保养与机械结构调整 103
4.5.3 智能汽车转向结构调整 107
4.5.4 智能汽车后轮结构调整 109
4.5.5 赛道保养 110
第5章 控制芯片 111
5.1 MC9S12XS128芯片 112
5.1.1 芯片简介 112
5.1.2 时钟模块 112
5.1.3 I/O模块及其应用 121
5.1.4 计数器和定时器模块 126
5.1.5 TIM模块的脉冲累加器 133
5.1.6 脉冲调制解调模块(PWM) 137
5.1.7 周期中断定时器(PIT) 144
5.1.8 SCI总线 151
5.1.9 模数转换模块 157
5.2 MCF52259芯片 167
5.2.1 芯片简介 167
5.2.2 时钟模块 168
5.2.3 通用I/O口模块(GPIO) 173
5.2.4 边沿中断检测模块(EPORT) 181
5.2.5 中断管理模块 186
5.2.6 可编程中断定时器模块(PIT) 193
5.2.7 脉冲累加器模块 196
5.2.8 舵机电动机控制模块(PWM) 198
5.2.9 通用异步收发机模块 205
5.2.10 模数转换模块(ADC) 214
5.3 Kinetis K60芯片 226
5.3.1 芯片简介 226
5.3.2 时钟模块 226
5.3.3 多用途时钟信号发生器 228
5.3.4 系统集成模块(SIM) 248
5.3.5 可编程中断定时器(PIT) 257
5.3.6 Flex定时器(FTM) 259
5.3.7 通用输入/输出(GPIO)及引脚控制和中断 283
5.3.8 引脚控制和中断寄存器 286
5.3.9 UART异步串行通信 309
5.3.10 模数转换器 331
5.4 MPC5604芯片 356
5.4.1 芯片简介 356
5.4.2 时钟模块 356
5.4.3 简化系统接口单元(SIUL) 372
5.4.4 中断管理模块 391
5.4.5 增强模块化I/O子程序(eMIOS) 403
5.4.6 可编程中断定时器(PIT) 428
5.4.7 A/D转换模块 437
第6章 电磁车实例 446
6.1 智能汽车竞赛电磁组背景 446
6.2 电磁组传感器及路径检测设计参考方案 446
6.2.1 磁场检测方法 446
6.2.2 传感器模块设计 447
6.2.3 信号滤波 451
6.2.4 传感器的布局设计与调试 453
6.2.5 电路板的静电保护 458
6.3 车模整体控制策略 458
6.3.1 速度控制策略 458
6.3.2 转向控制策略 459
第7章 摄像头车实例 460
7.1 摄像头传感器简述 460
7.1.1 摄像头的选型 460
7.1.2 CCD摄像头的优势与缺陷 462
7.1.3 OV5116动态集成摄像头 463
7.2 整体方案设计 464
7.3 机械结构与调整 465
7.4 系统架构与硬件设计 465
7.4.1 模块划分及母板电路 465
7.4.2 CCD摄像头模块电路 466
7.4.3 硬件二值化电路 466
7.5 图像采集处理 468
7.5.1 图像采集 468
7.5.2 图像处理 471
7.6 控制策略 472
7.6.1 控制方案 472
7.6.2 驱动电动机PID控制 474
7.6.3 转向舵机控制 475
7.7 难点突破与系统改进 475
7.7.1 机械改进 475
7.7.2 转向控制的优化 475
7.7.3 车体的防护 476
7.8 参考代码 476
第8章 自平衡车实例(光电组) 479
8.1 自平衡组简介 479
8.2 直立行走控制原理 479
8.2.1 直立行走任务分解 479
8.2.2 车模直立控制 481
8.2.3 车模速度控制 484
8.2.4 车模方向控制 485
8.2.5 车模倾角测量 486
8.2.6 车模直立行走控制算法总图 490
8.3 硬件电路及传感器安装 491
8.3.1 硬件电路整体概览 491
8.3.2 单片机最小系统MC9S12XS128MAL 492
8.3.3 陀螺仪·加速度计模块 493
8.3.4 电动机驱动模块 494
8.3.5 编码器及测速电路 494
8.3.6 线性CCD模块 497
8.3.7 辅助调试及电源设计 498
8.3.8 车模整体装配方案 498
8.4 软件算法设计参考 498
8.4.1 整体控制流程 498
8.4.2 MC9S12XS128MAL单片机资源分配 501
8.4.3 直立控制 505
8.4.4 速度控制 507
8.4.5 方向控制函数 509
8.4.6 电动机控制函数 511
本章小结 512
参考文献 513