このチュートリアルでは、以下の作業の習得を目的に、具体的な手順を示します。なお、ホスト PC として Ubuntu14.04 を使用します。
- Phenox2 を外部電源から起動し、シリアル通信, ssh 通信の機能を確認します。
- Phenox2 ライブラリの画像、音声処理関数の使われ方と、その効果を確認します。
- ユーザーのカスタムプロジェクトを作成し、ビルドを行います。
- パラメータを変更し、プロジェクトをビルドし、変更が反映されることを確認します。
1. 電源、シリアル通信の準備
電源について を参考に電源のセットアップを行い、通信方法についてを参考にシリアル通信のセットアップと電源の投入、root としてログインが完了したところまで進んでください。
2. ssh 接続
- ホスト PC より WiFi ネットワークの検索を行い、SSID が「phenoxnet」であるアクセスポイントを選択し、パスワードに phenoxnet と入力してください。
- ホスト PC よりターミナルを立ち上げ、以下のコマンドで
ssh
接続をオプション-X
を付けて 行って下さい。初期パスワードはroot
になります。
hostpc$ ssh -X root@192.168.2.1
なお、以降の作業は、シリアル通信経由のターミナル、あるいは ssh
からログインしたターミナルのどちらで作業を行っても構いません。
3. プロジェクトの作成
チュートリアルプロジェクトをコピーし、カスタムプロジェクトを作成します。
phenox# cd /root/phenox/work/
phenox# cp -a tutorial_basic myproject_basic
4. プロジェクトのビルド
まずは、先ほどコピーした tutorial_basic と同じ内容で myproject_basic をビルドしてみます。
phenox# cd /root/phenox/work/myproject_basic
phenox# make clean all
これで、実行ファイル main
が作成されました。
5. プログラムの実行
このプログラムは以下の動作を行います。
- Phenox ライブラリの初期化
- 正面カメラから得られた特徴点付きの QVGA 画像を 10 枚取得
- 取得された画像を PNG形式で保存した後、5 秒間の音声を録音し、
sound.raw
として保存 - 笛を検出すると、プログラムを終了。
プログラム開始時には Phenox2 がジャイロセンサーなどの初期化を行うので、必ず Phenox2 を安定した場所で静止させて、手に持つことはしないで下さい。開始から3秒程で初期化は完了し、 CPU0:Finished Initialization.
というメッセージが現れます。万が一、この間に手で持つなどした場合は、初期化が完了しません。その場合はCtrl-cでプログラムを停止し、"reboot"コマンドで再起動します。
それではプログラムを実行してみましょう。
phenox# ./main
"sound record for 5.0 seconds"とメッセージが表示されたら、何か話してみて下さい。5秒間が経過すると、"waiting for whisle"とメッセージが表示されるので、Phenoxの前で大きく笛を吹いてください。プログラムが終了します。
ホスト PC 上で ssh の X フォワーディングが正常に作動している場合、ssh
コンソールで以下のコマンドを実行すると、ファイルマネージャーが開き、画像、音声の保存されたディレクトリにアクセスできます。
phenox# nautilus .
ssh の X フォワーディングが正常に作動していない場合でも、一度 Phenox2 をシャットダウンし、microSD カードをホスト PC に挿入し、root
パーティションの中の/root/phenox/work/myproject_basic
にアクセスすれば画像、音声を入手することが可能です。
ホスト PC 上から root
パーティション にアクセスできない場合 (Mac など) は、以下のようにして、画像、音声の保存先をboot
パーティ ションに変更します。(microSD カード内にはboot
, root
の 2 つのパーティションが存在して おり、Mac では boot
パーティションのみアクセスできることが経験的に知られています。)
まず、 Phenox2 にログイン後、boot
パーティション (/dev/mmcblkp1
と認識されています) を/mnt
に マウントします。
phenox# mount /dev/mmcblkp1 /mnt
次に、/root/phenox/work/myproject_basic/main.c
のソースコードを vi
エディタなどで編集し、画像、 音声の保存先を /mnt
に変更した後、ソースコードの再ビルドを行ってから、main プロ グラムの実行を行って下さい。
6. ソースコードの変更と再ビルド
ソースコード内でいくつかのパラメータを変更してみます。ここでは、myproject_basic/main.c
の cameraid
変数を PX_FRONT_CAM
から PX_BOTTOM_CAM
に, record
変数を 10.0 にしてみま す。変更を加えたら、先ほどと同様にビルドを行って下さい。
phenox# cd /root/phenox/work/myproject_basic
phenox# make clean all
再びmainプログラム実行してみて、変化が起こることを確かめます。
7. シャットダウン
シャットダウンさせる際は、"halt"コマンドを実行した後、電源スイッチをOFFにしてください。
phenox# halt