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

الماسح الضوئي XYZ Point باستخدام أجهزة التشفير الدورانية المنقذة: 5 خطوات
الماسح الضوئي XYZ Point باستخدام أجهزة التشفير الدورانية المنقذة: 5 خطوات

فيديو: الماسح الضوئي XYZ Point باستخدام أجهزة التشفير الدورانية المنقذة: 5 خطوات

فيديو: الماسح الضوئي XYZ Point باستخدام أجهزة التشفير الدورانية المنقذة: 5 خطوات
فيديو: BEST 3D SCANNERS! 2024, يوليو
Anonim
XYZ Point Scanner باستخدام أجهزة التشفير الدوارة المنقذة
XYZ Point Scanner باستخدام أجهزة التشفير الدوارة المنقذة

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

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

اللوازم

التشفير البصري وأجهزة الاستشعار البصرية المقابلة

اردوينو UNO

درع النماذج الأولية الاختياري

قضبان من الصلب

الوصول إلى طابعة ثلاثية الأبعاد

الخطوة 1: التشفير البصري

التشفير البصري
التشفير البصري
التشفير البصري
التشفير البصري
التشفير البصري
التشفير البصري

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

لقد استخدمت مقياس استمرارية لتتبع مخطط الأسلاك لأجهزة استشعار الصور.

الخطوة 2: أجزاء مطبوعة ثلاثية الأبعاد

أجزاء مطبوعة ثلاثية الأبعاد
أجزاء مطبوعة ثلاثية الأبعاد
أجزاء مطبوعة ثلاثية الأبعاد
أجزاء مطبوعة ثلاثية الأبعاد

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

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

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

الخطوة 3: مخطط الأسلاك

الاسلاك الرسم البياني
الاسلاك الرسم البياني

الدائرة بسيطة للغاية. تتطلب المستشعرات الضوئية بعض التيار لثنائيات باعث الأشعة تحت الحمراء ، ومقاومات أرضية ومقاومات سحب للصمامات الثنائية الضوئية.

لقد قررت 5mA بالنسبة لثنائيات الباعث المتسلسلة ، في هذا المشفر الخاص ، يكون انخفاض الجهد عبر الثنائيات 3.65 فولت. أنا أستخدم إمدادًا بجهد 5 فولت من Arduino ، والذي يترك 1.35 فولت للمقاوم ، عند 5 مللي أمبير ، يعمل هذا ليكون 270 أوم.

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

الخطوة 4: كود اردوينو

كود اردوينو
كود اردوينو
كود اردوينو
كود اردوينو
كود اردوينو
كود اردوينو

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

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

التغييرات = new_value ^ القيمة المخزنة ؛

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

في الإعداد الخاص بي ، تبلغ الدقة 24 نقرة لكل 1 سم.

هذا يترك لنا بعض السيناريوهات.

S1 ثابت 0 ويتم تبديل S2 من 0 إلى 1

S1 ثابت 0 ويتم تبديل S2 من 1 إلى 0

S1 هو ثابت 1 والتبديل S2 من 0 إلى 1

S1 هو ثابت 1 والتبديل S2 من 1 إلى 0

S2 ثابت 0 ويتم تبديل S1 من 0 إلى 1

S2 ثابت 0 ويتم تبديل S1 من 1 إلى 0

S2 هو ثابت 1 و S1 يبدل من 0 إلى 1

S2 هو ثابت 1 و S1 يبدل من 1 إلى 0

يتم فهم هذه الشروط بشكل أفضل في جداول الحقيقة أعلاه ، كما ينتج عن كل حالة "اتجاه" ، يُسمى بشكل تعسفي 0 أو 1.

تعطينا المخططات دليلين حيويين:

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

2) الرسم البياني نفسه هو ببساطة XOR لإشارات S1 و S2. (الرسم البياني الآخر ليس من هذا).

الآن فهم الكود بسيط.

// قراءة في PORT بالتوازي // تذكر أن الأزواج المجاورة تنتمي إلى نفس حالة التشفير = PINB & 0x3f؛ // ما هي الدبابيس التي تغيرت إذا وجدت فرق = عقد ^ حالة ؛ // XOR المجاورة إشارات S1 و S2 للحصول على جدول الحقيقة // أسهل طريقة هي عمل نسخة من الحالة الحالية // وتحويلها إلى اليمين ببحث واحد بت = الحالة >> 1 ؛ // الآن تتم محاذاة البتات لـ XOR dir = lookup ^ state؛ // تذكر ، يجب عكس الجدول إذا ظل أحد المدخلات ثابتًا ، ولسنا بحاجة إلى عبارة IF // لهذا الغرض. في الوقت الحالي ، فإن بت الاتجاه المطلوب // هو الجزء الأيمن من كل زوج في متغير 'dir' // البتة اليسرى لا معنى لها // متغير 'الفرق لديه البتة التي تغيرت' مجموعة '// لذا إما أن يكون لدينا '01' أو '10' // XOR هذا مع بايت 'dir' إما سيعكس أو لا يعكس البتة ذات المعنى. دير ^ = فرق ؛ // الآن تحديث عقد متغير عقد = حالة ؛ // إذا تم تغيير أي من البتات لهذا المشفر إذا (diff & 0x03) {// حدد الاتجاه إذا (dir & 0x01) {// بناءً على برامجك والأسلاك إما ++ أو - --z ؛ } else {++ z؛ }} // ditto لبقية إذا (diff & 0x0c) {if (dir & 0x04) {++ y؛ } else {--y؛ }} if (diff & 0x30) {if (dir & 0x10) {--x؛ } else {++ x؛ }}

عند الضغط على الزر ، نرسل قيمة XYZ الحالية إلى برنامج طرفي.

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

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

الخطوة 5: المسح الأول

أول مسح
أول مسح
أول مسح
أول مسح
أول مسح
أول مسح
أول مسح
أول مسح

يعد جمع النقاط عملية بطيئة ، فأنا أضع المجس في الزاوية اليسرى العليا وأعد ضبط Arduino.

هذا الموقف من الأصفار كموطن.

ثم انقل المسبار إلى الموقع على الهدف ، وثبته واضغط على زر "لقطة".

بالنسبة لهذه العينة الكبيرة نوعًا ما ، أخذت 140 نقطة تقريبًا ، لذا فإن التفاصيل ليست رائعة في المنتج النهائي.

احفظ البيانات في ملف. PCD ، وأضف الرأس

#. PCD v.7 - تنسيق ملف Point Cloud Data الإصدار.7 FIELDS x y z SIZE 4 4 4 TYPE F F F COUNT 1 1 1 WIDTH (عدد نقاطك) HEIGHT 1 VIEWPOINT 0 0 0 1 0 0 0 POINTS (عدد نقاطك)

ضع عدد النقاط في الرأس ، فهذا سهل على أي محرر يوفر لك أرقام الأسطر.

يمكن رؤية النقاط أعلاه في freeCad ، ثم يتم تصديرها من freeCad كملف PLY.

افتح ملف. PLY على MeshLab واسطح الكائن. منتهي!!

موصى به: