极凹甫 发表于 2022-4-5 17:29:30

【漂移驴车-进阶】添加尾灯part --- 2 RearLight part的实现和部署

本帖最后由 极凹甫 于 2022-4-8 10:21 编辑

https://imagemc.dfrobot.com.cn/data/attachment/album/202204/05/171300zhxbquhehnkqxsrz.jpg
图中的1,2和part生命周期中的1,2相互对应。 可以参考链接:[项目]【漂移驴车-进阶】驴车part的生命周期
1 -- 添加part配置;2 -- 在manage.py中根据配置将part加入到V中


1、 RearLight Part的实现


RearLight 的接口设计:

'''
ReadLight 作为一个part加入到donkeycar的系统中。
调用ledmatrix来完成对尾灯的控制。
'''

class RearLight:

    '''
    初始化
    在config中配置:
    USE_REAR_LIGHT = True   是否启用尾灯
    '''
    def __init__(self):
      pass

    '''
    根据系统油门(throttle)来显示控制尾灯的亮和灭
    系统的throttle的范围是-1~1之间的任意小数
    如果throttle大于0.1,相当于加速,熄灭尾灯;
    否则,点亮尾灯。
    '''
    def run(self, throttle):
      pass

    '''
    释放系统资源,包括GPIO和停止相关的线程
    '''
    def shutdown(self):
      pass

RearLight的实现:
class RearLight:

    '''
    初始化
    在config中配置:
    USE_REAR_LIGHT = True   是否启用尾灯
    '''
    def __init__(self):
      self.led = ledmatrix.LedMatrix()

    '''
    根据系统油门(throttle)来显示控制尾灯的亮和灭
    系统的throttle的范围是-1~1之间的任意小数
    如果throttle大于0.1,相当于加速,熄灭尾灯;
    否则,点亮尾灯。
    '''
    def run(self, throttle):
      logging.debug("@@@@ --" +str(throttle))
      if throttle > 0.1:
            led.off()
      else:
            led.on()

    '''
    释放系统资源,包括GPIO和停止相关的线程
    '''
    def shutdown(self):
      self.led.destory()

2、在myconfig.py的末尾添加配置
## for rear light conf
USE_REAR_LIGHT = True

3 、在manage.py中添加相关代码
在manage.py的V.start之前添加, 主要是读取cfg的配置,将RearLight实例加入到V的循环中。
# REAR Light setup
if cfg.USE_REAR_LIGHT:
    import RearLight
    rear_light_part = RearLight()

    V.add(rear_light_part,
            inputs=['throttle'],   
            outputs=[])

4、尝试运行你的驴车,看看RearLight是不是已经加载好了


你会在part的列表中发现你刚刚加入的 RearLight。

恭喜你,已经将一个自己创造的Part加入到驴车的运行中,你在驾驶驴车的时候,尾灯会随着油门的大小而点亮或者熄灭。

更大的改装,还在等着你来。

文中的代码并不是特别完整,所以再调试的时候请根据异常酌情修改哦。




昊男Henry 发表于 2022-4-5 17:41:59

用vehicle方法添加新功能挺方便的嘛,赞一个!

zschenxi 发表于 2022-4-6 17:34:04

很有意思!

yoyojacky 发表于 2022-4-20 22:09:15

非常透彻啊! 点个赞先. 我的驴车好久没开机了,一直在搞 donkey gym..

极凹甫 发表于 2022-4-22 21:34:18

yoyojacky 发表于 2022-4-20 22:09
非常透彻啊! 点个赞先. 我的驴车好久没开机了,一直在搞 donkey gym..

坐等你的超大号尾灯上场哦。

yoyojacky 发表于 2022-4-29 17:37:39

恩, 这两天忙的吐血. 看周末时间吧
页: [1]
查看完整版本: 【漂移驴车-进阶】添加尾灯part --- 2 RearLight part的实现和部署