2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-07-04

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

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?