大疆机甲大师教育机器人Python API中文化之六:关灯
发布日期:2021-06-29 15:29:00 浏览次数:2 分类:技术文章

本文共 1158 字,大约阅读时间需要 3 分钟。

视频演示

这里有意对比了两种熄灯的方法,看看副效应有何不同。

大疆机甲大师教育机器人Python中文编程:关灯

前一种是本文针对的熄灭方法,后一种是之前将云台灯设置为”效果熄灭“。可以看到,第一种方法熄灯后,对指定序号的LED进行点亮无效;而第二种方法熄灯后,同样的对指定序号的LED进行点亮成功。

控制台中的输出对应两次点亮的时机。

例程主体

可以看到上下两部分的主要区别是,LED灯.熄灭(常量.云台左)和 云台灯(常量.云台左, 绿色, 常量.效果熄灭)两种熄灯方法。 完整代码。

def start():    云台灯(常量.云台左, 红色, 常量.效果常亮)    时间.睡眠(1)    LED灯.熄灭(常量.云台左)    时间.睡眠(1)    # 不能点亮    云台单灯(常量.云台左, 奇数, 常量.效果常亮)    print("no light")    时间.睡眠(1)    云台灯(常量.云台左, 红色, 常量.效果常亮)    时间.睡眠(1)    云台灯(常量.云台左, 绿色, 常量.效果熄灭)    时间.睡眠(1)    # 可以点亮    云台单灯(常量.云台左, 奇数, 常量.效果常亮)    print("light on")    时间.睡眠(2)

关于API设计

刚看到这个熄灭API的时候,就在想它和”效果熄灭“的区别。通过上面测试看出,”熄灭“貌似会重置之前的颜色设置,导致之后对指定LED灯效无法获得之前设置过的颜色。也许它的实现类似云台灯(常量.云台左, 黑色, 常量.效果熄灭) ?像这样的区别,没有在文档中体现,

这就牵涉到另一个问题:如何获取当前LED的状态?比如,为了检验上面的猜想,最好能在调用”熄灭“后,获取到当前左侧云台的颜色设置值(鉴于点亮指定灯不需要颜色参数,相信是存在这个颜色设置值的),看看是空、黑色还是其他什么值。这样的获取状态API也是编写简单的自动测试所必须的。可惜的是,暂时没在官方教程中看到LED灯部分有类似API,也许是因为灯效部分并非是机甲的重点功能。相比之下,底盘运动和云台部分就看到类似API(取坐标、姿态角等等),因为这些值对于控制代码来说不可或缺。

开发中,发觉一个算是痛点,由于API调用时基本不对参数作检查,因此开发者容易忽略一些低级错误,比如,设置闪烁时,位置参数接受“装甲所有”(包括底盘和云台),但不接受“云台所有”;而设置云台灯效时,位置参数则是相反。在API功能上可以理解,但实际开发时,一旦复制黏贴没有注意,运行就会无效,而没有任何错误信息报告。这是开发环境中的报错信息一个值得改进的方面。

到此为止,API中LED灯的部分测试完毕。下面回过头看“系统”部分,也许结合灯效,把演示搞的炫一点。

转载地址:https://codeinchinese.blog.csdn.net/article/details/102982932 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:“中文编程”知乎专栏两岁了——山雨欲来风满楼
下一篇:大疆机甲大师教育机器人Python API中文化之四五:云台灯效,指定序号

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月11日 13时34分49秒