仓库源文站点原文


layout: post comments: true title: 大疆机甲大师Python API之十一:用上电时间实测电池放电曲线 description: date: 2019-11-05 00:00:00 -0700

categories: Python 机甲大师

类似于前文大疆机甲大师Python API之十:程序运行时间,无限循环左转右转直至耗完电。在此过程中利用取”取上电时间“接口,获取持续运行的时间直到没电自动关机为止,看看能有几分钟。顺便看看耗电是否平均。

例程主体

下面是主体部分,完整可运行源码在此

def 开始():
    云台灯(常量.云台所有, 红色, 常量.效果常亮)
    云台.设置旋转速度(20)
    大师.设置模式(常量.底盘跟随模式)

    while True:
        云台.平转(90)
        云台.平转(-90)
        print(工具.取上电时间())

def 云台灯(位置, 颜色, 灯效):
    LED灯.云台(位置, 颜色['红'], 颜色['绿'], 颜色['蓝'], 灯效)

红色 = {'红': 255, '绿': 0, '蓝': 0}

没啥好说的,开跑!

过程曲折

(只想看耗电情况的请跳过此段)

跑了两分钟后,因为水平偏移(见前文视频),把机甲拿起来移动,结果四轮飞转,大概是扭矩还在而摩擦力突然消失的缘故!还好电机没事。之后就不大敢提离地,而是慢慢地平推。

跑了15分钟后,开发环境中报错”云台过载,云云“,不确定是否和我期间大动作移动机甲有关。又继续跑了一会,开发环境报错”姿态偏转太大,进入保护模式“,机甲停止动作。于是重启后继续跑。

又过了5分钟左右(期间搬动过),机甲又停止了,但没有机会看到开发环境的报错信息,强烈建议将此类运行中的反馈信息持久化,而不是像现在这样闪现几秒而已。毕竟很多时候用户不会紧盯着开发环境,很容易错过。

过8分钟又一次。经过了几次搬动,猜测水平移动和地板的轻微倾斜有关(如果是纯粹的原地旋转,不应该有任何平移)。

在小心平推之后,最后一段坚持了40分钟不需重启。

另外注意到的,虽然只在代码中指定了云台水平转动,但在此过程中,云台仍有上下俯仰运动,不知是何原因: 机甲大师S1底盘跟随云台转动

而且上面的视频中,云台换方向时比较突兀,而在这不久之后就发生了未知错误停止运动。不知是否有关。

耗电曲线

无论如何,还是基本达到了预期。下面是记录的电量变化数据,几次时间重置是上面提到的因故运行停止:

电量    上电时间
99  146 
98  178 
97  251 
95  407 
92  508 
89  638 
82  982 云台过载
80  1089    
78  37  姿态偏转过大,进入保护模式
74  296 
71  480 
69  600 
65  748 
64  38  未知错误
62  197 
57  465 
55  628 
51  892 
46  1155    未知错误
45  25  
36  614 
30  980 
25  1304
22  1460
17  1756
13  1996
9   2181
0   2471

将时间累积处理后:

146 99
178 98
251 97
407 95
508 92
638 89
982 82
1089    80
1126    78
1385    74
1569    71
1689    69
1837    65
1875    64
2034    62
2302    57
2465    55
2729    51
2992    46
3017    45
3606    36
3972    30
4296    25
4452    22
4748    17
4988    13
5173    9
5463    0

下面是电量随秒数下降的曲线(excel生成):

2019-11-05_battery放电曲线

竟然坚持了一个半钟头!出乎意料。除了最后9%(可惜没有获取电量的接口,否则可以取得更多的数据点,用于更精确描绘耗电曲线),看起来电池电量下降还算均匀。

过十五分钟之后拿出电池来充电没觉得有明显热度,不错。

最后。。。要是能有导出数据为文件的接口的话,就可以省去盯着控制台手工记录了。。。

2019-11-06_console输出截屏