Rabbit Note

技術的な事柄をメモしていきます.

BeagleBone Black で作るロギング機能付き電力計 (ソフト編)

電子回路の知識無しで電力計を作る方法のソフト編です.

ハード編に引き続き,電力計のソフトの準備について説明します.

流れとしては,次のようになります.

  1. SD カードに Ubuntu をインストールし,それを使って BeagleBone Black を起動.
  2. 電力測定スクリプトを実行.

では,早速内容に入ります.

SD カードへの Ubuntu のインストール

BeagleBoardUbuntu のページの「Method 1: Download a Complete Pre-Configured Image」に記載された手順に従い,ディスクイメージをダウンロードして, dd コマンドで SD カードに書き込みます.

具体的な手順は下記のようになります.(ファイル名や,デバイスファイルについては適宜読み替え要)

SD カードからの Ubuntu のブート

  1. SD カードを挿入.
  2. LAN ケーブルを接続.
  3. ブートボタンを押しながら 5V 電源を接続

ブートボタン

ブートボタンの位置については,左の写真を参照してください.

初期設定

ここまでうまく言っていれば SSH でログインできるようになっていますので,ログインしてみます.

ログインできたら最初に,NTP の設定を行っておきます.

BeableBone Black は電池でバックアップされた時計がついていないため,電源を切るたびに時刻がリセットされてしまします.そこで,上記のようにすることで起動時に時刻合わせを行うようにします.

ちなみに,これを行っていないと,何度か電源の抜き差しをやっているうちに SSH でログインできなくなります.(多分,SSH が時刻を不正と判断してるんだと思いますが,詳細未確認)

I2C バスに接続されている部品の確認

i2cdetectコマンドを使うと,I2C バスに接続された機器のアドレス一覧を表示できます.

上のように, 3e40が表示されていれば OK です. 40は電力計モジュール, 3eは液晶モジュールになりますので,表示されていない場合は回路を再チェックします.

電力計測スクリプトの実行

以下の内容を「sense_power.rb」という名前で BeagleBone Black に保存し,実行します.液晶画面に電力が表示されれば完成です.起動時に自動的に実行したい場合,スクリプトのパスを /etc/rc.local に追記しておきましょう.

ロギングの仕方

「sense_power.rb」は -l オプションをつけることで RAM 上にロギングを行い, CTRL-C でコマンドを終了すると,内容を標準出力にはき出します.

従って,下記のようにすることで,電力の推移を記録したファイルを取得できます.

なお,スクリプトがこのような仕様になっているのは,ループ中に標準出力への出力を行うと,1回当たり 10ms 以上の処理時間が発生し,ロギングの間隔が空いてしまうためです.

自動 SD カードブートの設定

最後に,自動的に SD カードからブートさせる方法について説明しておきます.やり方は BeagleBone Black の Rev.B 以前と Rev.C 以降で異なります.ここでは Rev.C 以降でのやり方について記載します.

  1. SD カード外して起動.
  2. root でログイン.(ホスト名は beaglebone,パスワードは空)
  3. /boot/uboot/MLO を別の名前に変更.
Pocket

2 thoughts on “BeagleBone Black で作るロギング機能付き電力計 (ソフト編)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です