FPGA Cyclone IV DueProLogic ควบคุมกล้อง Raspberry Pi: 5 ขั้นตอน
FPGA Cyclone IV DueProLogic ควบคุมกล้อง Raspberry Pi: 5 ขั้นตอน
Anonim
FPGA Cyclone IV DueProLogic ควบคุมกล้อง Raspberry Pi
FPGA Cyclone IV DueProLogic ควบคุมกล้อง Raspberry Pi

แม้ว่า FPGA DueProLogic จะได้รับการออกแบบอย่างเป็นทางการสำหรับ Arduino แต่เราจะทำให้ FPGA และ Raspberry Pi 4B สามารถสื่อสารกันได้

มีการใช้งานสามงานในบทช่วยสอนนี้:

(A) กดปุ่มสองปุ่มพร้อมกันบน FPGA เพื่อพลิกมุมกล้อง RPi

(B) Raspberry Pi 4B ควบคุมวงจร LED ภายนอกของ FPGA

(C) ถ่ายทอดสดกล้อง Raspberry Pi บนเบราว์เซอร์ผ่าน WiFi

ขั้นตอนที่ 1: สร้างวงจรอิเล็กทรอนิกส์

ขั้นตอนที่ 2: แก้ไขรหัส Verilog

แก้ไขรหัส Verilog
แก้ไขรหัส Verilog
แก้ไขรหัส Verilog
แก้ไขรหัส Verilog

เมื่อคุณซื้อ FPGA DueProLogic คุณควรได้รับดีวีดี หลังจากที่คุณเปิด "Projects_HDL" คุณจะเห็นไฟล์โค้ด HDL ดั้งเดิม หลังจากที่คุณตั้งค่าพินแพลนเนอร์แล้ว ให้เพิ่มโค้ดที่ไฮไลท์ตามที่แสดงในหัวข้อ 2A, 2B, 2C และ 2D

2A: หากต้องการเปิดใช้งานปุ่มกด คุณต้องใช้รหัสนี้

// สวิตช์ปุ่มกด

สายอินพุต UBA,

สายเข้า UBB

ในการสื่อสารกับ Raspberry Pi คุณต้องเพิ่มสิ่งเหล่านี้

reg sel_send; // เปิดใช้งาน Raspberry pi

เร็กคอร์ด; //รับจาก raspberry pi

2B: ในการกำหนดค่าให้กับพอร์ต คุณควรแก้ไขรหัสตามนั้น

กำหนด XIO_1[3] = start_stop_cntrl;

กำหนด XIO_2[2] = rece; //เอาต์พุตสูงหรือต่ำในวงจร LED

กำหนด XIO_2[3] = ~UBA; //กดปุ่ม

กำหนด XIO_2[4] = UBB; //กดปุ่ม

กำหนด XIO_2[5] = sel_send; // FPGA ส่งสัญญาณไปยังราสเบอร์รี่ pi

กำหนด sel_read= XIO_5[1]; //FPGA รับสัญญาณจากราสเบอร์รี่ 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 ด้วยความถี่สัญญาณนาฬิกา 66MHz พอร์ต XIO_2[2] เชื่อมโยงกับ 'rece'

@(sel_read) เสมอ //read pi

เริ่ม

ถ้า (sel_read == 1'b1)

Rece = 1'b0;

อื่น

Rece = 1'b1;

จบ

ขั้นตอนที่ 3: อัปโหลดรหัส Verilog

อัปโหลดรหัส Verilog
อัปโหลดรหัส Verilog

จากนั้นอัปโหลดไฟล์ pof ที่คอมไพล์ไปยัง FPGA หากตรวจไม่พบฮาร์ดแวร์โดยอัตโนมัติ ให้คลิก "การตั้งค่าฮาร์ดแวร์" เพื่อแก้ไขด้วยตนเอง

ขั้นตอนที่ 4: อัปโหลดรหัส Raspberry Pi

เส้นที่ไฮไลต์ช่วยให้ FPGA สามารถสื่อสารกับ Raspberry Pi

รหัส Raspberry Pi แบบเต็มสำหรับโครงการนี้

A = GPIO.input(พิน) #read FPGAprint(A);

ถ้า(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.

ท้ายที่สุดระบบควรใช้งานได้!