低レイヤー実装
gRPC クライアント
- class akari_client.grpc.m5stack.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"の画像が表示される。
- class akari_client.grpc.joints_controller.GrpcJointController(joint_name, client)[ソース]
- パラメータ
joint_name (str) --
client (_GrpcJointsController) --
- set_servo_enabled(enabled)[ソース]
サーボの有効無効状態を設定する。
- パラメータ
enabled (bool) --
True
であればサーボを有効にする- 戻り値の型
None
- set_profile_acceleration(rad_per_sec2)[ソース]
サーボの目標加速度を設定する。
- パラメータ
rad_per_sec2 (float) -- 加速度 [rad/s^2]
- 戻り値の型
None
- set_profile_velocity(rad_per_sec)[ソース]
サーボの目標速度を設定する。
- パラメータ
rad_per_sec (float) -- 速度 [rad/s]
- 戻り値の型
None
Serial クライアント
- class akari_client.serial.dynamixel.DynamixelController(joint_name, dynamixel_id, communicator)[ソース]
- パラメータ
joint_name (str) --
dynamixel_id (int) --
communicator (DynamixelCommunicator) --
- set_position_limit(lower_rad, upper_rad)[ソース]
Positionの上限値と下限値を設定する。
- パラメータ
lower_rad (float) -- 下限値 [rad]
upper_rad (float) -- 上限値 [rad]
- 戻り値の型
None
- property joint_name: str
関節名を取得する。
- 戻り値
関節名
- set_servo_enabled(enabled)[ソース]
サーボの有効無効状態を設定する。
- パラメータ
enabled (bool) -- Trueであればサーボを有効にする
- 戻り値の型
None
- set_profile_acceleration(rad_per_sec2)[ソース]
Profile Acceleration を設定する。
- パラメータ
rad_per_sec2 (float) -- 加速度 [rad/s^2]
- 戻り値の型
None
- class akari_client.serial.dynamixel_communicator.DynamixelCommunicator(port_handler, packet_handler)[ソース]
- パラメータ
port_handler (PortHandler) --
packet_handler (PacketHandler) --
- classmethod open(serial_port=PosixPath('/dev/ttyUSB_dynamixel'), baudrate=1000000, protocol_version=2.0)[ソース]
dynamixelと通信を行うクラスを初期化する
- パラメータ
serial_port (Path) --
baudrate (int) --
protocol_version (float) --
- 戻り値の型
Iterator[DynamixelCommunicator]
- class akari_client.serial.m5stack.M5StackSerialClient(communicator)[ソース]
- パラメータ
communicator (M5SerialCommunicator) --
- 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になる。
- 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になる。
- 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になる。
- 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になる。
- 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値になる。
- 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」と表示される。
- 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"の画像が表示される。