Raspberry Piの起動表示用LED [Raspberry Pi]
工場の設備にRaspberry Piを何台か使っている。どれもGPIOを経由してハードウェアを制御して、データをホストに送る、というようなことをしている。
工場の連中はこまめに電灯を消したり、使ってない装置の電源を落としたり、ということをまじめにやるんだけど、Raspberry Piやホスト(ほとんどはMac mini)の電源もぶち、とあっさり抜いてしまう。
「ウィンドウズでもそんなことするとダメになるでしょ?」と言うと、そうか、なんて言うんだけど、どうもキーボードやディスプレイが繋がってないと、ぶちっとやってもかまわないと思うらしい。
Mac miniは小さいながら白色LEDのパイロットランプがついてるので、これを必ず確認しろ、と言ったんだけど、Raspberry Piにはそういう表示はない。通電されていることを表す赤色LEDはあるけど、これは5Vが来てるといつも点灯している。
ぱっと見てわかるようなのでないと、またぶちぶち言われるので、何か工夫しようと考えた...
でもデフォルトで汎用のGPIOになってないUARTの入出力やI2Cのプルアップがついてるピンは避けないといけないし、そうすると結構塞がってて全部のRaspberry Piで共通のピン、と言うわけにはいかなかった。それぞれ違ってるとあとあと面倒になる。こういうのってすぐ忘れるし。
ということでGPIOを使うのは諦めた。でどうするかというと、USBを使うことにした。Raspberry PiのUSBポートはLAN9512/LAN9514というチップ(USB Hub+10/100 ethernet)が制御している。ダウンストリームのバスパワーはこのチップを使ってオンオフ(enable/disable)ができるらしいが、Raspberry Piがどうやってるのかよくわからない。
実際にあたってみるとOSが立ち上がる途中でバスパワーが出て、シャットダウンすると止まるようである。これが今後の機種もOSによっても同じなのかどうかはわからない。
でもこれなら簡単だし、どうせ工場で使うRaspbery PiでUSBが塞がって足りなくなるなんてことは今後もないと思うのでこれでいこう。
(上画像のクリックでYouTubeムービーのウィンドウが開きます。やっぱりYouTubeムービーが埋め込めない。コンソールを見るとX-Frame-OptionsがSAMEORIGINなのでrefuseした、となってる。これってサーバの設定だよな?よくわからない)
電源投入の瞬間、一瞬光っている。電源投入の後のハードウェアリセットまでの間通電されているんだろう。こういうのイマイチだな。そのあとはPi 3で電源投入後5秒ほどでUSBのバスパワーが生きてることがわかる。ブートシーケンスの結構最初のほう。USB接続のHDDなんかのサポートも必要なので、当然だろう。
シャットダウンでは何にもハードウェアをつないでないせいかコマンド投入後2秒ほどで消えている。こんな早くてHDDとか大丈夫なんだろうか。当然何か繋がっていればアンマウントされてることを確認できるまで待ってからバスパワーを落とすだろうから、大丈夫なんだろうな。
これでこのLEDが点灯しているときは電源を引っこ抜くな、と指示できるだろう。まあ、言ってもやるときはやるだろうけど。
工場の連中はこまめに電灯を消したり、使ってない装置の電源を落としたり、ということをまじめにやるんだけど、Raspberry Piやホスト(ほとんどはMac mini)の電源もぶち、とあっさり抜いてしまう。
「ウィンドウズでもそんなことするとダメになるでしょ?」と言うと、そうか、なんて言うんだけど、どうもキーボードやディスプレイが繋がってないと、ぶちっとやってもかまわないと思うらしい。
Mac miniは小さいながら白色LEDのパイロットランプがついてるので、これを必ず確認しろ、と言ったんだけど、Raspberry Piにはそういう表示はない。通電されていることを表す赤色LEDはあるけど、これは5Vが来てるといつも点灯している。
ぱっと見てわかるようなのでないと、またぶちぶち言われるので、何か工夫しようと考えた...
2 起動状態確認
一番簡単に思いつくのはGPIOのピンを一本占有して、ブートするとLEDを点灯させて、シャットダウンする前に消灯するというもの。ようするにごく普通にみんなが「Lチカ」と言ってるやつ。でもデフォルトで汎用のGPIOになってないUARTの入出力やI2Cのプルアップがついてるピンは避けないといけないし、そうすると結構塞がってて全部のRaspberry Piで共通のピン、と言うわけにはいかなかった。それぞれ違ってるとあとあと面倒になる。こういうのってすぐ忘れるし。
ということでGPIOを使うのは諦めた。でどうするかというと、USBを使うことにした。Raspberry PiのUSBポートはLAN9512/LAN9514というチップ(USB Hub+10/100 ethernet)が制御している。ダウンストリームのバスパワーはこのチップを使ってオンオフ(enable/disable)ができるらしいが、Raspberry Piがどうやってるのかよくわからない。
実際にあたってみるとOSが立ち上がる途中でバスパワーが出て、シャットダウンすると止まるようである。これが今後の機種もOSによっても同じなのかどうかはわからない。
でもこれなら簡単だし、どうせ工場で使うRaspbery PiでUSBが塞がって足りなくなるなんてことは今後もないと思うのでこれでいこう。
3 部品探し
うちやら会社やらに転がってる部品を集めてきた。- LED
- USBコネクタ
- 抵抗
4 半田付け
こんなの。 これを熱収縮チューブでくるんだ。 Raspberry Pi 3のUSBに刺したところ。 うわ、だっせ。まあ僕に美的センスを求める方が間違ってる。5 動作確認
これでどういうタイミングで点灯消灯するか、ディスプレイをつないでみた。(上画像のクリックでYouTubeムービーのウィンドウが開きます。やっぱりYouTubeムービーが埋め込めない。コンソールを見るとX-Frame-OptionsがSAMEORIGINなのでrefuseした、となってる。これってサーバの設定だよな?よくわからない)
電源投入の瞬間、一瞬光っている。電源投入の後のハードウェアリセットまでの間通電されているんだろう。こういうのイマイチだな。そのあとはPi 3で電源投入後5秒ほどでUSBのバスパワーが生きてることがわかる。ブートシーケンスの結構最初のほう。USB接続のHDDなんかのサポートも必要なので、当然だろう。
シャットダウンでは何にもハードウェアをつないでないせいかコマンド投入後2秒ほどで消えている。こんな早くてHDDとか大丈夫なんだろうか。当然何か繋がっていればアンマウントされてることを確認できるまで待ってからバスパワーを落とすだろうから、大丈夫なんだろうな。
これでこのLEDが点灯しているときは電源を引っこ抜くな、と指示できるだろう。まあ、言ってもやるときはやるだろうけど。
6 問題点
しかしバスパワーのシーケンスがハードウェアやOSのリビジョンが変わったら変更される、なんてことは十分あり得る。所詮テンポラルな対処だということを忘れないようにしないといけない。2017-10-26 21:05
nice!(0)
コメント(1)
沒有醫生的處方
cialis venta a domicilio http://kawanboni.com/ Cialis 5mg
by Cilas (2018-04-14 03:00)