第1章 Simulink与低成本硬件开发平台 1
1.1 Arduino 1
1.2 Raspberry Pi 3
1.3 Simulink低成本硬件支持软件包 4
1.4 关于Arduino支持软件包 6
第2章 基于Arduino的机电一体化实验平台 8
2.1 机电一体化平台的开发环境 8
2.2 机电一体化平台的组成和组合形式 9
2.3 机电一体化平台的硬件配置 10
2.3.1 平台的主板 10
2.3.2 直流电机 11
2.3.3 其他可选器件 11
第3章 点亮发光二极管 12
3.1 实验目的 12
3.2 实验平台设置 12
3.3 Simulink/Arduino支持软件包和Arduino驱动器的安装 13
3.3.1 Simulink/Arduino支持软件包的安装 13
3.3.2 Arduino驱动器(Arduino Mega 2560 drivers)的安装和设置 13
3.4 建立并在部署至硬件模式下运行Simulink模型 14
3.4.1 建立Simulink模型的步骤 14
3.4.2 在部署至硬件模式下运行Simulink模型 15
3.4.3 纠错 18
3.5 在外部模式下运行Simulink模型 18
3.5.1 通过改变PWM参数改变发光二极管亮度 18
3.5.2 外部运行模式的特点 18
3.5.3 目标硬体的自由运行 20
3.5.4 纠错 21
3.6 在Windows 8系统上安装Arduino驱动器 21
第4章 模拟传感器与电机编码器数据的读取 25
4.1 实验平台(硬件) 25
4.2 模拟信号的获取 25
4.2.1 模数转换器的背景知识 25
4.2.2 用模拟输入电压控制PWM 26
4.2.3 观测和问题 27
4.3 电机编码器数据的读取 28
4.3.1 编码器的背景知识 28
4.3.2 用编码器的输出控制PWM 29
4.3.3 观测和问题 29
第5章 通过I2C总线读取陀螺仪和加速(度)计的数据 30
5.1 实验平台(硬件) 30
5.2 陀螺仪信号数据的读取 30
5.2.1 陀螺仪的背景知识 30
5.2.2 从陀螺仪及加速度计读取数据 32
5.2.3 观测和问题 35
5.3 根据陀螺仪数据计算陀螺仪所处的实验平台的角度 35
5.3.1 从陀螺仪获得角位置 35
5.3.2 消除陀螺仪的误差 36
5.3.3 问题和练习 41
第6章 数字罗盘(指南针)的制作 42
6.1 实验平台(硬件)设置 42
6.2 磁力计信号数据的读取 42
6.2.1 磁力计的背景知识 42
6.2.2 从磁力计(HMC5883L)读取数据 43
6.3 收集和分析磁力传感器数据 45
6.3.1 实验步骤 46
6.3.2 用MATLAB进行数据分析 46
6.4 在Simulink里实现罗盘校准算法 50
6.4.1 建立实现罗盘校准算法的Simulink模型 50
6.4.2 观测与练习 50
第7章 串行通信基础 51
7.1 串行通信的背景知识 51
7.2 实验平台(硬件)的设置 53
7.3 从实验平台(Arduino)向计算机发送单字节数据 53
7.4 在Arduino集成开发环境(IDE)下实现数据发送 59
7.5 发送和接收含有多个字节的串行数据 65
7.5.1 发送和接收单通道含有双字节的串行数据 65
7.5.2 发送和接收双通道含有4个字节的串行数据 69
7.6 用使用并集的S-Function发送16比特的整数和单精度浮点数 71
7.6.1 用Simulink发送,MATLAB程序读取16比特的整数 72
7.6.2 用实验平台(Arduino)发送,MATLAB程序读取单精度的浮点数 73
7.7 用MATLAB读取串行数据 75
第8章 蓝牙通信 81
8.1 实验平台(硬件)的设置 81
8.2 蓝牙模块的安装及设置 82
8.2.1 蓝牙通信的背景知识 82
8.2.2 蓝牙模块的安装 83
8.2.3 蓝牙设备及其设置 83
8.3 通过回路试验测试蓝牙通信 87
8.3.1 RealTerm的设置 87
8.3.2 蓝牙通信的回路测试 89
8.4 接收蓝牙模块发送的数据 90
8.4.1 建立向计算机发送数据的Simulink模型 90
8.4.2 在部署至硬件模式下运行Simulink模型 92
第9章 直流电机的阶梯响应 95
9.1 实验平台 95
9.2 背景知识 95
9.3 电机的阶梯响应 97
9.3.1 建立Simulink模型 98
9.3.2 通过Simulink的外部模式获得电机的阶梯响应 98
9.4 通过串行口(串行通信)获得电机速度的阶梯响应 101
9.4.1 Simulink模型及其设置 101
9.4.2 在外部模式和“部署至硬件”模式下获取电机响应 102
9.5 控制电机的方向和速度 104
9.5.1 Simulink模型及其设置 104
9.5.2 电机的受控响应 107
9.6 直流电机阶梯响应的仿真 109
9.6.1 一阶及二阶直流电机模型的阶梯响应 109
9.6.2 Simulink模型及其设置 109
9.6.3 电机仿真模型的运行 112
9.6.4 仿真结果及结果观察 113
9.6.5 考虑数字化和延迟效应时使用一阶系统的电机仿真 114
第10章 直流电机控制的基本知识和途径 116
10.1 实验平台(硬件) 116
10.2 电机位置的开环控制 117
10.2.1 Simulink模型 117
10.2.2 获取数据 118
10.2.3 整理数据 119
10.2.4 用所得数据进行电机位置控制 121
10.2.5 结果讨论 123
10.3 电机位置的闭环反馈控制 123
10.3.1 比例控制器(proportional controller) 124
10.3.2 比例加积分控制器(proportional plus integral controller) 125
10.4 电机速度的开环控制 127
10.5 电机速度的闭环反馈控制 127
第11章 实际应用环境下直流电机的仿真及速度控制 128
11.1 实验平台(硬件) 128
11.2 理想的二阶直流电机模型的阶梯响应 129
11.3 用理想电机模型进行速度控制的仿真 132
11.4 饱和效应 135
11.5 控制的离散时间效应 136
11.6 控制的离散测量效应 139
11.7 控制的仿真结果与实际效果的比较 141
第12章 根据加速度计和陀螺仪确定(实验平台)角度 148
12.1 实验平台(硬件)及背景知识 148
12.2 从陀螺仪读数计算角位置 150
12.3 从加速度计读数计算角位置 151
12.4 采用互补滤波器 152
12.5 根据陀螺仪和加速度计的输出控制电机的(角)位置 154
附录A Simulink/Arduino硬件支持软件包的获取和安装 157
A.1 什么是Simulink/Arduino硬件支持软件包 157
A.2 Simulink/Arduino硬件支持软件包的安装方法 157
A.2.1 准备工作 157
A.2.2 Arduino硬件Simulink支持软件包的在线安装 158
A.2.3 Arduino硬件Simulink支持软件包的离线安装 161