ソフトウェアAPI
AKARIのソフトウェアAPIを記載します。
サーボの制御
- class akari_client.joint_manager.JointManager(joint_controllers)[ソース]
- パラメータ
joint_controllers (Sequence[RevoluteJointController]) --
- get_joint_limits()[ソース]
サーボの位置リミットを取得する。
- 戻り値
関節名と位置リミット(min,max)[rad]のDict
- 戻り値の型
Dict[str, PositionLimit]
サンプル
>>> from akari_client import AkariClient >>> akari = AkariClient() >>> joints = akari.joints >>> print(joints.get_joint_limits()) # 各軸のリミット値が出力される
- set_joint_accelerations(*, pan=None, tilt=None, **kwargs)[ソース]
サーボの目標加速度を設定する。
- パラメータ
pan (Optional[float]) -- pan軸の加速度 [rad/s^2]
tilt (Optional[float]) -- tilt軸の加速度 [rad/s^2]
kwargs (float) --
- 戻り値の型
None
サンプル
>>> from akari_client import AkariClient >>> akari = AkariClient() >>> joints = akari.joints >>> joints.set_joint_accelerations(pan=10, tilt=8) # pan軸の目標加速度が10rad/s^2, tilt軸の目標加速度が8rad/s^2
- get_joint_accelerations()[ソース]
サーボの目標加速度を取得する。
- 戻り値
関節名と目標加速度[rad/s^2]のDict
- 戻り値の型
Dict[str, float]
サンプル
>>> from akari_client import AkariClient >>> akari = AkariClient() >>> joints = akari.joints >>> print(joints.get_joint_accelerations()) # 各軸の目標加速度値が出力される
- set_joint_velocities(*, pan=None, tilt=None, **kwargs)[ソース]
サーボの目標速度を設定する。
- パラメータ
pan (Optional[float]) -- pan軸の速度 [rad/s]
tilt (Optional[float]) -- tilt軸の速度 [rad/s]
kwargs (float) --
- 戻り値の型
None
サンプル
>>> from akari_client import AkariClient >>> akari = AkariClient() >>> joints = akari.joints >>> joints.set_joint_velocities(pan=10, tilt=8) # pan軸の目標加速度が10rad/s, tilt軸の目標加速度が8rad/s
- get_joint_velocities()[ソース]
サーボの目標速度を取得する。
- 戻り値
関節名と目標速度[rad/s]のDict
- 戻り値の型
Dict[str, float]
サンプル
>>> from akari_client import AkariClient >>> akari = AkariClient() >>> joints = akari.joints >>> print(joints.get_joint_velocities()) # 各軸の目標速度値が出力される
- move_joint_positions(*, sync=False, pan=None, tilt=None, **kwargs)[ソース]
サーボの目標角度を設定する。 ここで設定した値まで移動する。
- パラメータ
sync (bool) -- Trueにすると、サーボの移動が完了するまで関数の終了を待機する。デフォルト値はFalse。
pan (Optional[float]) -- pan軸の目標角度 [rad]
tilt (Optional[float]) -- tilt軸の目標角度 [rad]
kwargs (float) --
- 戻り値の型
None
サンプル
>>> from akari_client import AkariClient >>> akari = AkariClient() >>> joints = akari.joints >>> joints.move_joint_positions(pan=0.4,tilt=-0.2) # pan軸が0.4rad, tilt軸の目標加速度が-0.2radの位置へ移動
- get_joint_positions()[ソース]
サーボの現在角度を取得する。
- 戻り値
サーボ名と現在角度[rad]のdict
- 戻り値の型
Dict[str, float]
サンプル
>>> from akari_client import AkariClient >>> akari = AkariClient() >>> joints = akari.joints >>> print(joints.get_joint_positions()) # 各軸の現在角度[rad]が出力される
- set_servo_enabled(*, pan=None, tilt=None, **kwargs)[ソース]
サーボの有効無効状態を設定する。
- パラメータ
pan (Optional[bool]) -- pan軸のサーボ有効無効の設定。
True
であればサーボを有効にする。tilt (Optional[bool]) -- tilt軸のサーボ有効無効の設定。
True
であればサーボを有効にする。kwargs (bool) --
- 戻り値の型
None
サンプル
>>> from akari_client import AkariClient >>> akari = AkariClient() >>> joints = akari.joints >>> joints.set_servo_enabled(pan=True,tilt=False) # panのサーボを有効、tiltのサーボを無効に設定
- enable_all_servo()[ソース]
全サーボを有効状態に設定する。
サンプル
>>> from akari_client import AkariClient >>> akari = AkariClient() >>> joints = akari.joints >>> joints.enable_all_servo() # pan、tiltのサーボ両方を有効に設定
- 戻り値の型
None
M5の制御
- class akari_client.m5stack_client.M5StackClient[ソース]
- abstract set_dout(pin_id, value, sync=True)[ソース]
ヘッド部GPIOピンのデジタル出力を設定する。
- パラメータ
pin_id (int) -- pin番号。0でdout0、1でdout1を指定する。
value (bool) -- デジタル出力の値。Falseで0V,Trueで3.3V出力。
sync (bool) -- 同期実行の指定。Trueの場合M5側で実行完了するまで関数の終了待ちを行う。
- 戻り値の型
None
サンプル
>>> from akari_client import AkariClient >>> with AkariClient() as akari: >>> m5 = akari.m5stack >>> m5.set_dout(0, True) # dout0がTrueになる。
- abstract set_pwmout(pin_id, value, sync=True)[ソース]
ヘッド部GPIOピンのPWM出力を設定する。
- パラメータ
pin_id (int) -- pin番号。デフォルトではpwmout0しかないため、0を指定すること。
value (int) -- PWM出力の値。 0-255で指定し、0で0V、255で3.3Vを出力する。
sync (bool) -- 同期実行の指定。Trueの場合M5側で実行完了するまで関数の終了待ちを行う。
- 戻り値の型
None
サンプル
>>> from akari_client import AkariClient >>> with AkariClient() as akari: >>> m5 = akari.m5stack >>> m5.set_pwmout(0, 200) # pwmout0が200になる。
- abstract set_allout(*, dout0=None, dout1=None, pwmout0=None, sync=True)[ソース]
ヘッド部GPIOピンの出力をまとめて設定する。
- パラメータ
dout0 (Optional[bool]) -- dout0の出力値。Falseで0V,Trueで3.3V出力。
dout1 (Optional[bool]) -- dout1の出力値。Falseで0V,Trueで3.3V出力。
pwmout0 (Optional[int]) -- pwmout0の出力値。0-255で指定し、0で0V、255で3.3Vを出力する。
sync (bool) -- 同期実行の指定。Trueの場合M5側で実行完了するまで関数の終了待ちを行う。
- 戻り値の型
None
サンプル
>>> from akari_client import AkariClient >>> with AkariClient() as akari: >>> m5 = akari.m5stack >>> m5.set_allout(dout0=False, dout1=True, pwmout0=100) # dout0がFalse, dout1がTrue, pwmout0が100になる。
- abstract reset_allout(sync=True)[ソース]
ヘッド部GPIOピンの出力を初期値にリセットする。 dout0、dout1はFalse、pwmout0は0となる。
- パラメータ
sync (bool) -- 同期実行の指定。Trueの場合M5側で実行完了するまで関数の終了待ちを行う。
- 戻り値の型
None
サンプル
>>> from akari_client import AkariClient >>> with AkariClient() as akari: >>> m5 = akari.m5stack >>> m5.reset_allout() # dout0がFalse, dout1がFalse, pwmout0が0になる。
- abstract set_display_color(color, sync=True)[ソース]
ボディー部M5のディスプレイ背景色を変更する。
- パラメータ
color (Color) -- 背景色を指定。色は
color.Colors
から色名を引用する、もしくはRGBの数値指定も可能。sync (bool) -- 同期実行の指定。Trueの場合M5側で実行完了するまで関数の終了待ちを行う。
- 戻り値の型
None
サンプル
>>> from akari_client import AkariClient >>> with AkariClient() as akari: >>> m5 = akari.m5stack >>> color = Colors.WHITE >>> m5.set_display_color(color) # 画面色が白になる。 >>> color = Color(red=0, green=100, blue=200) >>> m5.set_display_color(color) # 画面色が指定したRGB値になる。
- abstract set_display_text(text, pos_x=Positions.CENTER, pos_y=Positions.CENTER, size=5, text_color=None, back_color=None, refresh=True, sync=True)[ソース]
ボディー部M5のディスプレイに文字を表示する。
- パラメータ
text (str) -- 表示する文字列。
pos_x (int) -- x方向の描画位置ピクセルを0-320で指定。左端が0。
position.Positions
を用いた位置指定も可能。デフォルト値は中央揃え。pos_y (int) -- y方向の描画位置ピクセルを0-240で指定。上端が0。
position.Positions
を用いた位置指定も可能。デフォルト値は中央揃え。size (int) -- 文字サイズを1-11の11段階で指定。デフォルト値は5。
text_color (Optional[Color]) -- 文字色を指定。色は
color.Colors
から色名を引用する、もしくはRGBの数値指定も可能。値を指定しない場合、前回値を引き継ぐ。back_color (Optional[Color]) -- 背景色を指定。色は
color.Colors
から色名を引用する、もしくはRGBの数値指定も可能。値を指定しない場合、画面全体の背景色に合わせる。refresh (bool) -- trueの場合画面全体を現在の背景色で更新する。falseの場合は現在の表示を維持しつつ、文字を描画する範囲のみ更新する。デフォルト値は背景更新あり。
sync (bool) -- 同期実行の指定。Trueの場合M5側で実行完了するまで関数の終了待ちを行う。
- 戻り値の型
None
サンプル
>>> from akari_client import AkariClient >>> from akari_client.color import Colors >>> from akari_client.position import Positions >>> with AkariClient() as akari: >>> text = "AKARI" >>> pos_x = Positions.LEFT >>> pos_y = Positions.TOP >>> size = 7 >>> text_color = Colors.WHITE >>> back_color = Colors.BLACK >>> refresh = True >>> m5.set_display_text( ... text, pos_x, pos_y, size, text_color, back_color, refresh ... ) # 画面に「AKARI」と表示される。
- abstract set_display_image(filepath, pos_x=Positions.CENTER, pos_y=Positions.CENTER, scale=-1.0, sync=True)[ソース]
ボディー部M5のディスプレイにM5のSDカード内の画像を表示する。
- パラメータ
filepath (str) -- M5のSDカード内のファイルパス。(例;"image/hoge.jpg")
pos_x (int) -- x方向の描画位置ピクセルを0-320で指定。左端が0。
position.Positions
を用いた位置指定も可能。デフォルト値は中央揃え。pos_y (int) -- y方向の描画位置ピクセルを0-240で指定。上端が0。
position.Positions
を用いた位置指定も可能。デフォルト値は中央揃え。scale (float) -- 画像の拡大縮小倍率を指定。1.0で等倍表示。マイナスの値を入れた場合、画面サイズに合わせて自動でサイズ調整される。 デフォルト値は自動サイズ調整となっている。
sync (bool) -- 同期実行の指定。Trueの場合M5側で実行完了するまで関数の終了待ちを行う。
- 戻り値の型
None
サンプル
>>> from akari_client import AkariClient >>> from akari_client.position import Positions >>> with AkariClient() as akari: >>> filepath = "/jpg/logo320.jpg" >>> pos_x = Positions.LEFT >>> pos_y = Positions.TOP >>> scale = 0.75 >>> m5.set_display_image(filepath, pos_x, pos_y, scale) # 画面に"/jpg/logo320.jpg"の画像が表示される。
M5の制御に使用するクラス
- class akari_client.m5stack_client.M5ComDict(*args, **kwargs)[ソース]
M5から取得する情報を格納するDict。
- パラメータ
din0 -- ヘッドのdin0ピンのデジタル入力。HiがTrue、LoがFalse。デフォルトHi。
din1 -- ヘッドのdin1ピンのデジタル入力。HiがTrue、LoがFalse。デフォルトHi。
ain0 -- ヘッドのain0ピンのアナログ入力。0-3.3Vを0-4095の4096段階にする。
dout0 -- ヘッドのdout0ピンのデジタル出力。TrueでHi(3.3V)、FalseでLo(0V)。
dout1 -- ヘッドのdout1ピンのデジタル出力。TrueでHi(3.3V)、FalseでLo(0V)。
pwmout0 -- ヘッドのpwmout0ピンのPWM出力。0-255の256段階で0-3.3Vを出力可能。
general0 -- 任意値を入力可能なエリア。通常時は使用しない。M5のソフトを書き換えることで自由に使用可能。
general1 -- 任意値を入力可能なエリア。通常時は使用しない。M5のソフトを書き換えることで自由に使用可能。
button_a -- M5の前面のボタンAの入力。ボタンを押すとTrue、押していないとFalse。
button_b -- M5の前面のボタンBの入力。ボタンを押すとTrue、押していないとFalse。
button_c -- M5の前面のボタンCの入力。ボタンを押すとTrue、押していないとFalse。
temperature -- AKARI側面の環境センサモジュールの温度計測値。単位は℃。
pressure -- AKARI側面の環境センサモジュールの観測絶対圧力。単位はPa。
brightness -- AKARI側面の光センサユニットの観測明るさを4096段階で出力。0が最も明るい。
time -- データ取得した時間。M5のソフト起動時からの経過秒数を用いている。
is_responce -- akari_client()の各コマンド実行完了時のレスポンス。実行完了するとTrueを返す。
- class akari_client.color.Color(red, green, blue)[ソース]
M5のディスプレイの表示色を指定するクラス。
- パラメータ
red (int) -- RGBのR要素。0~255で指定。
green (int) -- RGBのG要素。0~255で指定。
blue (int) -- RGBのB要素。0~255で指定。