このチュートリアルは以下の作業の習得を目的としています。なお、ホスト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

このプログラムでは以下の処理が行われます。

  1. Phenoxライブラリの初期化
  2. 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

このスクリプトでは以下の処理を行います。

  1. Phenoxライブラリの初期化
  2. 前方カメラで撮影した画像を2枚取得
  3. 取得した画像を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中に記載された画像ファイルの保存先を書き換えて下さい。