جدول المحتويات:
- الخطوة 1: بناء وحدة PWM- ملف المصدر
- الخطوة 2: بناء وحدة PWM- إعداد Vivado
- الخطوة الثالثة: بناء وحدة PWM- قم بإنشاء ملف مشروع
- الخطوة 4: إنشاء وحدة PWM - تصميم الكتلة وإعداد ملف القيد (I)
- الخطوة 5: إنشاء وحدة PWM - تصميم الكتلة وإعداد ملف القيد (II)
- الخطوة 6: إنشاء وحدة PWM - تصميم الكتلة وإعداد ملف القيد (III)
- الخطوة 7: إنشاء وحدة PWM - تصميم الكتلة وإعداد ملف القيد (IV)
- الخطوة 8: إنشاء وحدة PWM - تصميم الكتلة وإعداد ملف القيد (V)
- الخطوة 9: بناء وحدة PWM- تركيب الأجهزة
- الخطوة 10: إنشاء وحدة PWM- إنشاء Bitstream وتشغيل SDK
- الخطوة 11: بناء وحدة PWM- قم بإنشاء تطبيق جديد في Xilinx SDK
- الخطوة 12: بناء وحدة PWM- نظرة عامة على مستكشف المشروع (I)
- الخطوة 13: بناء وحدة PWM- نظرة عامة على مستكشف المشروع (II)
- الخطوة 14: بناء وحدة PWM- نظرة عامة على مستكشف المشروع (III)
- الخطوة 15: بناء وحدة PWM- تلخيص وظيفة PWM (I)
- الخطوة 16: بناء وحدة PWM- تلخيص وظيفة PWM (II)
- الخطوة 17: بناء وحدة PWM- تلخيص وظيفة PWM (III)
- الخطوة 18: بناء وحدة PWM - اجعلها تعمل
- الخطوة 19: دفق معالجة الفيديو على Digilent ZYBO مع OV7670
- الخطوة 20: إكمال مخطط الكتلة
- الخطوة 21: قم بتوصيل OV7670 بـ ZYBO
- الخطوة 22: إنشاء تصميم بلوك
- الخطوة 23: إضافة ملفات VHDL للتحكم والتقاط الكاميرا OV7670
- الخطوة 24: قم بإضافة ملف القيود
- الخطوة 25: إضافة IP Repo لـ HLS IP
- الخطوة 26: أضف الوحدات النمطية و IP
- الخطوة 27: إعدادات تكوين IP
- الخطوة 28: إضافة وتكوين PS IP Block
- الخطوة 29: الجزء 1. بناء وحدة PWM للمحركات المؤازرة
- الخطوة 30: الاتصالات الجانبية لإدخال الفيديو (مميز باسم aclk)
- الخطوة 31: التوصيلات بـ OV7670
- الخطوة 32: اتصالات على Video Out Side
- الخطوة 33: قم بتشغيل Block and Connection Automation
- الخطوة 34: إنشاء غلاف HDL
- الخطوة 35: إنشاء Bitstream وتصدير الأجهزة إلى SDK وتشغيل SDK من Vivado
- الخطوة 36: SDK (بدون FreeRTOS)
- الخطوة 37: تنفيذ FreeRTOS
- الخطوة 38: تعليمات الاستخدام
- الخطوة 39: المراجع والروابط
فيديو: كاميرا ZYBO OV7670 مع التحكم في الدوران / الإمالة: 39 خطوة (مع صور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:41
ابدأ من الخطوة الأولى للحصول على التفاصيل حول إنشاء وحدة تحكم PWM مؤازرة ثنائية المحور.
ابدأ في مخطط الكتلة الضخم (الخطوة 19) للمشروع الكامل.
الكاميرا + إعداد عموم / إمالة استخدمنا:
تم استخدام PmodCON3 من Digilent لتوصيل الماكينات.
الخطوة 1: بناء وحدة PWM- ملف المصدر
الخطوة 2: بناء وحدة PWM- إعداد Vivado
أولاً ، قم بتنزيل موقع Vivado Design Suite من موقع Xilinx. قم بتثبيت كل مجموعة التصميم ، بما في ذلك Vivado Software Development Kit (SDK). يستخدم هذا المشروع إصدار 2017.2.
في غضون ذلك ، يجب أيضًا تثبيت Digilent Adept 2 كمشغل لوحة Zybo.
الخطوة الثالثة: بناء وحدة PWM- قم بإنشاء ملف مشروع
قبل إنشاء ملف مشروع ، يجب عليك التأكد من أنك قمت بالفعل بتثبيت ملف Zybo بشكل صحيح كبرنامج تعليمي هنا:
إصدار Vivado 2015.1 وتثبيت ملف اللوحة اللاحق
افتح Vivado 2017.2. في البداية السريعة ، انقر فوق إنشاء مشروع -> التالي -> اسم المشروع (قم بتسمية اسم مشروعك هنا) -> نوع المشروع. في نوع المشروع ، حدد مشروع RTL وضع علامة على "عدم تحديد المصادر في الوقت الحالي". بعد ذلك ، بالنسبة للجزء الافتراضي ، حدد "اللوحات" و "Zybo" كاسم العرض. بعد ذلك ، انقر فوق "إنهاء" لبدء المشروع.
الخطوة 4: إنشاء وحدة PWM - تصميم الكتلة وإعداد ملف القيد (I)
في Flow Navigator ، انقر فوق "إنشاء قالب تصميم" ، ثم اضغط على موافق. انقر فوق علامة "+" لإضافة عناوين IP الضرورية. يضيف:
- نظام معالجة واحد ZYNQ7 مزود بمؤقتان AXI
- اثنان من الموقت AXI
الخطوة 5: إنشاء وحدة PWM - تصميم الكتلة وإعداد ملف القيد (II)
بعد إضافة عناوين IP ، قم بتشغيل أتمتة الحظر وأتمتة الاتصال. بمجرد اكتمال الأتمتة ، على الكتلة “axi_timer_0” ، انقر بزر الماوس الأيمن على pwm0 -> Make External. قم بتسمية الدبوس الخارجي pwm0 كـ pwm_Xaxis. أيضًا ، كرر العملية المذكورة أعلاه على الكتلة “axi_timer_1” وقم بتسمية الدبوس الخارجي pwm0 كـ pwm_Zaxis.
الخطوة 6: إنشاء وحدة PWM - تصميم الكتلة وإعداد ملف القيد (III)
لاحظ أنه في كل مرة عندما ننتهي من تصميم القوالب في Vivado ، نحتاج إلى إنشاء غلاف HDL. نظرًا لأنها ستكون وحدة المستوى الأعلى لكل مشروع.
الخطوة 7: إنشاء وحدة PWM - تصميم الكتلة وإعداد ملف القيد (IV)
الآن ، نحتاج إلى إعداد ملف القيد الخاص بنا لتعيين دبابيس متصلة بمخطط الكتلة الخاص بنا. أغلق نافذة تصميم القوالب ، في علامة التبويب المصادر ، "إضافة مصادر" -> إضافة أو إنشاء قيود-> أضف Zybo-Master.xdc كملفات القيد الخاصة بنا.
الخطوة 8: إنشاء وحدة PWM - تصميم الكتلة وإعداد ملف القيد (V)
افتح ملف القيد Zybo-Master.xdc من مجلد Constraints ، وقم بإلغاء التعليق على المنافذ التي نريد تحديدها كإشارات إخراج وأعد تسمية "get_ports {XXXX}" ، والتي تشير XXXX إلى الدبوس الخارجي المسمى في مخطط الكتلة. يتم عرض إعداد ملف القيد في الشكل.
الخطوة 9: بناء وحدة PWM- تركيب الأجهزة
قم بتوصيل محركات المؤازرة بـ Pmod CON3. TowerPro SG90 هو نموذج المحرك المؤازر الذي استخدمناه في هذا المشروع. بالنسبة لأسلاك محرك المؤازرة ، يمثل السلك البرتقالي إشارة PWM ، المتصلة بدبوس SIG في Pmod CON3. السلك الأحمر Vcc هو سلك طاقة متصل بدبوس VS في Pmod CON3. أخيرًا ، السلك البني Gnd هو سلك أرضي متصل بدبوس GND. بعد ذلك ، أدخل Pmod CON3 في الصف العلوي من منفذ JD في لوحة Zybo.
الخطوة 10: إنشاء وحدة PWM- إنشاء Bitstream وتشغيل SDK
1. في علامة التبويب Project Navigator ، قم بتشغيل إنشاء BitStream.
2. تصدير الأجهزة: ملف> تصدير> تصدير الأجهزة-> وضع علامة على "تضمين دفق البت" -> موافق 3. قم بتشغيل SDK: ملف -> تشغيل SDK.
الخطوة 11: بناء وحدة PWM- قم بإنشاء تطبيق جديد في Xilinx SDK
إنشاء تطبيق جديد:
ملف> جديد> مشروع التطبيق -> أدخل اسم مشروعك -> إنهاء
ضمن Project Explorer ، يجب أن يكون هناك ثلاثة مجلدات.
في هذه الحالة ، "design_1_wrapper_hw_platform_0" هو المجلد الذي تم تصديره مسبقًا بواسطة Vivado. Axis_2_PWM_SDK_bsp هو مجلد حزمة دعم اللوحة. و Axis_2_PWM_SDK هو مجلد مشروعنا الرئيسي في SDK. يمكنك مشاهدة ملف "helloworld.c" ضمن مجلد "src" من Axis_2_PWM_SDK ، حيث يكون "helloworld.c" هو الملف الرئيسي.
الخطوة 12: بناء وحدة PWM- نظرة عامة على مستكشف المشروع (I)
دعنا نتحقق من بعض الملفات ضمن Project Explorer. أولاً ، في المجلد "design_1_wrapper_hw_platform_0" ، افتح "system.hdf". يوضح هذا الملف خريطة العنوان للمعالج ps7_cortex9 وكتل IP الموجودة في تصميمنا.
الخطوة 13: بناء وحدة PWM- نظرة عامة على مستكشف المشروع (II)
بعد ذلك ، تحقق من ملف "include" و "libsrc" ضمن مجلد "Axis_2_PWM_SDK_bsp". تمكننا ملفات المكتبة هنا من التفاعل مع الأجهزة الطرفية بدون "تشغيل" السجلات.
الخطوة 14: بناء وحدة PWM- نظرة عامة على مستكشف المشروع (III)
من خلال وثائق BSP ، تم العثور على xtmrctr.h كمكتبة Xilinx Timer Control Library المتعلقة بـ AXI Timer. عادة ، يمكننا العثور على وظيفة PWM المطلوبة هنا. ومع ذلك ، إذا قرأت الوثائق "tmrctr_v4_3" ، فإنها تُظهر أن برنامج التشغيل لا يدعم حاليًا تشغيل PWM للجهاز. نظرًا للنقص في وظيفة PWM ، يتعين علينا إنهاء وظيفة PWM الخاصة بنا بمساعدة xtmrctr.h و AXI Timer v2.0 LogiCORE IP Product Guide.
الخطوة 15: بناء وحدة PWM- تلخيص وظيفة PWM (I)
بالعودة إلى الملف الرئيسي "helloworld.c" ، قم بتضمين ملفات الرأس التالية:
الخطوة 16: بناء وحدة PWM- تلخيص وظيفة PWM (II)
حدد العناوين الأساسية لاثنين من TImer AXI من خلال "xparameters.h".
الخطوة 17: بناء وحدة PWM- تلخيص وظيفة PWM (III)
بناء وظيفة PWM المطلوبة.
Duty_val: يحول قيمة الدرجة إلى دورة عمل. PWM_Freq_Duty: اضبط التردد المطلوب ودورة العمل لتوليد PWM. يجب أيضًا تخصيص فترة الساعة.
PWM_START: قم بتعيين عنوان سجل PWM وابدأ في إنشاء PWM.
PWM_STOP: قم بتعيين عنوان سجل PWM وتوقف عن توليد PWM.
يتم عرض باقي الكود التجريبي في "helloworld.c" ضمن "Axis_2_PWM_SDK"
الخطوة 18: بناء وحدة PWM - اجعلها تعمل
1. برمجة FPGA من خلال SDK
- قم بتوصيل Zybo Board من خلال منفذ USB بجهاز الكمبيوتر.
- أدوات Xilinx -> برنامج FPGA
2. قم بتشغيل البرنامج
انقر فوق رمز "تشغيل" والقائمة المنسدلة -> تشغيل باسم -> تشغيل على الأجهزة
3. SDK Terminal
- افتح SDK Terminal -> Connect to Serial Port -> OK
- تشغيل البرنامج. إذا تم تشغيل الكود التجريبي بنجاح ، يجب أن ترى "تم التهيئة!" على طرف SDK.
الخطوة 19: دفق معالجة الفيديو على Digilent ZYBO مع OV7670
مرفق ملف أرشيف كامل.
الخطوة 20: إكمال مخطط الكتلة
يعرض هذا الرسم التخطيطي الكامل لجميع الاتصالات وكتل IP في المشروع
الخطوة 21: قم بتوصيل OV7670 بـ ZYBO
قم بإنشاء اتصال بسلك وحدة ov7670 إلى ZYBO Pmods
البيانات Pmod هي Pmod D
التحكم Pmod هو Pmod C
بالإضافة إلى ذلك ، قم بتوصيل PmodCON3 و servos كما هو محدد في النصف الأول من هذا البرنامج التعليمي
الخطوة 22: إنشاء تصميم بلوك
في Flow Navigator ، انقر فوق "إنشاء قالب تصميم" ، ثم اضغط على "موافق".
الخطوة 23: إضافة ملفات VHDL للتحكم والتقاط الكاميرا OV7670
أضف ملفات VHDL المرفقة بهذه الخطوة إلى المشروع
الخطوة 24: قم بإضافة ملف القيود
أضف ملف القيود المرفق إلى مشروعك.
الخطوة 25: إضافة IP Repo لـ HLS IP
خذ ملف Zip المرفق وفك ضغطه في مجلد جديد يسمى بالمثل في دليل (مجلد) جديد يسمى "HLS_repo".
أضف مستودع IP إلى مشروعك بالانتقال إلى كتالوج IP والنقر بزر الماوس الأيمن فوق تحديد "Add Repository …"
انتقل إلى دليل "HLS_repo" وحدده.
اختياري: قم بإنشاء كتلة معالجة فيديو HLS بنفسك!
الخطوة 26: أضف الوحدات النمطية و IP
أضف وحدات ov7670_axi_stream_capture و debounce و ov7670_controller إلى مخطط الكتلة عن طريق النقر بزر الماوس الأيمن فوق الخلفية وتحديد "إضافة وحدة …"
وبالمثل ، أضف عناوين IP:
- HLS_Video_Track
- كتابة المخزن المؤقت لإطار الفيديو
- قراءة المخزن المؤقت لإطار الفيديو
- تحكم توقيت الفيديو
- AXI4- دفق إلى مخرج الفيديو
- 3 من "شريحة"
- ثابت
- 2 من AXI Timer
الخطوة 27: إعدادات تكوين IP
كما هو موضح بالصور
الخطوة 28: إضافة وتكوين PS IP Block
أضف نظام المعالجة ZYNQ7 إلى مخطط الكتلة
تحرير التكوين:
-
تكوين PS-PL
-
HP
- قم بتمكين S HP 0
- قم بتمكين S HP 1
-
-
تكوين الساعة
-
ساعات قماش PL
- FCLK_0 بسرعة 100 ميجا هرتز
- FCLK_1 بسرعة 25 ميجاهرتز (OutputClock)
- FLCK_2 بسرعة 35 ميجاهرتز (<= 50 ميجاهرتز) (CameraClock)
-
الخطوة 29: الجزء 1. بناء وحدة PWM للمحركات المؤازرة
قم بإخراج axi_timer_0 pwm0 إلى منفذ الإخراج الجديد pwm_Xaxis
قم بإخراج axi_timer_1 pwm0 إلى منفذ الإخراج الجديد pwm_Zaxis
الخطوة 30: الاتصالات الجانبية لإدخال الفيديو (مميز باسم aclk)
قم بتوصيل كتل IP الجانبية لإدخال الفيديو بشكل صحيح
(* يجب إنشاء هذه الاتصالات عن طريق تحديد الخيارات الصحيحة أثناء أتمتة الاتصال) ينتقل "aclk" من axi_stream_capture إلى:
- ap_clk على كتابة المخزن المؤقت لإطار الفيديو
- ap_clk على كتلة معالجة دفق الفيديو HLS
- * aclk على AXI smartconnect IP من Video Frame Buffer اكتب إلى S_AXI_HP0
- * ACLK المطابق لقنوات AXI Interconnect IP لقنوات S_AXI لكتلة معالجة الفيديو HLS وكتابة المخزن المؤقت لإطار الفيديو S_AXI_HP0_ACLK على كتلة PS
يتم توصيل إشارة دفق الفيديو ببساطة في سلسلة من كتلة الالتقاط إلى واجهة ذاكرة Zynq.
- ينتقل الفيديو من كتلة الالتقاط إلى كتلة معالجة HLS.
- ينتقل الفيديو المعالج من كتلة HLS إلى كتلة كتابة المخزن المؤقت للإطار.
- * تتصل كتلة الكتابة في المخزن المؤقت للإطار بواجهة HP0 على كتلة Zynq PS.
- يتم توصيل إشارة m_axis_tuser من خرج كتلة الالتقاط يدويًا إلى إشارة إدخال video_in_TUSER على كتلة معالجة HLS وإشارة ap_start على نفس الكتلة.
يتم استخدام إشارة TUSER (tuser) بواسطة بروتوكول دفق الفيديو AXI للإشارة إلى بداية إطار الفيديو. يخبر AP_Start كتلة HLS ببدء المعالجة ، وبالتالي فإننا نستخدم tuser لتشغيل كتلة HLS لمعالجة كل إطار كما هو يأتي. عند توصيل إشارة واحدة للحافلة وتقسيمها بهذه الطريقة ، من الضروري أيضًا توصيلها بنقطة النهاية العادية لبقية الحافلة. يفترض Vivado أنه إذا كنت تقوم بتوصيل الإشارة يدويًا ، فأنت تريد فصل ما يتصل به عادةً.
إعدادات تكوين كتل IP:
كتابة المخزن المؤقت لإطار الفيديو:
تنسيقات الفيديو: RGB8
عينة واحدة لكل ساعة الحد الأقصى للأعمدة: 1280 (> = 640) الحد الأقصى للصفوف: 960 (> = 480) أقصى عرض للبيانات: 8
الخطوة 31: التوصيلات بـ OV7670
على كتلة ov7670_axi_stream_capture
- اجعل جميع المدخلات خارجية (انقر بزر الماوس الأيمن على دبوس واختر من القائمة ، أو انقر بزر الماوس الأيسر-> ctrl + T)
- اترك الأسماء كما هي
على كتلة ov7670_controller
- اجعل كل مخرجات الكتلة خارجية
- أعد تسمية منفذ config_finished إلى led0
- قم بتوصيل clk إلى CameraClock (<= 50 ميجا هرتز) (FCLK_2)
على كتلة debounce
- قم بتوصيل إدخال button1 بمنفذ إدخال خارجي يسمى btn0
- قم بتوصيل out1 بخط إعادة الإرسال على كتلة ov7670_controller IP
- قم بتوصيل إدخال button2 بمنفذ إدخال خارجي يسمى btn3
- قم بتوصيل out2n بإدخال ext_reset_in على عنوان IP الخاص بإعادة تعيين نظام المعالج لمجال ساعة التقاط الفيديو. (* قد يلزم القيام بذلك بعد إنشاء عنوان IP هذا *)
- قم بتوصيل clk إلى CameraClock (<= 50 ميجا هرتز) (FCLK_2)
الخطوة 32: اتصالات على Video Out Side
اتصالات للكتل Video Timing Controller (VTC) ، AXI4-Stream to Video Out ، والشرائح
- استخدم ساعة 25 ميجاهرتز (FCLK_1) لـ vid_io_out_clk و VTC clk
- استخدم ساعة 100 ميجاهرتز (FCLK_0) لـ aclk على AXI4-Stream to Video Out
- vtiming_out إلى vtiming_in
- قراءة المخزن المؤقت لإطار الفيديو ينتقل m_axis_video إلى AXI4-Stream to Video Out video_in
- ينتقل vtg_ce إلى gen_clken
- ربط VTC clken ، aclken ، vid_io_out_ce بالنقطة الثابتة [0: 0]
- قم بإحضار vid_hsync و vid_vsync إلى منافذ الإخراج الخارجية vga_hs و vga_vs ، على التوالي. (غير مصور)
شرائح:
-
يجب إعداد الشرائح كما هو موضح في الصور المرفقة
- أعد تسمية الكتل إلى slice_red و slice_green و slice_blue
- نطاقات شريحة الإعداد كما هو موضح في الصور حسب اسم الكتلة
- قم بتوصيل كل مخرج شريحة بمخرج منفذ خارجي كما هو موضح في الصورة.
- vid_data [23: 0] يتصل بمدخلات كل شريحة (Din [23: 0])
الخطوة 33: قم بتشغيل Block and Connection Automation
قم بتشغيل Block Automation لتوصيل الأشياء من كتلة ZYNQ7 PS. كما هو موضح بالصورة.
قم بتشغيل أتمتة الاتصال لإنشاء كافة عناوين IP الخاصة بالتوصيل البيني. انتبه جيدًا لجميع الخيارات في كل صورة.
في كتلة debounce ، قم بتوصيل out2n بإدخال نظام معالجة نطاق ساعة التقاط الفيديو ، إعادة تعيين إدخال ext_reset_in.
الخطوة 34: إنشاء غلاف HDL
قم بإنشاء غلاف HDL لتصميم الكتلة الخاصة بك.
اضبطها على أنها الوحدة العلوية.
الخطوة 35: إنشاء Bitstream وتصدير الأجهزة إلى SDK وتشغيل SDK من Vivado
تأكد من تضمين دفق البت في التصدير.
قد يستغرق إنشاء دفق البتات وقتًا طويلاً جدًا.
ثم قم بتشغيل SDK
الخطوة 36: SDK (بدون FreeRTOS)
يقوم هذا الإصدار بكل شيء دون استخدام FreeRTOS ، مما يؤدي إلى تكثيف الكود بشكل جيد.
قم بإنشاء BSP مستقل بناءً على تصميم الأجهزة. يجب أن تكون الخيارات الافتراضية جيدة. تأكد من إنشاء مصادر BSP.
قم بإنشاء التطبيق كما هو موضح في الصورة. (تطبيق فارغ)
احذف الرئيسي الذي تم إنشاؤه تلقائيًا واستورد الملفات المرفقة.
الخطوة 37: تنفيذ FreeRTOS
هذا الإصدار يستخدم FreeRTOS. أنشئ FreeRTOS901 BSP بناءً على تصميم الأجهزة. يجب أن تكون الخيارات الافتراضية جيدة. تأكد من إنشاء مصادر BSP.
قم بإنشاء التطبيق كما هو موضح في الصورة. (تطبيق فارغ)
احذف الرئيسي الذي تم إنشاؤه تلقائيًا واستورد الملفات المرفقة.
الخطوة 38: تعليمات الاستخدام
هذا المشروع صعب بعض الشيء للتشغيل. اتبع الخطوات بالترتيب.
تأكد من أن ZYBO الخاص بك لا يقوم بتحميل أي شيء ذاتيًا عند تشغيله. هذا يعني أنه يجب ألا يضيء مؤشر Done LED. تتمثل إحدى طرق القيام بذلك في ضبط وصلة مصدر التمهيد على JTAG.
افتح المشروع (FreeRTOS أم لا) الذي تريد برمجته من SDK
- قم بتشغيل ZYBO. يجب ألا يضيء مؤشر Done LED.
- برمجة FPGA مع ملف بت. يجب أن يضيء مؤشر Done LED. يجب ألا تضيء Led0.
- قم بتشغيل الكود (تذكر تجاوز نقطة توقف البداية إذا كنت تفعل ذلك).
في هذه المرحلة ، يجب أن تحصل على إخراج على شاشة VGA الخاصة بك.
لإعادة التشغيل (إذا كان هناك أخطاء أو أي شيء آخر): اضغط بسرعة على زر PS-SRST أو أوقف تشغيل ZYBO ثم أعد تشغيله. تابع من الخطوة 2.
سيؤدي إيقاف المعالج باستخدام مصحح الأخطاء إلى تثبيت الكاميرا في موضعها بدلاً من تحريكها. سيستمر دفق الفيديو على أي حال.
الخطوة 39: المراجع والروابط
أدلة مرجعية ووثائق Xilinx:
- PG044 - دفق AXI إلى مخرج الفيديو
- PG278 - قراءة / كتابة المخزن المؤقت لإطار الفيديو
روابط أخرى:
- مدونة لوري - إدخال VDMA
- مدونة Lauri - إخراج OV7670 إلى VGA باستخدام BRAM
- Hamsterworks wiki ، بواسطة Mike Fields ، المصدر الأصلي لرمز OV7670
- ورقة بيانات توضح مواصفات التوقيت الأساسية
موصى به:
مقياس سرعة الدوران على شكل عجلة الهامستر: 11 خطوة (صور توضيحية)
مقياس سرعة الدوران في الهامستر: منذ حوالي ثلاث سنوات ، حصل أبناء الأخوة على أول حيوان أليف لهم ، وهو هامستر يُدعى Nugget. بدأ الفضول حول روتين تمرين Nugget في مشروع استمر لفترة طويلة Nugget (RIP). يحدد هذا Instructable أداة بصرية لعجلة التمرين الوظيفية
متزلج كاميرا تتبع الكائن مع محور الدوران. طباعة ثلاثية الأبعاد ومبنية على وحدة تحكم محرك RoboClaw DC و Arduino: 5 خطوات (بالصور)
متزلج كاميرا تتبع الكائن مع محور الدوران. 3D مطبوعة ومبنية على RoboClaw DC Motor Controller & Arduino: كان هذا المشروع أحد مشاريعي المفضلة منذ أن تمكنت من الجمع بين اهتماماتي في صناعة الفيديو مع DIY. لطالما نظرت وأردت محاكاة تلك اللقطات السينمائية في الأفلام حيث تتحرك الكاميرا عبر الشاشة أثناء التحريك لتتبع
كاميرا يتم التحكم فيها بالحركة باستخدام MESH SDK: 6 خطوات (مع صور)
الكاميرا التي يتم التحكم فيها بالحركة باستخدام MESH SDK: هل تريد أتمتة الكاميرا لالتقاط أفضل لحظات حيوانك الأليف أثناء عدم وجودك في المنزل؟ يتيح مستشعر الحركة MESH للكاميرات التي تدعم SDK. على سبيل المثال ، وضعنا مستشعر حركة MESH بجوار طعام القطط وألعاب القطط من أجل
سوار استشعار الإمالة: 6 خطوات (مع صور)
سوار استشعار الميل: سوار مزين بستة بتلات قماشية موصلة وخيط من الخرز مع خرزة معدنية في النهاية ، مما يجعل من اكتشاف إمالة ست نقاط بسيطة. إنه مصمم أيضًا بحيث تتلامس الخرزة المعدنية مع بتلتين إذا كانت تقع بينهما
كاميرا رقمية / كاميرا فيديو للرؤية الليلية بالأشعة تحت الحمراء: 17 خطوة (مع صور)
كاميرا رقمية / كاميرا فيديو للرؤية الليلية بالأشعة تحت الحمراء: يشرح هذا الدليل كيفية تحويل كاميرا ديسكفري كيدز للرؤية الليلية (التي تم الإعلان عنها بشكل خاطئ لاستخدام & quot ؛ تقنية الرؤية الليلية الحقيقية بالأشعة تحت الحمراء & quot ؛) إلى كاميرا فيديو حقيقية للرؤية الليلية بالأشعة تحت الحمراء. & nbsp؛ هذا مشابه لـ IR webca