【漂移驴车-进阶】添加尾灯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加入到驴车的运行中,你在驾驶驴车的时候,尾灯会随着油门的大小而点亮或者熄灭。
更大的改装,还在等着你来。
文中的代码并不是特别完整,所以再调试的时候请根据异常酌情修改哦。
用vehicle方法添加新功能挺方便的嘛,赞一个! 很有意思! 非常透彻啊! 点个赞先. 我的驴车好久没开机了,一直在搞 donkey gym..
yoyojacky 发表于 2022-4-20 22:09
非常透彻啊! 点个赞先. 我的驴车好久没开机了,一直在搞 donkey gym..
坐等你的超大号尾灯上场哦。 恩, 这两天忙的吐血. 看周末时间吧
页:
[1]