| ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
|---|
汎用 UART デバイス¶
Powered Up と EV3 は、汎用UARTデバイスをハブに接続することをサポートしています。ピン配置は以下に示します。コネクタの向きに注意してください。EV3の場合、内部配線の色は下の図と一致します。
ピン |
Powered Up (UART) |
EV3 (UART sensor) |
EV3 (I2C sensor) |
|---|---|---|---|
1 (white) |
Motor Terminal 1 |
Optional battery power |
Optional battery power |
2 (black) |
Motor Terminal 2 |
N/A |
N/A |
3 (red) |
Ground |
Ground |
Ground |
4 (green) |
VCC (3.3 V) |
VCC (5 V) |
VCC (5 V) |
5 (yellow) |
Hub TX (Sensor RX) (3.3 V) |
Hub TX (Sensor RX) (3.3 V) |
SCL (master) (3.3 V) |
6 (blue) |
Hub RX (Sensor TX) (3.3 V) |
Hub RX (Sensor TX) (3.3 V) |
SDA (master) (3.3 V) |
- class UARTDevice(port, baudrate=115200, timeout=None, power_pin=0)¶
汎用 UART デバイス。
注:
power_pinオプションは自己責任で使用してください。ピンに電源を供給する場合、注意しないとハブやデバイスが損傷する可能性があります。このオプションを使う場合、リスクを理解していることを確認するよう求められます。- パラメータ:
port (Port) -- デバイスが接続されているポート。Powered UPハブでは、すべてのポートをサポートしています。EV3では、センサーポートのみをサポートしています。
baudrate (int) -- UART デバイスのボーレート
timeout (Number, ms) -- read と write 中にどれくらいの時間待機してから諦めるかを指定します。
Noneを指定すると永久に待機します。power_pin (int) -- デバイスの電源要件。ピンに電源を供給しない場合は 0 (デフォルト)を指定してください。Powered UP ハブでは、ピン 1 または 2 にそれぞれ
1または2を指定してください。これにより、ピンにバッテリー電源が供給され、モーターを駆動するのと同等になります。EV3でピン 1 にバッテリー電源を供給するには1を指定してください。ただし、利用できる電流は最小限です。
- 例外:
ValueError --
timeoutが 0 以下の場合に発生します。
- awaitread(length=1) bytes¶
バッファから指定したバイト数分を読み取ります。
プログラムは、要求したバイト数を受信するまで待機します。
timeout時間よりも長くかかる場合はETIMEDOUT例外が発生します。- パラメータ:
length (int) -- 読み込むバイト数。少なくとも1バイトの指定が必要です。
- 戻り値:
デバイスから返されたバイト列。
- 例外:
ValueError --
lengthが 1 を下回っている場合に発生します。OSError -- 読み取りに
timeoutより時間がかかった場合に発生します。
- read_all() bytes¶
バッファ内の現在すべてのバイト列を読み取ります。バッファが空であっても、待機せずにすぐに戻ります。
- 戻り値:
バッファに現在格納されているバイト列。読み取るものがない場合は空のバイト列オブジェクト。
- set_baudrate(baudrate)¶
UART デバイスのボーレートを変更します。
- パラメータ:
baudrate (int) -- すべての値がサポートされているとは限りません。
- 例外:
ValueError -- If
baudrateis less than 1.
- awaitwait_until(pattern)¶
特定のバイトシーケンスが受信されるまで待機します。パターンに一致しないバイトは破棄されます。
- パラメータ:
pattern (bytes) -- 待機するバイトシーケンス。空であってはなりません。
- 例外:
ValueError --
patternが空の場合に発生します。OSError -- このメソッドがすでに進行中である場合に発生します。
- clear()¶
受信バッファを空にします。
例: UART デバイスへの読み書き
#!/usr/bin/env pybricks-micropython
from pybricks.hubs import EV3Brick
from pybricks.iodevices import UARTDevice
from pybricks.parameters import Port
from pybricks.media.ev3dev import SoundFile
# EV3 の初期化
ev3 = EV3Brick()
# センサーポート 2 UART デバイスとして初期化
ser = UARTDevice(Port.S2, baudrate=115200)
# データを書き出し
ser.write(b"\r\nHello, world!\r\n")
# データが届くまで音を鳴らす
for i in range(3):
ev3.speaker.play_file(SoundFile.HELLO)
ev3.speaker.play_file(SoundFile.GOOD)
ev3.speaker.play_file(SoundFile.MORNING)
print("Bytes waiting to be read:", ser.waiting())
# 音声再生中に受信したすべてのデータを読み取る
data = ser.read_all()
print(data)