NegiPi README
これは何?
Raspberry Piで位置情報付きの画像を自動収集してtwitterにアップロードす るためのSDカードイメージと、イメージ作成スクリプト群です。 twitterアップロード機能については、mikutterdプラグインとして実装されて おり、mikutterと同様にカスタマイズが可能です。 twitterにアップロードしない場合でも、位置情報付き画像ファイルを収集す るツールとして利用できます。
図1: サンプル
特徴
- mikutterプラグインで機能拡張
- 安価なデバイスの組み合わせ
- ハードウェア工作不要。USBポートに接続するだけ
- SDカードの耐久性を考慮し、書き込みを最小限に
必要なもの
必須
- Raspberry Pi TypeB(1-3, 2以降推奨)
- SDカード(256MB以上)
- USB Webカメラ
- microUSBケーブル(電源用)
- USB給電アダプタ(2A以上出力できるもの)
オプション
- USBメモリ(画像データを撮り貯める場合必要)
- Wi-Fi AP(mikutterdを動かす場合必要)
- USB Wi-Fiアダプタ(mikutterdを動かす場合必要)
- USB GPSアダプタ(画像に位置情報を付与する場合必要)
参考品: U-blox7( http://amzn.to/2iRyDqY , 1000〜2500円程度)
オプション組み合わせ例
画像を撮り貯めるだけ
- USBメモリ
twitterに投稿したい
- Wi-Fi AP
- USB wi-Fiアダプタ
位置情報と時刻付きの画像を撮り貯めたい
- USBメモリ
- USB GPSアダプタ
インストール
起動用SDカードの作成
negipi.imgをダウンロードし、ddコマンド等でSDカードに書き込んでください。
https://repo.hachune.net/Linux/NegiPi/sdimage/current/negipi.img
Raspberry Pi起動用SDカードが既に存在する場合は、negipi.zipをダウンロー
ドし、negipiディレクトリ以下のファイル全てをSDカードのブート領域に上書
き展開してください。ブート領域の容量は、最低でも256MB必要です。
https://repo.hachune.net/Linux/NegiPi/sdimage/current/negipi.zip
初期設定
起動用SDカードに書き込める環境でsdimage/initconfig.rbを実行し、設定ファ イル(sdimage/confディレクトリ以下のファイル)を生成してください。そして、 生成されたsdimage/confディレクトリをSDカードのルートディレクトリにコピー してください。 実行にはruby, curl, tar, dropbearが必要です。
mikutterdを動かさずに、WebカメラとGPSアダプタの動作確認を行う場合は、 オプション無しでinitconfig.rbを実行してください。
./initconfig.rb Webcam devices(ex: /dev/video0,/dev/video2): /dev/video0 Webcam resolution(ex: 640x480): 640x480 Webcam interval sec(ex: 30): 30 Webcam picture file rotate(ex: 30): 30 SSH public key(ex: ssh-rsa AAAAB3N...): Generating key, this may take a while... Generating key, this may take a while... Generating key, this may take a while... done.
無線経由のSSHアクセス等を行う等、Wi-Fiの設定が必要な場合は、-wオプショ ンを付けて実行してください。
% ./initconfig.rb -w Webcam devices(ex: /dev/video0,/dev/video2): /dev/video0 Webcam resolution(ex: 640x480): 640x480 Webcam interval sec(ex: 30): 30 Webcam picture file rotate(ex: 30): 30 SSH public key(ex: ssh-rsa AAAAB3N...): Wi-Fi SSID: [Wi-Fi APのSSIDを入力] Wi-Fi Passphrase(8..63chars): [Wi-Fi APのパスフレーズを入力] Generating key, this may take a while... Generating key, this may take a while... Generating key, this may take a while... done.
-mオプションを付けると、mikutterdが有効になります。mikutterdを有効にす る場合、mikutterのアカウント登録の他、Wi-Fiの設定も必要となります。
% ./initconfig.rb -m ... Wi-Fi SSID: [Wi-Fi APのSSIDを入力] Wi-Fi Passphrase(8..63chars): [Wi-Fi APのパスフレーズを入力] Register new account. 1) Access https://twitter.com/oauth/authorize?oauth_token=xxxx... 2) Login twitter. 3) Input PIN code. PIN code>
全ての設定を手動で行いたい場合は、-vオプションを付けて実行してください。
FAQ
mikutterdプラグインを追加したい
conf/mikutter/pluginディレクトリ以下にプラグインをインストールしてくだ さい。
保存される画像ファイルの時刻が1970年になる
Wi-Fi AP経由またはUSB GPSアダプタ経由での時刻取得が行えなかった場合に 発生します。Wi-Fi APの設定を確認してください。また、USB GPSアダプタを 導入し正しく情報が取得できるか確認してください。
突然再起動する、カメラが正常に動作しない
USB給電の電力不足の可能性があります。USB給電アダプタやmicroUSBケーブル を確認してください。
Raspberry Pi 1 TypeBとUSBハブの組み合わせが正常に動作しない
給電まわりと思われる不具合でうまく動作しない事例が多数発生していますの で、非推奨です。
SSHでアクセスしたい
有線LANポートに接続すると、DHCPにより自動的にIPアドレス(10.39.39.0/24) が払い出されます。正常にアドレスが付与されたら、ssh root@10.39.39.1し てください。無線LAN経由でもアクセス可能ですが、アドレスは無線LAN APか ら払い出されたものに置き換えてください。認証方式は公開鍵認証のみとなっ ています。
SSHアクセスができない(Permission deniedと出る)
SDカードのconf/root/.ssh/authorized_keysに、適切に公開鍵が登録されてい る事を確認してください。
USB GPSアダプタで位置情報が取得できない
参考品のU-blox7では、USB延長ケーブル経由で接続すると正常に取得できるよ うになる事例がありました。
SDカードイメージのカスタマイズ
ビルド環境に必要なパッケージ
base(bash, curl, util-linux, sed等), mtools, squashfstools, zip)
ビルドツールの導入
bootstrap/bootstrap.shを実行してください。ツール等は全て/negi以下に展 開されます。
パッケージのインストール
カスタムイメージに必要なパッケージを、/negi/pacman/bin/pacmanを用いて インストールしてください。
カスタムイメージの作成
sdimage/build.shを実行すると、カスタムイメージを作成できます。 作成したイメージは、repo/sdimage/日付_時刻/ ディレクトリ以下に保存され ます。
パッケージのカスタマイズ
ビルド環境に必要なパッケージ
base, base-devel, cpio, bc, git, cmake, libxslt, gperf, ruby
ビルドツールの導入
SDカードイメージ作成時と同様に、bootstrap/bootstrap.shを実行してくださ い。ツール等は全て/negi以下に展開されます。
PKGBUILDの作成
Arch Linuxのドキュメントやpackageディレクトリ以下の既存パッケージを参 考に、PKGBUILDを作成してください。PKGBUILDが完成したら、 /negi/pacman/bin/makepkgを実行しビルドしてください。無事パッケージがビ ルドできたら、/negi/pacman/bin/pacman -Uでパッケージをインストールして ください。その後、「SDカードイメージのカスタマイズ」の項の通りイメージ を作成し、動作確認を行ってください。
alias pacman-rpi="sudo /negi/pacman/bin/pacman" alias makepkg-rpi="/negi/pacman/bin/makepkg"