Arduino PRO + FPGA สำหรับงานที่ต้องการความเร็วสูง
การเร่งฮาร์ดแวร์: Arduino + FPGA
โปรเซสเซอร์ Arduino มาตรฐานจะรันคำสั่งตามลำดับ: บรรทัดที่ 1, ตามด้วยบรรทัดที่ 2, แล้วจึงเป็นบรรทัดที่ 3 สำหรับงานที่ต้องการความเร็วสูงมาก เช่น การระบุใบหน้าจากฟีดกล้องสด โปรเซสเซอร์ที่ทำงานแบบลำดับความเร็ว 48MHz แทบจะหยุดนิ่ง ขอแนะนำ FPGA (Field Programmable Gate Array)

แนวคิดของ MKR Vidor 4000
Arduino MKR Vidor 4000 เป็นบอร์ดที่ปฏิวัติวงการ ประกอบด้วยโปรเซสเซอร์ ARM Cortex มาตรฐาน (สำหรับ C++ code ของคุณ) ซึ่งเชื่อมต่อโดยตรงกับชิป Intel Cyclone FPGA
- ความแตกต่าง: คุณไม่ได้ตั้งโปรแกรม FPGA ด้วย "software loop" คุณเขียน HDL (Hardware Description Language) คุณกำลังเชื่อมต่อเกตซิลิคอนภายในชิปใหม่ในทันที!
- การประมวลผลแบบขนาน: เนื่องจากซิลิคอนถูกจัดเส้นทางใหม่ทางกายภาพ FPGA จึงสามารถประมวลผลสมการ 100,000 รายการพร้อมกันได้ใน single clock cycle มันประมวลผลข้อมูลได้ทันที
อินเทอร์เฟซกล้อง
กรณีการใช้งานที่พบบ่อยที่สุดคือ Machine Vision
- ชิป Arduino มาตรฐานไม่สามารถจัดเก็บภาพเดียวใน RAM ของมันได้ด้วยซ้ำ
- บอร์ด Vidor มี MIPI Camera connector โดยเฉพาะ
- ชิป FPGA จะดึงฟีดวิดีโอสด 60FPS, รัน edge-detection algorithm ที่เร็วสุดขีด (เขียนใน Verilog), คำนวณ X/Y coordinates ของวัตถุ, และส่งผ่าน เฉพาะ coordinate สุดท้ายที่เรียบง่าย ไปยังชิป Arduino
- C++ code ของ Arduino มาตรฐานของคุณจะระบุเพียง:
if(object_x > 100) { turn_servo(); }
คำเตือนเกี่ยวกับความซับซ้อน
การทำงานกับ FPGA โดยทั่วไปสงวนไว้สำหรับวิศวกรรมไฟฟ้าในระดับมหาวิทยาลัย แต่ไลบรารี Vidor ที่คอมไพล์ไว้ล่วงหน้าช่วยให้ Makers ขั้นสูงสามารถทดลองใช้ hardware acceleration อันน่าทึ่งนี้ได้โดยไม่ต้องเขียน VHDL code ตั้งแต่เริ่มต้น