当前位置: 首页 > wzjs >正文

微网站如何做微信支付宝支付免费接单平台

微网站如何做微信支付宝支付,免费接单平台,网站维护学习,如何做服装微商城网站建设项目场景: pixhawk 6c飞控板的telem2 外部接负载板 通过MAVLink协议实现读取飞行状态,以及飞控停桨的功能。 调试步骤 pixhawk 6c飞控板接口说明 点击进入 查阅Telem 2 Port分配uart5,配置QGC设置–参数–搜索SERIAL5,修改波特…

项目场景:

pixhawk 6c飞控板的telem2 外部接负载板 通过MAVLink协议实现读取飞行状态,以及飞控停桨的功能。

调试步骤

pixhawk 6c飞控板接口说明 点击进入
查阅Telem 2 Port分配uart5,配置QGC设置–参数–搜索SERIAL5,修改波特率115200(实际要根据飞控那边提供的波特率修改,并且负载端波特率也要一致)和用途MAVLink2,并保存后重启。

在这里插入图片描述
串口默认是1HZ心跳(02)输出,如果接了SUBUS输入,同样也会有1HZ的RC(06)消息输出
在这里插入图片描述
获取飞行状态:
extended status不用拉取 默认就有,为了可靠 可以主动设置一下频率,用MAV_CMD_SET_MESSAGE_INTERVAL 方法

注意:这里的系统ID和系统组件ID是飞控端提供,且不能与地面站设置一样,之前设置了两个1,无数据输出,这里的ID设置2,25是任意赋予的。

void set_message_interval()
{   uint8_t buffer[256]; uint16_t len = 0;uint8_t system_id = 2; // 系统 IDuint8_t component_id = 25; // 地面站组件 IDuint8_t target_system = 1; // 目标系统 IDuint8_t target_component = 1; // 目标组件ID(飞控)mavlink_message_t msg;// 设置消息ID为245(EXTENDED_SYS_STATE)的消息发送间隔为100000微秒(即每0.1秒发送一次)mavlink_msg_command_long_pack(system_id, component_id, &msg,target_system,target_component,MAV_CMD_SET_MESSAGE_INTERVAL, // 命令ID0, // 确认类型MAVLINK_MSG_ID_EXTENDED_SYS_STATE , // 消息ID (param1)100000.0f, // 时间间隔 (微秒)0.0f, 0.0f, 0.0f, 0.0f, 0.0f // 其余参数未使用 (param3 到 param7));// 发送 MAVLink 消息len = mavlink_msg_to_send_buffer(buffer, &msg);Send_nByte(buffer, len);
}

执行set_message_interval()函数之后,将telem2通过USB转TTL插在串口助手上,会有10Hz的飞行状态数据输出
在这里插入图片描述

接受解析飞行状态

// 全局变量,用于存储当前的MAVLink状态
mavlink_status_t mavlink_status;
mavlink_message_t mavlink_msg;
unsigned char fly_state;
unsigned char fly_debug;  //调试用
// 飞行状态解析函数
void parse_mavlink_message(void) {uint16_t i ;if(Cmd_Flag==0)	return;Cmd_Flag	=0;fly_debug=1;for ( i = 0; i <=18; i++) {  //这里的18字节待确认// 逐字节解析MAVLink消息if (mavlink_parse_char(MAVLINK_COMM_3, Cmd[i], &mavlink_msg, &mavlink_status)) {fly_debug=2;                                                               // 检查是否是 EXTENDED_SYS_STATE 消息 (ID: 245)if (mavlink_msg.msgid == 245) {// 解码 EXTENDED_SYS_STATE 消息mavlink_extended_sys_state_t extended_sys_state;mavlink_msg_extended_sys_state_decode(&mavlink_msg, &extended_sys_state);fly_debug=3;// 判断飞行器状态switch (extended_sys_state.vtol_state) {case MAV_VTOL_STATE_TRANSITION_TO_FW://表示VTOL(垂直起降)飞行器的状态,如固定翼模式、多旋翼模式等。                      break;case MAV_VTOL_STATE_TRANSITION_TO_MC:		//表示飞行器是否在地面上、飞行中、起飞中或降落中                       break;default:break;}fly_debug=4;// 判断飞行器是否在飞行或地面状态fly_state=extended_sys_state.landed_state;switch (extended_sys_state.landed_state) {case MAV_LANDED_STATE_IN_AIR:   //飞机正在飞行Active_En_Flag=1;			  //解锁标志Active_En_cmd1=1; 											 break;case MAV_LANDED_STATE_ON_GROUND://飞机在地面状态Active_En_Flag	=0;				//锁定标志Active_En_cmd1=0;                     break;case MAV_LANDED_STATE_TAKEOFF:// 飞机正在起飞Active_En_Flag=0;				Active_En_cmd1=0;                      break;case MAV_LANDED_STATE_LANDING: // 飞机正在降落Active_En_Flag=1;				Active_En_cmd1=1;                        break;default:                       // 未知状态Active_En_Flag=0;				Active_En_cmd1=0;                    break;}}}}
}

飞机与降落伞状态对应关系:
飞行状态未知:降落伞状态锁定
飞行状态地面:降落伞状态锁定
飞行状态飞行:降落伞状态解锁
飞行状态降落:降落伞状态解锁
飞行状态起飞:降落伞状态锁定
停桨逻辑:
降落伞状态解锁&&内部传感器数据(全向姿态80°||Z轴失重0.2g持续0.2s)超过阈值
开伞并10Hz持续发送停桨(消息ID:185)

停桨控制(185)函数 请求飞行状态(245)函数《可不用主动请求》

//停桨控制
void send_flight_termination_command(void)
{uint8_t buffer[128];uint16_t len =0;mavlink_message_t msg;uint8_t system_id = 2;
//地面站系统 IDuint8_t component_id =25;//地面站组件 ID
//目标系统ID(飞控)uint8_t target_system =1;uint8_t target_component=1;//目标组件ID(飞控)mavlink_msg_command_long_pack(system_id, component_id,&msg,target_system,target_component,185,0,1,	//param1:1 表示启用停奖// 其他参数(未使用)0,0,0,0,0,0);len=mavlink_msg_to_send_buffer(buffer, &msg);Send_nByte(buffer,len);
}//请求飞行器发送消息  数据类型ID:245  //未用 不用主动发送
//system_id,component_id不能和飞控的ID重复uint8_t send245_buffer[128];   //设置全局方便DUBUG
void request_extended_sys_state(){uint16_t len =0;uint8_t system_id = 2;     //系统 IDuint8_t component_id =25;   //地面站组件 IDuint8_t target_system =1;  //目标系统 IDuint8_t target_component=1;//目标组件ID(飞控)mavlink_message_t msg;mavlink_msg_request_data_stream_pack(system_id,      // 系统 IDcomponent_id,   // 组件 ID&msg, target_system,    // 目标系统 IDtarget_component, // 目标组件 ID245,            // 请求的数据流类型1,              // 数据流的更新频率1               // 开启数据流);// 发送 MAVLink 消息len=mavlink_msg_to_send_buffer(send245_buffer, &msg);Send_nByte(send245_buffer,len);
}
http://www.dtcms.com/wzjs/388365.html

相关文章:

  • 淘客自己做网站百度网页版浏览器
  • 提高网站流量seo软件工具
  • 紧急通知网页升级记住我们商丘网站优化公司
  • 苏州市城乡建设档案馆网站临沂百度推广多少钱
  • 沈阳做网站的公司有哪些西安官网seo
  • 平面设计在线制作南宁白帽seo技术
  • 虎门做网站北京网络推广外包公司排行
  • 重庆市城乡建设与发展委员会网站google搜索引擎
  • 网站建设天津百度一下你就知道移动首页
  • 网站建设的实训周个人免费自助建站网站
  • 上海金融网站建设武汉seo诊断
  • 城市建设协会网站网络销售面试问题有哪些
  • 大连日语网站开发优化关键词有哪些方法
  • 广州市物联网应用示范项目seo点击软件
  • 500云空间网站互联网推广怎么做
  • 静态网站公用头部 调用标题ai智能营销系统
  • 西藏网站建设公司江阴企业网站制作
  • 彩票走势图网站是用什么程序做的附近哪里有计算机培训班
  • 列车营销网站怎么做淘宝推广费用多少钱一天
  • 建站怎么建2021年10月新闻摘抄
  • 建站兔软件常见问题点点站长工具
  • 建一个电商网站多少钱seo优化方法
  • 所有浏览器大全seo好seo
  • 做网站如何连数据库品牌营销推广策划公司
  • 做网站 长360站长
  • 贡井区建设局网站?营销模式都有哪些
  • 返利网站 帐如何做渠道推广费用咨询
  • 深一网站建设招聘北京网站优化价格
  • wordpress orderby 参数seo人员是什么意思
  • phpnow超详细WordPress搜索引擎优化seo方案