開発ブログ

第7回 Windowsフォームアプリケーションからパペロを制御してみた

投稿日時:2018年10月18日 11:10

こんにちは。ピャペロンです!
今回はWindowsフォームアプリケーションからパペロを制御してみたよ。

あらかじめパペロシミュレーターを動かす環境を整えておこう。第2回 Windowsからパペロシミュレーターを動かしてみた

使用するソフト
・Windows 10
・テキストエディタ(Visual Studio Code
・Visual Studio 2017
・Google Chrome
・Python 3.6 ※実機で動かす場合はPython 3.4で開発しないと動作しない可能性があります。


Windowsフォームアプリケーションで右ボタンを押したらパペロが右に向いて挨拶し、左ボタンを押したら左に向いて挨拶するプログラムを作ってみよう。
まずはパペロが右に向いて挨拶するプログラムと左に向いて挨拶するプログラムを作ろう。

papero_r.py

# パペロから見て右を向きながら挨拶するプログラム
import sys
import pypapero

def my_func_r(papero):    # パペロから見て右を向きながら挨拶する関数
    papero.send_move_head([""], ["A-90T1000L", "A0T1000L"])
    papero.send_start_speech("おはようございます。パペロです。")

if __name__ == "__main__":
    simulator_id, robot_name, ws_server_addr = pypapero.get_params_from_commandline(sys.argv)
    papero = pypapero.Papero(simulator_id, robot_name, ws_server_addr)
    if papero.errOccurred == 0:
        my_func_r(papero)
    papero.papero_cleanup()

 

papero_l.py

# パペロから見て左を向きながら挨拶するプログラム
import sys
import pypapero

def my_func_l(papero):    # パペロから見て左を向きながら挨拶する関数
    papero.send_move_head([""], ["A90T1000L", "A0T1000L"])
    papero.send_start_speech("こんにちは。パペロです。")

if __name__ == "__main__":
    simulator_id, robot_name, ws_server_addr = pypapero.get_params_from_commandline(sys.argv)
    papero = pypapero.Papero(simulator_id, robot_name, ws_server_addr)
    if papero.errOccurred == 0:
        my_func_l(papero)
    papero.papero_cleanup()

 

次にVisual StudioでWindowsフォームアプリケーションを作ろう。
プログラミング言語がpythonではなくてC#で記述する必要があるので注意しよう。
デザインはこのようにしてみたよ。

 

ボタンを押したときPythonスクリプトを実行するプログラムを記述しよう。

//左ボタンを押したときPythonスクリプト実行
private void button1_Click(object sender, EventArgs e)
{
    var p = new Process();    //プロセスクラスのインスタンスを生成

    p.StartInfo.FileName = @"C:\Users\g-washikita\Anaconda3\python.exe";    //python.exeの場所を指定
    p.StartInfo.UseShellExecute = false;    //シェルで実行を無効
    p.StartInfo.CreateNoWindow = true;    //Windowを開かないように設定

    //引数にPythonスクリプトのPathとシミュレータIDを指定(textBox1に入力されたシミュレータIDを取得) ※Pathは例です。
    p.StartInfo.Arguments = @"C:\Users\<ユーザー名>\Documents\Papero\papero_r.py -sim " + textBox1.Text;

    p.Start();    //プロセスの実行

    p.WaitForExit();    //プロセスの終了まで待機
    p.Close();    //プロセスを終了
}

//右ボタンを押したときPythonスクリプト実行
private void button2_Click(object sender, EventArgs e)
{
    var p = new Process();

    p.StartInfo.FileName = @"C:\Users\g-washikita\Anaconda3\python.exe";
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.CreateNoWindow = true;
    p.StartInfo.Arguments = @"C:\Users\g-washikita\Documents\Papero\papero_l.py -sim " + textBox1.Text;

    p.Start();

    p.WaitForExit();
    p.Close();
}


シミュレータIDを入力してボタンをクリックしてみよう。※シミュレータIDを入力しないと動かない可能性があります。
↑のように動作すれば成功だ!


0

最新開発ブログ一覧  (一覧で確認
2020年8月19日 14:08
開発ブログ
第30回 パペロで赤外線アレイセンサを動かしてみよう!【中編:顔の表面温度を測ってみよう】
by 管理者
2020年7月22日 16:07
開発ブログ
第29回 パペロで赤外線アレイセンサを動かしてみよう!【前編:簡易サーモグラフィを作ろう】
by 管理者
2019年11月20日 17:11
開発ブログ
第28回 パペロでJulius4.5を実行してみた
by 管理者
2019年11月13日 09:11
開発ブログ
第27回 JuliusをPaPeRoi向けにクロスコンパイルしてみた
by 管理者
2019年9月19日 17:09
開発ブログ
第26回Linaro Toolchainでクロスコンパイルしてみた
by 管理者

コメントは受け付けていません。