Benewake LiDAR TFmini (الدليل الكامل): 5 خطوات (بالصور)
Benewake LiDAR TFmini (الدليل الكامل): 5 خطوات (بالصور)
Anonim
Benewake LiDAR TFmini (الدليل الكامل)
Benewake LiDAR TFmini (الدليل الكامل)
Benewake LiDAR TFmini (الدليل الكامل)
Benewake LiDAR TFmini (الدليل الكامل)

وصف

تتميز وحدة Benewake TFMINI Micro LIDAR بتصميماتها البصرية والهيكلية والإلكترونية الفريدة. يمتلك المنتج ثلاث مزايا رئيسية: التكلفة المنخفضة ، الحجم الصغير واستهلاك الطاقة المنخفض.

يمكن أن تضمن الخوارزمية المدمجة التي تم تكييفها مع البيئات الداخلية والخارجية أداءً ممتازًا للمدى بتكلفة منخفضة وفي حجم صغير ، مما يوسع بشكل كبير مجالات وسيناريوهات تطبيق LiDAR ويضع أساسًا متينًا "للعيون" المستقبلية في الأجهزة الذكية. حقبة.

تحديد

  • جهد الإدخال: 5 فولت
  • متوسط الطاقة: 0.12 واط
  • بروتوكول الاتصال: UART (معدل الباود: 115200)
  • درجة حرارة التشغيل: -20 درجة مئوية ~ 60 درجة مئوية
  • مجال الرؤية: 2.3 درجة

أبعاد

  • الحجم: 42mmx15mmx16mm
  • الوزن: 6.1 جرام

محددات

0 سم - 30 سم نطاق "أعمى"

من أين أشتري

  • روبوت شوب
  • أمازون

يتطلب هذا التوجيه أن تكون على دراية بما يلي:

  • الإلكترونيات الأساسية
  • الأدوات اليدوية مثل قواطع الأسلاك وآلات إزالة الشعر
  • قراءة الخطط ومخططات الاتصال
  • برمجة C / C ++ لـ Arduino (اختياري)
  • برمجة Python لـ Raspberry Pi (اختياري)

الخطوة 1: جمع المواد

جمع المواد
جمع المواد
جمع المواد
جمع المواد
جمع المواد
جمع المواد

ستأخذك هذه التعليمات عبر طرق مختلفة لنشر TFmini LiDAR باستخدام جهاز الكمبيوتر الشخصي الذي يعمل بنظام Windows و Raspberry Pi. كل طريقة لها متطلباتها ويمكن أن تختلف بناءً على احتياجاتك.

** ستحتاج Benewake TFmini LiDAR لكل حالة (بالطبع) **

للتنفيذ المعتمد على الكمبيوتر الشخصي:

  • نظام التشغيل: Windows
  • محول USB-TTL
  • أسلاك العبور

لتنفيذ Raspberry Pi:

  • فطيرة التوت
  • أسلاك العبور
  • المصابيح (اختياري)
  • محول USB-TTL (اختياري)
  • اللوح (اختياري)
  • المقاوم (بين 100-1 كيلو أوم) (اختياري)

الخطوة 2: التنفيذ المستند إلى الكمبيوتر باستخدام تطبيق Benewake

التنفيذ المستند إلى الكمبيوتر باستخدام تطبيق Benewake
التنفيذ المستند إلى الكمبيوتر باستخدام تطبيق Benewake
التنفيذ المستند إلى الكمبيوتر باستخدام تطبيق Benewake
التنفيذ المستند إلى الكمبيوتر باستخدام تطبيق Benewake
  1. قم بتوصيل TFmini LiDAR بمحول USB-TTL باستخدام أسلاك توصيل (ذكر-أنثى) وفقًا للتخطيط الموضح

    • سلك أحمر 5 فولت
    • السلك الأسود GND
    • أبيض / أزرق سلك Tx
    • Green Wire Rx
  2. قم بتوصيل USB-TTL بجهاز الكمبيوتر الخاص بك
  3. انتقل إلى Device Manager (Win + X) وحدد موقع "Prolific USB-to-Serial Comm Port" ضمن المنافذ (COM & LPT). تأكد من أن Windows يتعرف على الجهاز
  4. تنزيل واستخراج WINCC_TF.rar
  5. قم بتشغيل WINCC_TFMini.exe من الملفات المستخرجة
  6. حدد منفذ COM المقابل من القائمة المنسدلة في تطبيق Benewake تحت عنوان المنفذ التسلسلي
  7. انقر فوق اتصال

الخطوة 3: التنفيذ المستند إلى الكمبيوتر باستخدام Python (PySerial)

التنفيذ المعتمد على الكمبيوتر باستخدام Python (PySerial)
التنفيذ المعتمد على الكمبيوتر باستخدام Python (PySerial)
  1. قم بتوصيل TFmini LiDAR بجهاز الكمبيوتر باستخدام محول USB-TTL
  2. قم بتنزيل وفتح PC_Benewake_TFmini_LiDAR.py باستخدام Python IDLE (تأكد من تثبيت PySerial و Python على جهاز الكمبيوتر الخاص بك)
  3. قم بتحرير منفذ COM في الكود لمطابقة منفذ COM لمحول USB-TTL على جهاز الكمبيوتر الخاص بك (انظر الصورة)
  4. انقر فوق علامة التبويب تشغيل
  5. انقر فوق تشغيل الوحدة النمطية

** ارجع إلى الخطوة 5 للحصول على شرح للكود

الخطوة 4: التنفيذ المستند إلى Raspberry Pi

التنفيذ القائم على Raspberry Pi
التنفيذ القائم على Raspberry Pi
التنفيذ القائم على Raspberry Pi
التنفيذ القائم على Raspberry Pi
التنفيذ القائم على Raspberry Pi
التنفيذ القائم على Raspberry Pi
التنفيذ القائم على Raspberry Pi
التنفيذ القائم على Raspberry Pi
  1. قم بتوصيل TFmini LiDAR بـ RPi باستخدام محول USB-TTL أو منفذ UART باستخدام GPIO
  2. قم بتنزيل وفتح Pi_benewake_LiDAR.py باستخدام Python IDLE
  3. إذا كنت تستخدم محول USB-TTL مع RPi ، فافتح Arduino IDE. انقر فوق أدوات -> منفذ تسلسلي ، وقم بتحرير الكود وفقًا لذلك. إذا كنت تستخدم منفذ UART GPIO ، فاكتب / dev / ttyAMA0
  4. قم بتشغيل الكود

** يمكن استخدام الرمز لطباعة المسافة ، ولكن نظرًا لأن RPi لا يحتوي على الكثير من قوة المعالجة ، يُنصح بإضاءة مؤشر LED إذا كانت المسافة المسجلة أقل من نطاق معين (التخطيطي لـ LED مع RPi مرفق)

س: لماذا استخدام محول USB-TTL مع RPi؟

يحتوي RPi على منفذ UART واحد فقط ، وفي بعض الأحيان تحتاج إلى وضع بعض الوحدات النمطية التي تتطلب اتصال UART. يوفر USB-TTL منفذ UART إضافيًا لـ RPi مما يمنحنا فرصة لتوصيل أكثر من جهاز UART (مثل اثنين أو أكثر من TFmini LiDAR) بـ RPi.

الخطوة 5: حول المدونة

حول المدونة
حول المدونة

يمكن تقسيم الكود إلى ثلاثة أجزاء:

  • اجراء اتصال
  • كتابة البيانات
  • قراءة البيانات

اجراء اتصال:

بعد استيراد ملفات الرأس الضرورية ، نقوم بتثبيت الاتصال بـ TFmini LiDAR الخاص بنا من خلال تحديد منفذ COM ومعدل Baud ومهلة الاتصال

ser = serial. Serial ('COM7' ، 115200 ، المهلة = 1) #PC

ser = serial. Serial ('/ dev / ttyUSB1' ، 115200 ، المهلة = 1) # Raspberry Pi

بيانات الكتابة:

يمكن تقسيم الكود إلى جزأين ، كتابة واستلام. لتلقي البيانات ، تحتاج إلى إعادة توجيه أمر معين إلى TFmini LiDAR (جزء من عملية التهيئة). في هذه الحالة ، اخترت 4257020000000106. على الرغم من تشغيل RPi لنفس إصدار Python ، إلا أن هناك تغييرًا طفيفًا في بناء الجملة حيث لا يقبل RPi بيانات أخرى غير البيانات الثنائية.

ser.write (0x42)

كتابة ser.write (0x57) ser.write (0x02) ser.write (0x00) ser.write (0x00) ser.write (0x00) ser.write (0x01) ser.write (0x06)

قراءة البيانات:

الرسم البياني المقدم في ورقة البيانات يعطينا "تفصيل" رسالة 9 بايت UART. أول وحدتي بايت هما رأس إطار له قيمة سداسية عشرية 0x59 (الحرف "Y"). يمكن قراءتها واستخدامها لتحديد بداية رسالة UART.

إذا (('Y' == ser.read ()) و ('Y' == ser.read ())):

بمجرد قراءة إطار الرأس ، يمكن قراءة البايتين التاليين ، اللذين يحملان بيانات المسافة. تنقسم بيانات المسافة إلى حزمتين 8 بت ، Dist_L (Byte3) - أقل 8 بت و Dist_H (بايت 4) - أعلى 8 بت.

Dist_L = ser.read () # Byte3Dist_H = ser.read () # Byte4

بضرب Dist_H في 256 ، يتم إزاحة البيانات الثنائية بمقدار 8 إلى اليسار (ما يعادل "<< 8"). الآن يمكن ببساطة إضافة بيانات المسافة الأقل 8 بت ، Dist_L ، مما ينتج عنه بيانات 16 بت من Dist_Total.

إجمالي Dist_Total = (أمر (Dist_H) * 256) + (أمر (Dist_L))

نظرًا لأن لدينا قيمة المسافة "التي تم فك تشفيرها" معنا ، يمكن تجاهل البايتات الخمسة التالية. لاحظ أن بيانات القراءة لا يتم تخزينها في أي مكان.

بالنسبة إلى i في النطاق (0 ، 5): ser.read ()

** في مكان آخر ، قد تجد "تأخير" (time.sleep in Python) مدمجًا قبل نهاية الحلقة لأن TFmini LiDAR لديه تردد تشغيل 100 هرتز. هذا التأخير "تأخير البرنامج" وسيؤدي إلى تحديث البيانات بعد بعض التأخير. أعتقد أنه نظرًا لأننا ننتظر بالفعل تراكم البيانات حتى 9 بايت ، فلا ينبغي أن يكون هناك أي تأخير آخر

# وقت النوم (0.0005) # تم التعليق على التأخير

بينما (ser.in_waiting> = 9):

موصى به: