記事一覧

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Johnny-Fiveでマイコン制御9 - Board その3

ループを実行する

 ループ(繰り返し処理)を実行するには、「loop」メソッドを使います。間隔はミリ秒(ms)単位で指定します。コールバック関数には、繰り返す処理を書きます。

loop (間隔, コールバック関数())

 

 たとえば、500ミリ秒間隔でLEDの点灯/消灯を繰り返すには、次のように書きます。

var five = require("johnny-five");

var board = new five.Board();

 

board.on("ready", function() {

  var state = 0;

  this.pinMode(13, five.Pin.OUTPUT);

  // 500ミリ秒間隔で処理(LEDの点灯/消灯)を繰り返す

  this.loop(500, function() {

    board.digitalWrite(13, (state ^= 1));

  });

});

 

 

一定時間待ってから処理を実行する

 一定時間待ってから処理を実行するには、「wait」メソッドを使います。待ち時間はミリ秒(ms)単位で指定します。コールバック関数には、実行する処理を書きます。

wait (待ち時間, コールバック関数())

 たとえば、13ピンを1((1000ミリ秒)後にLOW(0)に切り替えるには、次のように書きます。

var five = require("johnny-five");

var board = new five.Board();

 

board.on("ready", function() {

  // 13ピンをデジタル出力に設定

  this.pinMode(13, five.Pin.OUTPUT);

  // 13ピンをオン(HIGHを出力)

  this.digitalWrite(13, 1);

  // 1000ミリ秒後に13ピンをオフ(LOWを出力)

  this.wait(1000, function() {

    board.digitalWrite(13, 0);

  });

});

 

 

○REPLを使う

REPL(Read-Eval-Print-Loop)は、対話型の実行環境です。REPLにオブジェクトを登録するには、REPLの「inject」メソッドを使います。REPLにオブジェクトを登録することで、オブジェクトの持つメソッドをコマンドラインから実行したり、オブジェクトの持つプロパティを参照したりすることができます。

 たとえば、REPLledオブジェクトを登録するには、次のように書きます。

var five = require("johnny-five");

var board = new five.Board();

board.on("ready", function() {

  this.repl.inject({

    // ledオブジェクトをREPLに登録

    led: new five.Led(13)

  });

});

 

 ledオブジェクトの持つ「on」メソッドを実行するには、コマンドプロンプトから、次のように入力します。

led.on()

 

 また、REPLには、独自のメソッドを定義して登録することもできます。たとえば、LEDを点灯/消灯する「on/off」メソッドを登録するには、次のように書きます。

var five = require("johnny-five");

var board = new five.Board();

board.on("ready", function() {

  // ledオブジェクトを作成

  var led = new five.Led(13);

  this.repl.inject({

    // LEDをオン/オフするメソッドを登録

    on: function() {

      led.on();

    }

    off: function() {

      led.off();

    }

  });

});

 定義したメソッドを実行するには、コマンドプロンプトから、「on()」または「off()」と入力します。

 

ボードの切断を検出する

 スクリプトを[Ctrl]+[C]で中断する際には、「exit」イベントが発生します。ボードから切断される前に必要なクリーアップを行うには、このハンドラを使います。たとえば、スクリプトを[Ctrl]+[C]で中断したときに、LEDを消灯させるには、次のように書きます。

var five = require("johnny-five");

var board = new five.Board();

board.on("ready", function() {

  var led = new five.Led(13);

  led.on();

 

  // [Ctrl]+[C]で中断したときにLEDを消灯

  this.on("exit", function() {

    led.off();

  });

});

 

スポンサーサイト

コメント

コメントの投稿

非公開コメント

ads

プロフィール

Author:部員3号
FC2ブログへようこそ!

kindle本

最新コメント

温度計

ads

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。