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 押されていない