下载时选择内部时钟24MHZ, 设置用户EEPROM大小为2K或以上. MC6B六通道2.4G 100mW.
四轴上电待机:上电后,航灯不亮,接收机LED闪烁,此时打开遥控器,将左右油门下拉到最小,接收机收到信号LED常亮. 表示RF通讯已连接。此时蜂鸣器"哔"一声,航灯闪烁,表示待机模式。
四轴启动:将遥控器左右操纵杆掰成下内八,启动四轴,四轴"哔"一声,4个螺旋桨开始低速旋转,航灯常亮。 此后提升油门,就可以加速螺旋桨,直到起飞。
四轴飞行:起飞后,可以操纵右手的俯仰、横滚操纵杆,实现前后左右或任意方向的飞行。左手油门杆左掰是航向逆时针转,右掰是航向顺时钟转。
四轴下降停止:收油门,四轴逐渐下降到地面,然后两操纵杆掰成下外八,停止四轴,重新处于待机模式。
四轴水平校准:将四轴放置于水平地面,处于待机模式,然后两操纵杆掰成上内八,四轴"哔"一声进入校准,完成后"哔哔"两声完成校准。
四轴取消水平校准:将四轴放置于水平地面,处于待机模式,然后两操纵杆掰成上外八,四轴"哔"一声取消校准。取消水平校准或未进行水平校准过的四轴,起飞时即使无风也可能会有明显漂移。
电池低压报警:当电池低压时,蜂鸣器"哔哔"报警,同时航灯闪烁,此时请尽快回航降落。
无遥控信号异常:当四轴在空中突然收不到遥控信号时,四轴蜂鸣器发出"哔哔哔"报警,同时航灯闪烁,四轴保持水平,逐渐自动减小油门降落。
以上这些是要实现的功能:
定义串口的波特率,串口的数据包长度,下面昨天看的驱动,最后是IO的定义。
矫正参数就是置0,还有就是一些姿态角的初始定义,欧拉角,角度和加速度。
欧拉角是由三个角组成,这三个角分别是Yaw,Pitch,Roll。
Yaw 表示绕y轴旋转的角度,Pitch表示绕x轴旋转的角度,Roll表示绕z轴旋转的角度。
也就是说,任意的旋转角度都可以通过这三次按照先后顺序旋转得到。
欧拉角的定义
tmp是中间变量,下面是中位的遥控变量
IMU的缓存数组
一个定时器就可以生成 PPM简单的将多个通道的数值一个接一个合并进一个通道,用2个高电平之间的宽度来表示一个通道的值。
PPM协议最多传输10个通道,使用一个定时器就可以轻松解决了。因为每一帧信号的尾部必须加入一个足够长的空白(显著超过一个正常PWM信号的宽度)来分隔前后两个信号,每一帧能传输的信号通道最多只能到10个。
串口的一些配置
校准里面的一些变量
PPM定时器的一个计算
串口1的配置
这个是中断的配置
打印字符串
串口的信息写到缓存区
数字和字符的转换
返回的参数信息
设置Timer2作为波特率生成器
只有在规定的杆位下才可以进入校准序列
校准3个组件
这个是具体的细节,也没有什么好说的
可以复用的代码,最后输出的是角度信息
代码的端口先重置一下
后面设置PWM的引脚
初始化ADC功能
捕获中断
这个读取陀螺仪的静止误差是写到EEPROM里面的
四轴上电待机:上电后,航灯不亮,接收机LED闪烁,此时打开遥控器,将左右油门下拉到最小,接收机收到信号LED常亮。
在一个大循环里面跑俩个任务,一个是解码PPM的具体数字信号,二是在中断里面检测一些特殊的打杆指令进入一些功能,还会有电压,蜂鸣器这些功能。
这个PPM的解码,很简单
通过算里面的脉宽来决定杆量
这个就是具体拿到以后校验和装载的过程
算好的值加到这里,给PWM输出去
8ms???是个8ms的中断吗?
定义在这里
开始进入校准的步骤
这个是电压的测量和蜂鸣器的控制
另一段测量
最后是上次讲的一个定义
这个是串口的处理
这个就是串口的发送功能。
审核编辑:刘清
-
led
+关注
关注
240文章
23130浏览量
658343 -
接收机
+关注
关注
8文章
1179浏览量
53406 -
EEPROM
+关注
关注
9文章
1010浏览量
81397 -
蜂鸣器
+关注
关注
12文章
889浏览量
45860
原文标题:STC8A无人机(实现篇)
文章出处:【微信号:TT1827652464,微信公众号:云深之无迹】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论