完善:在手机移动端通过蓝牙对小车运动进行控制
我这里使用了安卓端的蓝牙控制软件【Bluetooth Electronics】
//Written by keuwlsoft——author website(
www.keuwl.com )
-
此上位app可以创建自己的控制界面,选取控件进行蓝牙远程操控
-
根据蓝牙部分的程序设置相应的控件参数,可以实现大量的功能,甚至能远程调参
本次调试只在程序中设置了几个简单的功能(前进后退等运动控制),后续还可以基于软件的高度自由化进行功能完善
主页面
-
左上角——软件的基本信息、作者信息、导入控制器模板
-
顶部——蓝牙连接情况
-
右上角——蓝牙连接配置
-
Edit——点击设置控制面板
-
Run——运行
面板配置
-
右边可以为面板选择不同的控制方式——文本、按键、开关等
-
在下拉栏中选中控制方式置入面板中
点击按键可Edit编辑具体数据控制
如图:
-
按下按键时——发送二进制数据【0x41】(十进制数据【65】)(ASCII码【A】),使小车前进
-
松开按键时——发送二进制数据【0x5A】(十进制数据【90】)(ASCII码【Z】),使小车停止
//蓝牙控制命令u8 Fore,Back,Left,Right;void BluetoothCMD(int Uart_Receive){switch(Uart_Receive){case 90://停止 ZFore=0,Back=0,Left=0,Right=0;break;case 65://前进 AFore=1,Back=0,Left=0,Right=0;break;case 72://左前 HFore=1,Back=0,Left=1,Right=0;break;case 66://右前 BFore=1,Back=0,Left=0,Right=1;break;case 71://左转 GFore=0,Back=0,Left=1,Right=0;break;case 67://右转 CFore=0,Back=0,Left=0,Right=1;break;case 69://后退 EFore=0,Back=1,Left=0,Right=0;break;case 70://左后,向右旋 FFore=0,Back=1,Left=0,Right=1;break;case 68://右后,向左旋 DFore=0,Back=1,Left=1,Right=0;break;default://停止 ZFore=0,Back=0,Left=0,Right=0;break;}}
//依照小车行进方向代码部分进行蓝牙控制按键Edit编辑
注意:小车的前进后退具有一定惯性,即使松开按键也会沿之前的方向行进一小段距离
蓝牙连接
-
选择蓝牙连接方式
从左到右依次为:经典蓝牙Bluetooth Classic、低功耗蓝牙Bluetooth Low Energy、USB连接
此处选择【经典蓝牙Bluetooth Classic】
-
Discover寻找新的蓝牙设备,将之前使用AT有线连接配置好的蓝牙模块加入已知列表
-
在Paried Devices中选择自己的设备(我的小车蓝牙模块叫PrayMe)
连接好了之后即可在【主页面】顶部看到设备已连接,这时就可以选择刚刚自定义配置好的面板运行以完成蓝牙控制功能
改进问题:
1、前进后退时会有回到原地的趋势较大
-
解决方法:加大【速度环】控制
2、转向后有左右轻微抖动蓝牙控制APP
-
解决方法:减小【转向环】控制
修改后的PID参数如下:#define BLC_KP 230 //直立环Kp#define BLC_KD 0.7 //直立环Kd#define SPD_KP -110 //速度环Kp#define SPD_KI -0.55 //速度环Ki#define TURN_KP -30 //转向环Kp#define TURN_KD -0.42 //转向环Kd