สมอง#
การแนะนำ#
ใน VEX EXP C++ สมองจะถูกแทนด้วยคลาส brain คุณสร้างอ็อบเจ็กต์ Brain (หรือใช้ค่าเริ่มต้นที่โปรเจ็กต์จัดเตรียมไว้) จากนั้นเข้าถึงคุณสมบัติของ Brain ผ่านอ็อบเจ็กต์สมาชิกภายในนั้น
คลาสที่สืบทอดมา#
คลาส brain ทำหน้าที่เป็นคลาสพื้นฐานสำหรับคลาสที่สืบทอดต่อไปนี้:
Screen- คลาสนี้ให้การเข้าถึงหน้าจอสัมผัสสีในตัวของ Brain ซึ่งช่วยให้โปรแกรมสามารถแสดงข้อความ กราฟิก และรับอินพุตแบบสัมผัสได้Timer- คลาสนี้มีเครื่องมือจับเวลาความละเอียดสูงสำหรับวัดเวลาที่ผ่านไปและควบคุมพฤติกรรมตามเวลาในโปรแกรมBattery- คลาสนี้อนุญาตให้โปรแกรมตรวจสอบสถานะแบตเตอรี่ของสมอง รวมถึงแรงดันไฟฟ้า กระแสไฟฟ้า ความจุ และอุณหภูมิButton- คลาสนี้อนุญาตให้โปรแกรมโต้ตอบกับปุ่มต่างๆ ของสมองThreeWirePort(triport/ พอร์ตสามสาย) - คลาสนี้ให้สิทธิ์เข้าถึงพอร์ตสามสายของ Brain สำหรับเชื่อมต่อและควบคุมเซ็นเซอร์และอุปกรณ์รุ่นเก่า เช่น สวิตช์จำกัด โพเทนชิโอมิเตอร์ และ LEDSDcard- คลาสนี้ช่วยให้สามารถอ่านและเขียนข้อมูลลงในการ์ด SD ของ Brain เพื่อจัดเก็บไฟล์ บันทึกข้อมูล และโหลดทรัพยากรภายนอกได้
ตัวสร้างคลาส#
brain();
พารามิเตอร์#
คอนสตรัคเตอร์ brain ไม่ใช้พารามิเตอร์ใดๆ
หมายเหตุ#
ควรสร้างอ็อบเจ็กต์
brainเพียงหนึ่งเดียวในโปรเจ็กต์เท่านั้น
ตัวอย่าง#
// Create the EXP Brain
brain Brain = brain();
ฟังก์ชันสมาชิก#
คลาส brain ประกอบด้วยฟังก์ชันสมาชิกต่อไปนี้:
playSound- เล่นเอฟเฟกต์เสียงในตัวของ Brain หนึ่งในนั้นplayNote- เล่นโน้ตดนตรีเป็นระยะเวลาที่กำหนดprogramStop- หยุดโปรเจกต์ที่กำลังทำงานอยู่บน EXP Braintimer- ส่งคืนค่าปัจจุบันของตัวจับเวลาภายในของ Brain ในหน่วยที่ระบุresetTimer- รีเซ็ตตัวจับเวลาภายในของสมองเป็นศูนย์และเริ่มจับเวลาใหม่setTimer- ตั้งค่าตัวจับเวลาภายในของสมองเป็นค่าและหน่วยเวลาที่ระบุ
ก่อนเรียกใช้ฟังก์ชันสมาชิก brain ใดๆ จะต้องสร้างอินสแตนซ์ brain ก่อน ดังแสดงด้านล่าง:
// Create the EXP Brain
brain Brain = brain();
เล่นเสียง#
เล่นเสียงหนึ่งในเสียงที่ติดตั้งมากับตัวเครื่อง
Available Functionsvoid playSound(
soundtype sound,
uint32_t volume = 50 );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
เสียงที่ระบุให้เล่นจากสมอง (Brain) |
|
|
(ไม่บังคับ) ระดับเสียงที่จะเล่นสามารถระบุได้เป็นจำนวนเต็มตั้งแต่ 0% ถึง 100% ค่าเริ่มต้นคือ 50% |
ชื่อเสียง |
เล่นเสียง |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ฟังก์ชันนี้ไม่ส่งค่ากลับ
เล่นโน้ต#
เล่นโน้ตดนตรีจากสมอง
Available Functions1 - เล่นโน้ตดนตรี
void playNote( int32_t octave, int32_t note );
Parameters2 - เล่นโน้ตตามระยะเวลาและระดับเสียงที่กำหนด
void playNote( int32_t octave, int32_t note, int32_t duration, int32_t volume = 50 );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
ตัวเลขจำนวนเต็มที่แสดงถึงอ็อกเทฟที่เล่นโน้ตนั้น:
|
|
|
โน้ตที่ต้องเล่น:
|
|
|
(ไม่บังคับ) ระบุระยะเวลาในการเล่นโน้ตเป็นมิลลิวินาที สูงสุดไม่เกิน 500 มิลลิวินาที หากไม่ได้ระบุระยะเวลา ระบบจะใช้ค่าเริ่มต้นที่ 500 มิลลิวินาที |
|
|
(ไม่บังคับ) ระดับเสียงที่จะเล่นสามารถระบุได้เป็นจำนวนเต็มตั้งแต่ 0% ถึง 100% ค่าเริ่มต้นคือ 50% |
ฟังก์ชันนี้ไม่ส่งค่ากลับ
โปรแกรมหยุด#
หยุดโปรเจ็กต์ที่กำลังทำงานอยู่บน EXP Brain
Available Functionsvoid programStop();
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
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 Functionsdouble timer(
timeUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
หน่วยเวลาในการกลับมา:
|
ส่งคืนค่า double ซึ่งแสดงถึงเวลาที่ผ่านไปนับตั้งแต่โปรแกรมเริ่มต้น ในหน่วยที่ระบุ
ตัวจับเวลาจะเริ่มทำงานโดยอัตโนมัติเมื่อโครงการเริ่มต้นขึ้น
สามารถรีเซ็ตตัวจับเวลาได้โดยใช้
resetTimer
// Stop the project after 3 seconds
while (Brain.timer(seconds) < 3) {
wait(20, msec);
}
Brain.programStop();
รีเซ็ตตัวจับเวลา#
รีเซ็ตตัวจับเวลาภายในของสมองให้เป็นศูนย์ จากนั้นตัวจับเวลาจะเริ่มนับขึ้นใหม่จากศูนย์ทันที
Available Functionsvoid resetTimer();
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
Return Valuesฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesตัวจับเวลาจะเริ่มนับใหม่ทันทีหลังจากรีเซ็ต
การเรียก
resetTimerส่งผลต่อค่าที่ส่งคืนโดยการเรียกtimerในภายหลัง
// 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 Functionsvoid setTimer(
double value,
timeUnits units );
พารามิเตอร์ |
พิมพ์ |
คำอธิบาย |
|---|---|---|
|
|
เวลาที่จะตั้งค่าตัวจับเวลา โดยอิงจากค่า |
|
|
หน่วยที่ใช้ในการตีความค่า
|
ฟังก์ชันนี้ไม่ส่งค่ากลับ
Notesหลังจากตั้งค่าเสร็จแล้ว ตัวจับเวลาจะนับถอยหลังต่อไป
การเรียก
setTimerจะเปลี่ยนค่าที่ส่งคืนโดยtimerทันที
// 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");