一、 方案目标
针对部分大赛要求无人机在无遥控的情况下实现自主飞行,本方案实现无遥控和接收机
情况下,通过杜邦线或者按钮触发无人机进入相应模式,执行模式对应的指令。
由于 Ti 飞控有 8 个 PWM 接口,因此四旋翼有 4 个 PWM 接口可以用于发出触发指令。
本方案以 PWM8 为触发接口,通过杜邦线实现 M35 自动模式的进入和 M35 自主飞行状态
机的执行。
二、 实现方法
-
设置 PWM8 口为输入模式
在 drv_PWMOut.c 程序的 init_drv_PWMOut()函数中添加配置代码(红色框),目的是将
PWM8 输入模式。然后将对应接口的两个红色的箭头的代码注释掉,不然会冲突。
-
添加获取按钮状态程序
(1)在 M01_Ground.c 头部添加头文件(红色框)。
(2)在M01_Ground.c程序的M01_Ground_MainFunc()函数中只保留显示屏代码(红色框),
注释掉与接收机相关的代码。同时在该函数的最后添加模式触发代码代码(蓝色框):在 50Hz
频率计数下,当 PWM8 口的 S 线接收到 2 秒的低电平就触发模式转换进入 M35。
- 修改 M35_Auto1 程序
(1)在 M35_Auto1.c 中 M35_Auto1_MainFunc()函数中注释掉与遥控器接收机相关的程序
(红色框),并且添加炸机强制关闭电机程序(蓝色框)
(2)源程序进入自动飞行状态机的判断程序为【摇杆在中间且位置解算系统就绪】如下:
由于遥控器和接收机都不可用,因此需要取消摇杆在中间的判断条件,将 if 语句改为:
(3)将按钮判断语句注释掉(蓝色框)。进入 M35 自动飞行程序状态机 case 1,设定 PWM8
接收到 8 秒低电平时,触发起飞程序:
- 取消遥控器强制保护
源程序在姿态控制中添加了遥控器强制保护代码,需要取消保护,将 ctrl_Altitude.c 中
的强制保护代码(红色框)注释掉。
三、 实验方案
将桨拆掉进行试验!安全第一!
给无人机上电,无人机进行初始化,初始化完成后用一根杜邦线将 PWM8 接口的 S 和
GND 相连,两秒后屏幕熄灭表示进入 M35 模式,等待 8 秒后,电机开始转动,证明程序正
确,此时上桨,在杜邦线连接后,人尽可能远离无人机,无人机起飞后会自动降落。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)