ホーム -> Python -> Python APIの解説 -> 動かす
ホーム -> Python -> Python APIの解説 -> 動かす
2. Train(スマートトレインを動かす)
このクラスは、実際に接続したスマートトレインを操作するためのものです。
走らせたり、止めたり、ライトをつけたり、センサーの反応を受け取ったりできます。
id: str
スマートトレインの内部識別ID(接続に使われるBluetoothアドレスなど)。
name: str
スマートトレインが発信するBluetooth名(接続時に表示される名前)。
alias: str
ユーザーが任意に設定できるニックネーム。
disconnect()
Bluetooth接続を切断します。
is_connected: bool
接続されているかどうか(True:接続中)。
distance_cm: int
接続以降に走った合計距離(cm)。
drive_at_speed(speed_cmps: int | float, direction:「値はこちら」 = MovementDirection.FORWARD, play_feedback: bool = True)
例:drive_at_speed(40) → 40cm/s の速さで前進します。
スピード(cm/s)を指定して走らせる基本的な命令です。指定できる範囲は 15〜75cm/s です。
なお、実際のスピードは 0.9425cm/s ごとの段階的な値で制御されるため、指定した値は近い段階に自動調整されます。
direction では進行方向を指定し、play_feedback は効果音やライトの有無を指定できます。
drive_at_speed_level(speed_level: 「値はこちら」, direction:「値はこちら」 = MovementDirection.FORWARD, play_feedback:bool = True)
例:drive_at_speed_level(SpeedLevel.LEVEL2) → レベル2の速度で前進します。
SpeedLevel(1〜3)という段階的なスピードで走らせます。 緑色のスナップの命令と同じ速度基準です。
direction は進行方向、play_feedback は効果音やライトの有無を指定できます。
stop_driving(play_feedback_type: 「値はこちら」 = StopDrivingFeedbackType.MOVEMENT_STOP)
例:stop_driving() → 即座にスマートトレインを止めます。
即停止させるメソッドです。play_feedback_type を指定することで、停止時のライトや音の種類を変えることができます。
set_top_led_color(r: int, g: int, b: int)
例:set_top_led_color(0, 0, 255) → 上部LEDを青にします。
本体上部のLEDライトの色を設定します。RGBそれぞれの値(0〜255)を整数で指定します。
set_headlight_color(front: Optional[Iterable[int]] = None, back: Optional[Iterable[int]] = None)
例:set_headlight_color(front=[255, 0, 0], back=[0, 0, 255])→ 前方のライトを赤、後方のライトを青に設定します。
前方(front)・後方(back)のヘッドライトの色を設定します。RGBそれぞれの値(0〜255)を整数で指定します。
色のリセットをしたい場合は、引数なしで呼び出してください。
また、向きは進行方向に応じて自動で切り替わります。
set_next_split_steering_decision(next_decision: 「値はこちら」
例:set_next_split_steering_decision(SteeringDecision.LEFT) → 次の分岐で左に進むよう設定します。
次に来る分岐での進行方向を事前に決めることができます。
スナップ命令よりも優先されます。
set_snap_command_feedback(sound: bool, lights: bool)
例:train.set_snap_command_feedback(sound=True, lights=False) → 音あり・ライトなしで反応。
スナップが検出されたときに、効果音やLEDで反応するかを指定します。
set_snap_command_execution(on: bool)
例:train.set_snap_command_execution(True) → スナップ命令を有効にします。
スナップのコマンドに従うかどうかを切り替えます。
False にすると、コマンドを検出しても無視します。
clear_custom_snap_commands()
例:train.clear_custom_snap_commands() → ユーザーが設定したスナップ命令をすべて削除します。
スマホアプリなどで登録されたスナップコマンドを削除して、コマンドの衝突や誤動作を防ぎます。
decouple_wagon(play_feedback: bool = True)
例:train.decouple_wagon() → ワゴンを切り離します。
連結された貨車を切り離します。
play_feedback を False にすると、効果音やライトを無効にできます。
以下のメソッドを使うと、イベントが発生したときに実行する処理(コールバック関数)を登録できます。
書き方は add_xxx_listener(関数名) のようにします。
登録を解除したい場合は、remove_xxx_listener(関数名) を使ってください。
add_front_color_change_listener(値はこちら)
→ 前方のセンターが読み取る色が変わったとき
add_back_color_change_listener(値はこちら)
→ 後方のセンターが読み取る色が変わったとき
add_button_press_listener(値はこちら)
→ スマートトレイン本体の上のボタンが押されたとき
add_low_battery_listener(値はこちら)
→ バッテリー残量が少なくなったとき
add_movement_direction_change_listener(値はこちら)
→ 進行方向が変わったとき(前→後など)
add_snap_command_detection_listener(値はこちら)
→ スナップを検出したとき
add_snap_command_execution_listener(値はこちら)
→ スナップコマンドを実行したとき
add_split_decision_listener(値はこちら)
→ 分岐に来たとき
本資料で出てくる英単語(型)は、データの種類(型)を表します。
それぞれ以下のような意味を持っています。
int 整数(1, 0, -10)など
float 小数 (3.14, 0.5, -2.7)など
str 文字列("電車", "123", "Hello")など
bool ブール 真偽値(True, False)など