匿名飞控(拓空者)屏蔽遥控

一、理论

程序中需要修改的部分

1,先找到所有rc_loss的标记,赋值0,不要让他变成1。
2,找到CH_N[]赋值的地方,前4通道全部改成0,其他自己需要的值(比如改模式)。
3,调用一键起飞就行,其他标记不用改。
4,注意rc_loss置1的地方要屏蔽灯光标记和一键降落标记。

二、实操

1、注意

通过查找,发现需要更改的部分都在ANO_RC.C子程序中

2、标记

更改前

//在ANO_RC.C中的第248行
	if(flag.unlock_sta)
	{
		if(switchs.gps_on ==0)
		{
			flag.auto_take_off_land = AUTO_LAND; //如果解锁,自动降落标记置位
		}
		else
		{
			flag.rc_loss_back_home = 1;
		}
	}
	LED_STA.noRc = 1;
}

1、关于rc_loss的置1标记只找到了flag.rc_loss_back_home = 1; 所以尝试一下(不知道是不是),把1改为0

2、在置1的位置处,有灯光标记LED_STA.noRc = 1; 把它屏蔽掉

3、在置1的位置处,有一键降落标记flag.auto_take_off_land = AUTO_LAND; 也把它屏蔽掉

更改后

	if(flag.unlock_sta)
	{
		if(switchs.gps_on ==0)
		{
		//	flag.auto_take_off_land = AUTO_LAND; //如果解锁,自动降落标记置位
		}
		else
		{
		//	flag.rc_loss_back_home = 0;
		}
		
	}
	//LED_STA.noRc = 1;
}

3、CH_N[]赋值

更改前

//在ANO_RC.C中的第191行
void RC_duty_task(u8 dT_ms) //建议2ms调用一次
{
	if(flag.start_ok)	
	{
		/获得通道数据
		for(u8 i=0;i<CH_NUM;i++)
		{
			CH_N[i] = rc_in.rc_ch.st_data.ch_[i]-1500;
			CH_N[i] = LIMIT(CH_N[i],-500,500);//限制到+—500
		}					

1、第一处对CH_N[]赋值的地方,发现会影响前4位,所以改成 i 从4开始,然后在前面对前4位进行赋值0操作。

//在ANO_RC.C中的第230行
void fail_safe(void)
{
	for(u8 i = 0;i<4;i++)
	{
		CH_N[i] = 0;
	}

2、第二处对CH_N[]赋值的地方,发现它并不会影响前4位,因为就算影响也还是0,所以不做出改变。

更改后

void RC_duty_task(u8 dT_ms) //建议2ms调用一次
{
	if(flag.start_ok)	
	{
		CH_N[0] = 0;
		CH_N[1] = 0;
		CH_N[2] = 0;
		CH_N[3] = 0;
		/获得通道数据
		for(u8 i=4;i<CH_NUM;i++)
		{
			CH_N[i] = rc_in.rc_ch.st_data.ch_[i]-1500;
			CH_N[i] = LIMIT(CH_N[i],-500,500);//限制到+—500
		}					

结果

根据拓空者手册可以知道,指示灯由未连接上遥控的失控状态(红色呼吸),变成了正常运行的短闪+长间隔
在这里插入图片描述
此时可以通过命令包发送一键起飞和一键降落指令来验证成功。

三、注意

在确保你的程序能完整执行所有起降之前,最好别屏蔽遥控器,因为会导致你在你飞机失控的时候,用遥控器也救不回来

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值