نظام نقل الحركة#
مقدمة#
تتضمن مجموعة نقل الحركة عجلات ومحركات تتحكم في كيفية قيادة الروبوت وانعطافه. يمكن العثور على مجموعات نقل الحركة في نماذج مثل Code Base 2.0، وSuper Car، أو الروبوتات المصممة حسب الطلب.
Drivetrains use the Inertial Sensor in the Brain to detect crashes and help the robot move and turn precisely. At the start of each project, the drivetrain calibrates the Inertial Sensor automatically. Keep the robot still for about 2 seconds during calibration, so the robot can move and turn correctly.
توجد طرق عديدة لبرمجة نظام نقل الحركة. فيما يلي قائمة بجميع مكونات نظام نقل الحركة:
الإجراءات — تحريك الروبوت وتدويره.
drive — يحرك الروبوت للأمام أو للخلف إلى الأبد.
drive for — يحرك الروبوت للأمام أو للخلف لمسافة محددة.
القيادة حتى — يحرك الروبوت للأمام أو للخلف حتى يكتشف مستشعر العين جسمًا ما أو يكتشف الروبوت حدوث تصادم.
turn — يقوم بتدوير الروبوت إلى اليسار أو اليمين إلى الأبد.
turn for — يقوم بتدوير الروبوت إلى اليسار أو اليمين لعدد محدد من الدرجات.
استدارة إلى اتجاه — يُدير الروبوت ليواجه اتجاهًا محددًا من -359 إلى 359 درجة. سيسلك الروبوت أقصر مسار للوصول إلى الاتجاه المستهدف.
التحويل إلى الدوران — يحول الروبوت إلى دوران محدد.
توقف عن القيادة — يوقف حركة الروبوت.
الإعدادات — ضبط إعدادات نظام نقل الحركة.
ضبط سرعة القيادة — يخبر الروبوت بمدى سرعة القيادة.
ضبط سرعة الدوران — يخبر الروبوت بمدى سرعة الدوران.
set drive stoping — يحدد كيفية توقف الروبوت عن الحركة: عن طريق الكبح، أو الانزلاق، أو الثبات.
set drive timeout — يحدد عدد الثواني التي سيحاول فيها الروبوت إنهاء الحركة.
set drive heading — يغير اتجاه الروبوت الحالي إلى اتجاه جديد.
ضبط دوران المحرك — يغير دوران الروبوت الحالي إلى دوران جديد.
القيم — تحقق من حالة الحركة.
تم الانتهاء من القيادة — يشير إلى ما إذا كان الروبوت قد انتهى من الحركة.
اتجاه القيادة — يُبلغ عن اتجاه الروبوت الحالي من 0 إلى 359 درجة.
دوران المحرك — يُبلغ عن الدوران الحالي للروبوت.
سرعة القيادة — يبلغ عن مدى سرعة قيادة الروبوت، كنسبة مئوية من -100% إلى 100%.
الإجراءات#
يقود#
تقوم كتلة drive بتحريك الروبوت للأمام أو للخلف بشكل مستمر. سيستمر الروبوت في الحركة حتى يتم إعطاؤه إجراءً آخر، مثل الانعطاف أو التوقف.
تشغيل [للأمام v]
حدود |
وصف |
|---|---|
اتجاه |
اتجاه حركة الروبوت: إلى الأمام أو إلى الخلف. |
مثال
عند البدء :: hat events
[Build Used: Code Base 2.0]
[Drive forward then stop.]
تشغيل [للأمام v]
انتظر (2) ثانية
إيقاف القيادة
القيادة من أجل#
تقوم كتلة drive for بتحريك الروبوت للأمام أو للخلف لمسافة محددة. سينتظر البرنامج حتى ينتهي الروبوت من الحركة قبل تشغيل الكتلة التالية في المجموعة.
تشغيل [للأمام v] لمسافة [100] [مم v] ▶
حدود |
وصف |
|---|---|
اتجاه |
اتجاه حركة الروبوت: إلى الأمام أو إلى الخلف. |
مسافة |
المسافة التي يقطعها الروبوت. يمكن أن تكون هذه المسافة عددًا صحيحًا أو عددًا عشريًا. |
وحدة |
وحدة قياس المسافة: مم (ملليمترات) أو بوصات. |
ولا تنتظر |
حدد السهم ( ▶ ) لتوسيع الكتلة لتقول ولا تنتظر، حتى يتم تشغيل الكتلة التالية في المكدس على الفور. |
مثال
عند البدء :: hat events
[Build Used: Code Base 2.0]
[Drive back and forth.]
تشغيل [للأمام v] لمسافة [100] [مم v] ▶
تشغيل [للخلف v] لمسافة [4] [بوصة v] ▶
استمر بالقيادة حتى#
تقوم كتلة drive until بتحريك الروبوت للأمام أو للخلف حتى يكتشف مستشعر العين جسمًا ما أو يكتشف الروبوت حدوث تصادم.
تشغيل [للأمام v] حتى [كائن v] ▶
حدود |
وصف |
|---|---|
اتجاه |
اتجاه حركة الروبوت: إلى الأمام أو إلى الخلف. |
حالة |
الشرط الذي يوقف الروبوت: جسم أو اصطدام. |
ولا تنتظر |
حدد السهم ( ▶ ) لتوسيع الكتلة لتقول ولا تنتظر، حتى يتم تشغيل الكتلة التالية في المكدس على الفور. |
مثال
عند البدء :: hat events
[Build Used: Code Base 2.0]
[Turn right after a crash.]
تشغيل [للأمام v] حتى [تصادم v] ▶
استدر [يمين v] بمقدار (90) درجة ▶
دور#
تقوم كتلة الدوران بتدوير الروبوت يمينًا أو يسارًا بشكل مستمر. سيستمر الروبوت في الدوران حتى يتم إعطاؤه إجراءً آخر، مثل التوقف أثناء القيادة.
استدر [يمين v]
حدود |
وصف |
|---|---|
اتجاه |
اتجاه دوران الروبوت: يسار أو يمين. |
مثال
عند البدء :: hat events
[Build Used: Code Base 2.0]
[Turn right and left, then stop.]
استدر [يمين v]
انتظر [2] ثانية
استدر [يسار v]
انتظر [2] ثانية
إيقاف القيادة
استدر لـ#
تقوم كتلة turn for بتدوير الروبوت يمينًا أو يسارًا بزاوية محددة. ويكون الدوران نسبيًا لموقع الروبوت الحالي. سينتظر البرنامج حتى ينتهي الروبوت من الدوران قبل تنفيذ الكتلة التالية في المكدس.
استدر [يمين v] بمقدار (90) درجة ▶
حدود |
وصف |
|---|---|
اتجاه |
اتجاه دوران الروبوت: يسار أو يمين. |
زاوية |
عدد الدرجات التي يدور بها الروبوت. يمكن أن يكون هذا عددًا صحيحًا أو عددًا عشريًا. |
ولا تنتظر |
حدد السهم ( ▶ ) لتوسيع الكتلة لتقول ولا تنتظر، حتى يتم تشغيل الكتلة التالية في المكدس على الفور. |
مثال
عند البدء :: hat events
[Build Used: Code Base 2.0]
[Turn right then left.]
استدر [يمين v] بمقدار (90) درجة ▶
استدر [يسار v] بمقدار (90) درجة ▶
انعطف إلى العنوان#
الاتجاه هو المسار الذي يتجه إليه دماغ الروبوت، ويُقاس بالدرجات. تقوم كتلة الانعطاف إلى الاتجاه بتوجيه الروبوت نحو اتجاه محدد من -359 إلى 359 درجة. سيسلك الروبوت أقصر مسار للوصول إلى الاتجاه المستهدف.
اتجاه البداية هو صفر درجة.

سينتظر المشروع حتى ينتهي الروبوت من الدوران قبل تشغيل الكتلة التالية في المكدس.
استدر نحو الاتجاه [90] درجة ▶
حدود |
وصف |
|---|---|
عنوان |
الاتجاه الذي يجب أن يواجهه الروبوت كعدد صحيح، من -359 إلى 359 درجة. |
ولا تنتظر |
حدد السهم ( ▶ ) لتوسيع الكتلة لتقول ولا تنتظر، حتى يتم تشغيل الكتلة التالية في المكدس على الفور. |
مثال
عند البدء :: hat events
[Build Used: Code Base 2.0]
[Turn to face the cardinal directions.]
استدر نحو الاتجاه [90] درجة ▶
انتظر [1] ثانية
استدر نحو الاتجاه [180] درجة ▶
انتظر [1] ثانية
استدر نحو الاتجاه [270] درجة ▶
انتظر [1] ثانية
استدر نحو الاتجاه [0] درجة ▶
قم بالتدوير#
تقوم كتلة التحويل إلى دوران بتحويل الروبوت إلى دوران محدد.
الدوران هو مقدار دوران الروبوت، ويُقاس بالدرجات. في بداية المشروع، تُضبط قيمة الدوران على صفر درجة. كما يمكن ضبط الدوران باستخدام كتلة set drive rotation.
قيم الدوران مطلقة. وهذا يعني أن اتجاه الدوران يعتمد على دوران الروبوت الحالي. الدوران إلى اليمين يزيد من الدوران، والدوران إلى اليسار يقلل منه.
على سبيل المثال، إذا بدأ الروبوت من زاوية صفر درجة، ثم قمت بتدويره بزاوية 720 درجة، فسيدور إلى اليمين مرتين. وإذا قمت بعد ذلك بتدويره بزاوية 360 درجة، فسيدور إلى اليسار مرة واحدة، لأن 360 درجة أقل من 720 درجة.

سينتظر المشروع حتى ينتهي الروبوت من الدوران قبل تشغيل الكتلة التالية في المكدس.
استدر إلى دوران (90) درجة ▶
حدود |
وصف |
|---|---|
تناوب |
قيمة الدوران، بالدرجات، التي سيدور إليها الروبوت. يمكن أن تكون هذه القيمة عددًا صحيحًا. |
ولا تنتظر |
حدد السهم ( ▶ ) لتوسيع الكتلة لتقول ولا تنتظر، حتى يتم تشغيل الكتلة التالية في المكدس على الفور. |
مثال
عند البدء :: hat events
[Build Used: Code Base 2.0]
[Make one full turn to the right.]
استدر إلى دوران [360] درجة ▶
[Make another full turn to the right.]
استدر إلى دوران [720] درجة ▶
[Make one full turn to the left, returning to 360 degrees.]
استدر إلى دوران [360] درجة ▶
توقف عن القيادة#
تقوم كتلة إيقاف القيادة بإيقاف حركة الروبوت.
إيقاف القيادة
حدود |
وصف |
|---|---|
لا يحتوي هذا الجزء على أي معلمات. |
مثال
عند البدء :: hat events
[Build Used: Code Base 2.0]
[Drive forward then stop.]
تشغيل [للأمام v]
انتظر (2) ثانية
إيقاف القيادة
إعدادات#
ضبط سرعة القيادة#
تحدد كتلة ضبط سرعة القيادة سرعة قيادة الروبوت. كلما زادت النسبة المئوية، زادت سرعة قيادة الروبوت، وكلما انخفضت النسبة المئوية، قلت سرعته.
يبدأ كل مشروع بالروبوت وهو يقود بسرعة 50% بشكل افتراضي.
ملاحظة: السرعة العالية تجعل الروبوت يتحرك بسرعة أكبر، لكنها قد تكون أقل دقة. السرعة المنخفضة تجعل الروبوت يتحرك ببطء، لكنها أكثر دقة.
اضبط سرعة القيادة إلى (50) %
حدود |
وصف |
|---|---|
سرعة |
السرعة التي يتم القيادة بها تتراوح من 0% إلى 100%. |
مثال
عند البدء :: hat events
[Build Used: Code Base 2.0]
[Drive at different velocities.]
تشغيل [للأمام v] لمسافة [100] [مم v] ▶
انتظر [1] ثانية
[Drive slow.]
اضبط سرعة القيادة إلى (20) %
تشغيل [للأمام v] لمسافة [100] [مم v] ▶
انتظر [1] ثانية
[Drive fast.]
اضبط سرعة القيادة إلى (100) %
تشغيل [للأمام v] لمسافة [100] [مم v] ▶
ضبط سرعة الدوران#
تحدد كتلة ضبط سرعة الدوران سرعة دوران الروبوت. كلما زادت النسبة المئوية، زادت سرعة دوران الروبوت، وكلما انخفضت النسبة المئوية، قلت سرعة دورانه.
يبدأ كل مشروع بالروبوت وهو يدور بسرعة 50% بشكل افتراضي.
ملاحظة: السرعة العالية تجعل الروبوت يدور بشكل أسرع، ولكن قد تكون دقته أقل. السرعة المنخفضة تجعل الروبوت يدور بشكل أبطأ، ولكنه يكون أكثر دقة.
اضبط سرعة الدوران إلى [50]%
حدود |
وصف |
|---|---|
سرعة |
سرعة الانعطاف من 0% إلى 100%. |
مثال
عند البدء :: hat events
[Build Used: Code Base 2.0]
[Turn at different velocities.]
استدر [يمين v] بمقدار [180] درجة ▶
انتظر [1] ثانية
[Turn fast.]
اضبط سرعة الدوران إلى [100]%
استدر [يمين v] بمقدار [180] درجة ▶
مجموعة إيقاف القيادة#
تحدد كتلة المكدس set drive stop كيفية توقف الروبوت عن الحركة: عن طريق الكبح أو الانزلاق أو الثبات.
اضبط وضع إيقاف القيادة إلى [فرملة v]
حدود |
وصف |
|---|---|
سلوك التوقف |
كيفية توقف الروبوت:
|
إذا لم يتم استخدام هذه الكتلة، فسيستخدم الروبوت الفرامل عند التوقف.
مثال
عند البدء :: hat events
[Build Used: Code Base 2.0]
[Drive, then coast to a stop.]
اضبط سرعة القيادة إلى (100) %
اضبط وضع إيقاف القيادة إلى [انزلاق v]
تشغيل [للأمام v]
انتظر [2] ثانية
إيقاف القيادة
ضبط مهلة محرك الأقراص#
تحدد كتلة set drive timeout عدد الثواني التي سيحاول فيها الروبوت إكمال حركة معينة. إذا لم يتمكن الروبوت من إكمالها خلال هذا الوقت، فسيتوقف عن المحاولة وينتقل إلى الكتلة التالية في المكدس. هذا يمنع الروبوت من التوقف في حركة معينة.
اضبط مهلة القيادة إلى [1] ثانية
حدود |
وصف |
|---|---|
وقت |
عدد الثواني التي يمكن للروبوت خلالها محاولة إكمال حركة معينة. يمكن أن يكون هذا العدد صحيحًا أو عشريًا. |
مثال
عند البدء :: hat events
[Build Used: Code Base 2.0]
[Drive as far as possible for 1 second before turning right.]
اضبط مهلة القيادة إلى [1] ثانية
تشغيل [للأمام v] لمسافة [25] [بوصة v] ▶
استدر [يمين v] بمقدار [90] درجة ▶
حدد اتجاه القيادة#
الاتجاه هو المسار الذي يتجه إليه دماغ الروبوت، ويُقاس بالدرجات. تقوم كتلة set drive heading بتغيير اتجاه الروبوت الحالي إلى قيمة اتجاه جديدة.
على سبيل المثال، إذا استدار الروبوت ليواجه اليمين، فإن ضبط اتجاهه على صفر درجة يجعل وضعية مواجهة اليمين هي الصفر الجديدة. بعد ذلك، يمكن للروبوت أن يستدير إلى أوضاع أخرى بناءً على هذا الاتجاه الجديد.
اضبط اتجاه القيادة إلى [0] درجة
حدود |
وصف |
|---|---|
عنوان |
قيمة الاتجاه، بالدرجات، التي سيتم ضبطها للروبوت. يمكن أن تكون هذه القيمة عددًا صحيحًا من 0 إلى 359. |
مثال
عند البدء :: hat events
[Build Used: Code Base 2.0]
[Face the new 0 degree heading.]
اضبط اتجاه القيادة إلى [90] درجة
استدر نحو الاتجاه [0] درجة ▶
ضبط دوران محرك الأقراص#
الدوران هو مقدار دوران الروبوت، ويُقاس بالدرجات. في بداية المشروع، تُضبط قيمة الدوران على صفر درجة. تقوم كتلة set drive rotation بتغيير قيمة الدوران الحالية للروبوت إلى قيمة جديدة.
على سبيل المثال، إذا أكمل الروبوت دورتين كاملتين إلى اليمين، ستكون قيمة دورانه 720 درجة. ضبط قيمة الدوران على 0 درجة سيعيد ضبطها من 720 إلى 0 درجة. بعد ذلك، يمكن للروبوت الدوران وفقًا لهذه القيمة الجديدة.
اضبط دوران القيادة إلى (0) درجة
حدود |
وصف |
|---|---|
تناوب |
قيمة الدوران، بالدرجات، التي سيتم ضبطها للروبوت. يمكن أن تكون هذه القيمة عددًا صحيحًا. |
مثال
عند البدء :: hat events
[Build Used: Code Base 2.0]
[Spin counterclockwise two times.]
اضبط دوران القيادة إلى [720] درجة
استدر إلى دوران [0] درجة ▶
قيم#
تم الانتهاء من القيادة#
تُشير كتلة “انتهى التحرك” المنطقية إلى ما إذا كان الروبوت قد انتهى من الحركة. ويمكن استخدام هذه الكتلة للتحكم في توقيت سلوكيات أخرى بناءً على حركة الروبوت.
صحيح — انتهى الروبوت من الحركة.
خطأ — الروبوت لا يزال يتحرك.
تعمل هذه الكتلة مع كتل مجموعة نقل الحركة التالية التي تحتوي على المعلمة وليس الانتظار: القيادة لمدة، القيادة حتى، الانعطاف لمدة، الانعطاف إلى الاتجاه، والانعطاف إلى الدوران.
<القيادة انتهت؟>
حدود |
وصف |
|---|---|
لا يحتوي هذا الجزء على أي معلمات. |
مثال
عند البدء :: hat events
[Build Used: Code Base 2.0]
[Turn when the drivetrain is done moving forward.]
تشغيل [للأمام v] لمسافة [100] [مم v] ◀ ولا تنتظر
انتظر [0.25] ثانية
للأبد
إذا <القيادة انتهت؟> إذن
استدر [يمين v] بمقدار [180] درجة ▶
توقف
وإلا
اطبع [Still moving...] ▶
انتظر [0.1] ثانية
امسح جميع الصفوف
اتجاه القيادة#
الاتجاه هو المسار الذي يتجه إليه دماغ الروبوت، ويُقاس بالدرجات. تقوم وحدة الإبلاغ عن اتجاه القيادة بالإبلاغ عن هذا الاتجاه من 0 إلى 359 درجة.
اتجاه بدء الروبوت هو 0 درجة.

(اتجاه القيادة بالدرجات)
حدود |
وصف |
|---|---|
لا يحتوي هذا الجزء على أي معلمات. |
مثال
عند البدء :: hat events
[Build Used: Code Base 2.0]
[Display the heading while turning.]
استدر [يمين v] بمقدار [450] درجة ◀ ولا تنتظر
للأبد
امسح جميع الصفوف
اطبع (اتجاه القيادة بالدرجات) ▶
انتظر [0.1] ثانية
دوران المحرك#
الدوران هو مقدار دوران الروبوت، ويُقاس بالدرجات. في بداية المشروع، تُضبط قيمة الدوران على صفر درجة. تُبلغ وحدة drive rotation عن الدوران الحالي للروبوت.
يؤدي الانعطاف يمينًا إلى زيادة الدوران، بينما يؤدي الانعطاف يسارًا إلى تقليله. على سبيل المثال، سيؤدي القيام بدورتين كاملتين إلى اليمين إلى دوران مقداره 720 درجة.

(دوران القيادة بالدرجات)
حدود |
وصف |
|---|---|
لا يحتوي هذا الجزء على أي معلمات. |
مثال
عند البدء :: hat events
[Build Used: Code Base 2.0]
[Display the rotation while turning.]
استدر [يمين v] بمقدار [450] درجة ◀ ولا تنتظر
للأبد
امسح جميع الصفوف
اطبع (دوران القيادة بالدرجات) ▶
انتظر [0.1] ثانية
سرعة القيادة#
تقوم وحدة الإبلاغ عن سرعة القيادة بالإبلاغ عن مدى سرعة قيادة الروبوت، كنسبة مئوية من -100% إلى 100%.
تشير القيمة الموجبة إلى أن الروبوت يتحرك للأمام. وتشير القيمة السالبة إلى أن الروبوت يتحرك للخلف.
(سرعة القيادة بـ %)
حدود |
وصف |
|---|---|
لا يحتوي هذا الجزء على أي معلمات. |
مثال
عند البدء :: hat events
[Build Used: Code Base 2.0]
[Display the velocity of the robot before and while moving.]
اطبع [Start: ] ▶
اطبع (سرعة القيادة بـ %) ▶
انتقل للصف التالي
تشغيل [للأمام v]
انتظر [0.5] ثانية
اطبع [Moving: ] ▶
اطبع (سرعة القيادة بـ %) ▶
إيقاف القيادة