发 帖  
张飞软硬开源基于STM32 BLDC直流无刷电机驱动器开发视频套件, 👉戳此立抢👈
[讨论] 【BeagleBone Black试用体验】我的“飞控狗”4:遥控通信及驱动测试
2016-10-6 23:16:14  3365
分享
本帖最后由 辉哥的歌 于 2016-10-8 10:45 编辑

1.      本节目标
本节主要目的是采用已有航模遥控器和接收机遥控单桨转速,测试BeagleBone Black板的GPIO信号采集功能,以及控制的实时性,以实现BeagleBone Black板采集遥控器发出PWM波的信号并计算占空比(DutyRatio),从而完成对单桨的驱动控制。
2.      设备介绍
本节所需的设备见表1所示:
表 1  实验所用设备
  
序号
  
名称
数量
备注
1
四旋翼平台
1
碳纤
2
空心杯电机
4
820
3
螺旋桨
4
正反桨两对
4
Mos管驱动模块
4
驱动空心杯电机
5
3.7V电池单片锂电池
1
为电机供电
6
BeagleBone  Black 工业板
1
作为控制器
7
PC个人电脑
1
作为上位机
8
示波器
1
采集接收机信号
9
遥控器
1
Futaba  14SG
10
接收机
1
Futaba  R7008SB


3.      遥控通信基本性能测试
3.1.    供电和对频
(1)供电方式
连接电脑和BeagleBoneBlack板,用电脑给板供电,再连接BeagleBone Black板和接收机的对应端口,用板子为接收机供电,板子和接收机的具体连接方式如图1中所示。

4-1.jpg
图 1  通信测试连接图

从图中我们可以看出,要将接收机正极与板子5V引脚相连并使接收机的负极接地,实现板子对接收机的供电。同时,图中也给出了接收机4个信号通道的具体位置。
(2)遥控器与接收机对频
1)   打开遥控器
打开之后,遥控器界面如图2所示。



4-2.jpg
图2  遥控器开机界面
2)   双击link面板
双击link键之后,遥控器进入菜单界面,如图3所示。

4-3.jpg
图 3  遥控器菜单
3)   选择system
选择system后界面如图4中所示。
4-4.jpg
图 4  system界面
4)   选择FASSTEST-12CH
在system菜单中选中FASSTest-12CH并确认,如图5中所示。

4-5.jpg
图 5  确认提示
5)   确认连接
将光标移动到LINK上,单击OK键,显示“NOW LINKING...”说明现在开始对频连接,如图6(a)和(b)所示。
link.jpg
图 6(a)  光标移动到LINK上
571115946788581228.jpg
图 6(b)  单击控制板上的OK键开始对频连接
6)   对频成功
     接收机供电,由红灯转为绿灯对频成功,否则按住接收机对频触点,或重复上述步骤并重新给接收机上电,直至接收机指示灯由红变绿,如图7所示。

4-7
图 7  红灯变绿灯对频成功
3.2.    遥控通信测试
(1)硬件连接
用BeagleBoneBlack板给接收机供电,将示波器的探测头正端与接收机信号线的插头接触,一头通过BeagleBone Black板接地,如图8所示。

4-8.jpg
图 8  遥控通信测试硬件连接图
(2)四通道频率和占空比测试
使用示波器可清晰地显示出接收机发出信号的波形图及其相关信息,如图8中所示。在示波器上我们可以看到,随着遥控器发出指令,PWM波的占空比会发生明显变化。表2列出了通过示波器采集的四通道发出信号的频率和占空比数据。
其中,1通道的测试过程视频网址如下:
http://v.youku.com/v_show/id_XMTc0OTMzNjM0OA==.html

1通道最大最小占空比如图9-10所示:
chanel2-max.jpg
图9 1通道滚转控制的最大占空比
chanel2-min.jpg
图10 1通道滚转控制的最小占空比

3通道(油门)最大最小占空比如图11-12所示:
chanel3-max.jpg
图11 油门通道最大占空比

chanel3-min.jpg
图12  油门通道最小占空比

四通道最大最小占空比总结如表2所示:

表 2  四通道信号频率和占空比
  
通道
  
控制对象
频率(Hz)
占空比(min-max)
1
滚转
158.7
17.46%
30.80%
2
俯仰
158.7
17.48%
30.78%
3
油门
158.7
17.46%
30.80%
4
航向
158.7
17.45%
30.69%


4.      遥控信号采集及识别占空比
        通过使用BeagleBone Black板来采集接收机信号数据是为之后的控制测试做好准备,一方面所得数据可以与之前测量的数据互验,另一方面采集接收机的信号并求得占空比本身就是实现控制中的一环。
使用BeagleBone Black板采集PWM波的上升沿,下降沿以及上升沿这3个时间点,再通过计算可以得到周期和占空比,所得数据与直接测量得的数据基本吻合,但是此过程中也出现了一个问题:在一段时间后,采得的数据出现严重的不稳定现象,周期和占空比均产生巨大偏差。通过分析与测试后,得到的结论是:由于BeagleBone Black板自身的限制,无法长时间及时完成对如此多数据的采集和处理,导致下降沿出发丢失,从而得到错误的数据。在通过采集下降沿,上升沿,上升沿这3个时间点及每次计算后稍加延时,得到明显的改善。
用BeagleBone Black板进行数据采集的示意图如下:

4-9.jpg
图 13  信号采集及处理示意图


5.      遥控驱动单桨试验
5.1.    试验内容
(1)硬件连接
试验的硬件连接可参考图14。其中值得注意的是要使电池的负极接地,否则无法给电机供电。
4-10.jpg
图 14  硬件连接实物图
(2)试验程序
在Cloud 9 IDE环境下,将动力测试和信号采集所用程序的python语言进行综合整理后可以得到此次测试所用程序,如图15中所示。

4-11.png
图 15  程序界面
具体代码如下:
import Adafruit_BBIO.PWM as PWM
import Adafruit_BBIO.ADC as ADC
import Adafruit_BBIO.GPIO as GPIO
import time

data = 0
PWM.start("P9_14", 0)
GPIO.setup("P9_12",GPIO.IN)
while True:
       GPIO.wait_for_edge("P9_12",GPIO.FALLING)
       t1 = time.time()
       GPIO.wait_for_edge("P9_12",GPIO.RISING)
       t2 = time.time()
       time.sleep(0.006)
       t = t2-t1
       duty =  1 - t/(0.0063)

       duty1 = int(duty*100)
       duty1 = (duty1-17)*100/14


       if duty1<=0:
                duty1 = 0

       if duty1>=100:
                duty1 = 100

       print "duty = " + str(duty1)
       PWM.set_duty_cycle("P9_14",duty1)
       PWM.set_frequency("P9_14", 200)
        time.sleep(0.001)
选用P9_12引脚作为信号输入端,P9_14引脚作为PWM信号输出端,保证输入端信号在换算后使占空比的范围在0-100%以内,且PWM的频率设置为200Hz。

(3)试验过程
试验具体过程的视频地址如下:
http://v.youku.com/v_show/id_XMTc0OTM0MDk0OA==.html

5.2.    试验分析
运行程序后,螺旋桨开始旋转,并随着油门的增减而增减,实时性较高,总体来说达到了遥控驱动单桨的目的。但是在桨旋转过程中会出现抖动现象则是需要解决的问题,其主要原因是BeagleBone Black板运行程序时下降沿触发丢失,从而使得到的接收机信号波占空比会产生波动影响控制稳定。
为此,在试验中做出了如图16所示的改进,改进后抖动现象有所缓减却仍然存在。
4-12.JPG

图16  改进方案图

6.      总结
      本节对遥控通信做了较为完整的测试,所采集的遥控信号数据为实现遥控控制提供保证。本节还成功实现了通过遥控器驱动单桨,并初步检验了遥控驱动的实时性。在控制过程中,桨出现了抖动现象表明控制稳定性有所不足。因此,接下来要通过平滑滤波来增强控制的稳定性,并着手控制程序双线程的开发。



1
4-6.jpg
2016-10-6 23:16:14   评论 分享淘帖
7 个讨论
创意挺好的,期待楼主后续分享。
2016-10-7 08:58:02 评论

举报

谢谢分享,学习楼主
2016-10-7 09:43:11 评论

举报

iysheng 发表于 2016-10-7 08:58
创意挺好的,期待楼主后续分享。

恩,感谢关注,会努力做好试用
2016-10-7 19:43:05 评论

举报

Mobli 发表于 2016-10-7 09:43
谢谢分享,学习楼主

呵呵,客气了,相互学习
2016-10-7 19:43:41 评论

举报

谢谢分享
2016-10-25 17:48:12 评论

举报

谢谢分享              谢谢分享        谢                谢
               谢谢分享              谢谢分享        分                分
               谢谢谢谢分享              谢谢分享        谢                谢
               谢谢分享              谢谢分享        分                分
               谢谢分享              谢谢分享        享                享
               谢谢分享              谢谢分享        谢                谢
               谢谢分享              谢谢分享        谢                谢
谢        谢谢分享  谢谢分享              谢谢分享        谢                谢
               谢谢分享              谢谢分享        分                分
               谢谢分享              谢谢分享        享                享
               谢谢分享              谢谢分享        谢                谢
               谢谢分享              谢谢分享        谢                谢
谢        谢谢分享               谢谢分享                 谢谢分享    分享              谢谢分享        享                享
               谢谢分享              谢谢分享        谢      
2017-1-4 23:12:23 评论

举报

谢谢分享,学习楼主
2019-5-13 22:46:48 评论

举报

只有小组成员才能发言,加入小组>>

96个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /8 下一条

快速回复 返回顶部 返回列表