مخ#

مقدمة#

في VEX EXP C++، يُمثَّل الدماغ بالفئة brain يمكنك إنشاء كائن الدماغ (أو استخدام الكائن الافتراضي المُقدَّم من المشروع) ثم الوصول إلى خصائص الدماغ من خلال كائناته الأعضاء.

الفئات المشتقة#

تُعتبر فئة brain فئة أساسية للفئات المشتقة التالية:

  • Screen - توفر هذه الفئة إمكانية الوصول إلى شاشة اللمس الملونة المدمجة في الدماغ، مما يسمح للبرامج بعرض النصوص والرسومات واستقبال مدخلات اللمس.

  • Timer - توفر هذه الفئة أدوات توقيت عالية الدقة لقياس الوقت المنقضي والتحكم في السلوك القائم على الوقت في البرامج.

  • Battery - تسمح هذه الفئة للبرامج بمراقبة حالة بطارية الدماغ، بما في ذلك الجهد والتيار والسعة ودرجة الحرارة.

  • Button - تسمح هذه الفئة للبرامج بالتفاعل مع أزرار الدماغ.

  • ThreeWirePort (triport / 3-Wire Port) - توفر هذه الفئة إمكانية الوصول إلى منافذ Brain ذات 3 أسلاك لتوصيل والتحكم في أجهزة الاستشعار والأجهزة القديمة مثل مفاتيح الحد، ومقاييس الجهد، ومصابيح LED.

  • SDcard - تتيح هذه الفئة القراءة من بطاقة SD الخاصة بالدماغ والكتابة إليها لتخزين الملفات وتسجيل البيانات وتحميل الموارد الخارجية.

مُنشئات الفئات#

brain();

حدود#

لا يستخدم مُنشئ الدماغ brain أي معلمات.

ملحوظات#

  • يجب إنشاء كائن واحد فقط من نوع brain في المشروع.

مثال#

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

الدوال الأعضاء#

تتضمن فئة brain الدوال الأعضاء التالية:

  • playSound - يقوم بتشغيل أحد المؤثرات الصوتية المدمجة في الدماغ.

  • playNote - يعزف نغمة موسيقية لمدة محددة.

  • programStop - يوقف المشروع قيد التشغيل حاليًا على EXP Brain.

  • timer - يعيد القيمة الحالية للمؤقت الداخلي للدماغ بالوحدات المحددة.

  • resetTimer - يعيد ضبط المؤقت الداخلي للدماغ إلى الصفر ويعيد تشغيل التوقيت.

  • setTimer - يقوم بتعيين المؤقت الداخلي للدماغ إلى قيمة ووحدة زمنية محددة.

قبل استدعاء أي من الدوال الأعضاء brain ، يجب إنشاء مثيل brain ، كما هو موضح أدناه:

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

تشغيل الصوت#

يقوم بتشغيل أحد الأصوات المدمجة في الدماغ.

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

Parameters

حدود

يكتب

وصف

sound

soundtype

الصوت المحدد الذي سيتم تشغيله من الدماغ.

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 - دو
  • 1 - ري
  • 2 - مي
  • 3 - فا
  • 4 - صول
  • 5 - لا
  • 6 - سي

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

مؤقت#

يُعيد القيمة الحالية للمؤقت الداخلي للدماغ بالوحدات المحددة.

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

ضبط المؤقت#

يضبط المؤقت الداخلي للدماغ على قيمة ووحدة زمنية محددة.

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

Parameters

المعلمة

يكتب

وصف

value

double

الوقت الذي يتم ضبط المؤقت عليه، بناءً على timeUnits المقدمة في المعلمة units.

units

timeUnits

الوحدة المستخدمة لتفسير القيمة value :

  • seconds / sec - ثوانٍ
  • msec - مللي ثانية

Return Values

هذه الدالة لا تُرجع قيمة.

Notes
  • يستمر المؤقت في العد التصاعدي بعد ضبطه.

  • يؤدي استدعاء setTimer 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");