# 蓝牙遥控模式

> *本小节教你如何使用「喵呜手机端」、「喵呜手机端简易版」（曾用名「平衡小车通用控制」）两款 APP，并对其中的功能进行说明。*

## [视频版教程](https://www.bilibili.com/video/av85617509/) *（点击文字可转跳到视频网站）*

## 文字版教程

我们在上一节中已经安装好了小车，并且在安卓手机中安装了「喵呜手机端」 和「喵呜手机端简易版」两款 APP。

## 喵呜手机端

我们先对专业级 APP ——「喵呜手机端」进行说明。「喵呜手机端」有 5 个界面，下面分别对这 5 个界面进行说明。5 个界面可以左右滑动屏幕进行切换。

### 重力感应界面

> *手机带有陀螺仪和加速度计才能使用重力感应功能。部分低端手机可能为了节省成本，不带有陀螺仪和加速度计，将无法使用重力感应功能。*

![重力感应](https://2011909777-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M67lRNhuxxvrxkdlH7t%2Fsync%2Facd5eab686a5c10b3a8155eff485501bfc5f0942.png?generation=1588211443633643\&alt=media)

初次打开 APP 时，你先看到的会是重力感应界面。界面上方有三个参数，有 Pitch、Roll、滤波器系数。其中，

* Pitch：代表手机前后倾斜的角度
* Roll：代表手机左右倾斜的角度
* 滤波器系数：忽略

在重力感应界面，按住重力感应块，通过倾斜手机的角度就能控制小车的方向、速度。手机与地面平衡状态为 0 度。手机前后倾斜时为控制小车前进、后退，倾斜角度越大（即 Pitch 越大），前进、后退的速度越大。手机左右倾斜则为控制小车左转、右转，倾斜角度越大（即 Roll 越大），左转或右转的角度越大，当手机纯粹向左或向右倾斜时（此时 Pitch 为 0，Roll 不为 0），小车旋转角度为 360 度，即原地自旋。

### 摇杆控制

![摇杆控制](https://2011909777-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M67lRNhuxxvrxkdlH7t%2Fsync%2F4d4e5da152800b1f918e12cf855a8c8b0825741e.png?generation=1588211443451922\&alt=media)

往左滑动，切换到摇杆控制界面。界面上方有 x、y 两个参数，x 代表摇杆左右推离中心的距离，y 代表摇杆前后推离中心的距离。紧接着 x、y 参数的下方，有 4 个控制模式可以切换，分别为：

* 遥控模式：只有在遥控模式下，才能使用重力感应和摇杆控制小车。
* 巡线模式：安装红外模块才能生效。在巡线模式下，小车跟随预设的黑线运动。
* 超声波跟随模式：安装超声波模块才能生效。在跟随模式下，小车自动判断与前方障碍物的距离，并通过运动与障碍物保持设定的距离。
* 超声波避障模式：安装超声波模块才能生效。在避障模式下，小车自动判断与前方障碍物的距离，并通过运动避开障碍物。

界面的下方为虚拟摇杆，按住并推动摇杆就能控制小车的方向、速度，松手后摇杆自动回中。摇杆推离中心越远，速度、转向角度就越大。当摇杆水平推至左侧或右侧（此时 y 为 0，x 不为 0），小车的旋转角度为 360 度，即原地自旋。

### 波形显示

![波形显示](https://2011909777-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M67lRNhuxxvrxkdlH7t%2Fsync%2F32cdb136def366a70753fe74fe823206623a00b3.png?generation=1588211443776841\&alt=media)

波形显示界面的上方部分为波形显示窗口，下方有 3 个参数可以勾选，分别为：

* 加速度传感器：代表小车里加速度传感器初步经过 atan2 函数计算得到的角度值，未经过数据融合。
* 陀螺仪：代表小车里陀螺仪的数据，我们通常认为陀螺仪的输出就是角速度值。
* Kalman filter：代表加速度传感器和陀螺仪数据融合后得到的角度值，即小车的实时倾斜角度值。

我们通常会全选以上 3 个参数，便于观察小车数据融合后的角度有没有噪声和延迟。

### PID

![PID](https://2011909777-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M67lRNhuxxvrxkdlH7t%2Fsync%2Faa359a0feeab5d38873bb9935f0d1d98d16ab57b.png?generation=1588211443436484\&alt=media)

PID 界面上方有 2 个当前参数可以选择：

* 角度环 PID
* 速度环 PID

选择哪个控制环，则显示对应的 PID 参数。当前参数的下方有 P、I、D 3 个参数的显示值，此时显示的小车正在运行的 PID 参数。点击下方的「查询 PID 参数」就能将小车正在运行的 PID 参数显示到手机上。

接着，调节参数有 P、I、D 3 个滑轨可以调节，用于调节 PID 参数。滑动滑轨调节好参数后，点击下方的「更新 PID 参数」就能将滑轨参数实时更新至小车中。

查询 PID 参数：查询小车正在使用的 PID 参数，并将改组参数显示到手机上。

更新 PID 参数：调节滑轨的 PID 参数后，点击「更新 PID 参数」就能将滑轨参数实时更新至小车中，查看运行效果。

恢复默认参数：小车开机时的 PID 参数将被记录下来成为默认参数，如果改动后想恢复默认参数，只要点击恢复「恢复默认参数」就能恢复为开机时的参数。

### 关于

![状态查询](https://2011909777-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M67lRNhuxxvrxkdlH7t%2Fsync%2F3e8ca2dabbcdc0caa7f951a62537e0dc65b71c3d.png?generation=1588211443692080\&alt=media)

关于界面有 6 个参数，分别为：

* APP Version：APP 版本
* Firmware Version：小车程序版本
* EEPROM Version：EEPROM 版本
* MCU：小车使用的 MCU 型号
* 电池电量：小车剩余电量
* 运行时间：小车开机后的运行时间

下方为 Start/Stop 按钮。点击按钮，可以实时获得以上 6 个参数数据。

## 喵呜手机端简易版

「喵呜手机端简易版」（曾用名「平衡小车通用控制」）界面简洁，只有选项和按钮。

![喵呜手机端简易版](https://2011909777-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M67lRNhuxxvrxkdlH7t%2Fsync%2Fe11252ece375227f7334a0d5f8065e0fa1dfaabf.png?generation=1588211443918951\&alt=media)

先匹配小车蓝牙，然后点击更新蓝牙按钮，在下方白框中选择蓝牙设备，再点击连接蓝牙按钮，若连接成功，下方蓝牙状态显示为 true。连接未成功，蓝牙状态显示为 false。在 APP 中点击使用说明，能获取操作提示。

界面中间部分有 4 个控制模式可以切换，分别为：

* 遥控模式：只有在遥控模式下，才能使用重力感应和摇杆控制小车。
* 巡线模式：安装红外模块才能生效。在巡线模式下，小车跟随预设的黑线运动。
* 超声波跟随模式：安装超声波模块才能生效。在跟随模式下，小车自动判断与前方障碍物的距离，并通过运动与障碍物保持设定的距离。
* 超声波避障模式：安装超声波模块才能生效。在避障模式下，小车自动判断与前方障碍物的距离，并通过运动避开障碍物。

前进、后退、左转、右转 4 个按钮用于控制小车前进、后退、左转、右转。按住哪个按钮，可以获得对应操作，松开即停止。

点击退出程序按钮，退出 APP。
