Download - Raspberry PiにUSBカメラを付けて撮影した写真をTwitterにアップする
今日の予定
• Raspberry Piのセッティング復習
• Javaのインストール方法
– Oracle提供の最新版を使う
• Twitterへ書き込みするJavaプログラム
– Twitter4J
• USBカメラを簡単に利用する
– fswebcam
– Webcam Capture
自己紹介
敷矢 和子 (しきやかずこ) Japanese Raspberry Pi User Group Java女子部
得意のシステムは、画面遷移が多いもの 苦手なシステムは、資料がすべて英語のもの 趣味 ・女子の好きそうなオカルト系
・最近は、オープンソースハードウェア♪
@shikiyak
Raspberry Piとは?
• low cost, credit-card sized computer
• The idea behind a tiny and affordable computer for kids
»http://www.raspberrypi.org/
• intention of stimulating the teaching of basic computer science in schools
»http://www.adafruit.com/
Raspberry Piとは?
• CPUは、IntelではなくてARMアーキテクチャ
– ARMは、携帯電話などの環境に使われている
– ARM11は、iPhone3Gも使っていた
– 排熱や消費電力が少ない
• OSは、Linux
–いくつかの種類がある
• プログラム言語は、多数利用可能
– Javaは、JDK for ARMとしてOracle版がある
用意する機材
• Raspberry Pi – 今回は、Model B。ほかのモデルでもよい。
• SDカード – Class10の8GB以上をお勧め。
– PCにSDカードリーダーが付いてない場合は、別途用意。
• 無線LAN用ドングル – ドライバ用CDが付いてないものなら大丈夫…?
• PC – 周辺機器の代用にする。
• FT232RL搭載小型USB-シリアルアダプタ – RPiとPCを接続するため。
– モノによっては初期不良があるので注意!
私が買っているところは…
• Raspberry Pi –日本の正規代理店の『RSコンポーネンツ』
–イギリスやアメリカの正規代理店
• 無線LANドングル –そのへんの量販店
–ドライバ用CDが付いてないものなら大丈夫?
• FT232RL搭載小型USB-シリアルアダプタ –東京:秋葉原、大阪:日本橋、名古屋:大須…
–通販:千石電商/秋月電子/スイッチサイエンス…
なぜ、シリアルアダプタ?
• 起動時、まだネットワークに繋がっていない状態のRPiとPCを接続するため –ネットワークに繋がった時点で、SSHでネットワーク接続に替える。
• シリアルアダプタだと、RPiシャットダウンしてもTeratermは終了しない –↑私の場合、これが大きい理由
–でも、シリアルだとファイル転送が×
準備するソフトウェア
• Raspberry PiのOS以外に、以下のようなソフトウェアを用意しておく必要あり。
– SDカードフォーマット用
– imgファイル書き込み用
– com port / SSH 接続用ターミナル
– FT232RLドライバ
• Windowsの人は全部必要だけど、 Macの人は必要ないものもある
OSセットアップ手順
• Raspberry Pi財団のサイトから、 OSイメージをダウンロード
– NOOBSは、インストールにHDMIモニタ必須。
–今回の説明ではRaspbian限定。
• WinとMacで、コマンドやソフトウェアが違うので、別途詳細資料を参考に!
• SDカードにimgファイルを書き込むときには、専用のコマンド/アプリを使う!!
–前回、ここで失敗している人、多数。
RPiでJDKを使う
• Oracle JDKとOpen JDKのどちらか
– 2013/9に、Oracle JDKが正式対応。
– Oracle JDKはapt-getでもインストール可能。
• インストール手順(最新のOracle JDK)
– Java for ARMのダウンロード&解凍
• wgetではダウンロードできませんでした!
– alternativesで、最新環境に切り替え
• プレインストールされているものは消さなくていい
–別途詳細資料を参考に!
Twitter4Jとは?
• Twitter4J は Twitter API の Java ラッパです。
• Twitter4J を使うと JSON や HTTP に詳しくなくても容易に Twitter とインタラクトするアプリケーションを書くことが出来ます。
• 100% Pure Java - works on any Java Platform version 5 or later
Twitter4Jを使ってみる
• 準備
– Twitter IDと、Developer登録
– Twitter4Jのダウンロード&解凍
• プロパティの設定
– Twitter Developer登録の情報を記述
• ソースコード
–とても書きやすい! (今回のサンプルは2行!!!)
カメラについて
• 選択肢は2つ(純正/USBカメラ)
• 純正カメラモジュール – ケーブルの長さが決まっている
• USBカメラ – ケーブルが伸ばせる
– 安いものもある
– 外しやすい
– ドライバが対応してるか不安…
• 難易度は同じくらい
• 今回は、Webカメラを使います
USBカメラ制御について
• USBカメラが認識されたか?
– /dev以下を確認(video0があるはず)
• 制御コマンドやライブラリは、Linux用
–検索すれば、いくつか見つかる
–インストールが必要
– Javaプログラム用APIもある!
• USBカメラを差すのは電源on前がお勧め
–電圧が不安定なら、セルフパワータイプのUSBハブを使ったほうがいい
fswebcamとは?
• fswebcam is a neat and simple webcam app.
• 資料多い(ググってなんとかなる) • コマンドなので、 比較的簡単に使うことができる – apt-getでインストールできる – USBカメラの動作確認には向いていると思う
• Javaのライブラリではない – Javaプログラム内から呼び出すには、
ProcessBuilderを使う
• 他のコマンドとしてはmotionなどがある
Webcam Captureとは?
• Generic Webcam Java Utility – The goal of this project is to provide really
simple webcam API allowing you to use your build-in, external (USB-connected) webcams or IP / network cameras directly from Java code.
• Java APIなので、制御文が書きやすい
• 資料少ない(英語がんばれ!)
• Raspbian用は、まだ問題が残っている(Arch Linuxなら大丈夫なようです)
カメラ制御を使ってみる
• ソースコードは、詳細資料参照
–サンプルは1回出力してプログラム終了
• SDカードに書くと、SDカードの消耗する
–物理メモリに出力ディレクトリを作る
–物理メモリは、電源offでデータが消える