開発ブログ

第5回 パペロを凄く光らせてみた

投稿日時:2018年7月30日 09:07

こんにちは。ピャペロンです!
今回はパペロを凄く光らせてみたよ。

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

使用するソフト
・Windows 10
・テキストエディタ(Visual Studio Code
・Google Chrome
・Python 3(ver3.4推奨)
※推奨環境以外は不具合が起きる可能性があるので自己責任でお願いします。


下記のソースコードはパペロが凄く光るプログラムだよ。
コピーペーストして動かしてみよう。※動かない場合は” -sim “オプションでシミュレータIDを指定してみよう。
今回はこのプログラムをいじって好きなようにパペロを凄く光らせてみよう。
Pythonライブラリ(pypapero.py)リファレンスマニュアルを見ながら理解していこう。

# パペロが凄く光るプログラム

import sys    # コマンドラインの動作に深く関連する関数を定義しているsysモジュールを利用できるようにするよ。
import pypapero    # PaPeRo i 制御用ライブラリを利用できるようにするよ。

def on_light(papero):    # パペロが凄く光る関数を定義しよう。
    papero.send_turn_led_on("ear", ["w3w3", "5", "NN", "5", "w3w3", "5"])    # 耳が光るよ。

    # 口が光るよ
    papero.send_turn_led_on("mouth", ["R3G3Y3R3G3Y3R3G3Y3", "5", "Y3G3R3Y3G3R3Y3G3R3", "5", "G3NG3G3NG3G3NG3", "5"])

    papero.send_turn_led_on("cheek", ["R3N", "5", "NR3", "5", "R3R3", "5"])    # 頬が光るよ。
    papero.send_turn_led_on("chest", ["R3", "5", "B3R3", "5", "G3", "5"])    # 胸が光るよ

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)    # Paperoオブジェクトをクラスから生成するよ。
    if papero.errOccurred == 0:    # エラーが発生しなければ実行するよ。
        on_light(papero)    #パペロが凄く光る関数を実行するよ。
    papero.papero_cleanup()    # paperoオブジェクトの使用を終了するよ。

 

今回はLEDの点灯動作を行う[ send_turn_led_on() ]メソッドを利用してみるよ。
リファレンスマニュアルを見ながら1つずつ理解していこう。

 

とりあえず今は、繰り返しと優先度は無視してOK。部位によって光る色や光るLEDの数が違うからややこしいけど、基本的にはRが赤、Gが緑、Bが青、Wが白、Yが黄色、それらと0~3の明るさを表す数字を組み合わせて指定するよ。Nは消灯を意味するよ。
耳や頬は2つのLEDが点灯できるからそれぞれ[ 左側右側 ]の順に指定するよ。口は9つもあるから左から順に間違えずに指定しよう。
胸はなんとRGBWカラーで紫や黄色など様々な色で光らせることができるんだ。
光る状態を指定したら、その状態を継続する時間を数字で指定するよ。ただし、1=100ミリ秒になっているので1秒なら1000ミリ秒、つまり10を指定することに注意しよう。時間を指定しないと意図しない動作をするから忘れずに指定しよう。
試しに2秒間全部点灯する関数を考えてみよう。

def on_all_lights(papero):    # パペロが2秒間全部点灯する関数
    papero.send_turn_led_on("ear", ["w3w3", "20"])
    papero.send_turn_led_on("forehead", ["G3", "20"])
    papero.send_turn_led_on("cheek", ["R3R3", "20"])
    papero.send_turn_led_on("mouth", ["G3G3G3G3G3G3G3G3G3", "20"])
    papero.send_turn_led_on("chest", ["G3", "20"])

 

on_light(papero)関数をon_all_light(papero)関数に変更して実行してみよう。

# パペロが2秒間全部点灯するプログラム

import sys
import pypapero

def on_all_lights(papero): # パペロが2秒間全部点灯する関数だよ。 papero.send_turn_led_on("ear", ["w3w3", "20"]) papero.send_turn_led_on("forehead", ["G3", "20"]) papero.send_turn_led_on("cheek", ["R3R3", "20"]) papero.send_turn_led_on("mouth", ["G3G3G3G3G3G3G3G3G3", "20"]) papero.send_turn_led_on("chest", ["G3", "20"])
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:
on_all_lights(papero) # パペロが2秒間全部点灯する関数を実行するよ。
papero.papero_cleanup()

 

自分で好きなようにパペロを光らせてみよう!


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 管理者

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