carcon999のブログ

12年間Y!ブログの記載を移行しました。電子工作関連の記事が多いです。

SerialLedController用Arduinoライブラリ

現在、Serial LED Shieldの頒布に向けてドキュメントの整理や梱包を行っております。
少しづつWindowsのアプリもVersionアップしていたりします。

イメージ 1

今更ですが、GitHubも使い始めまして、Serial LED Shieldのライブラリを公開しました。
本ライブラリを利用することで、スッキリ?としたコードが書けるようになります。
そこで、インストールの方法とライブラリの使い方を簡単にご紹介させていただきます。

■インストールの方法

GitHubから、SerialLedController.zipをダウンロードします。

イメージ 2

次に、ZipファイルのままArduino IDEにライブラリを登録します。

Arduino IDEを起動し
「スケッチ」->「ライブラリを使用」->「Add Library」を選択し、先ほどダウンロードしたzipファイルを指定します。

イメージ 3

これでインストールは完了です。
画面はMAC用ですが、Windowsでも同様手順で利用できます。

■ライブラリの利用方法

インストールすることで、サンプルスケッチが複数インストールされますので、それを試してもらうのが一番早いと思います。
「スケッチの例」->「SerialLedController」->「SerialLedShield」->exampleがいろいろ

イメージ 4

いろんなサンプルが入っています。
名称概要
Baudrate1920019200bpsでSerialLEDコントローラと通信します。
Baudrate5760057600bpsでSerialLEDコントローラと通信します。
Defaultデフォルトの(演出)設定で動作確認します。
Ext32Demo最大数の32個LEDを使った演出デモ
HelloDemo16(32)個のLEDを利用した文字表現
SerialCtrlDirectWindows用のシリアルLEDプログラマーから演出確認が行える
Sw1BarSw1押下でBar演出を確認します。
Sw1HardwareSerialHartwareSerialを利用して通信するサンプル
Sw1RainbowRainbow演出を確認します。
Sw1SeesawSeesaw演出を確認します。
Sw1SiftShift演出を確認します。
Sw1SoftwareSerialSoftwareSerialを利用して通信するサンプル
※今後増える可能性があります。

Sw1Rainbow.inoを例にプログラムを説明することにします。

■プログラム例(Sw1Rainbow.ino)

1.ライブラリ利用時にインクルードします。
#include <SerialLedController.h>

その下にテーブルが見えますが、このテーブルがフルカラーLED演出用の定義テーブルです。
ここには4種類のテーブルが定義され、SW1を押下する毎にテーブルを切り替えて演出を変更するようになっています。
テーブルは、8バイト境界になるようにコマンドを記述するようにします。
コマンドの詳細は、シリアルコマンドの資料を確認してください。

イメージ 5

2.シリアル通信のオブジェクトを生成します。
SoftwareSerial softSerial(2, 3);

3.今回のライブラリのオブジェクトを生成します。
SerialLedController controller(4, 5);

4.ライブラリの利用を開始します。
controller.begin(&softSerial, true);

イメージ 6

ここは、SW1を押下されたときの処理です。
5.再生を停止します。(前回再生中の場合があるため)
controller.stop();

6.テーブルを指定しコマンドを転送します。(LEDの演出を指定する)
controller.write(led_play_list_array[index], led_play_list_size[index]);

7.再生を開始します。(LED演出開始)
controller.start();

イメージ 7

Sw1を押下する毎にテーブルが切り替わり演出が変更されます。
詳しくは、ソースコード中のコメントや、GitHub上にあるReadMeに関数の説明がありますのでそちらを参照してください。