สมอง#

การแนะนำ#

ใน VEX EXP C++ สมองจะถูกแทนด้วยคลาส brain คุณสร้างอ็อบเจ็กต์ Brain (หรือใช้ค่าเริ่มต้นที่โปรเจ็กต์จัดเตรียมไว้) จากนั้นเข้าถึงคุณสมบัติของ Brain ผ่านอ็อบเจ็กต์สมาชิกภายในนั้น

คลาสที่สืบทอดมา#

คลาส brain ทำหน้าที่เป็นคลาสพื้นฐานสำหรับคลาสที่สืบทอดต่อไปนี้:

  • Screen - คลาสนี้ให้การเข้าถึงหน้าจอสัมผัสสีในตัวของ Brain ซึ่งช่วยให้โปรแกรมสามารถแสดงข้อความ กราฟิก และรับอินพุตแบบสัมผัสได้

  • Timer - คลาสนี้มีเครื่องมือจับเวลาความละเอียดสูงสำหรับวัดเวลาที่ผ่านไปและควบคุมพฤติกรรมตามเวลาในโปรแกรม

  • Battery - คลาสนี้อนุญาตให้โปรแกรมตรวจสอบสถานะแบตเตอรี่ของสมอง รวมถึงแรงดันไฟฟ้า กระแสไฟฟ้า ความจุ และอุณหภูมิ

  • Button - คลาสนี้อนุญาตให้โปรแกรมโต้ตอบกับปุ่มต่างๆ ของสมอง

  • ThreeWirePort (triport / พอร์ตสามสาย) - คลาสนี้ให้สิทธิ์เข้าถึงพอร์ตสามสายของ Brain สำหรับเชื่อมต่อและควบคุมเซ็นเซอร์และอุปกรณ์รุ่นเก่า เช่น สวิตช์จำกัด โพเทนชิโอมิเตอร์ และ LED

  • SDcard - คลาสนี้ช่วยให้สามารถอ่านและเขียนข้อมูลลงในการ์ด SD ของ Brain เพื่อจัดเก็บไฟล์ บันทึกข้อมูล และโหลดทรัพยากรภายนอกได้

ตัวสร้างคลาส#

brain();

พารามิเตอร์#

คอนสตรัคเตอร์ brain ไม่ใช้พารามิเตอร์ใดๆ

หมายเหตุ#

  • ควรสร้างอ็อบเจ็กต์ brain เพียงหนึ่งเดียวในโปรเจ็กต์เท่านั้น

ตัวอย่าง#

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

ฟังก์ชันสมาชิก#

คลาส brain ประกอบด้วยฟังก์ชันสมาชิกต่อไปนี้:

  • playSound - เล่นเอฟเฟกต์เสียงในตัวของ Brain หนึ่งในนั้น

  • playNote - เล่นโน้ตดนตรีเป็นระยะเวลาที่กำหนด

  • programStop - หยุดโปรเจกต์ที่กำลังทำงานอยู่บน EXP Brain

  • timer - ส่งคืนค่าปัจจุบันของตัวจับเวลาภายในของ Brain ในหน่วยที่ระบุ

  • resetTimer - รีเซ็ตตัวจับเวลาภายในของสมองเป็นศูนย์และเริ่มจับเวลาใหม่

  • setTimer - ตั้งค่าตัวจับเวลาภายในของสมองเป็นค่าและหน่วยเวลาที่ระบุ

ก่อนเรียกใช้ฟังก์ชันสมาชิก brain ใดๆ จะต้องสร้างอินสแตนซ์ brain ก่อน ดังแสดงด้านล่าง:

// Create the EXP 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

หน่วยเวลาในการกลับมา:

  • seconds / sec - วินาที
  • msec - มิลลิวินาที

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");

ตั้งเวลา#

ตั้งค่าตัวจับเวลาภายในของสมองให้เป็นค่าและหน่วยเวลาที่กำหนดไว้

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

Parameters

พารามิเตอร์

พิมพ์

คำอธิบาย

value

double

เวลาที่จะตั้งค่าตัวจับเวลา โดยอิงจากค่า timeUnits ที่ระบุในพารามิเตอร์ units

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");