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

FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera: 5 Steps
FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera: 5 Steps

فيديو: FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera: 5 Steps

فيديو: FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera: 5 Steps
فيديو: FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera (tutorial & code) 2024, شهر نوفمبر
Anonim
FPGA Cyclone IV DueProLogic يتحكم في كاميرا Raspberry Pi
FPGA Cyclone IV DueProLogic يتحكم في كاميرا Raspberry Pi

على الرغم من أن FPGA DueProLogic مصمم رسميًا لـ Arduino ، إلا أننا سنجعل FPGA و Raspberry Pi 4B قابلين للتواصل.

يتم تنفيذ ثلاث مهام في هذا البرنامج التعليمي:

(أ) اضغط في نفس الوقت على زري الضغط على FPGA لقلب زاوية كاميرا RPi.

(ب) يتحكم Raspberry Pi 4B في دائرة LED الخارجية لـ FPGA.

(C) بث مباشر لكاميرا Raspberry Pi على المتصفح عبر WiFi

الخطوة الأولى: بناء دائرة إلكترونية

الخطوة 2: تحرير Verilog Code

تحرير كود فيريلوج
تحرير كود فيريلوج
تحرير كود فيريلوج
تحرير كود فيريلوج

عند شراء FPGA DueProLogic ، يجب أن تتلقى قرص DVD. بعد فتح "Projects_HDL" ، يجب أن تشاهد ملف كود HDL الأصلي. بعد إعداد مخطط الدبوس ، أضف الكود المميز كما هو موضح في القسم 2 أ و 2 ب و 2 ج و 2 د.

2 أ: لتنشيط الأزرار الانضغاطية ، يجب عليك استخدام هذا الرمز

// مفاتيح الضغط على زر

سلك الإدخال UBA ،

سلك الإدخال UBB

للتواصل مع Raspberry Pi ، تحتاج إلى إضافة هذه.

ريج sel_send ؛ // تفعيل Raspberry pi

ريج استقبال // وردت من التوت باي

2 ب: لتعيين قيم للمنافذ ، يجب عليك تحرير الكود وفقًا لذلك

تعيين XIO_1 [3] = start_stop_cntrl ،

تعيين XIO_2 [2] = استقبال ؛ // ناتج مرتفع أو منخفض في دائرة LED

تعيين XIO_2 [3] = ~ UBA ؛ //اضغط الزر

تعيين XIO_2 [4] = UBB ؛ //اضغط الزر

تعيين XIO_2 [5] = sel_send ؛ // يرسل FPGA إشارة إلى Raspberry Pi

تعيين sel_read = XIO_5 [1] ؛ // يستقبل FPGA إشارة من raspberry pi

تعيين c_enable = XIO_5 [2] ؛ // XIO_5 - UB57 - D17

تعيين LEDExt = XIO_5 [5] ؛

2C: إذا تم الضغط على زرين ضغط في وقت واحد ، فإن FPGA يرسل خرجًا عاليًا إلى Raspberry Pi.

دائمًا @ (sel_send أو UBB أو UBA) // أرسل إلى RPi

يبدأ

إذا (UBB == 1'b0 && UBA == 1'b0)

sel_send = 1'b1 ؛

آخر

sel_send = 1'b0 ؛

نهاية

2D: يقرأ FPGA الإشارة من Raspberry Pi بتردد ساعة يبلغ 66 ميجاهرتز. المنفذ XIO_2 [2] مرتبط بـ "استقبال".

دائما @ (sel_read) // قراءة pi

يبدأ

إذا (sel_read == 1'b1)

استقبال = 1'b0 ؛

آخر

استقبال = 1'b1 ؛

نهاية

الخطوة 3: قم بتحميل كود فيريلوج

تحميل كود فيريلوج
تحميل كود فيريلوج

ثم قم بتحميل ملف pof المترجم إلى FPGA. إذا لم يتم اكتشاف أي جهاز تلقائيًا ، فانقر فوق "إعداد الأجهزة" لتصحيحه يدويًا

الخطوة 4: قم بتحميل رمز Raspberry Pi Code

تسمح الخطوط المميزة لـ FPGA بالتواصل مع Raspberry Pi.

كود Raspberry Pi الكامل لهذا المشروع ،

أ = إدخال GPIO (دبوس) # قراءة FPGAprint (A) ؛

إذا (أ == 1):

camera.rotation = 0

GPIO.output (18، GPIO. LOW) # يرسل إلى FPGA

إذا (A == 0):

camera.rotation = 180

GPIO.output (18، GPIO. HIGH) # إرسال إلى FPGA

الخطوة 5: لنجربها

Image
Image

افتح متصفحك واكتب عنوان IP الخاص بك على سبيل المثال 192.168.xx.xxx:8000.

بعد كل شيء ، يجب أن يعمل النظام!

موصى به: