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

2022-04-051.4万
AI 快速预览详细 收起
本文介绍了如何在Donkeycar系统中添加RearLight part,通过配置myconfig.py和manage.py,实现根据油门控制尾灯亮灭的功能。首先在myconfig.py中配置USE_REAR_LIGHT=True,然后在manage.py中添加RearLight实例,并将其加入到V的循环中。这样,当油门大于0.1时,尾灯会熄灭;否则,尾灯会点亮。通过这种方式,你可以为你的驴车添加一个自定义的尾灯功能。



图中的1,2和part生命周期中的1,2相互对应。 可以参考链接:[项目]【漂移驴车-进阶】驴车part的生命周期
1 -- 添加part配置;  2 -- 在manage.py中根据配置将part加入到V中


1、 RearLight Part的实现


  RearLight 的接口设计:
  1. '''
  2. ReadLight 作为一个part加入到donkeycar的系统中。
  3. 调用ledmatrix来完成对尾灯的控制。
  4. '''
  5. class RearLight:
  6.     '''
  7.     初始化
  8.     在config中配置:
  9.     USE_REAR_LIGHT = True   是否启用尾灯
  10.     '''
  11.     def __init__(self):
  12.         pass
  13.     '''
  14.     根据系统油门(throttle)来显示控制尾灯的亮和灭
  15.     系统的throttle的范围是-1~1之间的任意小数
  16.     如果throttle大于0.1,相当于加速,熄灭尾灯;
  17.     否则,点亮尾灯。
  18.     '''
  19.     def run(self, throttle):
  20.         pass
  21.     '''
  22.     释放系统资源,包括GPIO和停止相关的线程
  23.     '''
  24.     def shutdown(self):
  25.         pass
复制代码

RearLight的实现:
  1. class RearLight:
  2.     '''
  3.     初始化
  4.     在config中配置:
  5.     USE_REAR_LIGHT = True   是否启用尾灯
  6.     '''
  7.     def __init__(self):
  8.         self.led = ledmatrix.LedMatrix()
  9.     '''
  10.     根据系统油门(throttle)来显示控制尾灯的亮和灭
  11.     系统的throttle的范围是-1~1之间的任意小数
  12.     如果throttle大于0.1,相当于加速,熄灭尾灯;
  13.     否则,点亮尾灯。
  14.     '''
  15.     def run(self, throttle):
  16.         logging.debug("@@@@ --" +  str(throttle))
  17.         if throttle > 0.1:
  18.             led.off()
  19.         else:
  20.             led.on()
  21.     '''
  22.     释放系统资源,包括GPIO和停止相关的线程
  23.     '''
  24.     def shutdown(self):
  25.         self.led.destory()
复制代码


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


3 、在manage.py中添加相关代码
在manage.py的V.start之前添加, 主要是读取cfg的配置,将RearLight实例加入到V的循环中。
  1. # REAR Light setup
  2. if cfg.USE_REAR_LIGHT:
  3.     import RearLight
  4.     rear_light_part = RearLight()
  5.     V.add(rear_light_part,
  6.               inputs=['throttle'],   
  7.               outputs=[])
复制代码


4、尝试运行你的驴车,看看RearLight是不是已经加载好了
【漂移驴车-进阶】添加尾灯part --- 2 RearLight part的实现和部署图1

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

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

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

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




创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(4)
yoyojacky
yoyojacky
恩, 这两天忙的吐血. 看周末时间吧
yoyojacky
yoyojacky
非常透彻啊! 点个赞先. 我的驴车好久没开机了,一直在搞 donkey gym..
极凹甫
极凹甫
作者
回复yoyojacky
坐等你的超大号尾灯上场哦。
zschenxi
zschenxi
很有意思!
昊男Henry
昊男Henry
用vehicle方法添加新功能挺方便的嘛,赞一个!
- 没有更多了 -