搜尋程式碼

課程 第5課,共10課:用樹莓派Pico控制RGB LED WS2812B

呢一課係……嘅一部分: Raspberry Pi Pico 四驱智能车

課程 第5課,共10課:用樹莓派Pico控制RGB LED WS2812B

呢一堂課,係Robojax Raspberry Pi Pico智能車課程嘅一部分,重點係控制SunFounder四輪驅動車套件上面嘅RGB LED燈帶(WS2812B)。你會學到超越簡單嘅開關控制,學識點樣混合紅、綠、藍嘅數值嚟整出任何顏色、控制個別LED,以及整出好似「走馬燈」咁嘅動態燈光效果。呢個技能對於為你嘅機械人項目加入視覺反饋同個性化係好基本嘅。

控制RGB LED係任何機械人或者電子項目嘅核心技能。以下係一啲你可以用呢個知識整出嚟嘅實用嘢:

  • 自訂狀態指示燈:用唔同顏色嚟顯示你部機械人嘅狀態,例如綠色代表「準備好」、藍色代表「工作中」、紅色代表「出錯」。
  • 互動燈光效果:整出「追逐」或者「霹靂遊俠」風格嘅燈光圖案,令部機械人更加動感同吸引。
  • 感測器嘅視覺反饋:編程令LED根據感測器數據改變顏色,例如當有障礙物靠近時變紅,或者跟線嗰陣變藍。
  • 環境燈光:將LED設成隨機顏色或者特定色調,為你部車或者其他項目營造自訂氛圍。

硬件/組件

呢個項目用嘅係SunFounder Raspberry Pi Pico四輪驅動車套件入面嘅組件。最關鍵嘅組件就係RGB LED燈帶本身,佢係由Raspberry Pi Pico控制嘅。

  • Raspberry Pi Pico
  • SunFounder四輪驅動車套件(包含WS2812B RGB LED燈帶)
  • 車用電池盒(用嚟供電俾LED,好似影片入面提到咁)

接線指南

呢堂影片課程冇詳細講接線過程,因為佢係車套件預先組裝好嘅設計一部分。LED已經連好咗去Raspberry Pi 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生成隨機數值,好似「random」例子入面示範咁。呢個會為24粒LED每一粒都分配一個獨特嘅隨機顏色。

現場項目/示範

喺影片入面,導師現場示範咗呢啲概念。佢首先示範點樣將所有底部燈光設成純綠色,將RGB數值設為[0, 255, 0]。然後,佢將顏色改做紅色,設成[255, 0, 0]。示範繼續落去,佢展示咗點樣透過LED嘅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生成隨機顏色
请提供需要翻译的文本。

資源與參考資料

暫時冇資源。

文件📁

冇文件可用。