续前文大疆机甲大师教育机器人Python API中文化之二:LED闪烁,这一API专门设置底盘的四个LED灯效果。

视频演示

(友情提示:有背景音请关音箱) 大疆教育机器人底盘灯效果演示

首先所有四处底盘LED亮白色两秒,熄灭1秒,之后四个分别开始四种不同颜色的灯效并持续4秒,前后是“呼吸”效果,左右是“闪烁”效果。

例程主体

def start():
    底盘灯(常量.底盘所有, 白色, 常量.常亮)
    时间.睡眠(2)
    底盘灯(常量.底盘所有, 黑色, 常量.熄灭)
    时间.睡眠(1)
    底盘灯(常量.底盘前, 黄色, 常量.呼吸)
    底盘灯(常量.底盘左, 红色, 常量.闪烁)
    底盘灯(常量.底盘后, 绿色, 常量.呼吸)
    底盘灯(常量.底盘右, 蓝色, 常量.闪烁)
    时间.睡眠(4)

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

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

包含API中文化部分的完整代码在此。

如上文,这里的底盘灯(位置, 颜色, 灯效)也对原API进行了二次封装,以便使用自定义的颜色常量。

关于命名

根据官方教程,“底盘”专指底部车体,因此前文命名的”装甲前底“也许改为”底盘前“更合适。类似的,”装甲左顶“->”云台左“?


彩蛋:花了点额外时间调试,因为误使用了“装甲所有”(armor_all)而非“底盘所有”(armor_bottom_all)常量。应该对API作改进,使之能警告此类错误。这也可以通过封装实现,不过先完成所有API测试吧。