สารบัญ:

ระบบกันสั่นแบบมือถือ: 13 ขั้นตอน (พร้อมรูปภาพ)
ระบบกันสั่นแบบมือถือ: 13 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ระบบกันสั่นแบบมือถือ: 13 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ระบบกันสั่นแบบมือถือ: 13 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: 9 มุมกล้อง ถ่ายวิดีโอ Cinematic ด้วยไม้กันสั่นตัวเริ่มต้น 2024, พฤศจิกายน
Anonim
ตัวป้องกันภาพสั่นไหวแบบมือถือ
ตัวป้องกันภาพสั่นไหวแบบมือถือ

บทนำ

นี่คือคู่มือสำหรับการสร้างอุปกรณ์ป้องกันภาพสั่นไหวแบบมือถือ 3 แกนสำหรับ GoPro โดยใช้บอร์ดพัฒนา Digilent Zybo Zynq-7000 โปรเจ็กต์นี้ได้รับการพัฒนาสำหรับคลาส CPE Real-Time Operating Systems (CPE 439) ตัวกันโคลงใช้เซอร์โวสามตัวและ IMU เพื่อแก้ไขการเคลื่อนไหวของผู้ใช้เพื่อรักษาระดับกล้อง

ชิ้นส่วนที่จำเป็นสำหรับโครงการ

  • Digilent Zybo Zynq-7000 บอร์ดพัฒนา
  • Sparkfun IMU ฝ่าวงล้อม - MPU 9250
  • 2 HiTec HS-5485HB เซอร์โว (ซื้อการเคลื่อนไหว 180 องศาหรือโปรแกรมจาก 90 ถึง 180 องศา)
  • 1 HiTec HS-5685MH Servo (ซื้อการเคลื่อนไหว 180 องศาหรือโปรแกรมจาก 90 ถึง 180 องศา)
  • 2 วงเล็บเซอร์โวมาตรฐาน
  • 1 เขียงหั่นขนม
  • สายจัมเปอร์ตัวผู้ถึงตัวผู้ 15 เส้น
  • สายจัมเปอร์ชาย-หญิง 4 เส้น
  • กาวร้อน
  • จับหรือจับ
  • เดือยไม้ขนาดเส้นผ่านศูนย์กลาง 5 มม.
  • GoPro หรือกล้องและอุปกรณ์ติดตั้งอื่นๆ
  • แหล่งจ่ายไฟที่สามารถส่งออก 5V
  • เข้าถึงเครื่องพิมพ์ 3 มิติ

ขั้นตอนที่ 1: การตั้งค่าฮาร์ดแวร์ Vivado

การติดตั้งฮาร์ดแวร์ Vivado
การติดตั้งฮาร์ดแวร์ Vivado

เริ่มต้นด้วยการสร้างการออกแบบบล็อกพื้นฐานสำหรับโครงการ

  1. เปิด Vivado 2016.2 คลิกไอคอน "สร้างโครงการใหม่" แล้วคลิก "ถัดไป>"
  2. ตั้งชื่อโครงการของคุณและคลิก "ถัดไป >"
  3. เลือกโครงการ RTL และกด "ถัดไป>"
  4. พิมพ์ลงในแถบค้นหา xc7z010clg400-1 จากนั้นเลือกส่วนและกด "Next >" และ "Finish"

ขั้นตอนที่ 2: การตั้งค่าการออกแบบบล็อก

ตอนนี้เราจะเริ่มสร้างการออกแบบบล็อกโดยการเพิ่มและตั้งค่า Zynq IP Block

  1. ที่แผงด้านซ้ายมือ ภายใต้ IP Integrator คลิก "สร้างการออกแบบบล็อก" จากนั้นคลิก "ตกลง"
  2. คลิกขวาในแท็บ "ไดอะแกรม" และเลือก "เพิ่ม IP…"
  3. พิมพ์ "ZYNQ7 Processing System" แล้วคลิกเลือก
  4. ดับเบิลคลิกที่บล็อก Zynq ที่ปรากฏขึ้น
  5. คลิก "นำเข้าการตั้งค่า XPS" และนำเข้าไฟล์ "ZYBO_zynq_def.xml" ที่ให้มา
  6. ไปที่ "การกำหนดค่า MIO" และเลือก "หน่วยประมวลผลแอปพลิเคชัน" และเปิดใช้งานตัวจับเวลา 0 และตัวจับเวลา Watchdog
  7. ในแท็บเดียวกัน ภายใต้ "อุปกรณ์ต่อพ่วง I/O" เลือก 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 แบบกำหนดเอง

บล็อก IP นี้ช่วยให้บอร์ดส่งสัญญาณ PWM ออกเพื่อควบคุมการเคลื่อนที่ของเซอร์โว งานนี้มีพื้นฐานมาจากการสอนโดย Digitronix Nepal พบได้ที่นี่ เพิ่มลอจิกเพื่อทำให้นาฬิกาช้าลง ดังนั้นพัลส์จึงส่งสัญญาณออกในอัตราที่ถูกต้อง บล็อกใช้ตัวเลขตั้งแต่ 0 ถึง 180 และแปลงเป็นพัลส์ตั้งแต่ 750-2150 usec

  1. ตอนนี้ ใต้แท็บเครื่องมือใกล้มุมซ้ายบน คลิก "สร้างและจัดแพ็คเกจ IP…" แล้วกดถัดไป
  2. จากนั้นเลือก "สร้างอุปกรณ์ต่อพ่วง AXI4 ใหม่" แล้วกดถัดไป
  3. ตั้งชื่อบล็อก PWM IP ของคุณ (เราตั้งชื่อว่า pwm_core) แล้วคลิก ถัดไป จากนั้นคลิก ถัดไป ในหน้าถัดไปด้วย
  4. ตอนนี้คลิก "แก้ไข IP" และกด Finish ซึ่งจะเป็นการเปิดหน้าต่างใหม่เพื่อแก้ไขบล็อก pwm
  5. ในแท็บ "แหล่งที่มา" และใต้ "แหล่งที่มาของการออกแบบ" ให้ขยาย 'pwm_core_v1_0' (แทนที่ pwm_core ด้วยชื่อของคุณ) แล้วเปิดไฟล์ที่มองเห็นได้
  6. คัดลอกและวางรหัสที่ให้ไว้ใต้ 'pwm_core_v1_0_S00_AXI.v' ในไฟล์ zip ที่ด้านล่างของโครงการ Ctrl + Shift + R และแทนที่ 'pwm_core' ด้วยชื่อของคุณสำหรับบล็อก ip
  7. ถัดไปเปิด ' ชื่อ _v1_0' และคัดลอกในรหัสที่ให้ไว้ในไฟล์ 'pwm_core_v1_0.v' Ctrl + Shift + R และแทนที่ 'pwm_core' ด้วย name
  8. ตอนนี้ไปที่แท็บ 'Package IP - name' และเลือก "Customization Parameters"
  9. ในแท็บนี้จะมีแถบสีเหลืองที่ด้านบนซึ่งมีข้อความเชื่อมโยงอยู่ เลือกสิ่งนี้และ "พารามิเตอร์ที่ซ่อนอยู่" จะปรากฏขึ้นในกล่อง
  10. ตอนนี้ไปที่ "Customization GUI" และคลิกขวาที่ Pwm Counter Max เลือก "Edit Parameter…"
  11. ทำเครื่องหมายที่ช่อง "มองเห็นได้ใน GUI การปรับแต่ง" และ "ระบุช่วง"
  12. เปลี่ยนเมนูแบบเลื่อนลง "ประเภท:" เป็นช่วงของจำนวนเต็มและตั้งค่าต่ำสุดเป็น 0 และสูงสุดเป็น 65535 และทำเครื่องหมายที่ช่อง "แสดงช่วง" ตอนนี้คลิกตกลง
  13. ลาก Pwm Counter Max ใต้ทรี 'หน้า 0' ตอนนี้ไปที่ "ตรวจสอบและแพ็คเกจ" แล้วคลิกปุ่ม "Re-Package IP"

ขั้นตอนที่ 4: เพิ่ม PWM IP Block ในการออกแบบ

เพิ่ม PWM IP Block ในการออกแบบ
เพิ่ม PWM IP Block ในการออกแบบ

เราจะเพิ่มบล็อก IP ลงในการออกแบบบล็อกเพื่อให้ผู้ใช้สามารถเข้าถึงบล็อก PWM IP ผ่านโปรเซสเซอร์

  1. คลิกขวาในแท็บไดอะแกรมแล้วคลิก "การตั้งค่า IP…" ไปที่แท็บ "ตัวจัดการพื้นที่เก็บข้อมูล"
  2. คลิกปุ่มบวกสีเขียวแล้วเลือก ตอนนี้ให้ค้นหา ip_repo ในตัวจัดการไฟล์และเพิ่มไปยังโครงการ จากนั้นกดสมัครแล้วตกลง
  3. คลิกขวาในแท็บไดอะแกรมแล้วคลิก "เพิ่ม IP…" พิมพ์ชื่อบล็อก PWM IP ของคุณแล้วเลือก
  4. ควรมีแถบสีเขียวที่ด้านบนของหน้าจอ ก่อนอื่นให้เลือก "เรียกใช้การเชื่อมต่ออัตโนมัติ" แล้วคลิกตกลง จากนั้นคลิก "เรียกใช้ Block Automation" แล้วคลิกตกลง
  5. ดับเบิลคลิกที่บล็อก PWM และเปลี่ยน Pwm Counter Max เป็น 1024 จาก 128
  6. วางตัวชี้เมาส์ไว้เหนือ PWM0 บนบล็อก PWM ควรมีดินสอแท่งเล็กๆ ปรากฏขึ้นเมื่อคุณทำ คลิกขวาและเลือก "สร้างพอร์ต…" และคลิกตกลงเมื่อหน้าต่างเปิดขึ้น สิ่งนี้จะสร้างพอร์ตภายนอกสำหรับส่งสัญญาณไปยัง
  7. ทำซ้ำขั้นตอนที่ 6 สำหรับ PWM1 และ PWM2 ด้วย
  8. ค้นหาไอคอนลูกศรคู่วงกลมขนาดเล็กบนแถบด้านข้างแล้วคลิก มันจะสร้างเค้าโครงใหม่และการออกแบบบล็อกของคุณควรมีลักษณะเหมือนภาพด้านบน

ขั้นตอนที่ 5: กำหนดค่า HDL Wrapper และตั้งค่าไฟล์ข้อจำกัด

กำหนดค่า HDL Wrapper และตั้งค่าไฟล์ข้อจำกัด
กำหนดค่า HDL Wrapper และตั้งค่าไฟล์ข้อจำกัด

ตอนนี้เรากำลังจะสร้างการออกแบบระดับสูงสำหรับการออกแบบบล็อกของเรา จากนั้นจึงแมป PWM0, PWM1 และ PWM2 กับพิน Pmod บนบอร์ด Zybo

  1. ไปที่แท็บ "แหล่งที่มา" คลิกขวาที่ไฟล์การออกแบบบล็อกของคุณภายใต้ "แหล่งที่มาของการออกแบบ" และคลิก "สร้าง HDL Wrapper…" เลือก "คัดลอกเสื้อคลุมที่สร้างขึ้นเพื่ออนุญาตให้ผู้ใช้แก้ไข" แล้วคลิกตกลง สิ่งนี้สร้างการออกแบบระดับสูงสำหรับการออกแบบบล็อกที่เราสร้างขึ้น
  2. Pmod ที่เราจะส่งออกไปคือ JE
  3. ใต้ไฟล์ เลือก "เพิ่มแหล่งที่มา…" แล้วเลือก "เพิ่มหรือสร้างข้อจำกัด" แล้วคลิกถัดไป
  4. คลิกเพิ่มไฟล์และเลือกไฟล์ "ZYBO_Master.xdc" ที่รวมไว้ หากคุณดูในไฟล์นี้ คุณจะสังเกตเห็นว่าทุกอย่างไม่มีความคิดเห็น ยกเว้น "set_property" หกบรรทัดภายใต้ "##Pmod Header JE" คุณจะสังเกตเห็นว่า PWM0, PWM1 และ PWM2 เป็นอาร์กิวเมนต์สำหรับบรรทัดเหล่านี้ พวกมันจับคู่กับพิน 1 พิน 2 และพิน 3 ของ JE Pmod

ขั้นตอนที่ 6: การสร้าง Bitstream

เราจำเป็นต้องสร้างบิตสตรีมสำหรับการออกแบบฮาร์ดแวร์เพื่อส่งออกไปยัง SDK ก่อนที่เราจะดำเนินการต่อ

  1. ใต้ "โปรแกรมและดีบัก" บนแถบด้านข้าง ให้เลือก "สร้าง Bitstream" การดำเนินการนี้จะเรียกใช้การสังเคราะห์ จากนั้นนำไปปฏิบัติ และสร้างบิตสตรีมสำหรับการออกแบบ
  2. แก้ไขข้อผิดพลาดที่ปรากฏขึ้น แต่โดยทั่วไปสามารถละเว้นคำเตือนได้
  3. ไปที่ File->Launch SDK แล้วคลิก OK ซึ่งจะเป็นการเปิด Xilinx SDK

ขั้นตอนที่ 7: การตั้งค่าโครงการใน SDK

ส่วนนี้อาจทำให้หงุดหงิดเล็กน้อย หากมีข้อสงสัย ให้สร้าง BSP ใหม่และแทนที่อันเก่า สิ่งนี้ช่วยเราประหยัดเวลาในการดีบักได้มากมาย

  1. เริ่มต้นด้วยการดาวน์โหลด FreeRTOS เวอร์ชันล่าสุดที่นี่
  2. แยกทุกอย่างจากการดาวน์โหลดและนำเข้า FreeRTOS ลงใน SDK โดยคลิกไฟล์ -> นำเข้า และภายใต้ "ทั่วไป" ให้คลิก "โครงการที่มีอยู่สู่พื้นที่ทำงาน" จากนั้นคลิกถัดไป
  3. ไปที่ "FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702" ภายในโฟลเดอร์ FreeRTOS นำเข้าเฉพาะ "RTOSDemo" จากตำแหน่งนี้
  4. ตอนนี้สร้าง Board Support Package (BSP) โดยคลิก File->New Board Support Package
  5. เลือก "ps7_cortexa9_0" และเลือก "lwip141" แล้วคลิกตกลง
  6. คลิกขวาที่โฟลเดอร์ RTOSDemo สีน้ำเงิน และเลือก "Project References"
  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. ต้องการคำแนะนำในการลิงก์ใน gcc หากต้องการเพิ่มสิ่งนี้ไปยังเส้นทางการบิลด์ คุณคลิกขวาที่ RTOSDemo และเลือก "การตั้งค่าบิลด์ C/C++"
  6. หน้าต่างใหม่จะเปิดขึ้น ไปที่ ARM v7 gcc linker->Libraries เลือกไฟล์เพิ่มขนาดเล็กที่มุมบนขวาแล้วพิมพ์ "m" ซึ่งจะรวมถึงห้องสมุดคณิตศาสตร์ในโครงการ
  7. สร้างโครงการด้วย Ctrl + B เพื่อยืนยันว่าทุกอย่างใช้งานได้ ตรวจสอบคำเตือนที่สร้างขึ้น แต่คุณอาจเพิกเฉยได้
  8. มีสถานที่สองสามแห่งที่จำเป็นต้องแก้ไข ส่วนใหญ่เป็นการปฏิเสธแม่เหล็กของตำแหน่งปัจจุบันของคุณ เราจะอธิบายวิธีเปลี่ยนแปลงในส่วนการปรับเทียบของบทช่วยสอน

ขั้นตอนที่ 9: การพิมพ์ 3 มิติสำหรับตัวกันโคลง

การพิมพ์ 3 มิติสำหรับตัวกันโคลง
การพิมพ์ 3 มิติสำหรับตัวกันโคลง

คุณต้องพิมพ์ 3 มิติสองสามส่วนสำหรับโครงการนี้ เราอาจซื้อชิ้นส่วนที่มีขนาด/ขนาดใกล้เคียงกับชิ้นส่วนที่พิมพ์ของเราได้

  1. ใช้ไฟล์ที่ให้มาเพื่อพิมพ์แขนและขายึดสำหรับ GoPro
  2. คุณต้องเพิ่มนั่งร้านลงในไฟล์.stl
  3. ตัด/ทำความสะอาดส่วนนั่งร้านส่วนเกินเมื่อพิมพ์เสร็จ
  4. คุณสามารถเปลี่ยนเดือยไม้ด้วยชิ้นส่วนที่พิมพ์ 3 มิติได้หากต้องการ

ขั้นตอนที่ 10: การประกอบชิ้นส่วน

การประกอบชิ้นส่วน
การประกอบชิ้นส่วน

มีหลายชิ้นส่วนสำหรับประกอบเหล็กกันโคลง ขายึดที่ซื้อมาพร้อมกับสกรูตัวเองแตะ 4 ตัว และน็อต 4 ตัวพร้อมน็อต เนื่องจากมีเซอร์โวอยู่ 3 ตัว จึงจำเป็นต้องเคาะแตรเซอร์โวตัวใดตัวหนึ่งไว้ล่วงหน้า เพื่อให้สลักเกลียว 2 ตัวเข้าได้พอดี

  1. บัดกรี 8 พินบน IMU breakout 4 ด้านแต่ละด้าน
  2. IMU ติดอยู่กับตัวยึดที่พิมพ์ 3 มิติสำหรับ GoPro ที่กึ่งกลางของตัวยึด
  3. จัดแนวโครงยึดเพื่อให้รูยึดเซอร์โวอยู่ทางด้านซ้ายมือของคุณ วาง IMU ไว้ที่ขอบที่ใกล้ที่สุด โดยให้หมุดห้อยอยู่ที่ขอบ จากนั้น วางตัวยึด GoPro ที่ด้านบนของ IMU ติด IMU และตัวยึดให้เข้าที่บนโครงยึด
  4. ติด HS-5485HB เข้ากับโครงยึดเซอร์โวที่รวมเข้ากับแขนพิมพ์ 3 มิติ
  5. ขันสกรูยึด GoPro เข้ากับเซอร์โวที่ติดแขน ตรวจสอบให้แน่ใจว่าได้ตั้งค่าเซอร์โวให้อยู่ในช่วงกลางของช่วงการเคลื่อนที่
  6. ถัดไป ติดเซอร์โว HS-5685MH เข้ากับโครงยึดเซอร์โว จากนั้นแตะแตรเซอร์โวด้วยสกรูตัวใดตัวหนึ่ง ตอนนี้แนบเซอร์โวที่ด้านล่างของวงเล็บเซอร์โวสุดท้าย
  7. ตอนนี้แนบเซอร์โวตัวสุดท้ายเข้ากับโครงยึดที่ยึดเซอร์โว HS-5685MH ไว้ จากนั้นขันสกรูแขนเข้ากับเซอร์โวนี้ ตรวจสอบให้แน่ใจว่าได้ขันแขนแล้วเพื่อให้สามารถเคลื่อนที่ได้ 90 องศาในแต่ละทาง
  8. เมื่อต้องการสร้าง gimbal ให้เสร็จสิ้น ให้เพิ่มเดือยไม้ชิ้นเล็กๆ เพื่อเชื่อมต่อระหว่างโครงยึด GoPro กับแขนพิมพ์ 3 มิติ ตอนนี้คุณได้ประกอบโคลงแล้ว
  9. สุดท้าย คุณสามารถเพิ่มที่จับที่เชื่อมต่อกับโครงยึดเซอร์โวด้านล่างได้

ขั้นตอนที่ 11: เชื่อมต่อ Zybo กับ Stabilizer

เชื่อมต่อ Zybo กับตัวกันโคลง
เชื่อมต่อ Zybo กับตัวกันโคลง

มีสองสิ่งที่ต้องระวังเมื่อทำเช่นนี้ คุณต้องการให้แน่ใจว่า 5V จากแหล่งจ่ายไฟจะไม่เข้าไปในบอร์ด Zybo เนื่องจากจะทำให้เกิดปัญหากับบอร์ดได้ ตรวจสอบให้แน่ใจว่าได้ตรวจสอบจัมเปอร์ของคุณอีกครั้งเพื่อยืนยันว่าไม่มีการสลับสายไฟ

  1. ในการติด Zybo เข้ากับโคลง คุณจะต้องมีจัมเปอร์ตัวผู้ถึงตัวผู้ 15 ตัว และจัมเปอร์ตัวผู้ถึงตัวเมีย 4 ตัว
  2. ขั้นแรก เชื่อมต่อจัมเปอร์สองตัวกับแหล่งจ่ายไฟ 5V ของคุณตามราง + และ - ของเขียงหั่นขนม สิ่งเหล่านี้จะจ่ายพลังงานให้กับเซอร์โว
  3. จากนั้นเชื่อมต่อจัมเปอร์ 3 คู่เข้ากับราง + และ - ของเขียงหั่นขนม สิ่งเหล่านี้จะเป็นพลังสำหรับเซอร์โวแต่ละตัว
  4. เสียบปลายอีกด้านของจัมเปอร์ + และ - เข้ากับเซอร์โวแต่ละตัว
  5. เชื่อมต่อจัมเปอร์ระหว่างราง - ของเขียงหั่นขนมกับหมุด GND ตัวใดตัวหนึ่งบน Zybo JE Pmod (ดูภาพขั้นตอนที่ 5) สิ่งนี้จะสร้างจุดร่วมระหว่างบอร์ด Zybo และแหล่งจ่ายไฟ
  6. ถัดไป ต่อสายสัญญาณเข้ากับพิน 1, พิน 2 และพิน 3 ของ JE Pmod ปักหมุด 1 แมปกับเซอร์โวด้านล่าง ปักหมุด 2 แมปกับเซอร์โวที่ปลายแขน และปักหมุด 3 แมปกับเซอร์โวตรงกลาง
  7. เสียบสายไฟตัวเมีย 4 เส้นเข้ากับพิน GND, VDD, SDA และ SCL ของการฝ่าวงล้อม IMU GND และ VDD เสียบเข้ากับ GND และ 3V3 บนหมุด JF เสียบพิน SDA เข้ากับพิน 8 และ SCL เข้ากับพิน 7 บน JF (ดูภาพขั้นตอนที่ 5)
  8. สุดท้าย เชื่อมต่อคอมพิวเตอร์กับบอร์ดโดยใช้สายไมโคร USB สิ่งนี้จะช่วยให้การสื่อสาร uart และอนุญาตให้คุณตั้งโปรแกรมบอร์ด Zybo

ขั้นตอนที่ 12: แก้ไขทิศเหนือจริง

แก้ไขทิศเหนือจริง
แก้ไขทิศเหนือจริง

การสอบเทียบเครื่องวัดความเข้มข้นของสนามแม่เหล็กใน IMU มีความสำคัญต่อการทำงานที่ถูกต้องของอุปกรณ์ การปฏิเสธแม่เหล็กซึ่งแก้ไขทิศเหนือแม่เหล็กเป็นทิศเหนือจริง

  1. ในการแก้ไขความแตกต่างจากทิศเหนือแม่เหล็กและทิศเหนือจริง คุณต้องใช้บริการสองอย่างร่วมกัน ได้แก่ Google Maps และเครื่องคำนวณสนามแม่เหล็กของ NOAA
  2. ใช้ Google Maps เพื่อค้นหาละติจูดและลองจิจูดของตำแหน่งปัจจุบันของคุณ
  3. นำลองจิจูดและละติจูดปัจจุบันของคุณแล้วเสียบเข้ากับเครื่องคำนวณสนามแม่เหล็ก
  4. สิ่งที่ส่งคืนคือการปฏิเสธแม่เหล็ก เสียบการคำนวณนี้ลงในโค้ดในบรรทัด 378 ของ "iic_main_thread.c" หากการปฏิเสธของคุณอยู่ทางทิศตะวันออก ให้ลบออกจากค่าการหัน หากทิศตะวันตก ให้บวกค่าการหัน

*รูปภาพถูกนำมาจากคู่มือการเชื่อมต่อ MPU 9250 ของ Sparkfun พบได้ที่นี่

ขั้นตอนที่ 13: เรียกใช้โปรแกรม

การรันโปรแกรม
การรันโปรแกรม

ช่วงเวลาที่คุณรอคอย! ส่วนที่ดีที่สุดของโครงการคือการเห็นการทำงาน ปัญหาหนึ่งที่เราสังเกตเห็นคือมีการเบี่ยงเบนจากค่าที่รายงานจาก IMU ตัวกรองสัญญาณความถี่ต่ำอาจช่วยแก้ไขการเบี่ยงเบนนี้ และการเล่นซอกับเครื่องวัดความเข้มข้นของสนามแม่เหล็ก การเร่งความเร็ว และการปรับเทียบไจโรจะช่วยแก้ไขการเคลื่อนตัวนี้ด้วย

  1. ขั้นแรก สร้างทั้งหมดใน SDK ซึ่งสามารถทำได้โดยกด Ctrl + B
  2. ตรวจสอบให้แน่ใจว่าได้เปิดแหล่งจ่ายไฟและตั้งค่าเป็น 5V ตรวจสอบอีกครั้งว่าสายไฟทั้งหมดกำลังไปยังตำแหน่งที่ถูกต้อง
  3. จากนั้น ในการรันโปรแกรม ให้กดสามเหลี่ยมสีเขียวตรงกลางบนของทาสก์บาร์
  4. เมื่อโปรแกรมทำงาน เซอร์โวทั้งหมดจะรีเซ็ตเป็น 0 ตำแหน่ง ดังนั้นเตรียมตัวให้พร้อมสำหรับการเคลื่อนที่ เมื่อโปรแกรมเริ่มต้น เซอร์โวจะเลื่อนกลับไปที่ตำแหน่ง 90 องศา
  5. ฟังก์ชันการปรับเทียบแมกนีโตมิเตอร์จะทำงานและทิศทางจะถูกพิมพ์ไปยังเทอร์มินัล UART ซึ่งคุณสามารถเชื่อมต่อผ่านจอภาพแบบอนุกรม เช่น 'ผงสำหรับอุดรู' หรือจอภาพแบบอนุกรมที่มีให้ใน SDK
  6. การสอบเทียบจะทำให้คุณขยับอุปกรณ์ในรูปที่ 8 เป็นเวลาประมาณ 10 วินาที คุณสามารถลบขั้นตอนนี้ได้โดยแสดงความคิดเห็นในบรรทัดที่ 273 ของ "iic_main_thread.c" หากคุณแสดงความคิดเห็น คุณต้องยกเลิกการใส่ความคิดเห็นในบรรทัด 323 - 325 "iic_main_thread.c" ค่าเหล่านี้ในขั้นต้นถูกรวบรวมจากการสอบเทียบเครื่องวัดความเข้มข้นของสนามแม่เหล็กด้านบนแล้วเสียบเป็นค่า
  7. หลังจากการปรับเทียบแล้ว รหัสการรักษาเสถียรภาพจะเริ่มต้นและอุปกรณ์จะทำให้กล้องมีความเสถียร

แนะนำ: