.. note::
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
**参加する理由は?**
- **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
- **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。
- **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。
- **特別割引**:最新製品の独占割引をお楽しみください。
- **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう!
レッスン9:RGB LEDストリップで道を照らす
============================================================
これまでの旅で、私たちは火星ローバーを賢く、障害物を巧みに回避する探検家に変えてきました。設定した火星のような地形でナビゲートするのが得意になりました。
でも、実用性にちょっとした華やかさを加えたらどうでしょう?ローバーに色と光のスペクタクルを通じて自己表現する能力を与えましょう。RGB LEDストリップを取り入れることを考えています - ローバーが最も暗い条件でもその道を照らすことができるクールな機能です。
想像してみてください - ローバーが色分けされた信号の軌跡を残します。動いているときは緑色の光、停止するときは真っ赤な光、素早いターンの際には派手な黄色の光を発します。単なる楽しみのためにさまざまな色で光ることもできます!
このレッスンの目標は、RGB LEDストリップの原理を理解し、その色と明るさを制御する方法を学び、それをローバーの動きと同期させることです。最後には、火星ローバーは単なる機械以上のものになります。それは発光し、色が変わる存在となり、広大な火星の風景を先導します!
.. raw:: html
.. note::
GalaxyRVRを完全に組み立てた後にこのコースを学習する場合、コードをアップロードする前にこのスイッチを右に移動させる必要があります。
.. image:: img/camera_upload.png
:width: 500
:align: center
学習目標
-------------
* RGB LEDストリップの動作原理とアプリケーションを理解する。
* Arduinoプログラミングを使用してRGB LEDストリップの色と明るさを制御する方法を学ぶ。
* 火星ローバーモデルにRGB LEDストリップをインジケーターとして取り付け、使用する方法を実践する。
材料
-------------------------
* RGB LEDストリップ(各ストリップに8つのRGB LED、合計2つのストリップ)
* 基本的なツールとアクセサリー(例:ドライバー、ネジ、ワイヤーなど)
* 火星ローバーモデル(ロッカーボギーシステム、メインボード、モーター、障害物回避モジュール、超音波モジュール装備)
* USBケーブル
* Arduino IDE
* コンピューター
手順
------------------
**ステップ1:火星ローバーにRGB LEDストリップを取り付ける**
まず、2つのRGBライトストリップを車の底面の両側に取り付けます。一組のピンで制御されるため、配線プロセス中に区別する必要はありません。
.. raw:: html
**ステップ2:RGB LEDストリップで光の魔法を探る**
虹を見た最後の時間を覚えていますか?7色の鮮やかな色で空を彩るあの感じ。私たちの小さな火星ローバーで自分だけの虹を作るのはどうですか?RGB LEDストリップを使った光の魔法に飛び込みましょう!
.. image:: img/4_rgb_strip.jpg
RGB LEDストリップには4つのピンがあり、以下のようにラベル付けされています:
* **+5V**:ストリップ内の3つの小さな電球(LED)の「正極」または「アノード」です。DC 5Vに接続する必要があります。これは、私たちの小さな電球に電力を供給する電気ジュースのようなものです!
* **B**:青色LEDの「負極」または「カソード」です。
* **R**:赤色LEDの「カソード」です。
* **G**:緑色LEDの「カソード」です。
.. image:: img/rgb_5050.jpg
芸術の授業で学んだ三原色 - 赤、青、緑 - を覚えていますか?画家がパレットでこれらの色を混ぜて新しい色を作るように、私たちのストリップには、これらの原色を混ぜてほぼどんな色でも作ることができる4つの「5050」LEDが含まれています。各「5050」LEDは、これら三色の電球を収容する小さなアートスタジオのようなものです。
.. image:: img/rgb_5050_sche.png
これらの小さなアートスタジオは、柔軟な回路基板上で賢く接続されています - ちょうどミニ電気ハイウェイのように!すべてのLEDの「正極」(アノード)は一緒に接続され、それぞれの「負極」(カソード)は対応する色のレーン(G to G, R to R, B to B)に接続されています。
.. image:: img/rgb_strip_sche.png
そして最もクールな部分?私たちの命令で、このストリップ上のすべてのLEDが一度に色を変えることができます!指先でライトオーケストラを持っているようなものです!
では、ライトミュージックを演奏しましょう!次のステップでは、これらのLEDを制御して、私たちが望む色を表示する方法を学びます。それは、光の交響曲を指揮するようなものになります!
**ステップ3:ショーを照らす - RGB LEDストリップの制御コーディング**
色の領域に足を踏み入れたので、火星ローバーを命を吹き込む時が来ました。RGB LEDストリップを使って暗闇に色のスペクトルを描く準備をしましょう。これを機会と考えて、火星ローバーをモバイルディスコパーティーに変えてみてください!
* 楽しい部分に飛び込む前に、2つのLEDストリップがあっても、同じ一組のピンで制御されていることを理解しましょう。完璧な同期で動く2人の魅力的なダンサーを持っているようなものです。
.. image:: img/rgb_shield.png
* コーディングの魔法を使う時が来ました。Arduinoコードでピンを初期化しましょう。
.. code-block:: arduino
#include
// Define the pin numbers for the RGB strips
const int bluePin = 11;
const int redPin = 12;
const int greenPin = 13;
* ピンが準備できたら、 ``SoftPWMSet()`` 関数を使用してこれらのピンを制御します。RGBストリップに赤色を表示させるには、赤色のLEDを点灯させ、他を消します。
.. code-block:: arduino
void setup() {
// Initialize software-based PWM on all pins
SoftPWMBegin();
}
void loop() {
// Set the color to red by turning the red LED on and the others off
SoftPWMSet(redPin, 255); // 255 is the maximum brightness
SoftPWMSet(greenPin, 0); // 0 is off
SoftPWMSet(bluePin, 0); // 0 is off
delay(1000); // Wait for 1 second
}
上記のコードでは、単一の色を表示する方法のみを示しています。
この方法を使用してさまざまな色を展示しようとすると、コードはかなり煩雑になる可能性があります。したがって、コードをより簡潔で保守しやすくするために、3つのピンにPWM値を割り当てる関数を作成できます。その後、 ``loop()`` 内で多数の色を簡単に設定できます。
.. raw:: html
R3ボードにコードをアップロードした後、オレンジ色と黄色が少し変に見えるかもしれません。
これは、ストリップ上の赤色LEDが他の2つのLEDに比べて比較的暗いためです。
したがって、この色の不一致を修正するために、コードにオフセット値を導入する必要があります。
.. raw:: html
これで、RGB LEDストリップは正しい色を表示できるはずです。まだ不一致がある場合は、 ``R_OFFSET`` 、 ``G_OFFSET`` 、および ``B_OFFSET`` の値を手動で調整できます。
LEDストリップに好きな色を表示するために実験してみてください。必要なことは、望む色のRGB値を入力することだけです。
ヒント:コンピューター上のペイントツールを使用して、希望する色のRGB値を決定できます。
.. image:: img/rgb_paint.png
色の設定の芸術をマスターしたので、次のステップでは、これらの鮮やかなディスプレイを火星ローバーの動きと統合します。楽しみな時間が待っています!
**ステップ4:色の表示を伴うローバーの動き**
今度は、火星ローバーの動きに色の表示を追加します。例えば、前進には緑、後退には赤、左右への旋回には黄色を使用できます。
これを実現するために、ローバーの動きに基づいてLEDストリップの色を設定する制御機構をコードに追加します。これには、色制御機能を含むローバー制御コードを変更することが含まれます。
ローバーの動きに基づいて色を設定する方法の例を見てみましょう:
.. raw:: html
``loop()`` 関数内で、異なる関数を呼び出すことによってローバーに一連のアクションを実行させました。
各アクションにはそれに対応する色表示がありました - 前進には緑、後退には赤、旋回には黄色。
この色表示機能は、 ``setColor()`` 関数を使用して、各RGB色チャネルの明るさを操作することで実現されました。
停止アクションでは、魅力的な要素 - 赤と青の光の呼吸効果 - を導入しました。
これは ``stopMove()`` 関数内で赤と青のチャネルの明るさを周期的に調整することで達成されました。
そのため、停止すると、LEDストリップは赤と青の色を変えて、ダイナミックな視覚効果を作り出しました。
これで、火星ローバーには独自の鮮やかな色効果が備わり、それぞれのユニークな動きを表す色分けされた信号の軌跡を残します。
このプロジェクトを通じて、STEAMの科目が組み合わさり、そうでなければ普通の機械に命を吹き込み、それを鮮やかでインタラクティブで楽しい学習ツールに変える方法を発見しました。
**ステップ5:まとめと反省**
今日のレッスンでは、RGB LEDストリップの世界に深く潜り込み、鮮やかな色の配列を表示する方法を探求しました。これらの鮮やかな色は火星ローバーに新たな命を吹き込み、単なる機械から鮮やかなスペクタクルに変えました。
今、考えてみてください - もしあなたがドライバーシートに座っていたら、これらの色をどのように利用して火星ローバーを強化しますか?どんなユニークな効果をそれに表現させたいですか?
さらに、このプロセスを通じて、多様なSTEAMの概念がどのように魅力的なプロジェクトで組み合わせられ、その実用的な応用の幅広い視点を提供するかの実践的な理解が得られたことを願っています。
次のエキサイティングな冒険でお会いしましょう!