google-site-verification: google3bd66dd162ef54c7.html
FC2ブログ

Raspberry Pi Zero W の消費電流測定

 Raspberry Pi Zero W をケースに入れて電源スイッチとシャットダウンスイッチを付けましたが、これで気持ちよく使えるようになりました。とは言ってもすぐにやりたいことは無いので、SSHからコマンド打って遊んでいる状態です。

 こんなふうにいじっていて気になったのが、シャットダウンしても結構な電流が流れていることです。さらに電源スイッチ(RUNスイッチ)を使って電源をオフにしても消費電流が完全にゼロになりません。電流はUSBパワーチェッカーを使ってモニターしたのですが、ちょっと気になる現象です。

▼ケースに入れた Raspberry Pi Zero W
Raspberry Pi Zero W
 トグルスイッチが電源スイッチ(RUN)、赤いボタンがシャットダウンスイッチです。

 USB電源チェッカーの分解能は10mAなので細かい変化が判り難いです。ということで電源ラインに0.1Ωのシャント抵抗を入れてデジタルマルチメーターで測定することにしました。

▼測定に使ったシャント抵抗
消費電流測定用シャント抵抗
 0.1Ωのセメント抵抗です。

 以下はシャント抵抗の両端電圧で、10倍すると電流になります。なお、ラズパイはSSHで使っていてグラフィックコンソールは動かしていない状態です。

▼ブート後のアイドル状態
安定時(SSH)
 ブート後SSHでログインしてシステムが安定した状態です。小さな変動がありますが消費電流は107mAでした。

▼負荷をかけた状態
負荷時
 システムに負荷をかけると 209mAまで電流が増えました。時々大きな値が出るのでオシロで波形を見てみました。

▼オシロで見た電流波形
電源電流波形
 200mAをベースに、時々350mAまでスパイク状に電流が増えています。スパイクの部分はたぶんWiFiを使っている時だと思います。

 ちなみに負荷を掛けた状態を作る方法としては yes を使うのが定石のようですが、今回は ls / -alR コマンドを実行させました。

 このコマンドは、ルートディレクトリ以下の全てのディレクトリとファイルの情報を表示しますが、何しろファイルの数が多いので実行が終わるのに1分以上かかります。その間ファイルシステムを引っ掻き回すと同時にコンソールに大量に文字が流れるので、WiFiにも負荷がかかるはずです。CPUには大した負荷が掛かっていないかも知れませんが、コマンドが覚えやすいのと出力が派手なので、こういう時はこのコマンドを使っています。なお、パーミッションが無いディレクトリは表示されないので sudo ls / -alR とやった方が良いのかも知れません。

▼SSHのコンソールに表示された is -alR の実行結果
ls コマンドで負荷をかける
 SSHで接続したタブレットからコマンドを実行している様子です。

▼シャットダウン後
シャットダウン後
 シャットダウンスイッチを使ってシャットダウンした状態です。コマンドとしては sudo shutdown -h now を実行した後の状態です。シャットダウンしても 37.6mA流れています。

 アイドル状態が107mAだったのでの30%くらいに電流が減っただけです。思ったより大きな電流が流れ続けています。どこで電流使っているんでしょうね。電池駆動する場合、これはかなり重い負荷になります。

▼RUNスイッチで電源をOFFにした状態
RUNスイッチON
 ここまでやっても電源電流は 12.7mA 流れています。思ってたより大きな電流なので注意が必要だと思います。

 ちなみに、Pi Zero にはRUNの信号ピンがあります。たぶん内部でプルアップされているようで、このピンに何も接続しないと電源が入ります。つまり、HighでRUNがイネーブルされ、GNDに落とすと電源がOFFになります。 

 Raspberry Pi Zero W で出来る方法はここまでです。あとは電源のマイクロUSBコネクタを引っこ抜くしかありません。マイクロUSBを抜けばもちろん電流はゼロになります。

◆まとめ
 シャットダウンコマンドで停止させても、RUNスイッチで電源を切っても結構な電流が流れることが判りました。Linuxが動くんだからしみったれたこと言うんじゃないよ、と言われそうですが、Arduinoなどのマイコンで育った自分としてはちょっと意外な結果でした。

Arduinoで作るクリスマスツリーのLEDイルミネーション (17LED)

 クリスマス用のインテリア小物ということで、カインズホームで小さなクリスマスツリーを買ってきました。

▼小さなクリスマスツリー
カインズのスチールベルツリー
 高さ23cmほどで、スチール ベル ツリー(STEEL BELL TREE)という名前で売られていました。飾りを追加して上からLEDのスポット照明で照らすと綺麗です。

 でもせっかくなのでLEDのイルミネーションを付けてやることにしました。真面目にやるとハードが結構大変になりますが、以前書いた、Arduinoで簡単だけど豪華なLチカ、という記事の方法でやれば比較的楽に作れそうずです。

▼回路図(クリックで別窓に拡大)
Arduinoを使ったクリスマスツリー
 LEDを光らせる場合、電流制限抵抗を直列に入れますがこの回路図にそんな物はありません。無茶しやがって、と言われそうですが大丈夫です。電流制限抵抗としてCPUに内蔵されているプルアップ抵抗を使っています。外付け抵抗が無ければ、その分だけ配線作業が楽になります。

 CPU内のプルアップ抵抗は確か30kΩくらいだったと思いますが、ともかく抵抗が高いのでLEDの電流はたった0.06mAくらしか流れません。でも、最近のLEDは効率が良いので、こんなに少ない電流でもちゃんと光ります。

▼配線中
すずめっき線で骨格を作る
 スズメッキ線を魚の骨のようにはんだ付けします。長さは適当で、これが骨格になると同時にGND側の配線として使います。車のボディアースみたいなものです。

▼LEDをはんだ付け
LEDを取り付けて配線
 骨の先にLEDをはんだ付けして行きます。LEDのアノード側は背骨に沿って絶縁線で引き出しますが、そのはんだ付け部は収縮チューブを使ってショートしないようにしておきます。先端の一個は緑色、それ以外は全部白色のLEDを使いました。流れる電流が少ないので出来るだけ明るいLEDを使うことをお勧めします。

 ArduinoはUNOを使い、ピンヘッダを使って接続します。

▼ツリーと Arduino UNOを合体
LEDの配線の引き回し状態
 魚の背骨にあたる部分をツリーの中心に置き、LEDを押し込んで組み立てて行きます。LEDへの配線をツリーの部品にからませるとLEDの位置決めになって具合が良いです。
 
 CPUチップの単独動作にしてもいいのですが、面倒なのでUNOのままで使います。クリスマスが終わるまではここで働いてもらいます。

▼ソフト
 プログラムはこちら→ クリスマスツリーのイルミネーションプログラム (Shift-JISです。拡張子をunoに要変更)
 プログラムの解説は省略しますが、朝になってもツリーが光っているとなんだか間抜けなので、3時間で消灯する機能を入れました。 

▼完成
完成

▼点灯の様子

 1サイクルが53秒程度で、これを繰り返します。

◆まとめ
 ハードが簡単に済んだので、その分プログラムを頑張ったので、なかなか綺麗なイルミネーションが出来たと思います。

 先端の1個以外に16個のLEDがありますが、ちょうど 4 x 4 のマトリクスが構成できるので、工夫次第でもっと面白い点灯パターンを作ることが出来ると思います。

 CPUのプルアップ抵抗で点灯させているのでLEDはあまり明るく点灯しませんが、LEDの正面なら十分な輝度があると思います。もっと明るくしたい場合は、出力ピンにアサインして、電流制限抵抗を外付けすればOKです。
カレンダー
10 | 2017/11 | 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード