yamanekko版mruby-ev3rtのAPIリファレンス


EV3RT

TOPPERS/EV3RTをmrubyから使用できるようにしたものです。
クラス名はEV3RT C++ API、定数名はEV3RT C APIに合わせています。

※ バランサークラス(EV3RT::Balancer)はETロボコン専用のクラスのため、ここには入れていません。(別記事で後日公開予定)

定数

ポート番号

PORT_1

PORT_2

PORT_3

PORT_4

TNUM_SENSOR_PORT

センサータイプ

ULTRASONIC_SENSOR

GYRO_SENSOR

TOUCH_SENSOR

COLOR_SENSOR

TNUM_SENSOR_TYPE

モーターポート

PORT_A

PORT_B

PORT_C

PORT_D

TNUM_MOTOR_PORT

モータータイプ

NONE_MOTOR

MEDIUM_MOTOR

LARGE_MOTOR

UNREGULATED_MOTOR

TNUM_MOTOR_TYPE

LEDカラー

LED_OFF

LED_RED

LED_GREEN

LED_ORANGE

ボタン

LEFT_BUTTON

RIGHT_BUTTON

UP_BUTTON

DOWN_BUTTON

ENTER_BUTTON

BACK_BUTTON

TNUM_BUTTON

シリアルポート

SIO_PORT_UART

SIO_PORT_BT

SIO_PORT_LCD

EV3RT::Battery

本体のバッテリーの状態を取得するためのクラスです。

コンストラクタ

new()

インスタンスメソッド

battery_voltage()

バッテリーの電圧を取得します。
内部でev3_battery_voltage_mV()を呼び出しています。

戻り値:バッテリーの電圧(mV)

※ 互換性のため「batteryVoltage()」も残していますが、将来的に廃止の予定です。

battery_current()

バッテリーの電流を取得します。
内部でev3_battery_current_mA()を呼び出しています。

戻り値:バッテリの電流(mA)

※ 互換性のため「batteryCurrent()」も残していますが、将来的に廃止の予定です。

EV3RT::Button

本体のボタンを操作するためのクラスです。

コンストラクタ

new(type)

typeで指定されたボタンを操作できるようにします。
typeに指定できるものは、定数「ボタン」で定義してある定数です。

ex ) button = EV3RT::Button.new(LEFT_BUTTON)

インスタンスメソッド

pressed?

ボタンの押下状態を取得します。
内部でev3_button_is_pressed()を呼び出しています。

戻り値:
true:押されている状態
false:押されていない状態

EV3RT::Clock

コンストラクタ

new()

内部で保持している「開始時刻」に現在時刻(絶対時刻(マイクロ秒))をセットします

インスタンスメソッド

reset()

内部で保持している「開始時刻」を現在時刻(絶対時刻(マイクロ秒))にリセットします

now()

開始時刻からの経過時刻(現在時刻から内部で保持していた「開始時刻」を引いた値)を返します

戻り値:
開始時刻からの経過時刻(マイクロ秒)

wait(duration)

内部でTOPPERSのdly_tsk(duration)を呼び出しています。

sleep(duration)

内部でTOPPERSのtslp_tsk(duration)を呼び出しています。

utim

TOPPERSのget_utmで取得した値を返します。
(現在時刻(絶対時刻(マイクロ秒))を取得します)

戻り値:
get_utmで取得した現在時刻

EV3RT::ColorSensor

カラーセンサーを操作するクラスです。

定数

R

RGBのR

G

RGBのG

B

RGBのB

定数 カラーセンサーで識別できる色

COLOR_NONE

無色。数値で指定する場合は0

BLACK

黒。数値で指定する場合は1

BLUE

青。数値で指定する場合は2

GREEN

緑。数値で指定する場合は3

YELLOW

黄色。数値で指定する場合は4

RED

赤。数値で指定する場合は5

WHITE

白。数値で指定する場合は6

BROWN

茶色。数値で指定する場合は7

コンストラクタ

new(port)

portで指定されたポートに接続されているカラーセンサーを操作します。
portに指定できるものは、定数「ポート」で定義してある定数です。

インスタンスメソッド

brightness()

カラーセンサーで反射光の強さを測定します。
内部でev3_color_sensor_get_reflect()を呼び出しています。

戻り値:
反射光の強さ(0〜100)

rgb

R,G,Bの値を測定します。
内部でev3_color_sensor_get_rgb_rawを呼び出しています。

戻り値:
R,G,Bの値をarrayで返します。

rgb_part

R,G,Bの値を測定し、引数で指定した一つだけ返します。
内部でev3_color_sensor_get_rgb_rawを呼び出しています。

引数:
Rまたは0,Gまたは1,Bまたは2のいずれか

戻り値:
引数で指定したRまたはGまたはBの値を返します。

color

色を測定します。
内部でev3_color_sensor_get_colorを呼び出しています。

戻り値:
測定結果の色を色番号(定数)で返します。

EV3RT::Random

mrbgemのRandomをTOPPERSでも使用できるようにしたものです。
参考) randomクラスについて

コンストラクタ

new(seed=nil)

seedが指定されている場合、seedを乱数のseedにすることができます。

クラスメソッド

rand(max=nil)

maxが指定されている場合、0以上、max未満の整数を返します。
指定されていない場合は0.0以上1.0未満の実数を返します。

戻り値:生成した乱数

srand(seed=nil)

seedが指定されている場合、seedを乱数のseedにすることができます。

戻り値:前回のseedを返します。

インスタンスメソッド

rand(max=nil)

maxが指定されている場合、0以上、max未満の整数を返します。
指定されていない場合は0.0以上1.0未満の実数を返します。

戻り値:生成した乱数

srand(seed=nil)

seedが指定されている場合、seedを乱数のseedにすることができます。

戻り値:前回のseedを返します。

EV3RT::GyroSensor

ジャイロセンサーを操作するクラスです。

コンストラクタ

new(port)

portで指定されたポートに接続されているジャイロセンサーを操作します。
portに指定できるものは、定数「ポート」で定義してある定数です。

インスタンスメソッド

angler_velocity()

ジャイロセンサーで角速度を測定した値を返します。
内部でev3_gyro_sensor_get_rate()を呼び出しています。

戻り値:角位置(単位は度/秒)

reset()

ジャイロセンサーの角位置をゼロにリセットします。
内部でev3_gyro_sensor_reset()を呼び出しています。

EV3RT::LCD

本体の液晶画面を操作するクラスです。

コンストラクタ

new()

クラスメソッド

print(message)

messageに指定された文字列をLCD(本体前面の液晶画面)に表示します。
前に表示していたものを消去してから書きます。

EV3RT::LED

本体についているLEDのON, OFFをするクラスです。

コンストラクタ

new()

インスタンスメソッド

on(color)

colorに指定された色で本体のLEDを点灯します。
可能な色は(EV3RT::GREEN, EV3RT::ORANGE, EV3RT::RED)です。
内部でev3_led_set_color()を呼び出しています。

off()

本体のLEDを消灯します。
内部でev3_led_set_color()を呼び出しています。

EV3RT::Motor

モーターを操作するクラスです。

コンストラクタ

new(port, motor_type)

portで指定されたポートに接続されているモーターを操作します。
portに指定できるものは、定数「ポート」で定義してある定数です。
motor_typeはportに接続されたモーターの種類を指定します。
motor_typeに指定できるものは、定数「モータータイプ」で定義してある定数です。

インスタンスメソッド

count()

モーターの角位置を取得します。
内部でev3_motor_get_counts()を呼び出しています。

戻り値:モーターの角位置(単位は度)。負の値は逆方向に回されたことを示します。

reset

モーターの角位置をゼロにリセットします。
モータの角位置センサの値を設定するのみ。モータの実際のパワーと位置に影響を与えません。
内部でev3_motor_reset_counts()を呼び出しています。

pwm=(value)

valueには-100〜100が設定可能です。(負の値の場合はモーターが逆回転します)
valueが0の場合、モーターをブレーキモードで停止します。
valueが0以外の場合、モーターのパワーをvalueに設定します。

valueが0の場合は、内部でev3_motor_stop(port, true)を呼び出しています。
valueが0以外の場合は、内部でev3_motor_set_power()を呼び出しています。
※ power=と同じです。

power=(value)

valueには-100〜100が設定可能です。(負の値の場合はモーターが逆回転します)
valueが0の場合、モーターをブレーキモードで停止します。
valueが0以外の場合、モーターのパワーをvalueに設定します。

valueが0の場合は、内部でev3_motor_stop(port, true)を呼び出しています。
valueが0以外の場合は、内部でev3_motor_set_power()を呼び出しています。

※ pwm=と同じです。

rotate(degrees, speed, blocking)

degrees 回転角度,マイナスの値でモータを逆方向に回転させることができます。
speed 回転速度,モータのフルスピードのパーセント値。0~100が設定可能です。
blocking true (回転が完了するまで待ちます), false (回転操作を待たずに戻ってきます。)

モーターを指定した角度分回転させます。
内部でev3_motor_rotate()が呼ばれます。

stop()

モーターを停止します。
(ブレーキをかけずに停止します。ブレーキをかけたい場合はPWM=0またはpower=0で呼んでください)
内部でev3_motor_stop(port, false)が呼ばれます。

EV3RT::Serial

シリアル通信の送受信を行います。

コンストラクタ

new(serial_port)

serial_portにログの出力先を指定します。
Bluetooth経由でログを送る場合はSIO_PORT_BTを指定してください。

インスタンスメソッド

write(message)

messageで指定された文字列を出力します。
内部でserial_wri_datが呼ばれます。

read_byte

1byte受信します。
ETロボコンのリモートスタートで使用することを想定しています。

EV3RT::SonarSensor

超音波センサー用のクラスです。
(TOPPERS C++ APIでは超音波センサークラスはSonarSensor、TOPPERS C APIではUltrasonic sensorなので注意してください)

コンストラクタ

new(port)

portで指定されたポートに接続されている超音波センサーを操作します。
portに指定できるものは、定数「ポート」で定義してある定数です。

インスタンスメソッド

distance()

超音波センサーで距離を測定します。

戻り値:距離(単位はセンチ)

EV3RT::Sound

本体から音を鳴らすクラスです。

コンストラクタ

new()

インスタンスメソッド

volume(value)

音量を調整します。

value ボリュームの値を0〜100の範囲で指定します。0を指定した場合はミュートになります。

play_tone(frequency, duration)

音を鳴らします。

frequency トーンの周波数(鳴らしたい音を定数で指定します。)
duration 出力持続時間(ミリ秒) SOUND_MANUAL_STOPを指定した場合は手動で停止する(offする)までなり続けます。

off

音を止めます。

EV3RT::Task

RTOSのタスク操作関連のクラスです。

クラスメソッド

sleep(timeout)

引数を指定しない場合にはTOPPERSのslp_tsk()、
引数を指定した場合にはTOPPERSのtslp_tsk(timeout)が呼ばれます。

delay(duration)

TOPPERSのdly_tsk(duration)が呼ばれます。

wakeup(task_id)

TOPPERSのwup_tsk(task_id)が呼ばれます。

active(task_id)

TOPPERSのact_tsk(task_id)が呼ばれます。

exit

TOPPERSのext_tsk()が呼ばれます。

start_cyclic(task_id)

TOPPERS/EV3RTのev3_sta_cyc(task_id)が呼ばれます。

stop_cyclic(task_id)

TOPPERS/EV3RTのev3_stp_cyc(task_id)が呼ばれます。

EV3RT::TouchSensor

タッチセンサーを操作するクラスです。

コンストラクタ

new(port)

portで指定されたポートに接続されているタッチセンサーを操作します。
portに指定できるものは、定数「ポート」で定義してある定数です。

インスタンスメソッド

pressed?()

タッチセンサーの状態を検出します。

戻り値: true 押されている、false 押されていない