本帖最后由 极凹甫 于 2022-4-8 10:21 编辑
图中的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加入到驴车的运行中,你在驾驶驴车的时候,尾灯会随着油门的大小而点亮或者熄灭。
更大的改装,还在等着你来。
文中的代码并不是特别完整,所以再调试的时候请根据异常酌情修改哦。
|