脳#

導入#

VEX EXP C++では、脳は brain クラスで表されます。Brainオブジェクトを作成するか(またはプロジェクトにデフォルトで用意されているものを使用する)、そのメンバオブジェクトを介してBrainの機能にアクセスします。

派生クラス#

brain クラスは、以下の派生クラスの基底クラスとして機能します。

  • Screen - このクラスは、Brain の内蔵カラータッチスクリーンへのアクセスを提供し、プログラムがテキストやグラフィックを表示したり、タッチ入力を受け取ったりできるようにします。

  • Timer - このクラスは、プログラム内の経過時間を計測し、時間ベースの動作を制御するための高解像度タイミングユーティリティを提供します。

  • Battery - このクラスを使用すると、プログラムは電圧、電流、容量、温度など、Brain のバッテリーの状態を監視できます。

  • Button - このクラスを使用すると、プログラムが Brain のボタンとやり取りできます。

  • ThreeWirePort (triport / 3-Wire Port) - このクラスは、Brain の 3-Wire ポートへのアクセスを提供し、リミットスイッチ、ポテンショメータ、LED などの従来のセンサーやデバイスを接続および制御します。

  • SDcard - このクラスは、ファイルの保存、データロギング、外部リソースの読み込みのために、Brain の SD カードへの読み書きを可能にします。

クラスコンストラクタ#

brain();

パラメータ#

brain コンストラクタはパラメータを使用しません。

注記#

  • プロジェクト内で作成できる brain オブジェクトは1つだけです。

例#

// Create the EXP Brain
brain Brain = brain();

メンバーの機能#

brain クラスには、以下のメンバ関数が含まれています。

  • playSound - Brain に組み込まれているサウンドエフェクトの 1 つを再生します。

  • playNote - 特定の時間だけ音符を演奏します。

  • programStop - EXP Brain 上で現在実行中のプロジェクトを停止します。

  • timer - Brain の内部タイマーの現在の値を指定された単位で返します。

  • resetTimer - Brain の内部タイマーをゼロにリセットし、タイミングを再開します。

  • setTimer - Brain の内部タイマーを、指定された値と時間単位に設定します。

brain メンバー関数を呼び出す前に、以下に示すように brain インスタンスを作成する必要があります。

// Create the EXP Brain
brain Brain = brain();

サウンドを再生#

Brainに内蔵されているサウンドの一つを再生します。

Available Functions
void playSound(
    soundtype sound,
    uint32_t volume = 50 );

Parameters

パラメータ

タイプ

説明

sound

soundtype

Brainから再生する指定されたサウンド。

volume

uint32_t

オプション。再生される音量を0%から100%までの整数で指定します。デフォルト値は50%です。

サウンド名

サウンドを再生

alarm

alarm2

doorClose

fillup

headlightsOff

headlightsOn

powerDown

ratchet

ratchet2

siren

siren2

tada

tollBooth

wrench

wrongWay

wrongWaySlow

Return Values

この関数は値を返しません。

再生ノート#

脳から音符を再生します。

Available Functions

1 - 音符を演奏します。

void playNote(
    int32_t octave,
    int32_t note );

2 - 指定された時間と音量で音符を演奏します。

void playNote(
    int32_t octave,
    int32_t note,
    int32_t duration,
    int32_t volume = 50 );

Parameters

パラメータ

タイプ

説明

octave

int32_t

音符が演奏されるオクターブを表す整数:

  • 1 ~ 3 - 低音オクターブ
  • 4 ~ 7 - 高音オクターブ

note

int32_t

演奏する音符:

  • 0 - C
  • 1 - D
  • 2 - E
  • 3 - F
  • 4 - G
  • 5 - A
  • 6 - B

duration

int32_t

オプション。音符を演奏する時間(ミリ秒単位)。最大500ミリ秒まで。時間を指定しない場合、デフォルトの演奏時間は500ミリ秒です。

volume

int32_t

オプション。再生される音量を0%から100%までの整数で指定します。デフォルト値は50%です。

Return Values

この関数は値を返しません。

プログラム停止#

EXP Brain上で現在実行中のプロジェクトを停止します。

Available Functions
void programStop();

Parameters

この関数は引数を受け付けません。

Return Values

この関数は値を返しません。

Examples
// Stop the project when the Brain screen is pressed
while (true) {
  if (Brain.Screen.pressing()) {
    Brain.programStop();
  }
  wait(20, msec);
}

タイマー#

Brainの内部タイマーの現在の値を、指定された単位で返します。

Available Functions
double timer(
  timeUnits units );

Parameters

パラメータ

タイプ

説明

units

timeUnits

The unit of time to return:

  • seconds / sec - seconds
  • msec - milliseconds

Return Values

プログラム開始からの経過時間を、指定された単位で表す double 倍精度浮動小数点数を返します。

Examples
  • プロジェクトが開始されると、タイマーは自動的に作動します。

  • タイマーは resetTimer を使用してリセットできます。

Examples
// Stop the project after 3 seconds
while (Brain.timer(seconds) < 3) {
  wait(20, msec);
}

Brain.programStop();

リセットタイマー#

脳の内部タイマーをゼロにリセットします。その後、タイマーは直ちにゼロから再びカウントアップを開始します。

Available Functions
void resetTimer();

Parameters

この関数は引数を受け付けません。

Return Values

この関数は値を返しません。

Notes
  • タイマーはリセットされるとすぐに再びカウントを開始します。

  • resetTimer を呼び出すと、timer への後続の呼び出しによって返される値に影響します。

Examples
// Reset the timer and measure elapsed time
Brain.resetTimer();

while (Brain.timer(sec) < 5) {
  wait(20, msec);
}

// 5 seconds have elapsed since reset
Brain.Screen.print("5 seconds passed");

タイマーを設定#

Brainの内部タイマーを、指定された値と時間単位に設定します。

Available Functions
void setTimer(
  double value,
  timeUnits units );

Parameters

パラメータ

タイプ

説明

value

double

タイマーを設定する時間。これは、 units パラメータで指定された timeUnits に基づいて決定されます。

units

timeUnits

value パラメータを解釈するために使用される単位:

  • seconds / sec - 秒
  • msec - ミリ秒

Return Values

この関数は値を返しません。

Notes
  • タイマーは設定後もカウントダウンを続けます。

  • setTimer を呼び出すと、timer によって返される値がすぐに変更されます。

Examples
// Set the timer to start at 10 seconds
Brain.setTimer(10, sec);

// Wait until the timer is at 3 seconds
while (Brain.timer(sec) < 3) {
  wait(20, msec);
}

// 5 seconds have elapsed since setTimer was called
Brain.Screen.print("5 seconds passed");