ArduinoでPCの画面の明るさを自動調節する

環境

Arduino言語からではなく、node.jsからfirmataを使って操作する。 node.jsからArduino操作する記事は前に書いたのでそちらを参考。

xbacklight

今回linuxの画面の輝度を変更する方法としてxbacklightを用いる。 xbacklightはCULで輝度を操作するツールだ。

これをnode.jsから呼んでやる。 node.jsではchild_processモジュールを使う。

var five = require('johnny-five');
var board = new five.Board({
  reql: false
});
var exec = require('child_process').exec;

board.on('ready', function() {
  var rotary = new five.Sensor("A0");
  var step = 0;
  rotary.scale(0, 255).on("data", function() {
    if (step !== 50) {
      step++;
    } else {
      step = 0;
      var v = this.value;
      var text = 'xbacklight -set ' + v;
      var child = exec(text , function (err, stdout, stderr) {
        if(!err) {
          console.log('set ' + v);
        }
      });
    }
  });
});

これをmain.jsなんて動かしてみる。

node main.js

回路はArduinoで光センサーを扱う記事はたくさんあるのでそれを参考にしてほしい。 暗くなると画面と暗くなり、明るくなると画面が明るくなれば成功。 ちなみに、これを動かすと確実にPCの輝度調節機能がバグり再起動せざるおえなくなるので実行は自己責任で。