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

مثبت الكاميرا باليد: 13 خطوة (بالصور)
مثبت الكاميرا باليد: 13 خطوة (بالصور)

فيديو: مثبت الكاميرا باليد: 13 خطوة (بالصور)

فيديو: مثبت الكاميرا باليد: 13 خطوة (بالصور)
فيديو: iPhone 13 Pro Camera | شرح كامل لاعدادات كاميرا الايفون 2024, يوليو
Anonim
مثبت الكاميرا المحمولة
مثبت الكاميرا المحمولة

مقدمة

هذا دليل لإنشاء جهاز تثبيت كاميرا محمول ثلاثي المحاور لكاميرا GoPro باستخدام لوحة تطوير Digilent Zybo Zynq-7000. تم تطوير هذا المشروع لفئة أنظمة التشغيل في الوقت الحقيقي CPE (CPE 439). يستخدم المثبت ثلاث وحدات تشغيل ووحدة IMU لتصحيح حركة المستخدم للحفاظ على مستوى الكاميرا.

الأجزاء المطلوبة للمشروع

  • مجلس التنمية Digilent Zybo Zynq-7000
  • Sparkfun IMU Breakout - MPU 9250
  • 2 أجهزة HiTec HS-5485HB (اشترِ برنامجًا أو حركة 180 درجة من 90 إلى 180 درجة)
  • 1 HiTec HS-5685MH Servo (شراء 180 درجة حركة أو برنامج من 90 إلى 180 درجة)
  • 2 بين قوسين مؤازرين قياسيين
  • 1 اللوح
  • 15 سلك توصيل من ذكر إلى ذكر
  • 4 أسلاك توصيل من ذكر إلى أنثى
  • الغراء الساخن
  • قبضة أو مقبض
  • 5 ملم قطر وتد خشبي
  • GoPro أو كاميرا أخرى وأجهزة التركيب
  • مزود طاقة قادر على إخراج 5 فولت.
  • الوصول إلى طابعة ثلاثية الأبعاد

الخطوة 1: إعداد أجهزة Vivado

إعداد أجهزة Vivado
إعداد أجهزة Vivado

لنبدأ في إنشاء تصميم الكتلة الأساسي للمشروع.

  1. افتح Vivado 2016.2 ، وانقر على أيقونة "إنشاء مشروع جديد" ، وانقر على "التالي>".
  2. اسم مشروعك وانقر على "التالي>".
  3. اختر مشروع RTL واضغط على "التالي>".
  4. اكتب في شريط البحث xc7z010clg400-1 ثم حدد الجزء واضغط على "التالي>" و "إنهاء".

الخطوة 2: إعداد تصميم الكتلة

سنبدأ الآن في إنشاء تصميم الكتلة عن طريق إضافة Zynq IP Block وإعداده.

  1. في اللوحة اليمنى ، ضمن IP Integrator ، انقر فوق "Create Block Design" ثم انقر فوق "OK".
  2. انقر بزر الماوس الأيمن فوق علامة التبويب "مخطط" واختر "إضافة IP …".
  3. اكتب "ZYNQ7 Processing System" وانقر على الاختيار.
  4. انقر نقرًا مزدوجًا فوق كتلة Zynq التي تظهر.
  5. انقر فوق "استيراد إعدادات XPS" وقم باستيراد ملف "ZYBO_zynq_def.xml" المقدم.
  6. انتقل إلى "تكوين MIO" وحدد "وحدة معالج التطبيق" وقم بتمكين Timer 0 و Watchdog timers.
  7. في نفس علامة التبويب ، ضمن "I / O Peripherals" ، حدد ENET 0 (وقم بتغيير القائمة المنسدلة إلى "MIO 16.. 27" ، USB 0 ، SD 0 ، UART 1 ، I2C 0.
  8. ضمن "GPIO" ، تحقق من GPIO MIO و ENET Reset و USB Reset و I2C Reset.
  9. انتقل الآن إلى "تكوين الساعة". حدد FCLK_CLK0 ضمن PL Fabric Clocks. ثم انقر فوق "موافق".

الخطوة 3: إنشاء PWM IP Block مخصص

تسمح كتلة IP هذه للوحة بإرسال إشارة PWM للتحكم في حركة الماكينات. استند العمل بشكل كبير إلى البرنامج التعليمي الذي أجرته Digitronix Nepal ، والموجود هنا. تمت إضافة المنطق لإبطاء الساعة بحيث خرج النبض بالمعدل الصحيح. تأخذ الكتلة رقمًا من 0 إلى 180 وتحولها إلى نبضة من 750-2150 usec.

  1. الآن ، ضمن علامة التبويب أدوات بالقرب من الزاوية اليسرى العليا ، انقر فوق "إنشاء وحزم IP …" واضغط على التالي.
  2. ثم حدد "إنشاء جهاز طرفي جديد AXI4" واضغط على التالي.
  3. قم بتسمية كتلة PWM IP الخاصة بك (أطلقنا عليها اسم pwm_core) وانقر فوق التالي ثم انقر فوق التالي في الصفحة التالية أيضًا.
  4. الآن انقر فوق "تحرير IP" واضغط على إنهاء. سيؤدي هذا إلى فتح نافذة جديدة لتحرير كتلة pwm.
  5. في علامة التبويب "المصادر" وضمن "مصادر التصميم" ، وسّع "pwm_core_v1_0" (استبدل pwm_core باسمك) وافتح الملف الذي يصبح مرئيًا.
  6. انسخ والصق الكود المقدم ضمن "pwm_core_v1_0_S00_AXI.v" في الملف المضغوط أسفل المشروع. Ctrl + Shift + R واستبدل "pwm_core" باسمك لكتلة ip.
  7. افتح بعد ذلك "name _v1_0" وانسخ الكود المتوفر في الملف "pwm_core_v1_0.v". Ctrl + Shift + R واستبدل "pwm_core" بالاسم.
  8. انتقل الآن إلى علامة التبويب "Package IP - name" وحدد "Customization Parameters".
  9. في علامة التبويب هذه ، سيكون هناك شريط أصفر في الأعلى يحتوي على نص مرتبط. حدد هذا ، وستظهر "المعلمات المخفية" في المربع.
  10. انتقل الآن إلى "Customization GUI" وانقر بزر الماوس الأيمن على Pwm Counter Max وحدد "Edit Parameter…".
  11. حدد مربعي "مرئي في واجهة المستخدم الرسومية للتخصيص" و "تحديد النطاق".
  12. قم بتغيير القائمة المنسدلة "النوع:" إلى نطاق الأعداد الصحيحة وقم بتعيين الحد الأدنى إلى 0 والحد الأقصى على 65535 وتحديد مربع "إظهار النطاق". الآن انقر فوق "موافق".
  13. اسحب Pwm Counter Max ضمن شجرة "الصفحة 0". انتقل الآن إلى "مراجعة وحزمة" وانقر فوق الزر "إعادة حزم IP".

الخطوة 4: إضافة PWM IP Block للتصميم

أضف PWM IP Block للتصميم
أضف PWM IP Block للتصميم

سنضيف كتلة IP إلى تصميم الكتلة للسماح للمستخدم بالوصول إلى كتلة PWM IP من خلال المعالج.

  1. انقر بزر الماوس الأيمن فوق علامة تبويب الرسم التخطيطي وانقر فوق "إعدادات IP …". انتقل إلى علامة التبويب "مدير المستودع".
  2. انقر فوق زر علامة الجمع الأخضر وحدده. ابحث الآن عن ip_repo في مدير الملفات وأضف ذلك إلى المشروع. ثم اضغط على تطبيق ثم موافق.
  3. انقر بزر الماوس الأيمن فوق علامة تبويب الرسم التخطيطي وانقر فوق "إضافة IP…". اكتب اسم كتلة PWM IP الخاص بك وحدده.
  4. يجب أن يكون هناك شريط أخضر أعلى الشاشة ، حدد أولاً "تشغيل أتمتة الاتصال" وانقر فوق "موافق". ثم انقر فوق "تشغيل بلوك أتمتة" وانقر فوق "موافق".
  5. انقر نقرًا مزدوجًا فوق كتلة PWM وقم بتغيير Pwm Counter Max إلى 1024 من 128.
  6. قم بتمرير مؤشر الماوس فوق PWM0 في كتلة PWM. يجب أن يكون هناك قلم رصاص صغير يظهر عندما تفعل ذلك. انقر بزر الماوس الأيمن وحدد "إنشاء منفذ …" وانقر فوق "موافق" عندما تفتح نافذة. يؤدي هذا إلى إنشاء منفذ خارجي لتمرير الإشارة إليه.
  7. كرر الخطوة 6 مع PWM1 و PWM2 أيضًا.
  8. ابحث عن رمز السهم المزدوج الدائري الصغير على الشريط الجانبي وانقر فوقه. سيعيد إنشاء التخطيط ويجب أن يبدو تصميم الكتلة الخاص بك مثل الصورة أعلاه.

الخطوة 5: تكوين HDL Wrapper وإعداد ملف القيود

تكوين غلاف HDL وإعداد ملف القيود
تكوين غلاف HDL وإعداد ملف القيود

سنقوم الآن بإنشاء تصميم عالي المستوى لتصميم الكتلة الخاص بنا ، ثم نقوم بتعيين PWM0 و PWM1 و PWM2 إلى دبابيس Pmod على لوحة Zybo.

  1. انتقل إلى علامة التبويب "المصادر". انقر بزر الماوس الأيمن فوق ملف تصميم الكتلة الخاص بك ضمن "مصادر التصميم" وانقر فوق "إنشاء غلاف HDL …". حدد "نسخ الغلاف الذي تم إنشاؤه للسماح بتحرير المستخدم" وانقر فوق "موافق". هذا يولد التصميم عالي المستوى لتصميم الكتلة الذي أنشأناه.
  2. Pmod الذي سنخرج إليه هو JE.
  3. ضمن ملف ، حدد "إضافة مصادر …" وحدد "إضافة أو إنشاء قيود" وانقر فوق التالي.
  4. انقر فوق إضافة ملفات وحدد ملف "ZYBO_Master.xdc" المضمن. إذا بحثت في هذا الملف ستلاحظ أن كل شيء غير مُعلق باستثناء ستة أسطر "set_property" تحت "## Pmod Header JE". ستلاحظ أن PWM0 و PWM1 و PWM2 هي وسيطات هذه السطور. يتم تعيينهم إلى Pin 1 و Pin 2 و Pin 3 في JE Pmod.

الخطوة 6: توليد Bitstream

نحتاج إلى إنشاء دفق البت لتصميم الأجهزة للتصدير إلى SDK قبل أن ننتقل.

  1. ضمن "البرنامج والتصحيح" على الشريط الجانبي ، حدد "إنشاء دفق البت". سيؤدي هذا إلى تشغيل التجميع ، ثم التنفيذ ، ثم إنشاء تدفق البتات للتصميم.
  2. قم بتصحيح أي أخطاء منبثقة ، ولكن يمكن تجاهل التحذيرات بشكل عام.
  3. انتقل إلى ملف-> تشغيل SDK وانقر فوق موافق. سيؤدي هذا إلى فتح Xilinx SDK.

الخطوة 7: إعداد المشروع في SDK

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

  1. ابدأ بتنزيل أحدث إصدار من FreeRTOS هنا.
  2. قم باستخراج كل شيء من تنزيل واستيراد FreeRTOS إلى SDK بالنقر فوق ملف-> استيراد ، وضمن "عام" انقر فوق "مشروعات موجودة في مساحة العمل" ثم انقر فوق التالي.
  3. انتقل إلى "FreeRTOS / Demo / CORTEX_A9_Zynq_ZC702" داخل مجلد FreeRTOS. فقط استيراد "RTOSDemo" من هذا الموقع.
  4. الآن قم بإنشاء حزمة دعم المجلس (BSP) بالنقر فوق ملف-> حزمة دعم اللوحة الجديدة.
  5. حدد "ps7_cortexa9_0" وحدد "lwip141" وانقر فوق "موافق".
  6. انقر بزر الماوس الأيمن فوق المجلد الأزرق RTOSDemo وحدد "مراجع المشروع".
  7. قم بإلغاء تحديد "RTOSDemo_bsp" وتحقق من BSP الجديد الذي أنشأناه للتو.

الخطوة 8: تعديلات كود FreeRTOS

يمكن فصل الكود الذي نقدمه إلى 7 ملفات مختلفة. main.c و iic_main_thread.c و xil_printfloat.c و xil_printfloat.h و IIC_funcs.c و IIC_funcs.h و iic_imu.h. تم تعديل الكود الموجود في iic_main_thread.c من مكتبة Kris Winer ، والتي يمكن العثور عليها هنا. لقد قمنا بتحويل الكود الخاص به بشكل أساسي لدمج المهام وجعلها تعمل مع لوحة Zybo. أضفنا أيضًا وظائف لحساب تصحيح اتجاه الكاميرا. لقد تركنا في العديد من عبارات الطباعة المفيدة في التصحيح. يتم التعليق على معظمهم ولكن إذا شعرت بالحاجة إلى ذلك ، يمكنك إلغاء التعليق عليهم.

  1. أسهل طريقة لتعديل ملف main.c هي استبدال الكود برمز منسوخ من ملف main.c المضمن لدينا.
  2. لإنشاء ملف جديد ، انقر بزر الماوس الأيمن على مجلد src ضمن RTOSDemo وحدد C Source File. اسم هذا الملف "iic_main_thread.c".
  3. انسخ الكود من "iic_main_thread.c" المضمن والصقه في الملف الذي تم إنشاؤه حديثًا.
  4. كرر الخطوتين 2 و 3 مع الملفات المتبقية.
  5. يتطلب تعليمات ربط في دول مجلس التعاون الخليجي. لإضافة هذا إلى مسار البناء ، انقر بزر الماوس الأيمن على RTOSDemo وحدد "C / C ++ Build Settings".
  6. نافذة جديدة ستفتح. انتقل إلى ARM v7 gcc linker-> Libraries. حدد ملف الإضافة الصغير في الزاوية اليمنى العليا واكتب "م". سيشمل ذلك مكتبة الرياضيات في المشروع.
  7. أنشئ مشروعًا باستخدام Ctrl + B لتأكيد أن كل شيء يعمل. تحقق من التحذيرات التي تم إنشاؤها ولكن قد تتمكن من تجاهلها.
  8. هناك مكانان يحتاجان إلى تعديل ، خاصة الانحراف المغناطيسي لموقعك الحالي. سنشرح كيفية تغيير هذا في جزء المعايرة من البرنامج التعليمي.

الخطوة 9: الطباعة ثلاثية الأبعاد للمُثبت

طباعة ثلاثية الأبعاد للمثبت
طباعة ثلاثية الأبعاد للمثبت

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

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

الخطوة 10: تجميع الأجزاء

تجميع الأجزاء
تجميع الأجزاء

هناك عدة أجزاء لتجميع المثبت. الأقواس المشتراة تأتي مع 4 براغي و 4 براغي مع صواميل. نظرًا لوجود 3 أجهزة مؤازرة ، يجب الضغط مسبقًا على أحد أبواق المؤازرة للسماح بمرور 2 من البراغي.

  1. جندى 8 دبابيس على فتحة IMU ، 4 على كل جانب.
  2. يتم توصيل IMU بقوس التثبيت المطبوع ثلاثي الأبعاد لـ GoPro في وسط الحامل.
  3. قم بتوجيه الدعامة بحيث تكون فتحات التثبيت المؤازرة على جانبك الأيسر. ضع وحدة IMU على أقرب حافة لك ، بحيث تتدلى الدبابيس من الحافة. بعد ذلك ، ضع حامل GoPro أعلى وحدة IMU ، وقم بإلصاق وحدة IMU والتركيب في مكانه على الحامل.
  4. قم بتوصيل HS-5485HB بقوس المؤازرة المدمج في الذراع المطبوعة ثلاثية الأبعاد.
  5. قم بربط قوس GoPro في المؤازرة المرفقة بالذراع ، مع التأكد من ضبط المؤازرة بحيث تكون في منتصف نطاق حركتها.
  6. بعد ذلك ، قم بتوصيل المؤازرة HS-5685MH بقوس المؤازرة. ثم اضغط على بوق المؤازرة بأحد المسامير. الآن قم بتوصيل المؤازرة بأسفل شريحة المؤازرة الأخيرة.
  7. الآن قم بتوصيل المؤازرة الأخيرة بالقوس الذي تم تثبيت المؤازرة HS-5685MH فيه. ثم قم بلف الذراع في هذه المؤازرة ، مع التأكد من أن الذراع مشدودة بحيث يمكن أن تتحرك بمقدار 90 درجة في كل اتجاه.
  8. لإنهاء بناء المحور ، أضف قطعة صغيرة من المسند الخشبي للربط بين قوس GoPro والذراع المطبوع ثلاثي الأبعاد. لقد قمت الآن بتجميع المثبت.
  9. أخيرًا ، يمكنك إضافة مقبض متصل بقوس المؤازرة السفلي.

الخطوة 11: توصيل Zybo بالموازن

توصيل Zybo بالموازن
توصيل Zybo بالموازن

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

  1. لربط Zybo بالمثبت ، ستحتاج إلى 15 ذكرًا إلى ذكر و 4 رجال إلى أنثى.
  2. أولاً ، قم بتوصيل اثنين من وصلات العبور بمصدر الطاقة 5 فولت على طول القضبان + و- للوح. هذه سوف تزود الطاقة إلى الماكينات.
  3. بعد ذلك ، قم بتوصيل 3 أزواج من وصلات العبور بقضبان + و- للوح. ستكون هذه القوة لكل من الماكينات.
  4. قم بتوصيل الطرف الآخر من وصلات العبور + و - في كل من الماكينات.
  5. قم بتوصيل وصلة عبور بين - سكة اللوح وأحد دبابيس GND على Zybo JE Pmod (انظر صورة الخطوة 5). سيؤدي ذلك إلى إنشاء أرضية مشتركة بين لوحة Zybo ومصدر الطاقة.
  6. بعد ذلك ، قم بتوصيل سلك إشارة بالدبوس 1 ، والدبوس 2 ، والدبوس 3 من JE Pmod. خرائط Pin 1 إلى المؤازرة السفلية ، وخرائط الدبوس 2 إلى المؤازرة في نهاية الذراع ، وقم بتثبيت 3 خرائط على المؤازرة الوسطى.
  7. قم بتوصيل الأسلاك الأنثوية الأربعة في دبابيس GND و VDD و SDA و SCL في اندلاع IMU. قم بتوصيل GND و VDD في GND و 3 V3 على دبابيس JF. قم بتوصيل دبوس SDA في الطرف 8 و SCL في السن 7 على JF (انظر صورة الخطوة 5).
  8. أخيرًا ، قم بتوصيل الكمبيوتر باللوحة باستخدام كابل micro USB. سيسمح هذا بالاتصال ويسمح لك ببرمجة لوحة Zybo.

الخطوة 12: تصحيح الشمال الحقيقي

تصحيح الشمال الحقيقي
تصحيح الشمال الحقيقي

تعد معايرة مقياس المغناطيسية في IMU مهمة للتشغيل الصحيح للجهاز ، الانحراف المغناطيسي الذي يصحح الشمال المغناطيسي إلى الشمال الحقيقي.

  1. لتصحيح الاختلاف بين الشمال المغناطيسي والشمال الحقيقي ، تحتاج إلى استخدام مزيج من خدمتين ، خرائط Google وحاسبة المجال المغناطيسي من NOAA.
  2. استخدم خرائط Google للعثور على خط الطول وخط العرض لموقعك الحالي.
  3. خذ خط الطول وخط العرض الحاليين وقم بتوصيلهما في حاسبة المجال المغناطيسي.
  4. ما يتم إرجاعه هو الانحراف المغناطيسي. أدخل هذه العملية الحسابية في الكود الموجود في السطر 378 من "iic_main_thread.c". إذا كان ميلك نحو الشرق ، اطرح من قيمة الانعراج ، وإذا كان الغرب ، أضف إلى قيمة الانعراج.

* تم التقاط الصورة من دليل ربط MPU 9250 الخاص بشركة Sparkfun والموجود هنا.

الخطوة 13: تشغيل البرنامج

تشغيل البرنامج
تشغيل البرنامج

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

  1. أولاً ، قم ببناء كل شيء في SDK ، ويمكن القيام بذلك عن طريق الضغط على Ctrl + B.
  2. تأكد من تشغيل مصدر الطاقة وضبطه على 5V. تحقق جيدًا من أن جميع الأسلاك تذهب إلى أماكنها الصحيحة.
  3. بعد ذلك ، لتشغيل البرنامج ، اضغط على المثلث الأخضر في المركز العلوي لشريط المهام.
  4. عند تشغيل البرنامج ، ستتم إعادة تعيين جميع الماكينات إلى مواضعها الصفرية ، لذا كن جاهزًا لتحريك المنصة. بمجرد تهيئة البرنامج ، ستعود الماكينات إلى مواقعها البالغة 90 درجة.
  5. سيتم تشغيل وظيفة معايرة مقياس المغناطيسية وستتم طباعة الاتجاهات على طرف UART ، والذي يمكنك الاتصال به عبر شاشة تسلسلية مثل "المعجون" أو الشاشة التسلسلية المتوفرة في SDK.
  6. ستجعلك المعايرة تحرك الجهاز في الشكل 8 لمدة 10 ثوانٍ تقريبًا. يمكنك إزالة هذه الخطوة بالتعليق خارج السطر 273 من "iic_main_thread.c". إذا قمت بالتعليق عليه ، فأنت بحاجة إلى إزالة التعليق من السطور 323 - 325 "iic_main_thread.c". تم جمع هذه القيم في البداية من معايرة مقياس المغناطيسية أعلاه ثم تم توصيلها كقيم.
  7. بعد المعايرة ، سيبدأ رمز التثبيت وسيحافظ الجهاز على ثبات الكاميرا.

موصى به: