Raspberry PiでXBMC

2014/03/15

入れてみたけど無理だ。マウスが酔っ払ってまともに動かない。
R1074747

Raspberry Piケースにカメラ固定完了

2014/03/14

リーマーとネジがセットが届いたので、カメラのレンズが出る部分の穴を広げて、10mm長のネジで固定。
本当はスペーサーとか噛ましたほうが良いんだろうけどひとまずこれで完成。
R1074768
R1074755
R1074771
R1074775
R1074779

カメラモジュールをブラブラさせない

2014/03/12

軽く遊んでるときはブラブラしていても良いけど、使うならハコに入れたい。
ねじ穴に合わせて2mmで穴を開けて、レンズ部分にも穴を、、、と思ったけど、模型用に買ってあるピンバイスのドリルは3mmまでしかない。これ以上太いドリルがあっても咥えられないからリーマー買ってこよう。
固定ネジも7mmだと短い。10mmとか15mmくらいのが欲しい。模型だと5mm程度で十分なのでこれも手持ちがない。

ひとまず外向きに固定。斜めってる…。
DSC07620

Raspberry PiにUSBディスプレイ

2014/03/11

小型のHDMIディスプレイ欲しいと思いつつもちょっと高くて躊躇。過去に購入済みでお蔵入りになっているUSBディスプレイが使えないかとぐぐってみたところ使えるらしい。
半田付けとかは苦手だけどソフトウエアなら環境わかれば同じ事ができる。

参考にさせてもらったのは次のサイトです。
Raspberry Pi でUSBディスプレイを使う
http://d.hatena.ne.jp/penkoba/20130911/1378910572

これでダメなら諦めた方が良い程度にRasberry Piのカーネルクロスコンパイル手順をまとめてみた。
http://moguno.hatenablog.jp/entry/2013/02/03/222132

共に2013年のblog記事なので、使っているカーネルバージョンが古い。2014年3月には3.6.yが3.10.yまで上がっているので、kernelソースのtar.gzをダウンロードするときはファイル名内の3.6を3.10に変更する。
クロスコンパイルするOSはUbuntu12.04の64bit版を使った。クロスのツールが動けばなんとかなる。出力するのはARMのバイナリだし32/64bitはあまり問題にならない。

kernel入れ替えの時、動いていたものを取っておいてうまく起動しなかったときに備えるのは当然として、なんでsymlinkにしないのか不思議だった。Raspbianの/bootのパーティションがvFATだからsymlinkが作れないという事らしい。なるほど。

pi@raspberrypi ~ $ mount
/dev/root on / type ext4 (rw,noatime,data=ordered)
devtmpfs on /dev type devtmpfs (rw,relatime,size=215824k,nr_inodes=53956,mode=755)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=44820k,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=89620k)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620)
/dev/mmcblk0p5 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)

写真の通りSAMSUNGのU70は接続できたけど、CenturyのLCD-4300Uは表示できなかった。cmdline.txtを変えればいけるのかも。
気になった点はkernel3.10.33だとcmdline.txtにパラメタ書いても起動時に無限ループになった。仕方がないのでrc.localでcon2fbmapを実行して表示を切り替えている。HDMIを接続しない状態で起動しても/dev/fb0は存在するので、USBディスプレイ用はfb1になる。
IMG_20140311_113243

EXT4-fs error

2014/03/10

Raspberry Piの8GB SDカードをddして複製したメディアで起動するとエラーが出る。
複数のプロセスなので、名前解決かなにかに関係するファイルかも。

[ 883.560203] EXT4-fs error (device mmcblk0p6): ext4_lookup:1437: inode #279526: comm ntpd: deleted inode referenced: 333291
[ 1067.730286] EXT4-fs error (device mmcblk0p6): ext4_lookup:1437: inode #279526: comm sshd: deleted inode referenced: 333291

fsckかけてみる。

pi@raspberrypi ~ $ sudo fsck -n /dev/mmcblk0p6
fsck from util-linux 2.20.1
e2fsck 1.42.5 (29-Jul-2012)
Warning! /dev/mmcblk0p6 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
root contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Entry ‘resolv.conf’ in /etc (279526) has deleted/unused inode 333291. Clear? no

Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences: -1164487
Fix? no

Inode bitmap differences: -333291
Fix? no

root: ********** WARNING: Filesystem still has errors **********

root: 84312/404800 files (0.1% non-contiguous), 625855/1618944 blocks

ああ、そのファイルだといろいろアクセスしてきそう。
マウント状態だとfsckで修正できないので、Ubuntuが起動しているPCにSDカードを
刺してコマンド実行。

hoge@nuc-linux:~$ sudo fsck -fy /dev/sdb6
[sudo] password for hoge:
fsck from util-linux 2.20.1
e2fsck 1.42 (29-Nov-2011)
Pass 1: Checking iノードs, blocks, and sizes
Pass 2: Checking ディレクトリ structure
Entry ‘resolv.conf’ in /etc (279526) has 削除/unused iノード 333291. クリア? yes

Pass 3: Checking ディレクトリ connectivity
Pass 4: Checking reference counts
Pass 5: Checking グループ summary information
Block ビットマップ differences: -1164487
修正? yes

Free blocks count wrong for グループ #35 (10188, counted=10189).
修正? yes

Free blocks count wrong (993084, counted=993085).
修正? yes

Iノード ビットマップ differences: -333291
修正? yes

Free iノードs count wrong for グループ #41 (8095, counted=8096).
修正? yes

Free iノードs count wrong (320488, counted=320489).
修正? yes

root: ***** ファイルシステムは変更されました *****
root: 84311/404800 files (0.1% non-contiguous), 625859/1618944 blocks

Raspberry Piに戻してエラーが出ないことを確認。
ファイルも大丈夫そうですよっと。

pi@raspberrypi ~ $ cat /etc/resolv.conf
nameserver 192.168.1.1
nameserver 8.8.8.8
nameserver 8.8.4.4

Raspberry Piカメラモジュール

2014/03/09

買ってみた。USBカメラと同じでしょ? と思ってあまり期待してなかったけどなかなか良い。ハードウエアでH.264のデータを扱えるので、USBでカメラつないでいるのがアホらしくなってきた。ひとまずネットワークに流すだけならCPUへの負荷がほとんどかからずに流せる。受信側が大変だけど。
データを保存するだけならUSB接続のハードディスクとかをつなげばひとまず解決する。

おおよそのデータサイズは次の通り。
720p/60sec
bitrate size
10Mbps 75MByte
5Mbps 38MByte
2Mbps 15MByte

1080pでもサイズはほとんど変わらない。mediainfoで見ると確かに720pと1080pで異なっているのに不思議。
ビットレートを512Kbpsまで落としても、ブロックノイズが多いな という所まではいっていない。それなりに見れる。

オプションの三角形のケースも買ったけどいまいち。基板をはめ込むだけなのでちょっとした衝撃に弱いし、キチキチに作ってあるからかカメラから出ているフレキシブルケーブルが浮いてしまってハードウエアを認識しなくなってしまう。
スモークケースにレンズの部分とネジ部分の穴開けして、ネジ止めするのがいちばん確実。

ひとまず洗濯ばさみで代用。
R1074703

Raspberry Piを動かす電源(その1)

2014/03/08

車載させるにあたってちょっと事前調査。これが良いのではないか? というモバイルバッテリーはあるけど、まずは手持ちのものを調べてみる。
Raspberry PiにGPS(ND-100S)、UVCカメラ(C920)、キーボード・マウス用のドングル(MK270)、WiFi(GW-USNANO2A)をつないだ状態で使うことを想定している。

Panasonic QE-PL201
NOOBSのsetup開始から5時間30分ほど動いて電源断となった。
残念ながら給電中に充電はできない。(取扱説明書から)と、書いてあったけどできたらラッキーくらいの勢いで給電側もつないでみたが、やはり電源供給が止まってから充電が始まった。
12946710775_e5345cd594_o


SANYO KBC-L2B
取扱説明書を読む限りは充電しながら給電できる。と書いてあるけど現実はうまくいかない。カメラとGPSをぶら下げているから充電が給電に追いつかないだけかもしれない。充電時にどのくらいのアンペアが流れているか調べて見る必要がある。
12949688343_3d26ed6135_o


カメラ、GPSを接続してRaspberry Piへの供給アンペアを見ていると0.9Aを記録した後再起動することがあり、2A供給できるようなモバイルバッテリーでないと安定供給は難しいかもしれない。sshが切断されたりhttpが繋がらなかったりする事もある。電源がすべて悪いわけではないと思うが、GPSとUVCカメラはUSBハブから電源取った方が確実ではある。

ACアダプタ付きのUSBハブにカメラ、GPSとWiFiを逃すとRaspberry Pi本体は0.4A以下の使用量で安定する。この状態ならKBC-L2Bでも行けるかもしれない。

富山地方電鉄 有峰口駅(ありみねぐち)

2014/03/07

久しぶりにblogコンテンツをメンテしていたら公開していない駅めぐりがあったので公開。
訪問日とかもメモしておいた方が良いかも。
20091004_img_8345


20091004_img_8357


20091004_img_8371


20091004_img_8380

motionで動体監視する(ちょっと前から最近まで)

2014/03/07

自宅内や玄関先をUSBカメラやAndroidのスマホを使ってリビングのタブレットに常時写したり、motionで動体感知して動画をGMailに送ったりしている。
しばらくの間USBカメラ(主にLogicool QCam Pro 9000)を使い、Core i3のLinux PCを常時稼働して使っていたが、去年の夏くらいからAndroidのスマホをカメラ代わりにしたり、もっと低価格で非力なRaspberry PiとUSBカメラを使ったりしてきたのでまとめ。

  • オリジナル
    Ubuntu12.04を入れたPCに、USBでLogicool QCam Pro 9000を接続。主に玄関先に設置して誰か来た場合にメールを飛ばすよう設定、添付する動画はiモード携帯でも見れるようにffmpegで3gpに変換、受信できるファイルサイズ2MB以下の動画のみを送るようにしていた。
    PCはNUCを使っているので約30,000円程度、カメラは7,000円程度で購入。
  • カメラの追加(スマートフォンをカメラに)
    スマホやタブレットが余りだしてきたので、IP Webcamを入れてUSBカメラ代わりに使い始める。最初はmotionとはからめず、tinyWebCamで見るだけだったが、motion.confの設定でデバイスを「/dev/video0」ではなく、URIを指定したネットワークカメラを使うことができたので、motion経由で動体監視もはじめた。
    USBカメラの場合PCをカメラの近くに設置する必要があったりケーブルを這い回す必要があったりしたが、無線LANの電波が届きコンセント近くで電源供給が可能な場所であればPCとケーブルでつながっている必要はなくなった。
    ただし、スマートフォンをPCから100%制御できないのでいろいろやっかいなことが。再起動させるだけでもオリジナルの状態では難しい。root化して定期的に再起動させたり、taskerを使ってアプリの起動などを制御する必要がある。途中でアプリケーションエラーが発生してプロセスが終了しても今のところ手の出しようがない。(sshとbusybox入れておけばなんとかなるのかも)
    スマートフォン(使い古しなのでプライスレス?)
  • カメラの追加(ネットワークカメラの追加)
    ネットワークカメラに興味が出てきてDG-SP304Vなども購入してみたが、PoE給電が必要だったりと費用はかさばるばかり。ただし、熱暴走などは発生していない。安価に買えればスマートフォンよりも性能的には安心できる。
    ネットワークカメラ(17,800円)
  • PCからRaspberry Piへ
    CPUパワー的に無理だろうと思っていたが、Microsoft LifeCam StudioをRaspBerry Piに接続すると、10fps以下だが640×480のサイズでmotionを使い動体認識させることができた。
    PC同様メール送信も可能、motionの動画出力にaviコンテナのmp4を指定しておけば、Androidのスマートフォンであれば変換なしで動画再生可能ということもわかり、ffmpegで変換なしにそのままGMailに送りつけることにした。自宅内では有線LANで接続しているが、無線LANのドングルで接続しておけば電源となるUSBケーブルを接続するだけで運用可能。カメラと本体をどのように設置するかは悩みどころだが、スマートフォンと同じくらいに設置しやすくなる。
    モバイルバッテリーや太陽光電池を使えば運用範囲はさらに広がる。
    Raspberry Pi(3,300円、ケース1,000円、USB電源1,000円)、LifeCam Studio 1,012円。

12334199475_a8d4169808_o

Raspberry PiのRevisionが変わっている

2014/03/05

BogoMIPSの値が2桁も違うけど何だろう。OSのバージョンが違うから計測方法も異なるんだろうか。

http://archive.linux.or.jp/JF/JFdocs/BogoMips/faq.html

2013/09購入

pi@hostname ~ $ uname -a
Linux hostname 3.6.11+ #538 PREEMPT Fri Aug 30 20:42:08 BST 2013 armv6l GNU/Linux

pi@hostname ~ $ cat /proc/cpuinfo
Processor : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS : 697.95
Features : swp half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xb76
CPU revision : 7

Hardware : BCM2708
Revision : 000d
Serial : 0

2014/03購入

pi@hostname ~ $ uname -a
Linux hostname 3.10.32+ #648 PREEMPT Fri Feb 28 16:29:56 GMT 2014 armv6l GNU/Linux

pi@hostname ~ $ cat /proc/cpuinfo
processor : 0
model name : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS : 2.00
Features : swp half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xb76
CPU revision : 7

Hardware : BCM2708
Revision : 000e
Serial : 0