مستشعر المسافة#

مقدمة#

يستطيع مستشعر المسافة اكتشاف ما إذا كان هناك جسم أمامه، وتحديد المسافة التي تفصله عنه. كما يمكنه أيضًا تحديد سرعته النسبية، وتقدير حجمه (صغير، متوسط، كبير).

يعمل مستشعر المسافة ضمن نطاق يتراوح من 20 مم إلى 2000 مم.

عند مسافة أقل من 200 مم، تكون الدقة حوالي ±15 مم. أما عند مسافة أعلى من 200 مم، فتتحسن الدقة لتصل إلى حوالي 5%.

يستخدم مستشعر المسافة ليزرًا من الفئة 1. يتم توجيه الكشف للأمام مباشرة وهو آمن للاستخدام في الفصول الدراسية.

مستشعر المسافة.

تستخدم هذه الصفحة الاسم distance_sensor كمثال لاسم مستشعر المسافة. استبدله بالاسم الذي قمت بتكوينه حسب الحاجة.

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

  • object_distance — تُرجع المسافة بين مستشعر المسافة وأقرب كائن تم اكتشافه.

  • object_velocity — تُرجع مدى سرعة تحرك الجسم المكتشف باتجاه أو بعيدًا عن مستشعر المسافة.

  • object_size — تُرجع الحجم المُقدَّر للكائن المكتشف.

  • is_object_detected — تُرجع ما إذا كان مستشعر المسافة يكتشف حاليًا وجود جسم ما.

  • changed — يسجل وظيفة لتشغيلها كلما تغيرت قيمة مستشعر المسافة.

المنشئ — تهيئة مستشعر المسافة يدويًا.

  • Distance — إنشاء مستشعر مسافة.

مسافة الكائن#

object_distance تُرجع المسافة بين مستشعر المسافة وأقرب كائن تم اكتشافه كعدد عشري (float).

Usage:
distance_sensor.object_distance(units)

حدود

وصف

units

اختياري. وحدة المسافة: MM (افتراضي، من 20 مم إلى 2000 مم) أو INCHES (من 0.78 بوصة إلى 78.74 بوصة).

# Drive forward until the object is within 50 mm away
drivetrain.drive(FORWARD)
while not distance_sensor.object_distance(MM) < 50:
  pass
drivetrain.stop()

سرعة الجسم#

object_velocity تُرجع السرعة النسبية للكائن المكتشف كعدد عشري (float) بوحدة م/ث (متر في الثانية).

تُظهر السرعة مدى سرعة تحرك الجسم باتجاه مستشعر المسافة أو ابتعاده عنه. تشير القيمة القريبة من الصفر إلى أن الجسم لا يتحرك كثيرًا بالنسبة للمستشعر.

Usage:
distance_sensor.object_velocity()

حدود

وصف

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

حجم الكائن#

object_size تُرجع الحجم المُقدّر للكائن الذي تم اكتشافه بواسطة مستشعر المسافة.

يقوم مستشعر المسافة بتقدير حجم الجسم بناءً على مقدار مجال رؤية المستشعر الذي يشغله الجسم المكتشف.

  • ObjectSizeType(0, “NONE”) — لم يتم اكتشاف أي كائن.

  • ObjectSizeType(1, “SMALL”) — تم اكتشاف كائن صغير.

  • ObjectSizeType(2, “MEDIUM”) — تم اكتشاف كائن متوسط ​​الحجم.

  • ObjectSizeType(3, “LARGE”) — تم اكتشاف كائن كبير.

Usage:
distance_sensor.object_size()

حدود

وصف

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

تم اكتشاف كائن#

is_object_detected تُرجع ما إذا كان مستشعر المسافة يكتشف حاليًا وجود جسم ما.

  • True — مستشعر المسافة يكتشف وجود جسم.

  • False — لا يكتشف مستشعر المسافة وجود جسم.

Usage:
distance_sensor.is_object_detected()

حدود

وصف

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

# Drive forward until the object is within 50 mm away
while True:
  drivetrain.drive(FORWARD)
  if distance_sensor.is_object_detected():
    if distance_sensor.object_distance(MM) < 50:
      drivetrain.stop()
      break

تم التغيير#

changed يسجل دالة ليتم استدعاؤها كلما تغيرت قيمة مستشعر المسافة.

Usage:
distance_sensor.changed(callback, arg)

حدود

وصف

callback

A previously defined function that executes when the Distance Sensor’s value changes.

arg

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

def my_function():
  brain.screen.print("Distance changed")

# Call my_function whenever distance_sensor's value changes
distance_sensor.changed(my_function)

المُنشئ#

تُستخدم الدوال البانية لإنشاء كائنات المسافة Distance كما هو الحال عند تكوين مستشعر المسافة خارج VEXcode.

Distance#

Distance تُنشئ كائن مستشعر المسافة.

Usage:
Distance(smartport)

المعلمة

وصف

smartport

المنفذ الذكي الذي يتصل به مستشعر المسافة، مكتوبًا على النحو التالي: Ports.PORTx، حيث x هو رقم المنفذ.

# Create a Distance Sensor in Port 10
distance_sensor = Distance(Ports.PORT10)