raspberry pi と motion でわんちゃんライブカメラを作ってみる

ワンチャンではなく、わんちゃん(犬)です。
最近、わんこ様が家族の仲間入りをしたのですが、普段どうしているのかの確認のために、Raspberry Piを引っ張り出してきて作りました。ModelB+だったと思うけど動きは遅いですね。最近のRaspberryPiがほしいです。 今回は motion を使ってウェブカメラの映像を見れるようにしてみました。

Raspberry Pi OSのインストール

知らないうちにraspbianから名前が変わっていたRasapberry Pi OSをインストールします。まずはイメージをSDに書き込むソフトウェアをダウンロードします。 Raspberry Pi Downloads – Software for the Raspberry Pi https://www.raspberrypi.org/downloads/
ダウンロードが終わったら imager_1.4.exe を起動してインストールします。
起動したら、CHOOSE OSからOSを選択します。
次にSDカードを選択します。
WRITERを選択してイメージを書き込みます。
OSイメージのダウンロードを行って。SDに書き込んでくれているのだと思うのでのんびり待ちます。
おわったらメッセージが出る(次の画像はダウンロードしたイメージを書いたときのものなのでメッセージが違います)

起動する

できあがったSDカードをRaspberryPiに差し込んで起動します。
起動したら pi / raspberry でログインします。

無線LANの設定

まずは無線LANとSSHの設定をしてリモートから接続できるようにします。 USBの無線LANをつけて /etc/wpa_supplicant/wpa_supplicant.conf を設定します。
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP

network={
        ssid="SSID"
        psk="xxxxxxxxxxxxxxxxx"
}
iwconfig を実行して次のようになっていたら接続できています。
wlan0     IEEE 802.11  ESSID:"SSID"
          Mode:Managed  Frequency:2.462 GHz  Access Point: XX:XX:XX:XX:XX:XX
          Bit Rate=65 Mb/s   Tx-Power=20 dBm
          Retry short  long limit:2   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=51/70  Signal level=-59 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:24  Invalid misc:25   Missed beacon:0
接続できていないときは、raspi-config から設定してみても良いかもしれません。raspberryのバージョンによって画面が違うかもしれませんが、Network Optionsあたりから設定しても無線LANに接続できました。 固定IPにしたいので /etc/dhcpcd.conf に設定を追加します。IPの設定は /etc/network/interfaces ではなくなったんですね。
interface wlan0
static ip_address=xxx.xxx.xxx.xxx
static routers=yyy.yyy.yyy.yyy
static domain_name_servers=zzz.zzz.zzz.zzz
次にSSHで接続できるようにします。opnessh-serverはインストール済みだったので、/etc/ssh/sshd_configを変更します。
#Port 22
#AddressFamily any
ListenAddress 0.0.0.0
#ListenAddress ::
とりあえず接続できれば良かったのdえ、ListenAddress 0.0.0.0 だけコメントアウトして自動起動するよう設定し設定を読み込み直します。
sudo systemctl enable ssh
sudo systemctl reload ssh
これで別のPCからSSHで接続できるようになりました。

ウェブカメラを使えるようにする

では本題のウェブカメラを使えるようにしていきます。 まずはおもむろにUSB ウェブカメラを差し込んで、dmesgを実行して認識していることを確認します。次のような感じの出力があれば使用できます。
[ 1042.539163] input: UCAM-DLG200H: UCAM-DLG200H as /devices/platform/soc/20980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/input/input10
[ 1042.544619] usbcore: registered new interface driver uvcvideo
[ 1042.544637] USB Video Class driver (1.1.1)
今回は、motion を使ってウェブカメラのサーバーを構築してみます。まずはインストール
sudo apt update
sudo apt install motion

motionの自動起動の設定

/etc/default/motion の no を yes に変更する
# set to 'yes' to enable the motion daemon
start_motion_daemon=yes

motionの設定

/etc/motion/motion.conf を変更する。設定が多いのでそれぞれ確認しつつちょうどよい設定にしてください。 今回は、ストリーミングでカメラの映像を確認できれば良いので、動体検知機能、静止画撮影、動画撮影はオフにして、フレームレートを15fpsで表示できるようにしました。 設定が終わったら次のコマンドでmotionを再起動
sudo systemstl restart motion
ブラウザで xxx.xxx.xxx.xxx:8080 にアクセスしてカメラの映像が見えることを確認します。
わんこがほぼ見えてない
途中適当に触っていたので、他にも必要だったかもしれませんが、概ねこのような手順で作れました。 わんこの様子を見に現場へ行くと、到着前に気が付かれてスタンバイされているので、これで確認することができて良さそうです。

Azure の Local Network Gateway の Gateway IP Addressを設定したい

うちの会社をAzureとVPN接続していたいなーと思いました。
しかし、会社は固定IP環境ではなく、AzureのローカルネットワークゲートウェイのゲートウェイIPアドレスにはIPしか指定できません。
それであれば、多少接続が切れてしまうけども、IPが切り替わるたびにゲートウェイIPアドレスを設定してやればいいじゃないかー、ということで、ちょうど 札幌 Azure/Microsoft Learn もくもく会 24 がありましたので設定方法を探してみました。
# ローカルネットワークゲートウェイのゲートウェイIPを設定するよ.ps1

#
# 
#
$UserName = "ユーザー名"
$Password = "パスワード"
$TenantId = "テナントID"
$SubscriptionId = "サブスクリプションID"

$ResourceGroupName = "リソースグループ名"
$LocalNetworkGatewayName = "ローカルネットワークゲートウェイの名前"


#
# Get external ip address
# なにかしらどこかから外部のIPを取得する。実際には自前で作ったサービスを使っています。
#
$ExternalIPAddress = (Invoke-WebRequest -Uri "https://www.myexternalip.com/raw").Content


#
# Login
#
$secureStringPassword = $Password | ConvertTo-SecureString -AsPlainText -Force 
$credential = New-Object System.Management.Automation.PSCredential -ArgumentList $UserName, $secureStringPassword

Connect-AzAccount -Credential $credential `
    -Tenant $TenantId `
    -SubscriptionId $SubscriptionId 


#
# Set GatewayIpAddress
#
$lgw = Get-AzLocalNetworkGateway -ResourceGroupName $ResourceGroupName -Name $LocalNetworkGatewayName

$lgw.GatewayIpAddress = $ExternalIPAddress

Set-AzLocalNetworkGateway -LocalNetworkGateway $lgw


あとはこれをIPが変わったときだけ動かせばOKだと思ってますが、そこまでは試していないのでうまくいかなかったらごめんなさい。

次のモバイルマウスはマイクロソフトの Mobile Mouse 3600 にしました。

カエレバでamazonの画像貼ってみたかった系のあれです。

携帯用に使っているマウス「Bluetooth® Notebook Mouse 5000」の持つところがベトベト になってきたので、新しいのを探してみました。

ちなみに、「Bluetooth® Notebook Mouse 5000」はとても好きだったので合計3個ほど買ったのですが、
経年劣化(?)で両サイドのゴムっぽいところがベトベトになってしまうのが残念です。

候補

今回はBluetooth® Notebook Mouse 5000がもう打ってなかったので(あっても販売終了になっていてプレミア価格orz)、
いくつか候補を絞って、実店舗で触らせていただいて決めてみました。

1. Logicool ロジクール ワイヤレス ミニマウス ブラック M187BK

すごく小さくみたいで携帯するには○
お値段も手頃です。
ただ、できればBluetoothのマウスがほしかったので、今回は見送りしました。

2. ELECOM マウス Bluetooth CAPCLIP 3ボタン IRLED搭載 充電式 ホワイト M-CC1BRWH

by カエレバ

形からしてすでにおかしい、すっごい小さい携帯するには間違いなくベストそうなマウス。
Bluetoothなのも○
しかし、やっぱり使いにくそう・・だよね?

3. マイクロソフト ワイヤレスマウス Bluetooth Mobile Mouse 3600 Black ブラック (PN7-00007)

超小型ではありませんが一回り小さめのボディーです。
画像だとよくわかりませんが、表面にはやわらかいコーティングがされていて、さわり心地は良かったです(1年もしたらツルツルになっちゃいそうな気もしますが・・・)。

また、今時のマウスっぽくクリック音も静かです。
モバイルシーンだとクリック音が気になってしまう小心者なのでありがたいです。

Bluetoothで接続できて、電池が単3電池1本なので軽そうです。

最終的にはコレとArc Touchで迷いました。

4. マイクロソフト ワイヤレス Bluetooth マウス Arc Touch Bluetooth Mouse (7MP-00018

だいぶ前からありますが、これ使ってみたいのです!
携帯性というか、カバンに収納するのが楽そうですし、
カチッっと折って電源ONするギミックも非常に心地よさそうです。

しかし、高い上にレビューを見ると接続が切れる、
ちょっと持ちにくい、持ちにくいのでボタンを押しにくい、
などが目についてしまい、最高に良い感じではなさそう。

実機を触ってみたかったですが、残念ながら訪れたお店にはありませんでした(T_T)

5. Logicool ロジクール MXAnywhere2™ ワイヤレスモバイルマウス BluetoothSmart・USB対応 MX1500

たかい!
しかし、質感、重さ、形状、大きさ、クリック感は非常に良い感じでした。

きっと耐久性も高いのでしょう。
でも高い!(しつこい

まとめ

今回は最後、arc touchとMobile Mouse 3600で迷いました。
マウスはどうしても1~2年で壊れてしまう印象なので、そこに8000円近いマウスを買うのも・・・でもあのギミックを試してみたい・・・と(=w=)
そんなタイミングで、Mobile Mouse 3600がamazonのタイムセールで 3,234 円になるようだったので、もういいやっ、ってことでモバイル マウス 3600にしました。

*届いてみた感想は、ちょこんとした小さな出で立ちで、触り心地よく使い心地もまずまずですが、そんなにクリックは静かではないです。

pebbleの時計(watchface)を作ってみよう:Watchface Generator編

pebbleの特徴は自分だけの時計を開発できることです。

開発するにはプログラミング言語のCやJavaScriptを使える必要があります。

ここで脱落してしまう人も多いかもしれませんが、実はもっと簡単に時計を作る方法があります。
それは、Paul Rode氏が作ったWatchface Generatorというウェブサービスです。

このサービスを利用すると、プログラムを作ることなく、簡単に自分だけの時計を作ることができます。 続きを読む

pebbleで日本語を使えるようにしよう

pebbleで日本語(ひらがな・カタカナ)を使えるようにする話です。

そういう話なんですが、今コレを行っても古いファームウェアであるため、最新のSDKのプログラムが使えなかったりします。
ひらがな・カタカナが使えるファームウェアを提供してくれているtexpressの方が下のようなツイートをしていたので、そのうちPebbleBitsさんからダウンロードできるようになるかもです。

続きを読む

第1回 Python勉強会@旭川

旭川で初めての開催となるPython勉強会に参加してきました。

勉強会の内容

日時:8月22日(水) 19:00 ~ 20:30
場所:旭川市市民活動交流センター CoCoDe (会議・研修室1) 地図
参加者:7人
詳細は:第1回 Python勉強会@旭川 – connpass

勉強会の内容としては、まずは第1回目ということでみんなで自己紹介。
そのあと、どうやって進めるかを話し合って、まずはPython チュートリアル を最初から読み進めながら、プロジェクタを使って講師役がいくつかコードを打って確認していこう、ということでやってみました。
今回は主催の@waigania13 さんが講師役と言うことで話しながらコード書いたりしてました。 お疲れ様です。

pythonチュートリアルは1年以上前にさらっと触っただけですが、じっくり見てみると色々とちゃんと書いてあることがわかりました。
当時はちょー斜めに読んだのか、見なかったことにしたのか、寝てたのかはわかりませんが、

  • pythonインタプリタで  _ で前回結果使えるとか、
  • “文字列” “文字列” が “文字列文字列”になるとか、
  • forのelseとか、
  • 関数内でのglobalとか、

こんな事も書いてるんだー、って思いました。当時はどっかのブログとかそこらへんを漁っているうちに目にして覚えた気がしますが、チュートリアル万歳です。

今後

今後の勉強会についてですが、

  • 2週間に1度開催
  • なるべく予定範囲は目を通してくる
  • 講師役の人がさらーっと読み進めながら、適度にコード確認
  • 質問などがあればみんなで考えながら進める。

という予定です。

pythonチュートリアルは、pythonさえインストールできれば付属のインタプリタでできちゃいますので、もし旭川(近郊)でpython勉強したいなーと考えている人がいれば是非一緒に勉強しましょー。
pythonに限らずプログラムについて勉強したい人でも大丈夫だと思います。たぶん。

とくに参加者はプログラムを作る人が多いので、学生さんでプログラムに興味のある方がいたら是非是非です。

スイッチ買ってみた

yahoo auctionを見てたらPowerConnect5324が安かったから買ってみた。ファンがうっさいけど・・・。

bondingとか実験してみよー。

先生曰く、IPv6対応してないネットワーク機材は最近ちょー安く売られているらしいぃ。
Ciscoのも安かったらL2とL3を勉強用に買おうかなー。

MacBookProをSSDにした

今更だけど、macbookpro 2010くらいのやつのHDDをSSDにしました。
SSDは256GBにしようかと思ったけど、ローカルのマシンはとにかくスリム化したい気分なので、128GBにしていろいろと断捨離ました。

買ったのはこれ。あまぞんでぽちぽちです。

  • ベッセル(VESSEL) パワーグリップ トルクスドライバー T6 No.B-5400TX
  • Crucial m4 128GB 2.5inch SATA 6Gbit/s CT128M4SSD2
  • 玄人志向 2.5インチ HDDケース USB2.0 ケーブルを本体収納 専用ポーチ付き 簡単組み立て GW2.5SC-SU2

交換後TimeMachineから復元しようと思ったけど、最近動作がおかしかったところがあるので、作っておいたLionディスクでクリーンなインストールにすることにしました。
MacOSのインストールは初めてですが、特に何の問題もなく完了。

起動してみるともう感動的な速さ。これはいいわぁ・・・。SSDすばらしすぎる・・・。
交換するのも簡単なので皆さんも交換してみるといいですな。
私はここを参考に交換しました。<a href=”http://kray.jp/blog/ssd_macbookpro/”>やさしいMacBookProの育て方 – SSD+HDDで快適生活 | KRAY Inc</a>

となると、最近のAirあたりなんかはもっともっと軽快に動くのですかねー。

 

typing result

HHKBを買ってから適度にタイピングの練習をして、type wellしてみた結果。

EW全履歴
——————–
========== ========== =====
date time level
========== ========== =====
May.29.12 76.156 SI
May.31.12 65.031 SC
Jun.01.12 64.589 SC
Jun.02.12 64.813 SC
Jun.03.12 65.812 SC
Jun.04.12 66.298 SD
Jun.05.12 62.516 SB
Jun.06.12 64.281 SC
Jun.07.12 62.313 SB
Jun.08.12 63.640 SB
Jun.09.12 60.563 SA
Jun.10.12 60.204 SA
Jun.12.12 57.859 XJ
Jun.13.12 63.562 SB
Jun.14.12 60.469 SA
Jun.19.12 61.032 SA
Jun.22.12 58.875 SS
Jun.26.12 58.786 SS
Jun.27.12 55.376 XI
========== ========== =====

JR全履歴
——————–
========== ========== =====
date time level
========== ========== =====
May.29.12 66.266 SF
May.31.12 55.656 SS
Jun.01.12 58.719 SB
Jun.02.12 52.191 XJ
Jun.03.12 61.801 SC
Jun.04.12 57.996 SA
Jun.05.12 53.828 XJ
Jun.06.12 53.781 XJ
Jun.07.12 50.984 XI
Jun.08.12 54.016 SS
Jun.09.12 49.108 XH
Jun.10.12 53.235 XJ
Jun.12.12 53.998 XJ
Jun.13.12 64.250 SE
Jun.22.12 50.313 XI
Jun.27.12 54.359 SS
========== ========== =====

まだまだ遅いorz
ピアノの指練習みたいな感じで毎日続けていれば1年後くらいには早くなるかなぁ。
もう年だから無理かなぁ・・・。