ダウンロード
最新バージョン : 2.1.0-RELESE
| 2.1.0-RELESE | ダウンロードページ |
OpenRTM@Github
OpenRTM-aist GitHubサイト
ROS
Robot Operating System
Choreonoid
モーションエディタ/シミュレータ
DAQ-Middleware
ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク
産総研が提供するRTC集
東京オープンソースロボティクス協会
| 2.1.0-RELESE | ダウンロードページ |
OpenRTM-aist GitHubサイト
Robot Operating System
モーションエディタ/シミュレータ
ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク
産総研が提供するRTC集
東京オープンソースロボティクス協会
ev3dev-lang を利用した EV3 デバイスへのアクセス
ev3dev-lang は EV3 のモーターやセンサーにアクセスするためのライブラリです。以下の4つの言語で利用することができます。
ここでは、Python と C++ でのアクセス例を示します。
python-ev3dev のインストール
ev3dev-lang の Python版 (Pythonバインディング) を (クロス開発環境ではなく) EV3 にインストールします。 以下のコマンドを入力すると、python-ev3dev がシステムにインストールされ、Python から利用できるようになります。
python-ev3dev からのデバイスアクセス
python-ev3dev を使ってモーターを回してみます。まず、適当なディレクトリーに移動し(先ほどの python-ev3dev をインストールする時のディレクトリーで実行するとエラーになります) python をインタラクティブモードで起動します。
モーターの停止モードには、'break'、'coast'、'hold' の3種類があります。デフォルトは 'coast' に設定してあり、m.stop() 実行時も、惰性で若干動いたと思います。これを、'hold' にして、stop 実行時にピタッと止めます。
以上のように、Python からモータを比較的容易に制御出来ます。
次にセンサーを利用してみます。ポート2に超音波センサーをつなぎます。引き続き Python のインタラクティブモードから以下のように入力します。 for 文で100秒間センサの値(mm)を表示し続けます。途中でやめたいときは Ctrl+C を押してループを抜けます。
python-ev3dev を知る
python-ev3dev の様々なクラス・関数のチュートリアル、リファレンスマニュアルは以下のページにあります。
また、Python では、モジュールやオブジェクトに対して dir() 関数を呼ぶと、利用可能な変数や関数のリストを見ることができます(変数か関数かの区別は dir() だけではわかりません)。
たとえば、ev3dev.ev3 モジュールには Sound という変数か関数があります。 run_forever() という関数があり、Sound() 関数を呼んでインスタンスを生成してみます。以下の例でわかるように、引数は不要だったようです。
生成したオブジェクト s に対して dir(s) を実行してみます。すると、このオブジェクトで呼び出し可能そうな関数群が分かります。 試しに、speak を呼び出してみます。
>>> s.speak("Hello RT-Middleware World")EV3 から声が出るはずです。 実際には、関数の引数に何が必要なのか、どのようなデータ型を渡す必要があるのか、など詳細を知らないと呼び出せない関数もありますが、この方法でおおよその使い方を把握することができます。詳しい関数の呼び出し方を知りたい場合には、リファレンスマニュアルを参照してください。