このチュートリアルは以下の作業の習得を目的としています。なお、ホストPCとしてUbuntu14.04を使用します。
- サンプルコードを実行し、PythonからPhenox APIを利用する方法を確認します。
- いくつかの具体例を通じ、PythonライブラリとC言語ライブラリの相違および注意点を確認します。
本チュートリアルで使っている関数などの詳細についてはPython APIを参照ください。
1. 電源、シリアル通信の準備
電源について を参考に電源のセットアップを行い、通信方法についてを参考にシリアル通信あるいはSSH接続によるログインまで進んでください。本チュートリアルはシリアル通信、SSH接続のいずれでも実行可能です。
2. LED点滅サンプルコードの実行
サンプルプログラムが配置されたディレクトリに移動します。
cd /root/phenox/work/python_tutorial
ls
ここにはサンプルとして4つのPythonスクリプトが配置されています。
autohover.py
get_image.py
led_blink.py
phenox_params.py
ここでは上記のうちled_blink.py
およびget_image.py
を実行してみましょう。Phenox2を平らな所に置き、サンプルコードを実行します。
python led_blink.py
このプログラムでは以下の処理が行われます。
- Phenoxライブラリの初期化
- 1秒おきにPhenox2上面後部に装着された赤色LEDを点滅させる
このプログラムは中断されない限り継続します。動作を確認したら、Ctrl+c
コマンドによってプログラムを終了してください。
3. 対話型モードによる再現
サンプルコードの処理内容をより明確に理解するため、Pythonの対話型モード環境で同様の処理を実践してみます。
python
Python対話型モードが開始したら、はじめにPhenox2のラッパーライブラリをimportします。
import phenox as px
ここでpxは単なる短縮表記なので、他の名前を用いたりphenoxというモジュール名をそのまま使っても構いません。準備が完了したらled_blink.py
中の処理、つまりLEDの点灯を手作業で試してみます。
px.set_led(px.PX_LED_RED, True)
これにより、Phenox2の基盤上面に取り付けられた赤色LEDが点灯します。消灯も同様です。
px.set_led(px.PX_LED_RED, False)
今度はLEDが消灯します。以上を繰り返すことでLEDを点滅させることが出来ます。またset_led
関数の第一引数にpx.PX_LED_GREEN
を指定して同様にすることで、緑色LEDを点滅させることも可能です。動作が確認できたら対話型モードを終了してください。
exit()
4. カメラによる画像取得サンプルコードの実行
LEDより実用性の高い例としてカメラによる画像取得を行います。
cd /root/phenox/work/tutorial_python
python get_image.py
このスクリプトでは以下の処理を行います。
- Phenoxライブラリの初期化
- 前方カメラで撮影した画像を2枚取得
- 取得した画像を
test_iplimage.jpg
およびtest_ndarray.jpg
という名前で保存
なお撮像が安定するまでの時間を確保するため、このプログラムは初期化後に約1秒待機するようになっています。
画像が取得出来たらPhenoxをシャットダウンし、SDカードを取り出してホストPCに挿入し、画像を確認します。ファイルの権限書き換えが必要なことに注意してください。
cd /media/<username>/root/root/phenox/work/tutorial_python
sudo chmod 777 test_iplimage.jpg
sudo chmod 777 test_ndarray.jpg
xdg-open test_iplimage.jpg
なお、ホストPCがUbuntuではない場合はSDカードのroot
パーティションが認識されない場合があります。その場合はプロジェクトのビルドで"5.プログラムの実行"に記載された方法を参考にget_image.py
中に記載された画像ファイルの保存先を書き換えて下さい。