バランスwiiボードをNode.jsで使ってみる

中古のバランスwiiボードを貰ったので、なんかに活用できないかと色々調べてみたが、微妙に情報が古かったり環境の設定が結構面倒なものばかりだった。
…が、「wii-balance-board-pi」って気になるNode.jsのモジュールがあったのでラズパイ4入れてみたところサクッと使えた。

【検証環境】

  • Raspberry Pi 4
  • raspbian 10.4
  • Node.js 8.15

【設定方法】
基本的には、Githubのページに書いてある通りにするだけ。
サンプルスクリプトもシンプルだが、これだけで十分な内容。

  1. モジュールをインストール
    npm i -s wii-balance-board-pi
  2. 通信用のPythonプログラムを入れる
    sudo apt-get --assume-yes install bluez python-bluez python-gobject python-dbus
  3. ラズパイを再起動
    sudo reboot
  4. サンプルスクリプトを実行
    const BalanceBoard = require("wii-balance-board-pi");
    
    var balanceBoard = new BalanceBoard();
    
    balanceBoard.connect();
    
    balanceBoard.on("data", data => {
      console.log(data);
    });
  5. バランスWiiボードの電池カバー開け、シンクロボタン(赤いやつ)を押す。
  6. ちょっと待ってると自動的にラズパイと繋がって、各センサ直がコンソールに表示される。
    {
        connected: boolean,
        topLeft: float,
        topRight: float,
        bottomLeft: float,
        bottomRight: float,
        totalWeight: float,
        buttonPressed: boolean,
        buttonReleased: boolean
    }

4角にあるセンサ値と全体の重さ(kg)、前面にあるボタンの状態がJSONで取得できるので、あとは好きに料理するだけ!
これはお手軽で便利だ。