جدول المحتويات:

صنع محدد المدى باستخدام الليزر والكاميرا: 6 خطوات
صنع محدد المدى باستخدام الليزر والكاميرا: 6 خطوات

فيديو: صنع محدد المدى باستخدام الليزر والكاميرا: 6 خطوات

فيديو: صنع محدد المدى باستخدام الليزر والكاميرا: 6 خطوات
فيديو: 10 منتجات لن تشتريها أبداً , عندما تعرف مما صنعت .. !! 2024, يونيو
Anonim
صنع Rangefinder باستخدام الليزر والكاميرا
صنع Rangefinder باستخدام الليزر والكاميرا

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

يعتمد المشروع على هذه المقالة:

الاختلاف الوحيد هو أنني سأبني أداة تحديد المدى باستخدام Raspberry Pi Zero W وشاشة LCD ووحدة كاميرا Raspberry Pi. سأستخدم أيضًا OpenCV لتتبع الليزر.

سأفترض أنك خبير تقني وأنك مرتاح لاستخدام Python وسطر الأوامر. في هذا المشروع ، أستخدم Pi في وضع مقطوعة الرأس.

لنبدأ!

الخطوة 1: قائمة المواد

بالنسبة لهذا المشروع ، سوف تحتاج إلى:

  • ليزر رخيص 6 مم 5 ميجاوات
  • مقاوم 220
  • ترانزستور 2N2222A أو ما يعادله
  • a Raspberry Pi Zero W
  • كاميرا Raspberry Pi v2.0
  • شاشة Nokia 5110 LCD أو ما يعادلها
  • بعض أسلاك العبور ولوح صغير

لقد استخدمت الطابعة ثلاثية الأبعاد لطباعة رقصة ساعدتني أثناء التجارب. أخطط أيضًا لاستخدام الطابعة ثلاثية الأبعاد لإنشاء حاوية كاملة لجهاز البحث عن النطاق. يمكنك الاستغناء عنه تمامًا.

الخطوة الثانية: بناء رقصة ليزر وكاميرا

بناء رقصة ليزر وكاميرا
بناء رقصة ليزر وكاميرا
بناء رقصة ليزر وكاميرا
بناء رقصة ليزر وكاميرا
بناء رقصة ليزر وكاميرا
بناء رقصة ليزر وكاميرا

يفترض النظام مسافة ثابتة بين عدسة الكاميرا ومخرج الليزر. لتسهيل الاختبارات ، قمت بطباعة رقصة يمكنني من خلالها تركيب الكاميرا والليزر ودائرة قيادة صغيرة لليزر.

لقد استخدمت أبعاد وحدة الكاميرا لبناء حامل الكاميرا. لقد استخدمت بشكل أساسي فرجار رقمي ومسطرة دقيقة لأخذ القياسات. بالنسبة لليزر ، قمت بإنشاء ثقب بحجم 6 مم مع القليل من التعزيز لضمان عدم تحرك الليزر. حاولت الاحتفاظ بمساحة كافية لتثبيت لوح صغير في الجزء الخلفي من الرقصة.

لقد استخدمت Tinkercad للبناء ، يمكنك العثور على النموذج هنا:

يوجد مسافة 3.75 سم بين مركز عدسة الليزر ومركز عدسة الكاميرا.

الخطوة 3: تشغيل الليزر وشاشة LCD

يقود الليزر وشاشات الكريستال السائل
يقود الليزر وشاشات الكريستال السائل
يقود الليزر وشاشات الكريستال السائل
يقود الليزر وشاشات الكريستال السائل

لقد اتبعت هذا البرنامج التعليمي https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi لتشغيل شاشة LCD باستخدام Raspberry Pi Zero. بدلاً من تحرير ملف /boot/config.txt ، يمكنك تمكين واجهة SPI باستخدام sudo raspi-config عبر سطر الأوامر.

أنا أستخدم Raspberry Pi Zero في وضع مقطوعة الرأس باستخدام أحدث ، في الوقت الحالي ، Raspbian Stretch. لن أقوم بتغطية التثبيت في Instructable هذا ولكن يمكنك اتباع هذا الدليل: https://medium.com/@danidudas/install-raspbian-jessie-lite-and-setup-wi-fi-without-access-to- سطر الأوامر أو استخدام الشبكة 97f065af722e

للحصول على نقطة ليزر ساطعة ، أستخدم سكة 5V من Pi. لذلك ، سأستخدم ترانزستور (2N2222a أو ما يعادله) لقيادة الليزر باستخدام GPIO. يسمح المقاوم 220 الموجود في قاعدة الترانزستور بتيار كافٍ عبر الليزر. أنا أستخدم RPi. GPIO لمعالجة Pi GPIO. لقد قمت بتوصيل قاعدة الترانزستور بدبوس GPIO22 (الدبوس الخامس عشر) ، والباعث على الأرض ، والمجمع بصمام الليزر.

لا تنس تمكين واجهة الكاميرا باستخدام sudo raspi-config عبر سطر الأوامر.

يمكنك استخدام هذا الرمز لاختبار الإعداد الخاص بك:

إذا سارت الأمور على ما يرام ، يجب أن يكون لديك ملف dot-j.webp

في الكود ، نقوم بإعداد الكاميرا و GPIO ، ثم نقوم بتمكين الليزر ، والتقاط الصورة ، وتعطيل الليزر. نظرًا لأنني أقوم بتشغيل Pi في وضع مقطوعة الرأس ، فأنا بحاجة إلى نسخ الصور من Pi إلى جهاز الكمبيوتر الخاص بي قبل عرضها.

في هذه المرحلة ، يجب تكوين أجهزتك.

الخطوة 4: الكشف عن الليزر باستخدام OpenCV

أولاً ، نحتاج إلى تثبيت OpenCV على Pi. لديك ثلاث طرق للقيام بذلك. يمكنك إما تثبيت الإصدار القديم مع apt. يمكنك تجميع الإصدار الذي تريده ولكن في هذه الحالة يمكن أن يصل وقت التثبيت إلى 15 ساعة ومعظمها للترجمة الفعلية. أو ، أسلوبي المفضل ، يمكنك استخدام نسخة مجمعة مسبقًا لـ Pi Zero التي توفرها جهة خارجية.

نظرًا لأنه أبسط وأسرع ، فقد استخدمت حزمة طرف ثالث. يمكنك العثور على خطوات التثبيت في هذه المقالة: https://yoursunny.com/t/2018/install-OpenCV3-PiZero/ لقد جربت العديد من المصادر الأخرى ولكن حزمها لم تكن محدثة.

لتتبع مؤشر ليزر ، قمت بتحديث الكود من https://github.com/bradmontgomery/python-laser-tracker لاستخدام وحدة كاميرا Pi بدلاً من جهاز USB. يمكنك استخدام الرمز مباشرة إذا لم يكن لديك وحدة كاميرا Pi وتريد استخدام كاميرا USB.

يمكنك العثور على الكود الكامل هنا:

لتشغيل هذا الرمز ، ستحتاج إلى تثبيت حزم Python: pillow and picamera (sudo pip3 قم بتثبيت وسادة picamera).

الخطوة 5: معايرة Range Finder

معايرة جهاز البحث عن المدى
معايرة جهاز البحث عن المدى
معايرة جهاز البحث عن المدى
معايرة جهاز البحث عن المدى
معايرة جهاز البحث عن المدى
معايرة جهاز البحث عن المدى

في المقالة الأصلية ، صمم المؤلف إجراء معايرة للحصول على المعلمات المطلوبة لتحويل إحداثيات y إلى مسافة فعلية. لقد استخدمت طاولة غرفة المعيشة الخاصة بي للمعايرة وقطعة قديمة من كرافت. كل 10 سم أو نحو ذلك لاحظت إحداثيات x و y في جدول بيانات: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… للتأكد من أن كل شيء يعمل بشكل صحيح ، في كل خطوة ، قمت بفحص الصور الملتقطة لمعرفة ما إذا تم تتبع الليزر بشكل صحيح. إذا كنت تستخدم ليزرًا أخضر أو إذا لم يتم تتبع الليزر الخاص بك بشكل صحيح ، فستحتاج إلى ضبط درجة اللون والتشبع وقيمة البرنامج وفقًا لذلك.

بمجرد الانتهاء من مرحلة القياس ، حان الوقت لحساب المعلمات فعليًا. مثل المؤلف استخدمت الانحدار الخطي. في الواقع ، قام Google Spreadsheet بالمهمة بالنسبة لي. ثم أعدت استخدام هذه المعلمات لحساب المسافة المقدرة والتحقق منها مقابل المسافة الفعلية.

حان الوقت الآن لحقن المعلمات في برنامج أداة تحديد المدى لقياس المسافات.

الخطوة السادسة: قياس المسافات

قياس المسافات
قياس المسافات

في الكود: https://gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c قمت بتحديث المتغيرات HEIGHT و GAIN و OFFSET وفقًا لقياسات المعايرة. لقد استخدمت صيغة المسافة في المقالة الأصلية لتقدير المسافة وقمت بطباعة المسافة باستخدام شاشة LCD.

سيقوم الكود أولاً بإعداد الكاميرا و GPIO ، ثم نريد أن نضيء الإضاءة الخلفية لشاشة LCD لرؤية القياسات بشكل أفضل. تم توصيل مدخل LCD بـ GPIO14. كل 5 ثوانٍ أو نحو ذلك ، سنقوم بما يلي:

  1. تمكين الصمام الثنائي ليزر
  2. التقاط الصورة في الذاكرة
  3. تعطيل الصمام الثنائي ليزر
  4. تتبع الليزر باستخدام مرشحات نطاق HSV
  5. كتابة الصورة الناتجة على القرص لغرض التصحيح
  6. احسب المسافة بناءً على إحداثي ص
  7. اكتب المسافة على شاشة LCD.

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

يمكنني أيضًا زيادة دقة أداة تحديد المدى عن طريق تدوير الكاميرا بمقدار 90 درجة باستخدام الدقة الكاملة وزيادة الدقة إلى الحد الأقصى الذي تدعمه الكاميرا. مع التنفيذ الحالي ، نحن مقيدون بنطاق من 0 إلى 384 بكسل ، يمكننا زيادة الحد الأعلى إلى 1640 ، 4 أضعاف الدقة الحالية. ستكون المسافة أكثر دقة.

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

الكل في الكل النظام الحالي كافٍ بالنسبة لي وسيوفر لي بعض الدولارات في وضع خطة منزلي!

موصى به: