ذراع سداسي المحاور#

مقدمة#

يقوم ذراع الروبوت VEX ذو المحاور الستة بتحريك أداة النهاية في الفضاء ثلاثي الأبعاد، ويتحكم في اتجاه أداة النهاية، ويعمل مع الأدوات المرفقة مثل أداة التقاط المغناطيس أو أداة حامل القلم.

فيما يلي قائمة بجميع الطرق المتاحة:

الإجراءات — تحريك الذراع سداسي المحاور إلى المواضع أو الاتجاهات المطلوبة.

  • move_to — ينقل أداة النهاية إلى إحداثيات x و y و z المحددة.

  • move_inc — يحرك أداة النهاية بمسافة محددة من موضعها الحالي.

  • move_end_effector_to — يقوم بتدوير أداة النهاية إلى اتجاه محدد للانعطاف والدوران والميل.

  • move_end_effector_inc — يقوم بتدوير أداة النهاية بمقدار محدد من الانحراف والدوران والميل.

المُعدِّلات — اضبط إعدادات الحركة والأدوات والتحكم.

  • set_speed — يحدد سرعة الحركة المستخدمة بواسطة الذراع ذي المحاور الستة.

  • set_end_effector_type — يحدد نوع أداة النهاية المرفقة بالذراع ذي المحاور الستة.

  • set_end_effector_magnet — يقوم بتشغيل أو تحرير أداة التقاط المغناطيس.

  • set_pen_offset — يحدد إزاحة المحور z المستخدمة مع أداة حامل القلم.

  • set_control_stop — تمكين إيقاف التحكم للذراع ذي المحاور الستة.

  • set_timeout — يحدد المهلة الزمنية المستخدمة بواسطة طرق حركة الذراع ذات 6 محاور.

المُسترجعات — تُعيد حالة الحركة، والموقع، والاتجاه، وقيم الاتصال.

  • is_done — تُرجع ما إذا كان ذراع المحور السداسي قد انتهى من الحركة.

  • get_x — تُرجع موضع x الحالي للمؤثر النهائي.

  • get_y — تُرجع موضع y الحالي للمؤثر النهائي.

  • get_z — تُرجع موضع z الحالي للمؤثر النهائي.

  • get_pitch — تُرجع درجة الصوت الحالية للمؤثر النهائي.

  • get_roll — تُرجع هذه الدالة قيمة الرمية الحالية للمؤثر النهائي.

  • get_yaw — تُرجع قيمة الانحراف الحالية للمؤثر النهائي.

  • can_arm_reach_to — تُرجع ما إذا كان بإمكان الذراع ذو المحاور الستة الوصول إلى موضع محدد.

  • can_arm_reach_inc — تُرجع ما إذا كان بإمكان الذراع ذو المحاور الستة التحرك بمسافة محددة.

  • can_end_effector_reach_to — تُرجع ما إذا كان بإمكان أداة النهاية الوصول إلى اتجاه محدد.

  • can_end_effector_reach_inc — تُرجع ما إذا كان بإمكان أداة النهاية الدوران بمقدار محدد.

  • get_timeout — تُرجع قيمة المهلة الحالية المستخدمة بواسطة طرق الحركة.

  • is_connected — تُرجع ما إذا كان الذراع ذو المحاور الستة متصلاً بالدماغ.

الوظائف المستدعاة — تشغيل الوظائف عند حدوث أحداث التفعيل.

  • control_stopped — يسجل وظيفة لتشغيلها عند تمكين إيقاف التحكم.

المنشئ — إنشاء كائن ذراع سداسي المحاور يدويًا.

  • Arm — إنشاء كائن ذراع سداسي المحاور.

هذه الصفحة مخصصة لاستخدام ذراع المحاور الستة بشكل مستقل مع بلاطة CTE. لاستخدام ذراع المحاور الستة مع مكونات أخرى لخلية عمل CTE، مثل أنظمة الهواء المضغوط أو السيور الناقلة، قم بتوصيل ذراع المحاور الستة بوحدة تحكم EXP Brain واستخدم صفحة EXP Arm المقابلة.

الإجراءات#

move_to#

move_to ينقل الذراع ذو المحاور الستة إلى إحداثيات x و y و z المحددة.

تُحدد إحداثيات x و y و z موضع أداة النهاية في الفضاء ثلاثي الأبعاد. استخدم can_arm_reach_to قبل هذه الطريقة إذا كان موضع الهدف قد يكون خارج نطاق عمل الذراع سداسي المحاور.

Usage:
arm.move_to(x, y, z, wait)

المعلمة

وصف

x

إحداثيات س لموقع الهدف بالملليمترات.

y

إحداثيات المحور الصادي لموقع الهدف بالملليمترات.

z

إحداثيات z لموقع الهدف بالملليمترات.

wait

اختياري. wait=True (افتراضي) يجعل المشروع ينتظر حتى اكتمال الحركة قبل المتابعة. wait=False يبدأ الحركة وينتقل فورًا إلى سطر الكود التالي.

# Move the 6-Axis Arm to (40, 140, 210)
arm.move_to(40, 140, 210)

# Start moving, then print the y-position while the arm moves
arm.move_to(-100, 200, 100, wait=False)

while not arm.is_done():
    brain.print(arm.get_y())
    brain.new_line()
    wait(0.25, SECONDS)

move_inc#

move_inc يحرك الذراع ذو المحاور الستة بمسافة محددة من موضعه الحالي على طول المحاور x و y و z.

استخدم هذه الطريقة للتحرك بالنسبة لموقع أداة النهاية الحالي. استخدم can_arm_reach_inc قبل هذه الطريقة إذا كان من المحتمل أن تضع الحركة ذراع المحاور الستة خارج نطاق عملها المتاح.

Usage:
arm.move_inc(x, y, z, wait)

المعلمة

وصف

x

المسافة التي يجب التحرك بها على طول المحور السيني بالملليمترات.

y

المسافة التي يجب التحرك بها على طول المحور الصادي بالملليمترات.

z

المسافة التي يجب التحرك بها على طول المحور z بالملليمترات.

wait

اختياري. wait=True (افتراضي) يجعل المشروع ينتظر حتى اكتمال الحركة قبل المتابعة. wait=False يبدأ الحركة وينتقل فورًا إلى سطر الكود التالي.

# Move the 6-Axis Arm 100 millimeters along the y-axis
arm.move_inc(0, 100, 0)

move_end_effector_to#

move_end_effector_to يقوم بتدوير الطرف النهائي للذراع ذي المحاور الستة إلى اتجاه محدد للانعطاف والدوران والميل.

يصف التوجيه كيفية دوران أداة النهاية. yaw يدور حول المحور z، roll يدور حول المحور x، و pitch يدور حول المحور y.

Usage:
arm.move_end_effector_to(yaw, roll, pitch, wait)

المعلمة

وصف

yaw

زاوية الانحراف المستهدفة، بالدرجات.

roll

زاوية دوران الهدف، بالدرجات.

pitch

زاوية ميل الهدف، بالدرجات.

wait

اختياري. wait=True (افتراضي) يجعل المشروع ينتظر حتى اكتمال الحركة قبل المتابعة. wait=False يبدأ الحركة وينتقل فورًا إلى سطر الكود التالي.

# Rotate the end effector to 90 degrees of roll
arm.move_end_effector_to(0, 90, 0)

move_end_effector_inc#

move_end_effector_inc يقوم بتدوير أداة نهاية الذراع ذات المحاور الستة بمقدار محدد من الانحراف والدوران والميل من اتجاهها الحالي.

استخدم هذه الطريقة للتدوير بالنسبة إلى الانحراف أو الدوران أو الميل الحالي للمؤثر النهائي.

Usage:
arm.move_end_effector_inc(yaw, roll, pitch, wait)

المعلمة

وصف

yaw

التغير في الانحراف، بالدرجات.

roll

التغير في الميل، بالدرجات.

pitch

التغير في درجة الصوت، بالدرجات.

wait

اختياري. wait=True (افتراضي) يجعل المشروع ينتظر حتى اكتمال الحركة قبل المتابعة. wait=False يبدأ الحركة وينتقل فورًا إلى سطر الكود التالي.

# Rotate the end effector -50 degrees in pitch
arm.move_end_effector_inc(0, 0, -50)

المتحولون#

set_speed#

set_speed يحدد سرعة الحركة التي يستخدمها الذراع ذو المحاور الستة لطرق الحركة.

يتم ضبط سرعة الذراع ذي المحاور الستة على 50% في بداية المشروع.

Usage:
arm.set_speed(speed)

المعلمة

وصف

speed

سرعة حركة الذراع ذي المحاور الستة، من 1 إلى 100 بالمائة.

# Set the 6-Axis Arm speed to 30%
arm.set_speed(30)

set_end_effector_type#

set_end_effector_type يحدد نوع أداة النهاية المرفقة بالذراع ذي المحاور الستة.

عند تغيير نوع أداة النهاية، يقوم ذراع المحور السداسي تلقائيًا بضبط إزاحة المحور Z لتتوافق مع الأداة المختارة. يتم ضبط نوع أداة النهاية على Arm.MAGNET عند بدء المشروع.

Usage:
arm.set_end_effector_type(type)

المعلمة

وصف

type

الأداة المرفقة بالذراع ذي المحاور الستة: Arm.MAGNET (أداة التقاط المغناطيس) أو Arm.PEN (أداة حامل القلم).

# Set the end effector type to the Pen Holder Tool
arm.set_end_effector_type(Arm.PEN)

set_end_effector_magnet#

set_end_effector_magnet يقوم بتشغيل أو تحرير أداة التقاط المغناطيس.

The magnet state stays active until another set_end_effector_magnet method changes it. The magnet state is reset to False at the start of a project.

Usage:
arm.set_end_effector_magnet(state)

المعلمة

وصف

state

حالة أداة التقاط المغناطيس: True لالتقاط الأشياء والاحتفاظ بها أو False لإسقاط أي شيء محمول والتوقف عن التقاط أشياء جديدة.

# Pick up objects and then drop them
arm.set_end_effector_type(Arm.MAGNET)
arm.set_end_effector_magnet(True)
wait(2, SECONDS)
arm.set_end_effector_magnet(False)

set_pen_offset#

set_pen_offset يحدد إزاحة المحور z المستخدمة عند توصيل أداة حامل القلم بالذراع ذي 6 محاور.

اضبط نوع أداة النهاية على Arm.PEN قبل استخدام هذه الطريقة. إذا لم يتم تحديد أداة حامل القلم، فلن يكون لهذه الطريقة أي تأثير.

إزاحة القلم هي المسافة من أعلى أداة حامل القلم إلى طرف قلم السبورة. عند بدء المشروع، تُضبط إزاحة القلم على 0أما إزاحة القلم بقيمة 0 فتضع نقطة الأصل لمحور Z للذراع عند نقطة اتصال أداة حامل القلم بالذراع سداسي المحاور.

Usage:
arm.set_pen_offset(zOffset)

المعلمة

وصف

zOffset

قيمة إزاحة القلم بالملليمترات.

# Set the end effector type to the Pen Holder Tool and set the pen offset
arm.set_end_effector_type(Arm.PEN)
arm.set_pen_offset(25)

set_control_stop#

set_control_stop يُمكّن إيقاف التحكم للذراع ذي المحاور الستة.

عند تفعيل خاصية إيقاف التحكم، يتوقف ذراع المحور السداسي فورًا عن أي حركة ولن يقوم بتشغيل أي طرق حركة أخرى للذراع حتى يتم إعادة تشغيل المشروع.

Usage:
arm.set_control_stop(state)

المعلمة

وصف

state

اختياري. True (افتراضي) يُفعّل إيقاف التحكم. False لا يُفعّل إيقاف التحكم.

# Stop the 6-Axis Arm and prevent further movement
arm.set_control_stop()

set_timeout#

set_timeout يحدد قيمة المهلة المستخدمة عند تحريك الذراع ذي المحاور الستة.

إذا لم تكتمل عملية النقل قبل انتهاء المهلة الزمنية، ينتقل المشروع إلى سطر التعليمات البرمجية التالي.

Usage:
arm.set_timeout(timeout, units)

المعلمة

وصف

timeout

قيمة المهلة الزمنية الجديدة.

units

اختياري. وحدة الوقت: MSEC (مللي ثانية، افتراضي)، SECONDS، أو SEC.

# Set the 6-Axis Arm timeout to 2 seconds
arm.set_timeout(2, SECONDS)

المحصلون#

is_done#

is_done تُرجع ما إذا كان ذراع المحور السداسي قد انتهى من الحركة.

تُعد هذه الطريقة مفيدة بعد استدعاء طريقة الحركة مع wait=False.

  • True — انتهى ذراع المحور السداسي من الحركة.

  • False — لا يزال الذراع ذو المحاور الستة يتحرك.

Usage:
arm.is_done()

حدود

وصف

لا تحتوي هذه الطريقة على أي معلمات.

# Display the 6-Axis Arm's y-position while it moves
arm.move_to(-100, 200, 100, wait=False)

while not arm.is_done():
    brain.print(arm.get_y())
    brain.new_line()
    wait(0.25, SECONDS)

get_x#

get_x تُرجع موضع x الحالي للمؤثر النهائي بالملليمترات.

استخدم هذه الطريقة لقراءة مكان وجود أداة النهاية حاليًا على طول المحور السيني.

Usage:
arm.get_x()

حدود

وصف

لا تحتوي هذه الطريقة على أي معلمات.

# Print the current x position of the 6-Axis Arm
brain.print(arm.get_x())

get_y#

get_y تُرجع موضع y الحالي للمؤثر النهائي بالملليمترات.

استخدم هذه الطريقة لقراءة مكان وجود أداة النهاية حاليًا على طول المحور y.

Usage:
arm.get_y()

حدود

وصف

لا تحتوي هذه الطريقة على أي معلمات.

# Print the current y position of the 6-Axis Arm
brain.print(arm.get_y())

get_z#

get_z تُرجع موضع z الحالي للمؤثر النهائي بالملليمترات.

استخدم هذه الطريقة لقراءة مكان وجود أداة النهاية حاليًا على طول المحور z.

Usage:
arm.get_z()

حدود

وصف

لا تحتوي هذه الطريقة على أي معلمات.

# Print the current z position of the 6-Axis Arm
brain.print(arm.get_z())

get_pitch#

get_pitch تُرجع درجة الصوت الحالية للمؤثر النهائي بالدرجات.

Usage:
arm.get_pitch()

حدود

وصف

لا تحتوي هذه الطريقة على أي معلمات.

# Print the current pitch of the end effector
brain.print(arm.get_pitch())

get_roll#

get_roll تُرجع قيمة الدوران الحالية للمؤثر النهائي بالدرجات.

Usage:
arm.get_roll()

حدود

وصف

لا تحتوي هذه الطريقة على أي معلمات.

# Print the current roll of the end effector
brain.print(arm.get_roll())

get_yaw#

get_yaw تُرجع قيمة الانحراف الحالية للمؤثر النهائي بالدرجات.

Usage:
arm.get_yaw()

حدود

وصف

لا تحتوي هذه الطريقة على أي معلمات.

# Print the current yaw of the end effector
brain.print(arm.get_yaw())

can_arm_reach_to#

can_arm_reach_to تُرجع ما إذا كان بإمكان الذراع ذو المحاور الستة تحريك أداة النهاية إلى إحداثيات x و y و z محددة.

استخدم هذه الطريقة للتحقق من موضع الهدف قبل استخدام move_to.

  • True — يمكن للذراع ذي المحاور الستة الوصول إلى الموضع المطلوب.

  • False — لا يمكن للذراع ذي المحاور الستة الوصول إلى الموضع المطلوب.

Usage:
arm.can_arm_reach_to(x, y, z)

المعلمة

وصف

x

إحداثيات س لموقع الهدف بالملليمترات.

y

إحداثيات المحور الصادي لموقع الهدف بالملليمترات.

z

إحداثيات z لموقع الهدف بالملليمترات.

# Move the 6-Axis Arm to (100, -20, 50) if it can reach
if arm.can_arm_reach_to(100, -20, 50):
    arm.move_to(100, -20, 50)

can_arm_reach_inc#

can_arm_reach_inc تُرجع ما إذا كان بإمكان الذراع ذو المحاور الستة تحريك أداة النهاية بمسافة محددة x و y و z من موضعها الحالي.

استخدم هذه الطريقة للتحقق من الحركة النسبية قبل استخدام move_inc.

  • True — يمكن للذراع ذي المحاور الستة القيام بالحركة المطلوبة.

  • False — لا يمكن للذراع ذي المحاور الستة القيام بالحركة المطلوبة.

Usage:
arm.can_arm_reach_inc(x, y, z)

المعلمة

وصف

x

المسافة التي يجب التحرك بها على طول المحور السيني بالملليمترات.

y

المسافة التي يجب التحرك بها على طول المحور الصادي بالملليمترات.

z

المسافة التي يجب التحرك بها على طول المحور z بالملليمترات.

# Increment the 6-Axis Arm 100 mm along the x-axis if possible
if arm.can_arm_reach_inc(100, 0, 0):
    arm.move_inc(100, 0, 0)

can_end_effector_reach_to#

can_end_effector_reach_to تُرجع ما إذا كان بإمكان أداة النهاية الدوران إلى اتجاه محدد للانعطاف والدوران والميل.

استخدم هذه الطريقة للتحقق من اتجاه الهدف قبل استخدام move_end_effector_to.

  • True — يمكن للمؤثر النهائي الوصول إلى الاتجاه المطلوب.

  • False — لا يمكن للمؤثر النهائي الوصول إلى الاتجاه المطلوب.

Usage:
arm.can_end_effector_reach_to(yaw, roll, pitch)

المعلمة

وصف

yaw

زاوية الانحراف المستهدفة، بالدرجات.

roll

زاوية دوران الهدف، بالدرجات.

pitch

زاوية ميل الهدف، بالدرجات.

# Rotate the end effector to 90 degrees of roll if possible
if arm.can_end_effector_reach_to(0, 90, 0):
    arm.move_end_effector_to(0, 90, 0)

can_end_effector_reach_inc#

can_end_effector_reach_inc تُرجع ما إذا كان بإمكان أداة النهاية الدوران بمقدار محدد من الانحراف والدوران والميل من وضعها الحالي.

استخدم هذه الطريقة للتحقق من حركة التوجيه النسبي قبل استخدام move_end_effector_inc.

  • True — يمكن للمؤثر النهائي أن يقوم بالدوران المطلوب.

  • False — لا يمكن للمؤثر النهائي إجراء الدوران المطلوب.

Usage:
arm.can_end_effector_reach_inc(yaw, roll, pitch)

المعلمة

وصف

yaw

التغير في الانحراف، بالدرجات.

roll

التغير في الميل، بالدرجات.

pitch

التغير في درجة الصوت، بالدرجات.

# Increment the end effector by 10 degrees of pitch if possible
if arm.can_end_effector_reach_inc(0, 0, 10):
    arm.move_end_effector_inc(0, 0, 10)

get_timeout#

get_timeout تُرجع قيمة المهلة الزمنية المستخدمة بواسطة طرق حركة الذراع ذات 6 محاور بالمللي ثانية.

Usage:
arm.get_timeout()

حدود

وصف

لا تحتوي هذه الطريقة على أي معلمات.

# Print the current movement timeout in milliseconds
brain.print(arm.get_timeout())

is_connected#

is_connected تُرجع ما إذا كان الذراع ذو المحاور الستة متصلاً بالدماغ.

  • True — الذراع ذو المحاور الستة متصل بالدماغ.

  • False — الذراع ذو المحاور الستة غير متصل بالدماغ.

Usage:
arm.is_connected()

حدود

وصف

لا تحتوي هذه الطريقة على أي معلمات.

# Print whether the 6-Axis Arm is connected
brain.print(arm.is_connected())

معاودة الاتصال#

control_stopped#

control_stopped يسجل وظيفة يتم تشغيلها عند تمكين إيقاف التحكم.

This method returns an instance of the Event class.

Usage:
arm.control_stopped(callback, arg)

المعلمة

وصف

callback

A previously defined function that runs when control stop is enabled.

arg

اختياري. مجموعة تحتوي على الوسائط التي يتم تمريرها إلى دالة الاستدعاء. راجع استخدام الدوال ذات المعاملات لمزيد من المعلومات.

# Define a function to run when control stop is enabled
def when_control_stopped():
    brain.print("The arm has been control stopped")

# Run when_control_stopped when the 6-Axis Arm is control stopped
arm.control_stopped(when_control_stopped)

المُنشئون#

Arm#

Arm ينشئ كائن ذراع سداسي المحاور.

Usage:
Arm()

حدود

وصف

لا يحتوي هذا المُنشئ على أي معلمات.

# Construct a 6-Axis Arm named arm with the Arm class
arm = Arm()