9796浏览
查看: 9796|回复: 5

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

[复制链接]
本帖最后由 极凹甫 于 2022-4-8 10:21 编辑


图中的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加入到驴车的运行中,你在驾驶驴车的时候,尾灯会随着油门的大小而点亮或者熄灭。

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

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




昊男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

恩, 这两天忙的吐血. 看周末时间吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail