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

متزلج كاميرا تتبع الكائن مع محور الدوران. طباعة ثلاثية الأبعاد ومبنية على وحدة تحكم محرك RoboClaw DC و Arduino: 5 خطوات (بالصور)
متزلج كاميرا تتبع الكائن مع محور الدوران. طباعة ثلاثية الأبعاد ومبنية على وحدة تحكم محرك RoboClaw DC و Arduino: 5 خطوات (بالصور)

فيديو: متزلج كاميرا تتبع الكائن مع محور الدوران. طباعة ثلاثية الأبعاد ومبنية على وحدة تحكم محرك RoboClaw DC و Arduino: 5 خطوات (بالصور)

فيديو: متزلج كاميرا تتبع الكائن مع محور الدوران. طباعة ثلاثية الأبعاد ومبنية على وحدة تحكم محرك RoboClaw DC و Arduino: 5 خطوات (بالصور)
فيديو: بلندر_ كيف تجعل الكامرة تتبع المسار في اتجاة الهدف الذي تختارة 2024, شهر نوفمبر
Anonim
Image
Image
تصميم الأجهزة + البناء + الطباعة ثلاثية الأبعاد
تصميم الأجهزة + البناء + الطباعة ثلاثية الأبعاد

مشاريع فيوجن 360 »

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

تم بناء المشروع بأكمله على أجزاء يمكنك طباعتها ثلاثية الأبعاد ، ويعمل الكود على لوحة Arduino الشهيرة. جميع ملفات المشروع مثل ملفات CAD والرمز متاحة للتنزيل أدناه.

تتوفر ملفات طباعة CAD / 3D هنا

يتوفر ملف Arduino Code هنا

يدور المشروع حول محركي DC مصقول وموجهين ووحدة تحكم Basic Micro Roboclaw Motor. يمكن لوحدة التحكم في المحرك هذه تحويل محركات DC المصقولة إلى نوع متفوق من المؤازرة بدقة موضعية لا تصدق ، وأطنان من عزم الدوران ، ودوران كامل بمقدار 360 درجة. المزيد عن هذا لاحقًا.

قبل المتابعة ، شاهد الفيديو التعليمي المرتبط هنا أولاً. سيعطيك هذا البرنامج التعليمي نظرة عامة حول كيفية إنشاء هذا المشروع وسيتعمق دليل Instructables هذا بشكل أكبر في كيفية إنشاء هذا المشروع.

المواد-

  • قضبان ملولبة بطول 2 × 1 متر تستخدم لتوصيل جميع الأجزاء
  • 8x M10 صواميل لتركيب الأجزاء على القضبان الملولبة
  • قضبان فولاذية ملساء بطول 2x 95 سم 8 مم لكي ينزلق عليها المنزلق
  • محامل 4x lm8uu لمنزلق للانزلاق بسلاسة على قضبان الصلب
  • صواميل بطول 4 × 10 مم م 3 لتركيب المحرك
  • 2 × محامل لوح تزلج (قطر خارجي 22 مم ، قطر داخلي 8 مم) لمحور الدوران
  • 1x 15mm تحمل للجانب العاطل
  • مسمار برغي M4 طويل 1 × 4 سم مع صامولة قفل M4 لتركيب المحمل الوسيط على الجزء المطبوع ثلاثي الأبعاد.
  • 20 ترسًا بقطر داخلي 4 مم للمحرك المنزلق. البكرة الدقيقة ليست مهمة جدًا لأن محرك التيار المستمر يجب أن يكون موجهًا لعزم دوران كافٍ. فقط تأكد من أنها نفس درجة الحزام
  • حزام GT2 بطول 2 متر. مرة أخرى ، يمكنك استخدام أي حزام طالما أنه يتناسب مع طبقة أسنان البكرة.

إلكترونيات

  • 2 * محركات DC موجهة مع أجهزة تشفير (يتحكم أحدهما في الحركة الجانبية ، بينما يتحكم الآخر في محور الدوران). هذا هو الذي استخدمته. المزيد عن هذا في جزء الإلكترونيات من الدليل
  • وحدة تحكم محرك RoboClaw DC. (لقد استخدمت وحدة التحكم المزدوجة 15Amp لأنها سمحت لي بالتحكم في كلا المحركين باستخدام وحدة تحكم واحدة)
  • أي اردوينو. لقد استخدمت Arduino UNO
  • مصدر البطارية / الطاقة. (لقد استخدمت بطارية LiPo ذات خليتين 7.4 فولت)
  • شاشة (لعرض القائمة. ستعمل أي شاشة متوافقة مع U8G ، لقد استخدمت شاشة OLED 1.3 بوصة)
  • أداة التشفير Rotatry (للتنقل وتكوين الخيارات في القائمة)
  • زر الضغط المادي (لبدء حركة شريط التمرير)

الخطوة 1: تصميم الأجهزة + البناء + الطباعة ثلاثية الأبعاد

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

بعد ذلك ، دعنا ننتقل إلى الإلكترونيات. الإلكترونيات هي المكان الذي يتمتع فيه هذا المشروع بقدر كبير من المرونة.

لنبدأ بجوهر هذا المشروع - محركا DC المصقولان.

اخترت محركات DC المصقولة لعدة أسباب.

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

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

يقودنا هذا إلى وحدة التحكم في الحركة RoboClaw. تأخذ وحدة التحكم في محرك Roboclaw ثنائي التيار المستمر تعليمات بسيطة من Arduino الخاص بك عبر أوامر رمز بسيطة وتقوم بكل عمليات المعالجة الثقيلة وتوصيل الطاقة لجعل وظيفة محركك على النحو المنشود. يمكن لـ Arduino إرسال إشارات إلى Roboclaw عبر PWM أو الجهد التناظري أو المسلسل البسيط أو تسلسل الحزمة. يعد Packet serial هو أفضل طريقة للذهاب لأنه يسمح لك باستعادة المعلومات من Roboclaw وهو أمر ضروري للتتبع الموضعي. سوف أتعمق أكثر في جزء البرنامج / البرمجة من Roboclaw في الخطوة التالية (البرمجة).

في الأساس ، يمكن لـ Roboclaw تحويل المحرك المصقول بالتيار المستمر باستخدام جهاز تشفير ليكون أشبه بمؤازرة بفضل قدرة RoboClaw على التحكم في الموقع. ومع ذلك ، على عكس المؤازرة التقليدية ، فإن محرك DC المصقول لديك الآن لديه عزم دوران أكبر بكثير ، ودقة موضعية أكثر بكثير بسبب التروس العالية للمحرك ، والأهم من ذلك ، أن محرك DC الخاص بك يمكن أن يدور بزاوية 360 درجة بشكل مستمر لا يمكن لأي منهما أن يفعله.

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

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

الخطوة 3: برمجة شريط تمرير الكاميرا

برمجة سلايدر الكاميرا
برمجة سلايدر الكاميرا
برمجة سلايدر الكاميرا
برمجة سلايدر الكاميرا

كان الترميز إلى حد بعيد التحدي الأصعب لهذا المشروع. كما ترى ، منذ البداية أردت أن يكون شريط التمرير قابلاً للتحكم من الشاشة. لجعل هذا المشروع متوافقًا مع أكبر عدد ممكن من الشاشات ، كان علي استخدام مكتبة U8Glib في Arduino. تدعم هذه المكتبة أكثر من 32 شاشة. ومع ذلك ، استخدمت مكتبة U8Glib حلقة صورة لرسم القائمة على الشاشة وهذا يتعارض مع قدرة Arduino على جمع المعلومات في وقت واحد عن موضع الكاميرا المطلوب لوظيفة حساب زاوية الكاميرا (تمت تغطية هذا في الفقرتين التاليتين)). يحتوي U8Glib2 على بديل لحلقة الصورة باستخدام شيء يسمى خيار المخزن المؤقت للصفحة الكاملة ، لكن المكتبة استهلكت الكثير من الذاكرة وجعلت من الصعب ملاءمة بقية الكود نظرًا لقيود الذاكرة في Arduino Uno. هذا يعني أنني كنت عالقًا مع U8G واضطررت إلى حل المشكلة عن طريق منع الشاشة من التحديث في أي وقت كان شريط التمرير في حالة حركة وكان Arduino بحاجة إلى جمع البيانات الموضعية من Roboclaw. لقد اضطررت أيضًا إلى تشغيل شريط التمرير لبدء التحرك خارج حلقة القائمة بمجرد الدخول في القوائم الفرعية ، سأكون داخل حلقة الصورة ، ولن يعمل شريط التمرير على النحو المنشود. لقد تحايلت أيضًا على هذه المشكلة من خلال وجود زر مادي منفصل يقوم بتشغيل حركة شريط التمرير.

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

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

الآن بعد أن قام Arduino الخاص بنا بمعالجة زاوية الكاميرا ديناميكيًا ، يمكننا معالجة تحويل هذه الزاوية إلى قيمة موضعية للمحرك الدوراني للانتقال إليها. يقودنا هذا إلى أكبر ميزة في RoboClaw لهذا المشروع. من خلال إعطاء Roboclaw قيمة موضع ، يمكنه بشكل أساسي جعل محرك DC المصقول يتصرف مثل المؤازرة. باستثناء محرك سيرفو ، فإن محركنا لديه عزم دوران أكبر بكثير ، ودقة أعلى بكثير ويمكنه أيضًا الدوران 360 درجة.

كود Arduino لنقل Roboclaw إلى موضع معين هو كما يلي:

roboclaw. SpeedAccelDeccelPositionM1 (العنوان ، "السرعة" ، "التسارع" ، "التباطؤ" ، "الموضع الذي تريد الذهاب إليه" ، 1) ؛

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

أعطاني RoboClaw أيضًا القدرة على ضبط العوامل الأخرى مثل قيم التسارع والتباطؤ و PID. سمح لي هذا أيضًا بتنعيم حركة محور الدوران خاصةً عندما تكون تغيرات الزاوية صغيرة وإضافة هزات بدون قيمة PID عالية "D". يمكنك أيضًا ضبط قيم PID تلقائيًا عبر تطبيق Roboclaw لسطح المكتب.

الخطوة 4: تشغيل شريط تمرير الكاميرا

تشغيل شريط تمرير الكاميرا
تشغيل شريط تمرير الكاميرا

نأتي الآن إلى الجزء الممتع ، وهو تشغيل شريط التمرير. تحتوي القائمة على 4 علامات تبويب رئيسية. علامة التبويب العلوية مخصصة للتحكم في السرعة. يحتوي الصف الأوسط من القائمة على علامات تبويب لتكوين موضع X & Y للكائن المتعقب بالملم ، وكذلك تكوين ما إذا كنا نريد أن يقوم شريط التمرير بتدوير كائننا وتتبعه أو القيام بحركة منزلقة بسيطة بدون دوران. يتيح لنا لف المشفر الدوار التنقل بين الخيارات المختلفة للقوائم. لتهيئة أي من الخيارات ، انتقل إلى الخيار واضغط على المشفر الدوار. بمجرد الضغط عليه ، سيؤدي تدوير المشفر الدوار إلى تغيير قيمة القائمة الفرعية المميزة بدلاً من التمرير في القائمة. بمجرد أن تصل إلى القيمة التي تريدها ، يمكنك النقر فوق المشفر الدوار مرة أخرى. لقد عدت الآن إلى القائمة الرئيسية ويمكنك التنقل بين علامات التبويب المختلفة. بمجرد أن تصبح جاهزًا ، ما عليك سوى الضغط على الزر go الموجود بجوار الشاشة ويقوم شريط التمرير بأداء مهامه!

تأكد من أنه بمجرد الانتهاء من استخدام شريط تمرير الكاميرا ، فإن الكاميرا في وضع "المنزل": جانب شريط التمرير الذي بدأت عليه. والسبب في ذلك هو أن مشفر المحرك ليس مشفرًا مطلقًا مما يعني أن Roboclaw / Arduino لا يمكنه تحديد مكان المشفر. يمكنهم فقط معرفة مقدار التغيير الذي طرأ على برنامج التشفير منذ آخر مرة تم تشغيله فيها. هذا يعني أنه عند إيقاف تشغيل شريط تمرير الكاميرا ، فسوف "ينسى" شريط التمرير موضع شريط التمرير ويعيد تعيين المشفر إلى 0. لذلك ، إذا قمت بإيقاف تشغيل شريط التمرير على الجانب الآخر ، عند تشغيله ، فسيتم حاول التحرك أبعد من الحافة واصطدم بجدار التمرير. هذا السلوك المشفر هو أيضًا سبب قيام الكاميرا بإعادة ضبط زاوية الدوران بعد كل حركة انزلاق للكاميرا. يحمي محور الدوران نفسه أيضًا من الاصطدام بنهاية نطاق حركته.

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

الخطوة 5: الأفكار النهائية + التحسينات المستقبلية

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

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

أخيرًا ، إذا قمت بإجراء الإصدار 2.0 ، فإليك بعض التحسينات التي سأقوم بها

  1. نسبة تروس أعلى لمحرك محور الدوران. تعني نسبة التروس الأعلى أنه يمكنني القيام بحركات صغيرة أكثر دقة. هذا مهم بشكل خاص عندما تكون الكاميرا بعيدة عن الكائن الخاص بك وتتغير زاوية الكاميرا ببطء شديد. في الوقت الحالي ، لا يتم توجيه محرّكي إلى مستوى عالٍ جدًا ويمكن أن ينتج عنه حركة متشنجة قليلاً عندما يعمل شريط تمرير الكاميرا ببطء شديد أو عندما يكون هناك تغيير طفيف في زاوية الدوران. ساعدتني إضافة قيمة عالية لمعرف PID على التخلص من ذلك ولكنها جاءت على حساب دقة تتبع الكائن الأقل قليلاً.
  2. الطول المعياري. هذا هدف بعيد المنال ، لكنني أحب أن يكون شريط تمرير الكاميرا معياريًا في الطول مما يعني أنه يمكنك بسهولة إرفاق أطوال أطول للمسار حتى تنزلق الكاميرا عليه. هذا صعب للغاية لأنه سيتعين على المرء تمامًا محاذاة كلا المسارين ومعرفة كيفية عمل نظام الحزام. ومع ذلك ، ستكون ترقية رائعة!
  3. حركة مخصصة Keyframing. أرغب في تقديم مفهوم حركات الإطارات الرئيسية في شريط تمرير الكاميرا هذا. تعد Keyframing تقنية شائعة الاستخدام في إنتاج الفيديو والصوت. سيمكن ذلك من حركات الكاميرا غير الخطية حيث تنتقل الكاميرا إلى موضع ما ، وتنتظر ، ثم تنتقل إلى موضع آخر بسرعة مختلفة ، وتنتظر ، ثم تنتقل إلى الموضع الثالث وما إلى ذلك.
  4. بلوتوث / لاسلكي للتحكم في الهاتف. سيكون من الرائع حقًا أن تكون قادرًا على تكوين معلمات شريط تمرير الكاميرا لاسلكيًا وأن تكون قادرًا على نشر شريط تمرير الكاميرا في المواقع التي يصعب الوصول إليها. يمكن أن يفتح تطبيق الهاتف أيضًا فرصًا لدمج الإطارات الرئيسية كما هو مذكور في الفقرة الأخيرة.

هذا كل شيء في هذا البرنامج التعليمي. لا تتردد في إسقاط أي أسئلة في قسم التعليقات أدناه.

لمزيد من المحتوى والبرامج التعليمية للإلكترونيات ، يمكنك أيضًا التحقق من قناتي على YouTube هنا.

موصى به: