这一步比较简单
前面我们实现了获取欧拉角,但我们只是看到数据
用这个软件,可以图形化的看到我们四轴的动作
image
关于软件下载,建议去加群下载官网

匿名科创地面站QQ群
QQ Public Club:190169595。
QQ 开发者Club:194080682(限已购买用户)。

image-1677980659063
在这里可以看怎么用
另外用这个软件串口工作量还蛮大的,不用的时候建议关掉,可以用if语句,利用一个变量控制与整个软件的通讯,每一个通讯的函数前都加入if

if(pose)ANO_DT_Send_Status();

软件是使用串口通讯,固定接收某些帧头的数据,并解析
我们创建一个新文件,专门放这个软件的函数

飞控状态

这里我们先介绍下飞控状态这里怎么用,其他以后有机会再说
image-1677980929990
image-1677980964920
这是示例代码,都是写好的,其实复制过去改点东西就能用
我们先引入该用的头文件,并且把之后用的串口发送函数封装一下,后面用起来方便,不用改了
因为示例代码里面的串口发送都封装成了ANO_DT_Send_Data,所以前面这样写。

#include "anotc.h"
#include "usart.h"
#include "mpu6050.h"

#define BYTE0(dwTemp)       ( *( (char *)(&dwTemp)		) )
#define BYTE1(dwTemp)       ( *( (char *)(&dwTemp) + 1) )
#define BYTE2(dwTemp)       ( *( (char *)(&dwTemp) + 2) )
#define BYTE3(dwTemp)       ( *( (char *)(&dwTemp) + 3) )
	
				
uint8_t data_to_send[50];	

void ANO_DT_Send_Data(uint8_t *dataToSend , uint8_t length)
{

	HAL_UART_Transmit(&huart1,dataToSend,length,200);

}

这里是发送状态的函数,其实就改了下变量类型,像u8什么的,咱们这也识别不出来。帧头之类的结构已经写好了,只管用就行。

void ANO_DT_Send_Status(float angle_rol, float angle_pit, float angle_yaw, int32_t alt, uint8_t fly_model, uint8_t armed)
{
	uint8_t _cnt=0;
	int32_t _temp;
	int32_t _temp2 = alt;
	
	data_to_send[_cnt++]=0xAA;
	data_to_send[_cnt++]=0xAA;
	data_to_send[_cnt++]=0x01;
	data_to_send[_cnt++]=0;
	
	_temp = (int)(angle_rol*100);
	data_to_send[_cnt++]=BYTE1(_temp);
	data_to_send[_cnt++]=BYTE0(_temp);
	_temp = (int)(angle_pit*100);
	data_to_send[_cnt++]=BYTE1(_temp);
	data_to_send[_cnt++]=BYTE0(_temp);
	_temp = (int)(angle_yaw*100);
	data_to_send[_cnt++]=BYTE1(_temp);
	data_to_send[_cnt++]=BYTE0(_temp);
	
	data_to_send[_cnt++]=BYTE3(_temp2);
	data_to_send[_cnt++]=BYTE2(_temp2);
	data_to_send[_cnt++]=BYTE1(_temp2);
	data_to_send[_cnt++]=BYTE0(_temp2);
	
	data_to_send[_cnt++] = fly_model;
	
	data_to_send[_cnt++] = armed;
	
	data_to_send[3] = _cnt-4;
	
	uint8_t sum = 0;
	for(uint8_t i=0;i<_cnt;i++)
		sum += data_to_send[i];
	data_to_send[_cnt++]=sum;
	
	ANO_DT_Send_Data(data_to_send, _cnt);
}

测试

现在我们去主函数调用一下看看就好,因为还没有用后面三个变量,我就随便写了。

		mpu_dmp_get_data(&pitch,&roll,&yaw);
		ANO_DT_Send_Status(roll,pitch,yaw,0,0,1);

image-1677981743102

到这里,基本就可以用这个软件看看自己飞控的情况了