搜索代码

课程 第5课,共10课:使用树莓派Pico控制RGB LED WS2812B

本课是……的一部分: Raspberry Pi Pico 四驱智能车

课程 第5课,共10课:使用树莓派Pico控制RGB LED WS2812B

本课程是Robojax树莓派Pico智能车课程的一部分,重点讲解如何控制SunFounder四轮驱动车套件上的RGB LED灯带(WS2812B)。您将超越简单的开关控制,学习如何混合红、绿、蓝三种颜色值来创建任意颜色、控制单个LED,以及制作动态灯光序列(如“流水灯”效果)。这项技能对于为您的机器人项目添加视觉反馈和个性至关重要。

控制RGB LED是任何机器人或电子项目的核心技能。以下是您可以用这项知识构建的几个实用项目:

  • 自定义状态指示灯:使用不同颜色显示机器人的状态,例如绿色表示“就绪”,蓝色表示“工作中”,红色表示“错误”。
  • 交互式灯光效果:创建“追逐”或“骑士灯”风格的灯光模式,让机器人更具动感和吸引力。
  • 传感器视觉反馈:编程让LED根据传感器数据改变颜色,例如障碍物靠近时变为红色,循线时变为蓝色。
  • 环境照明:将LED设置为随机颜色或特定色调,为您的车辆或其他项目营造自定义氛围。

硬件/组件

本项目使用SunFounder树莓派Pico四轮驱动车套件附带的组件。关键组件是RGB LED灯带本身,由树莓派Pico控制。

  • 树莓派Pico
  • SunFounder四轮驱动车套件(包含WS2812B RGB LED灯带)
  • 车辆电池组(用于为LED供电,如视频中所述)

接线指南

视频课程未详细说明接线过程,因为这是车套件预组装设计的一部分。LED已连接到树莓派Pico。对于自定义设置,您通常需要将WS2812B灯带的数据引脚连接到Pico上的GPIO引脚,同时连接电源(5V)和地线(GND)。由于本课程使用车套件,因此无需额外接线。

如果您在面包板上构建此项目,则需要将LED灯带的数据线连接到GPIO引脚(例如GP0),并使用外部5V电源供电。

代码说明

本课程重点使用车套件库中预编写的函数。控制灯光的核心函数是set_light_color()。此方法在车辆对象上调用,接受两个主要参数:灯光的ID号和一个包含红、绿、蓝(RGB)强度三个值的列表。

以下是视频中演示的关键函数的使用方法详解:

  • car.set_light_color(LED_ID, [R, G, B]):这是控制单个LED最直接的方法。LED_ID是0到23之间的整数,颜色是类似[255, 0, 0](表示红色)的列表。
  • 库辅助函数:套件库提供了更高级的函数,如set_all_light_color()set_bottom_left_color()set_bottom_right_color(),以便更轻松地控制LED组。

要创建自定义颜色,您可以调整列表中的三个值。例如,[255, 255, 0]生成黄色,[0, 255, 255]生成青色,[255, 0, 255]生成粉色或品红色。视频演示了如何通过混合RGB原色值来创建这些颜色。

对于随机颜色,您可以使用random.randint(0, 255)函数为R、G和B生成随机值,如“随机”示例所示。这会为24个LED中的每一个分配独特的随机颜色。

实际项目/演示

在视频中,讲师现场演示了这些概念。他首先展示了如何通过将RGB值设置为[0, 255, 0]将所有底部灯打开为纯绿色。然后,他通过设置[255, 0, 0]将颜色改为红色。演示继续展示如何通过ID号(0-23)控制单个LED并独立设置其颜色。

视频的很大一部分用于创建“流水灯”效果。这是通过一个从1到24迭代的for循环实现的。在每次迭代中,它打开当前LED一段时间(例如300毫秒),然后关闭很短时间(例如10毫秒),再移动到下一个。这创造了灯光沿灯带移动的错觉。讲师还展示了如何通过更改延迟值来调整此效果的速度。

最后,他演示了“随机颜色”程序,该程序使用random库在每次代码运行时为24个LED中的每一个生成独特的颜色,创造出鲜艳多彩的显示效果。

章节

  • [00:00] RGB LED和智能车课程介绍
  • [02:36] 理解RGB颜色模型
  • [05:00] 使用库函数控制灯光
  • [09:01] 如何控制单个LED(0-23)
  • [13:08] 创建流水灯效果
  • [15:32] 为每个LED生成随机颜色
没有附加代码。

资源与参考

尚无可用资源。

文件📁

没有可用的文件。