Raspberry Pi 3 + Unicorn hatで電源投入時自動的にIPアドレスを表示させる
Raspberry PI のコンパクトさには感動しました。
でもよく考えればスマホとか同じスペックでもっと小さいのかとか、
まぁいろいろ考えさせられます。
まず結果からお見せしよう。
Raspberry PI with Unicorn Hat auto show IP adress
そしてこのプログラム驚くべきことにわずか5行である。
Raspberry PIについて
原産国はイギリスで ワンボードPCとかいう部類。
似たようなもの(?)にarduinoなんかもある。
arduinoがハードウェア制御寄りなのに対し、
Raspberry PIはパソコン寄り(ハイスペック)。
「ハードウェアなにそれ?」な筆者はRaspberry PIと、
とりあえず簡単にチカチカ光らせることができる、
Unicorn Hatなる怪しげなボードを購入したのだった。
Raspberry Pi ユニコーン ハット Unicorn HAT
- 出版社/メーカー: Pimoroni
- メディア: エレクトロニクス
- この商品を含むブログを見る
Raspberry Pi 3 Model B (Element14)
- 出版社/メーカー: RASPBERRY-PI
- メディア: エレクトロニクス
- この商品を含むブログ (2件) を見る
余談だが執筆時イギリスEU脱退の影響でユーロが大下落していて、
RaspberryPI及びUbuntu関係の商品は、
今が買いだと思っている。
//想定の範囲内だったが、このケースデフォルトではHatがはまらなかったため、あちこち削った。w
//削っても問題なく蓋等は閉まる。
経緯
入出力機器(マウスキーボードディスプレイ)は特に買っていなかったので、
ラズパイしたいときは都度パソコンのマウスとキーボードを外して、
テレビのHDMI入力に繋げるという手間をかけていた。←
当然すぐにめんどくさくなってVNCサーバーを入れることに。。。
VNCサーバー導入については、下の記事を参考に。
ちなみにVNC ViewerってUbuntuはもちろん、
androidやiphone版も出てるんですよ!
下はandroidからリモート接続した図。
結構使い勝手はスマホ用に工夫されていて、
ベッドでゴロゴロしながらラズパイするのも、
結構癖になるものです。
インターフェイスを全体的に紫っぽくすることで、 Ubuntu感とラズベリー感(食べたことも見たことも多分ないけど)が出るのでオススメ。
しばらくはそんなわけで楽しいラズパイ生活を過ごしていたのですが、
IPを固定していなかったため、
時々またテレビとマウスとキーボードを繋げてifconfigと打つ
という作業が定期的に発生してしまった。
当然IPを固定すればいいだけのことだがなんか嫌だ。
理由はないけど、なんか嫌だ。
せっかくUnicorn Hatがあるんだから、
起動したらIPを出せばいいじゃん。ってゆー発想。
UnicornHatScrollとの出会い
数値をスクロールさせるロジックをゴリゴリ書くつもりだったが先人がいた。
まずローカルにスクリプトをクローンさせていただき、
show_ip.pyを作成する。
cd git clone https://github.com/topshed/UnicornHatScroll cd UnicornHatScroll vim show_ip.py
show_ip.pyの中身は下記。
// IP調べてる部分の意味はわかっていない。コピペ。←
# show_ip.py import socket; from UHScroll import * unicorn_scroll('hello','pink',255,0.2) ip = [(s.connect(('8.8.8.8', 80)), s.getsockname()[0], s.close()) for s in [socket.socket(socket.AF_INET, socket.SOCK_DGRAM)]][0][1] unicorn_scroll(ip,'pink',255,0.2)
そして、自動起動するように設定。
sudo vim /etc/rc.local
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi # ここから追記 sudo python3 /home/pi/UnicornHatScroll/show_ip.py & # 追記終わり exit 0
これで再起動すればUnicorn HatにIPが表示される。
ハマったのは、はじめにHelloと表示させないと
IP取得される前に表示しようとしてしまい、エラーになること。
おしまい
Raspberry Pi 3になってWifiとbluetoothがデフォルトで使えるようになったので、
家の中では電源を指すだけでVNCでスマホでもUbuntuでもタブレットでも
ラズパイできるようになった。
普通に8*8のフルカラーLEDをパソコンから制御しようとしたら、
途方もない労力が必要な気がするが、
ラズパイやハットを使えばたったの5行である。
ユーロが下落しているうちに
是非ラズパイやハットを買い占めておくのは手かもしれない。