| ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
|---|
ムーブハブ¶
- class MoveHub(top_side=Axis.Z, front_side=Axis.X)¶
LEGO® ブースト ムーブハブ。
ハブ内蔵ステータスライトの利用
- light.off()¶
ライトの消灯。
- light.blink(color, durations)¶
指定の色で、指定の時間だけライトを点灯・消灯して点滅させます。
プログラムの残りの部分が動作している間、ライトは無限に点滅し続けます。
このメソッドは、基本的で、よく使うパターンを作成する簡易な方法を提供します。より一般的で複数色のパターンを作成するには、代わりに
animate()を使用してください。
- light.animate(colors, interval)¶
指定の間隔で1つずつ表示される色のシーケンスでライトをアニメートします。
このアニメーションはバックグラウンドで実行され、プログラムの他の部分は継続的に実行されます。アニメーションが完了すると、繰返し実行します。
IMU の利用
- imu.up() Side¶
現在、ハブのどちらの面を上に向けているかをチェックします。
- 戻り値:
Side.TOP,Side.BOTTOM,Side.LEFT,Side.RIGHT,Side.FRONT,Side.BACKのいずれか。
- imu.tilt() Tuple[int, int]¶
ピッチ角とロール角を取得します。これは、 ユーザー指定の基準となる向き からの相対的なものです。
回転の順序は、ピッチ角、ロール画です。これはロボットのY軸に沿った正回転と、X軸に沿った正回転に相当します。
- 戻り値:
ピッチ角とロール角のタプル(度単位)。
- imu.acceleration() Tuple[int, int, int]: mm/s²¶
デバイスの加速度を取得します。
- 戻り値:
3軸すべてのに沿った加速度
バージョン 3.2 で変更: 加速度の単位を m/s² から mm/s² に変更しました。
バッテリー値の利用
- battery.voltage() int: mV¶
バッテリーの電圧を取得します。
- 戻り値:
バッテリーの電圧
- battery.current() int: mA¶
バッテリーから供給される電流を取得します。
- 戻り値:
バッテリーの電流。
ボタンとシステム制御
- system.info() dict¶
ハブに関する情報を、以下のキーを持つ辞書として取得します:
"name": ハブの名前。これは Bluetooth 接続時に表示される名前です。"reset_reason": ハブが(再)起動した理由。通常の電源オフ後に起動した場合は0になります。ファームウェア更新後など、自動的に再起動した場合には1になります。ウォッチドッグタイムアウトによるクラッシュ(ファームウェアの問題を示唆)した場合には2になります。"host_connected_ble": ハブが Bluetooth 経由でコンピュータ、タブレット、スマートフォンなどに接続されていればTrue、さもなければFalse。"host_connected_usb": ハブが USB 経由でコンピュータ、タブレット、スマートフォンなどに接続されていればTrue、さもなければFalse。"program_start_type": プログラムの開始方法。ハブの電源オン時に自動的に開始した場合には1になります。ハブのボタンで開始された場合には2になります。接続されたコンピュータから開始された場合には3になります。"program_id": 現在実行しているプログラムのプログラム(スロット)番号。
- 戻り値:
システム情報を持つ辞書。
バージョン 3.6 で変更: 名前とリセット理由は、以前は別々のメソッドとして提供されていましたが、現在は info 辞書に含まれています。 ただし、後方互換性のために従来のメソッドも引き続き利用可能です。
- system.set_stop_button(button)¶
実行中のスクリプトを停止させるボタンまたはボタンの組み合わせを設定します。
デフォルトでは実行中のスクリプトを停止するのにセンターボタンを使います。この動作を変更または無効にして、センターボタンを他の用途に使えるようにできます。
- パラメータ:
button (Button) --
Button.CENTER、または複数のボタンのタプルを指定します。停止ボタンを完全に無効にするにはNoneを指定します。望むなら、中央ボタンを3秒間押すことで、ハブをオフにできます。
- system.storage(offset, write=)¶
- system.storage(offset, read=) bytes
バイナリデータを永続ストレージに読み書きします。
これにより、次にプログラムを実行するときに使えるデータを保存できます。
データは通常、ハブの電源をオフにしたときにフラッシュメモリーに保存されます。ハブを起動したままバッテリーを外すと保存されません。
一度保存されたデータは、バッテリーをを外しても残ります。
- パラメータ:
- 戻り値:
読込み場合は読み込んだバイト数、書出しの場合は
None。- 例外:
ValueError -- 許容範囲外のデータを読み書きしようとした場合。
このハブには最大128バイトのデータを保存できます。データは Pybricks のファームウェアをアップデートしたとき、または元のファームウェアに戻したときにクリアされます。
- system.reset_storage()¶
すべてのユーザ設定をデフォルト値にリセットし、ユーザプログラムを消去します。
- system.shutdown()¶
プログラムを停止し、ハブをシャットダウンします。
ステータスライトの利用例¶
ライトの点灯と消灯¶
from pybricks.hubs import MoveHub
from pybricks.parameters import Color
from pybricks.tools import wait
# ハブを初期化。
hub = MoveHub()
# ライトの点灯と消灯を5回繰り返す。
for i in range(5):
hub.light.on(Color.RED)
wait(1000)
hub.light.off()
wait(500)
ライトの点滅¶
from pybricks.hubs import MoveHub
from pybricks.parameters import Color
from pybricks.tools import wait
# ハブを初期化。
hub = MoveHub()
# 赤で点滅。
hub.light.blink(Color.RED, [500, 500])
wait(10000)
# 緑の遅い点滅と速い点滅を続ける。
hub.light.blink(Color.GREEN, [500, 500, 50, 900])
wait(10000)
IMU の利用例¶
上がどっちかのテスト¶
from pybricks.hubs import MoveHub
from pybricks.parameters import Color, Side
from pybricks.tools import wait
# ハブを初期化。
hub = MoveHub()
# それぞれの側の色を辞書に定義。
SIDE_COLORS = {
Side.TOP: Color.RED,
Side.BOTTOM: Color.BLUE,
Side.LEFT: Color.GREEN,
Side.RIGHT: Color.YELLOW,
Side.FRONT: Color.MAGENTA,
Side.BACK: Color.BLACK,
}
# 検出した側を元に色を更新し続ける。
while True:
# ハブの上になっている側をチェック。
up_side = hub.imu.up()
# 検出した側を元に色を変更。
hub.light.on(SIDE_COLORS[up_side])
# 結果の表示も行う。
print(up_side)
wait(50)
加速度の読取り¶
from pybricks.hubs import MoveHub
from pybricks.tools import wait
# ハブを初期化。
hub = MoveHub()
# 加速度のタプルを取得。
print(hub.imu.acceleration())
while True:
# 角軸の個別の加速度を取得。
x, y, z = hub.imu.acceleration()
print(x, y, z)
# 何がプリントされているかが確認できるように待機。
wait(100)