How to make

NeoPixel 8×8 Matrixの制御(Johnny -Five, Arduino)

AdafruitのNeoPixel 8×8 Matrixを次の2通りの方法で制御して見ます。

  • Node.js + Johnny-Five で制御
  • Arduino単体で制御
1.配線

次のように配線します。この配線は簡易的なものでLEDをフルパワーで点灯させることはできません。フルパワーで点灯させると過電流でパソコンのUSBポートが死にます。

neopixel_8x8

2.準備
  1. 1.6.7以降の Arduino IDE を使用します。
  2. Adafruit_NeoPixelライブラリをインストールします。
    インストール手順

    1. Arduino IDEを起動
    2. スケッチ→ライブラリをインクルード→ライブラリを管理と進む
      Library Managerが開く
    3. Filter your search…欄にadafruit neopixelと入力
    4. Adafuit NeoPixel by Adafruitをクリックすると「インストール」ボタンが表示されるので,このボタンをクリックしてライブラリをインストールする。
lib_inst
3.IoT Controller
  1. MessageStandardFirmata.zipをダウロードし展開します。
  2. Arduinoフォルダ配下に展開生成したMessageStandardFirmataフォルダを移動します。
  3. Arduino IDEを起動してMessageStandardFirmataをArduino UNOに書き込みます。
    書き込みが終わると接続したNeoMatrixに This is NeoMatrix 8×8 とスクロール表示されます。
    注意)Arduino IDE 1.6.7 より古い環境ではコンパイルエラーとなります。1.6.7以降を使用してください。
  4. NeoMatrix_Message.zipをダウロードし展開します。
  5. ZIPファイルを展開するとNeoMatrix_Massageフォルダが生成されます。
  6. ターミナル・シェルを起動してcdコマンドでNeoMatrix_Massageフォルダ(ディレクトリ)に移動します。
  7. lsコマンドでファイル一覧を表示し,package.jsonがあることを確認します。
  8. package.json に記述されているモジュールを自動インストールします。
    $npm install [enter]
  9. johnny-five モジュールはpackage.jsonに記述されていないので手動インストールします。。
    $npm install johnny-five [enter]
  10. 実行
    1. バックグラウンドでserver.jsを実行します。
      $node server.js & [enter]
    2. client.jsを実行する。
      $node client.js[enter]
    3. server.js, client.js を実行しているマシンでブラウザを起動します。
    4. ブラウザで http://localhost:5030 を開くと下のページが表示されます。
      NeoMatrix_Message
    5. Messageエリアに表示させたいメッセージを入力します。最大文字数は255文字です。255文字以上の入力があった場合は255文字を超える部分は切り捨てられます。
    6. Brightnessはパネルの輝度を調整するマスターコントローラです。 0〜255の値をセットします。255が最大輝度です。
    7. Delayはスクロール速度を調整します。1列スクロールするのにかかる時間(delay)をセットします。単位はミリ秒です。
    8. Directionはスクロール方向(0〜7の値)をセットします。4〜7の値は鏡像文字をスクロールします。
    9. TextColorは文字の色をセットします。0〜255の値をセットします。
    10. BackColorは背景色セットします。0〜255の値をセットします。
    11. [send]ボタンをクリックすると,設定値が送信されます。Bright〜BackColorは即時に変更されますがメッセージは現在表示されているメッセージのスクロールが終わるまで変更されません。
  11. 今後の予定
  • node –> arduino の制御コマンド送信をjohnny-fiveのio.sendString (Firmataのsysex message 機能)を使っています。
  • コマンドはnode側で組み立ててプレーンテキストで送りArduino側で構文解釈してコマンドを実行しています。
  • この辺のところをスマートにやりたいので,コマンドはJSONにして送ろうかと思います。node側でJSONは簡単に扱えるしArduino側にもJSONライブラリがあります。
  • JSONフォーマットを使うことで,コマンド組み立て→コマンド解析の処理がすっきりするはずです。
4.Arduino単体で制御
  1. NeoMatrix_msg.zipをダウロードし展開します。
  2. Ardunoフォルダ配下に展開生成したNeoMatrix_msgフォルダを移動します。
  3. Arduino IDEを起動してNeoMatrix_msgをArduino UNOに書き込みます。
  4. NeoPixcel 8×8 Matrix に hello world がスクロール表示されます。
  5. 19行目の”hello world”を書き換えれば任意のメッセージをスクロール表示できます。
    例:char msg[256] = “Mariko Kosaka @ Brooklyn.JS”; //message buffer
  6. 54行目の c = panel.Color(255, 255, 0); を書き換えれば文字の色を変更できます。
    例:c = panel.Color(255, 0, 0);  // 文字色赤
  7. 55行目の c = panel.Color(0, 32, 0); を書き換えれば背景色を変更できます。
    例:c = panel.Color(0, 0, 0); //背景色黒
  8. 28行目の char drc = 0; を書き換えればスクロール方向を変更できます。
    例:char drc = 1; //下から上へ
  9. 22行目の panel.setBrightness(16); を書き換えればLEDの輝度を変更できます。
    例:  panel.setBrightness(32);   (輝度を上げ過ぎるとUSBポートが過電流でダウンする)
  10. 69行目の delay(120); を書き換えればスクロース速度を変更できます。
    例: delay(240);  //スクロール速度を240ミリ秒/ドットにする
Copyright © kosakalab All Rights Reserved.
Powered by WordPress & BizVektor Theme by Vektor,Inc. technology.