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

ماسح ليزر Raspberry Pi: 9 خطوات (بالصور)
ماسح ليزر Raspberry Pi: 9 خطوات (بالصور)

فيديو: ماسح ليزر Raspberry Pi: 9 خطوات (بالصور)

فيديو: ماسح ليزر Raspberry Pi: 9 خطوات (بالصور)
فيديو: Laser Scanner Characteristics and Programming in ROS2 with Python 2024, شهر نوفمبر
Anonim
Image
Image
ماسح ليزر Raspberry Pi
ماسح ليزر Raspberry Pi

الماسح الضوئي بالليزر هو جهاز نظام Raspberry Pi مضمن قادر على رقمنة الكائنات في ملفات شبكة obj. لإعادة الإنتاج باستخدام الطباعة ثلاثية الأبعاد. يقوم الجهاز بذلك عن طريق استخدام خط ليزر و PiCam متكامل لأداء رؤية الكمبيوتر. يتم وضع الليزر منحرفًا بمقدار 45 درجة عن الليزر ويعرض خطًا أحمر ساطعًا على شريحة رأسية واحدة من الجسم. تكتشف الكاميرا مسافة الشريحة من المركز لإعطاء شريحة شبكية. يتم نسج الكائن على الدرج الدوار وتتكرر العملية حتى يتم مسح الكائن بالكامل. يتم إرسال ملف obj. الذي تم إنشاؤه أخيرًا إلى المستخدم عبر البريد الإلكتروني ، مما يجعل النظام مستقلاً ومضمنًا بالكامل.

سوف يشرح Instructable كيفية بناء الجهاز وبعض النتائج والخطوات المستقبلية.

الخطوة الأولى: الإلهام

إلهام
إلهام
إلهام
إلهام

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

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

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

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

الخطوة 2: الأدوات والأجزاء

القطع:

  • Raspberry Pi 35.00 دولارًا
  • كاميرا Raspberry Pi V2 $ 30.00
  • المصابيح والمقاومات والأسلاك
  • خيوط الطباعة ثلاثية الأبعاد
  • 12x12x0.125 صفائح خشبية
  • أجهزة M3
  • محرك متدرج - 14 دولارًا
  • خط الليزر - 8 دولارات
  • LN298 Stepper Motor Drivers - 2.65 دولار
  • زر انضغاطي معدني - 5 دولارات

أدوات:

  • لحام حديد
  • قاطع ليزري
  • طابعة 3D
  • مفك براغي
  • كماشة

الخطوة 3: تصميم عالي المستوى

تصميم عالي المستوى
تصميم عالي المستوى
تصميم عالي المستوى
تصميم عالي المستوى

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

لأداء الإجراءات الموضحة أعلاه ، استخدمت Raspberry Pi كوحدة حوسبة مركزية. لقد قمت بتوصيل محرك متدرج وسائق محرك إلى Pi ، مدعومًا بمصدر خارجي 5 فولت ويتم التحكم فيه بواسطة دبابيس GPIO الخاصة بـ Pi. تم وضع خط ليزر على الخط 3.3 فولت على Pi وتم توصيل PiCam بإدخال الكاميرا على Pi. أخيرًا ، تم تثبيت زر بسيط تم سحبه لأسفل ومصباح LED للحالة ليوضح للمستخدم حالة النظام. يتم تلخيص النظام الكامل في مخطط كتلة النظام.

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

الخطوة 4: الأجهزة

المعدات
المعدات
المعدات
المعدات
المعدات
المعدات

كما رأينا أعلاه ، قبل أن أبدأ القطع بالليزر أو الطباعة ثلاثية الأبعاد ، استخدمت Autodesk Fusion 360 لعمل نموذج ثلاثي الأبعاد مفصل لتصميمنا. كنظرة عامة ، الجهاز عبارة عن صندوق بسيط بغطاء مع مفصلات مقطوعة بالليزر. هناك طبقتان رئيسيتان للجهاز: سرير الإلكترونيات والسرير الرئيسي ، مع فتحات لتوصيل الأسلاك بين الطبقتين.

تم تصنيع غالبية الصندوق الخاص بنا باستخدام قاطع ليزر ، مع تصميمات يتم إنتاجها في Fusion 360 وتم قصها على آلة القطع بالليزر Epilog Zing 40 W. تظهر تصميماتنا في الأشكال أعلاه. من أعلى اليسار المتحرك لليمين ، تكون القطع هي السرير الرئيسي ، وسرير الإلكترونيات ، وقطعتان للغطاء ، والقطعة الخلفية ، والقطعة الأمامية ، والقطعتان الجانبيتان. في السرير الرئيسي ، هناك ثلاث قواطع رئيسية: واحدة لتركيب محرك السائر ، وواحدة لتوجيه الأسلاك من الليزر ، وواحدة لتوجيه كابل PiCam العريض. تحتوي قطعة السرير على فتحات تثبيت لتأمين Pi واللوح وسائق المحرك وفتحة أكبر للوصول إلى محرك السائر. تلتصق قطع الغطاء ببعضها البعض ببساطة لتشكيل القطعة المثلثية الظاهرة أعلاه والمفصلة عبارة عن قذف بسيط يمثل عرض قطر فتحة الألواح الجانبية. تحتوي القطعة الخلفية وأحد القطع الجانبية على فتحات على الجانب بحيث يمكن الوصول إلى منافذ Pi (HDMI ، USB ، Ethernet ، الطاقة) بسهولة. الجزء الأمامي عبارة عن قطعة بسيطة قمت في النهاية بعمل ثقوب فيها باستخدام مثقاب يدوي لتركيب الزر ومصباح LED. كما هو موضح في جميع القطع ، يتم تثبيت أجزائنا معًا بواسطة أجهزة M3 باستخدام وصلات T وفتحات. هذه طريقة لتثبيت القطع المقطوعة بالليزر بشكل متعامد وآمن. تصطف زعانف القطع مع فتحات القطع الأخرى والقطع على شكل حرف T على الحواف تعطي مساحة لربط الجوز M3 بها دون الدوران. يتيح لنا ذلك بعد ذلك استخدام برغي M3 لقفل القطع مع مساحة صغيرة للمناورة دون أن يكون التجميع دائمًا بشكل دائم.

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

الخطوة الخامسة: الإلكترونيات

إلكترونيات
إلكترونيات

كانت أجهزة الأسلاك الخاصة بهذا المشروع بسيطة للغاية لأن الماسح الضوئي ثلاثي الأبعاد لم يتطلب الكثير من الأجهزة الطرفية. يلزم توصيل محرك وزر ومصباح LED وليزر وكاميرا بـ Pi. كما هو موضح ، تأكدت من توصيل المقاومات في سلسلة مع كل دبوس استخدمناه لحماية المسامير. تم تخصيص دبوس GPIO واحد للتحكم في مؤشر LED للحالة ، والذي سيضيء عندما يكون الجهاز جاهزًا للاستخدام والنبض باستخدام PWM عندما كان الجهاز يعمل. تم توصيل دبوس GPIO آخر بزر تم سحبه ، مسجلاً HIGH عند عدم الضغط على الزر و LOW عند الضغط على الزر. أخيرًا ، خصصت أربعة دبابيس GPIO لقيادة محرك السائر.

نظرًا لأن محركنا كان عليه فقط التحرك إلى حد معين دون الحاجة إلى التحكم في السرعة ، فقد اخترنا محركًا متدرجًا أبسط (L298N) يقوم ببساطة بتصعيد خطوط التحكم لتغذية مدخلات المحرك. للتعرف على كيفية تشغيل محركات السائر بمستوى منخفض جدًا ، أشرنا إلى كل من ورقة بيانات L298N ومكتبة Arduino. يحتوي المحرك السائر على قلب مغناطيسي بأصابع مخادعة ذات قطبية متناوبة. يتم لف الأسلاك الأربعة للتحكم في مغناطيسين كهربائيين يعمل كل منهما على قوة كل إصبع متعارض في المحرك. وبالتالي ، من خلال تبديل قطبية الأصابع ، يمكننا دفع الخطوة خطوة واحدة. من خلال هذه المعرفة حول كيفية عمل السائر من مستوى الأجهزة ، تمكنا من التحكم في السائر بسهولة أكبر. اخترنا تشغيل محرك السائر الخاص بنا من مصدر طاقة 5 فولت في المختبر بدلاً من Pi بسبب أقصى سحب تيار يبلغ حوالي 0.8 أمبير ، وهو أكثر مما يمكن أن يوفره Pi.

الخطوة 6: البرمجيات

برمجة
برمجة
برمجة
برمجة
برمجة
برمجة
برمجة
برمجة

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

كملخص للبرنامج ، يمكننا النظر إلى الشكل الأول. أثناء تشغيل النظام ، يقوم bashrc بتسجيل الدخول تلقائيًا إلى Pi ويبدأ في تشغيل كود python الخاص بنا. يضيء النظام مصباح الحالة للسماح للمستخدم بمعرفة أنه تم تمهيده بشكل صحيح وينتظر الضغط على الزر. يمكن للمستخدم بعد ذلك وضع العنصر المراد مسحه وإغلاق الغطاء. بعد الضغط على الزر ، ينبض مؤشر LED ليعلم المستخدم أن الجهاز يعمل. سوف يدور الجهاز بين معالجة الصور والتحكم في المحرك حتى يكتمل الدوران الكامل ويتم جمع جميع بيانات الكائن. أخيرًا ، يتم إنشاء الشبكة وإرسال الملف عبر البريد الإلكتروني إلى بريد إلكتروني محدد مسبقًا. يؤدي هذا إلى إعادة تشغيل الدورة ويكون الجهاز جاهزًا لإجراء مسح آخر بضغطة زر.

معالجة الصورة

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

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

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

التحكم في المحركات

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

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

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

وظيفة مضمنة

بعد أن كان الجهاز يعمل ، قمت بصقله بإضافة وظائف مضمنة كاملة. وهذا يعني إزالة لوحة المفاتيح والماوس والشاشة ، وجعلها ترسل لنا ملف obj. بعد الانتهاء من المعالجة. للبدء ، قمت بتغيير كود.bashrc لتسجيل الدخول تلقائيًا وتشغيل برنامج python الرئيسي عند بدء التشغيل. تم ذلك باستخدام sudo raspi-config واختيار "Console Autologin" وإضافة السطر "sudo python /home/pi/finalProject/FINAL.py" إلى /home/pi/.bashrc. أضاف زرًا ومؤشرًا ضوئيًا للحالة لإدخال وإخراج المستخدم. سيسمح الزر للمستخدم بإخبار الجهاز بموعد بدء المسح وسيخبر مؤشر LED المستخدم بحالة الجهاز. إذا كان مؤشر LED قيد التشغيل ، فإن الجهاز جاهز لبدء فحص جديد. إذا كان مؤشر LED ينبض ، فهذا يعني أن الجهاز يقوم حاليًا بالمسح الضوئي. إذا كان مؤشر LED مكتبيًا ، فهناك خطأ في البرنامج يستدعي إعادة تشغيل النظام. أخيرًا ، قمت بتمكين الجهاز لإرسال ملف.obj عبر البريد الإلكتروني. تم ذلك باستخدام smtplib ومكتبات البريد الإلكتروني. أعطتنا هذه القدرة على إرسال رسائل البريد الإلكتروني طريقة مريحة للغاية ولاسلكية لتسليم الملف الناتج إلى المستخدم للوصول إليه على العديد من الأنظمة الأساسية المختلفة.

الخطوة السابعة: التكامل

اندماج
اندماج

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

(أ) صندوق مجمّع بالخارج

(ب) صندوق مُجمَّع بالداخل مزود بكاميرا وليزر

(ج) منظر داخلي لسرير الإلكترونيات

(د) الجزء الخلفي من Pi مع إمكانية الوصول إلى منافذ Pi ومدخل محرك 5V

(هـ) زر ضغط مع حلقة LED ومصباح حالة في مقدمة الجهاز

الخطوة 8: النتائج

نتائج
نتائج
نتائج
نتائج
نتائج
نتائج
نتائج
نتائج

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

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

أحد المتغيرات التي تمكنت حقًا من ضبطها هو دقة عمليات المسح. نظرًا لوجود 400 خطوة في الخطوة ، يمكنني اختيار حجم كل لإملاء الدقة الزاوية. بشكل افتراضي ، لدي الدقة الزاوية مضبوطة على 20 تكرارًا ، مما يعني أن كل إطار ، يدور المحرك بمقدار 20 خطوة (400/20 = 20). تم اختيار هذا بشكل أساسي لمصلحة الوقت - يستغرق الأمر حوالي 45 ثانية لإكمال الفحص بهذه الطريقة. ومع ذلك ، إذا كنت أرغب في إجراء مسح ضوئي عالي الجودة ، فيمكنني زيادة عدد التكرارات حتى 400. وهذا يعطي العديد من النقاط لبناء النموذج ، مما يجعل الفحص أكثر تفصيلاً. بالإضافة إلى الدقة الزاوية ، يمكنني أيضًا ضبط الدقة الرأسية ، أو عدد النقاط المختلفة التي أختارها للاستقصاء على طول شريحة الليزر. من أجل مصلحة مماثلة في الوقت ، لديّ هذا الإعداد الافتراضي على 20 ولكن يمكنني زيادته للحصول على نتائج أفضل. من خلال اللعب بهذه المعلمات الخاصة بالدقة الزاويّة والدقة المكانية ، تمكنت من تجميع نتائج عمليات المسح المختلفة أدناه في الشكل الأخير. يتم تنسيق كل تسمية بحيث تكون الدقة الزاوية x الدقة المكانية. كما هو موضح في إعدادات المسح الافتراضية ، يمكن التعرف على ميزات البطة ولكنها ليست مفصلة. ومع ذلك ، مع زيادة الدقة ، تبدأ الميزات الدقيقة الفردية في الظهور ، بما في ذلك العيون والمنقار والذيل والأجنحة على البطة. استغرقت الصورة الأعلى دقة حوالي 5 دقائق لمسحها. كانت رؤية هذا الدقة العالية القابلة للتحقيق نجاحًا كبيرًا للغاية.

محددات

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

الخطوات التالية

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

الخطوة 9: الموارد

لقد قمت بتضمين الكود وملفات STL للطباعة وملفات DXF لقص المشروع بأكمله.

مسابقة Raspberry Pi 2020
مسابقة Raspberry Pi 2020
مسابقة Raspberry Pi 2020
مسابقة Raspberry Pi 2020

الجائزة الأولى في مسابقة Raspberry Pi لعام 2020

موصى به: