アドレサブルRGB LEDコントローラー「CG-CustomARGB」とArduino IDEを使って、イルミネーションプログラムをを自作するチュートリアル一覧です。開発環境であるArduino IDEのセットアップ、アドレサブルRGB LEDの仕組み、Indoor Corgi製のライブラリを使って実際にプログラミングする手順を順を追って解説しています。
更新日 : 2021年2月6日製品のセットアップと動作確認
CG-CustomARGB基板のセットアップど動作確認がまだの方は、製品ページに沿って完了させて下さい。
CG-CustomARGB (Arduino IDEでプログラミング可能なアドレサブルRGB LEDコントローラー)
発光パターンを自由にプログラミング可能なアドレサブルRGB LEDコントローラーです。市販のコントローラーではできないようなイルミネーションを自作できます。世界的に有名なArduino互換機として設計しており、未経験者でも簡単にプログラミングできるチュートリアルとサンプルプログラムを提供しています。
開発ソフトの準備と書き込み方法
プログラム開発ソフトであるArduino IDEのインストールがまだの方は、こちらの記事を参考にインストールして下さい。また、初めての方向けにプログラミングの基礎とプログラム(スケッチ)の基板への書き込み方法も解説しています。
Arduino IDEのインストールと設定 (Windows, Mac, Linux対応)
Arduino IDEは世界的にも有名なマイコンボード用開発環境の一つで、初心者やプログラミング学習、小規模システム開発に適しています。本記事では、Arduino IDEやマイコンボードとは何か?といった点から、実際にインストールして使う手順を分かりやすく解説しました。Windows, Mac, Linuxなど、複数のOSでの手順も載せております。
Arduino IDEプログラミングの基礎とシリアルモニターの使い方
Arduino IDEを初めて使う方向けに、プログラム(スケッチ)の作り方と基礎的な知識を解説しています。また、プログラムの検証に使えるシリアルモニターの使い方を、実際にスケッチを動かしながら解説しています。
ArduinoUNO/ATmega328P搭載製品の設定とプログラム書き込み方法
ATmega328P搭載製品(Arduino UNOおよび互換機)の、ArduinoIDEでプログラムを書き込む手順を説明しています。
アドレサブルRGB LEDの基礎
アドレサブルRGB LEDの基本的な仕組みや、指定の色に光らせる方法を解説しています。
アドレサブルRGB LEDを光らせる
アドレサブルRGBプログラミングの基礎知識として、色データを送信する仕組みと、実際に光らせるスケッチについて解説しています。本記事の内容は、より複雑な模様やアニメーションをプログラミングするための土台となります。
HSV(HSB)モデルでアドレサブルRGB LEDの色を指定する
本記事ではRGBとHSVモデルの違い、HSVの利点、実際にHSVモデルを使ってアドレサブルRGBデバイスを光らせるスケッチについて解説しています。RGBの代わりにHSVモデルを使って色を表現することで、色を変化させて虹色の模様を描いたり、明るさを変化させて点滅させたりといったプログラミングが簡単にできます。
アドレサブルRGBのイルミネーションプログラミング
Indoor Corgiが提供しているALEDクラスライブラリーを使って、イルミネーションをプログラミングする方法を解説しています。
ALEDクラスの使い方とグラデーション模様の描写
簡単にアドレサブルRGBデバイスのイルミネーションを自作できるように、代表的な模様(単色、グラデーション、1点発光)や、アニメーション(移動、回転、色変化、点滅)を作成できるALEDクラスを提供しています。本記事ではALEDクラスの基本的な使い方をまず説明します。そして、実際にスケッチを動かしながら、単色とグラデーション模様を描写する方法を解説しています。
アドレサブルRGBのアニメーション(移動、回転、色変化、点滅)
本記事ではアニメーションの原理を説明した後、実際にスケッチを動かしながら移動、回転、色変化、点滅アニメーションのプログラミング方法を解説しています。ALEDクラスを利用することで、少ないコードでアニメーションを記述することができます。
複数のアドレサブルRGBデバイスをアニメーションする
ALEDクラスには、複数のアドレサブルRGBデバイスに異なる模様やアニメーションを描写する機能が装備されています。本記事では、ParallelAnimationクラスを使う方法と、複数のチャネルをグループ化したALEDクラスを作成する方法について、スケッチを動かしながら解説しました。この機能を使えば、少ないコードで複数のチャネルに異なるイルミネーションをさせることが可能になります。
LEDの並び順を変更する
ALEDクラスのscrメンバ変数を変更することで、アニメーションや模様を描写する際のLEDの並び順を変更する方法について解説しました。この機能を使うことで、LEDの配置を意識したイルミネーションを作成できるようになります。
派生クラスを使ってオリジナルイルミネーションを作成する
ALEDクラスの派生クラスを作成することで、オリジナル模様とアニメーションを描写する方法について解説しました。この方法だと、比較的少ないコードでALEDクラス標準機能では対応できないようなイルミネーションを実現できます。
テンプレートスケッチ
すぐに使いたい方向けに、パラメーターを調整するだけで簡単にイルミネーションを作成できるテンプレートスケッチを公開しています。もちろん、パラメーター以外をカスタマイズすることも可能です。
テンプレートスケッチ
「CG-CustomARGB」ですぐに使えるテンプレートスケッチを公開しています。先頭付近のパラメータの値を変更するだけで、簡単にイルミネーションを作成できます。
ALEDクラスライブラリー
簡単にアドレサブルRGBデバイスのイルミネーションを自作できるように、ALEDクラスライブラリーを開発、提供しています。
GitHubでApache2.0ライセンスで公開しているので、再利用したい方はお使い下さい。
サンプルスケッチにはライブラリーが同梱されているので別途ダウンロードする必要はありません。
サードパーティー製ライブラリー
サードパーティー製からもアドレサブルRGB制御用のArduinoライブラリーがリリースされています。(Adafruit NeoPixelなど)
サードパーティー製ライブラリーを使用する場合は、以下の対応表を参考に各チャネルのピン番号を指定して下さい。
チャネル | Arduinoピン番号 | ATmega328Pポート番号 |
---|---|---|
CH1 | 14 | PC0 |
CH2 | 15 | PC1 |
CH3 | 16 | PC2 |
CH4 | 17 | PC3 |
CH5 | 18 | PC4 |