完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
微型四轴技术参数
Minifly微型四轴采用双MCU,即STM32F411与NRF51822双核运行,其技术参数如下。 NRF51822 程序框架 如图为NRF51822的代码关系图 。其中button.c为按键驱动代码,uart.c为串口驱动代码,pm.c为电源管理驱动代码,systick.c为系统滴答定时器驱动。NRF51822的工作流程如下: (1)遥控器通过radiolink.c传送数据包到main.c; (2)main.c对数据包进行解析,判断该数据包的流向; (3)如果该数据包是传送给NRF51822的,则直接传送; (4)如果不是传送给NRF51822,即传送给STM32F411,于是通过uartlink.c传送给STM32F411; (5)STM32F411接收到数据包之后会通过uartlink.c返回一个数据包到main.c; (6) 最后main.c将返回的数据包通过radiolink.返回到遥控器当中。 以上六步形成了一个数据包传送的闭环,可以看出NRF51822在其中起到了通信桥梁的作用。 当四轴处于关机的时候,NRF51822处于待机状态,STM32F411处于断电状态。当按下按键,NRF51822被唤醒,它会判断按下按键的时间: (1)如果是短按,则启动STM到固件模式; (2)如果是长按,则NRF51822拉高UAR_RTS_PIN引脚,使能电源芯片给STM供电。(STM32F411会在上电后运行bootloader程序,会判断到该引脚是否为高电平,是即留在该程序中等待固件升级,否即跳转会(1),当NRF51822运行程序拉高引脚后,会以一定周期时间获取pm.c采集到的电池电压值并转发给STM) 如此,NRF51822起到了管理管理电源的作用。 STM32F411 程序框架 (1)radiolinkTask : 无线通信任务。该任务主要负责接收从 NRF51822 发送(串口方式)过来的数据,然后对数据进行打包和校验,打包成 ATKP 格式并校验无误后发送到 atkpRxAnlTask 的接收队列里, 同 时回传一帧数据给 NRF51822 (2)u***linkRxTask : USB 通信接收任务。该任务主要负责接收上位机发下来( USB 虚拟串 口方式)数据,然后对数据进行打包和校验,打包成 ATKP 格式并校验无误后发送到 atkpRxAnlTask 接收队列里。 (3)atkpRxAnlTask : ATKP 数据包接收处理任务。该任务主要是处理遥控器和上位机发下 来的数据包,解析到的控制指令则发送到 stabilizerTask 中去。 (4)stabilizerTask : 四轴平衡控制任务。该任务运行的内容比较多,也是比较关键的内容。 包括传感器数据读取,数据融合,获取控制数据,空翻检测,异常检测, PID 控制, PWM 输出控制等。 (5)wifilinkTask : 手机控制任务。该任务主要是接收 WiFi 摄像头模块的串口数据,然后按 照 WiFi 摄像头模块通讯协议解析成对应的控制指令,并将控制指令发送到 stabilizerTask (6)atkpTxTask : ATKP 数据包发送任务。该任务主要是获取 stabilizerTask 中的传感器数据、 姿态数据、电机 PWM 输出数据等数据以定周期发送给 radiolinkTask 和 u***linkTxTask ,由这 两个任务分别发送到遥控器和上位机。 (7)u***linkTxTask : USB 通信发送任务。该任务主要负责发送 atkpTxTask 发送过来的数据 包,这些数据包主要是传感器数据、姿态数据等。 总结就是: (1)将NRF51822发送的串口数据打包为ATKP形式并校验,发送到(3)→(2)将上位机发送的USB数据打包为ATKP形式并校验发送到(3 )→(3)解析前二者的数据包发送到(4)→(5)将WIFI摄像头模块的串口数据按协议发送给(4)→(4)将(3)(5)数据结合进行四轴平衡任务→(6)获取(4)当中的相关数据发送给(1)(7)→(1)将数据发送回NRF51822(串口)→ (7)将数据发送会上位机(USB) 姿态解算和 PID 算法总体流程 (1)关于姿态解算,采用的是互补滤波算法。每隔T=0.2ms(500Hz),MCU通过IIC读取加速计数据以及读取陀螺仪数据,并对加速计数据进行IIR低通滤波,对陀螺仪数据进行偏置调整,结合之后得到了姿态数据roll/pitch/yaw,即角度测量值。 (2)角度环PID,同样T=0.2ms,其角度期望值来自WIFI或者遥控RC,测量值来自(1),将二者相减之后得到偏差角度,作为角度换PID控制器输入,进行PID校正之后得到期望角速度。 (3)角速度环PID,同样T=0.2ms,期望角速度来自(2),角速度测量值即(1)中陀螺仪数据偏置调整之后的数值。二者相减之后得到偏差角速度,作为角速度环PID控制器输入,校正后得输出姿态控制量。 (4)Z轴高度PID控制器,其T=0.4ms。首先,在minifly四轴当中由手动和定高两个模式,当处于手动模式下,设定油门值=实际油门值。而当处于定高模式,油门控制就会切换到Z轴速度模式。此时,将读取高精度气压计BMP280数据,并对其进行IIR滤波、限幅均值滤波;并从姿态测量值当中获取去除重力后的Z轴加速度。二者融合得到高度估计值。另一方面,高度期望值即油门转换为Z轴设定速度值的积分,二者相减之后得到高度偏差值,作为Z轴高度PID控制器输入,校正后得到油门控制的变化量,再加上油门基准值即实际油门值输出。 (5)输出的实际油门值以及姿态控制量结合进行算法运算之后得到四个参数,以此用于调节四轴电机的PWM,进行姿态矫正。 |
|
|
|
只有小组成员才能发言,加入小组>>
imx6ull 和 lan8742 工作起来不正常, ping 老是丢包
1455 浏览 0 评论
3339 浏览 9 评论
3017 浏览 16 评论
3508 浏览 1 评论
9104 浏览 16 评论
1222浏览 3评论
632浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
621浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2363浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1928浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-13 22:55 , Processed in 1.067673 second(s), Total 80, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号