[Genuino 101][Johnny-Five] シフトレジスタの制御

2016.08.31

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

johnny-five

車輪開発大好きおたいがです。こんにちは。( 挨拶 )

今回は Genuino 101 ( 以下 Genuino ) と Johnny-Five を使用したシフトレジスタの制御についてまとめてみました。Johnny-Five には、シフトレジスタをコントロールする ShiftRegister API が用意されています。

動作環境・道具など

回路図

shift-register-001

IC のデータシートに記載されている SER, SRCLK, RCLK をそれぞれ Genuino のデジタル 2, 3, 4 ピンへ。出力 ( QA, QB, QC ~ QH ) にそれぞれ LED と抵抗を配置します。

サンプルスケッチ ( プログラム ) をボードに書き込む

Genuino に StandardFirmata スケッチを書き込みます。
( 参照 : https://dev.classmethod.jp/hardware/johnny-five-genuino-101-debut/#toc--- )

Johnny-Five 実行用のサンプルプロジェクト作成および実行

Johnny-Five の導入および実行するためのプロジェクトを用意します。任意のプロジェクトディレクトリを作成して移動したあとに、下記コマンドを入力します。

package.json の初期化

$npm init

Johnny-Five のダウンロード

$npm install johnny-five

サンプルコードの作成

index.js

var five  = require('johnny-five');
// Genuino が接続されているポート番号 ( `/dev/tty*` (Mac/Linux) or `COM*` (Windows) )
var board = new five.Board({ 'port': 'COM8' });

board.on('ready', function() {
  var register = new five.ShiftRegister({
    'pins' : {
      'data'  : 2,
      'clock' : 3,
      'latch' : 4
    }
  });
  var number = 0;
  this.loop(100, function() {
    register.send(number++);
    if (number > 256) {
      number = 0;
    }
  });
});

実行

$node index

結果

shift-register-001

ShiftRegister.send() メソッドで送った数字を 8 ビット表示させることができました。