类似于前文大疆机甲大师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输出截屏