สารบัญ:
- ขั้นตอนที่ 1: การตั้งค่าฮาร์ดแวร์ Vivado
- ขั้นตอนที่ 2: การตั้งค่าการออกแบบบล็อก
- ขั้นตอนที่ 3: สร้างบล็อก PWM IP แบบกำหนดเอง
- ขั้นตอนที่ 4: เพิ่ม PWM IP Block ในการออกแบบ
- ขั้นตอนที่ 5: กำหนดค่า HDL Wrapper และตั้งค่าไฟล์ข้อจำกัด
- ขั้นตอนที่ 6: การสร้าง Bitstream
- ขั้นตอนที่ 7: การตั้งค่าโครงการใน SDK
- ขั้นตอนที่ 8: การปรับเปลี่ยนโค้ด FreeRTOS
- ขั้นตอนที่ 9: การพิมพ์ 3 มิติสำหรับตัวกันโคลง
- ขั้นตอนที่ 10: การประกอบชิ้นส่วน
- ขั้นตอนที่ 11: เชื่อมต่อ Zybo กับ Stabilizer
- ขั้นตอนที่ 12: แก้ไขทิศเหนือจริง
- ขั้นตอนที่ 13: เรียกใช้โปรแกรม
วีดีโอ: ระบบกันสั่นแบบมือถือ: 13 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
บทนำ
นี่คือคู่มือสำหรับการสร้างอุปกรณ์ป้องกันภาพสั่นไหวแบบมือถือ 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 2016.2 คลิกไอคอน "สร้างโครงการใหม่" แล้วคลิก "ถัดไป>"
- ตั้งชื่อโครงการของคุณและคลิก "ถัดไป >"
- เลือกโครงการ RTL และกด "ถัดไป>"
- พิมพ์ลงในแถบค้นหา xc7z010clg400-1 จากนั้นเลือกส่วนและกด "Next >" และ "Finish"
ขั้นตอนที่ 2: การตั้งค่าการออกแบบบล็อก
ตอนนี้เราจะเริ่มสร้างการออกแบบบล็อกโดยการเพิ่มและตั้งค่า Zynq IP Block
- ที่แผงด้านซ้ายมือ ภายใต้ IP Integrator คลิก "สร้างการออกแบบบล็อก" จากนั้นคลิก "ตกลง"
- คลิกขวาในแท็บ "ไดอะแกรม" และเลือก "เพิ่ม IP…"
- พิมพ์ "ZYNQ7 Processing System" แล้วคลิกเลือก
- ดับเบิลคลิกที่บล็อก Zynq ที่ปรากฏขึ้น
- คลิก "นำเข้าการตั้งค่า XPS" และนำเข้าไฟล์ "ZYBO_zynq_def.xml" ที่ให้มา
- ไปที่ "การกำหนดค่า MIO" และเลือก "หน่วยประมวลผลแอปพลิเคชัน" และเปิดใช้งานตัวจับเวลา 0 และตัวจับเวลา Watchdog
- ในแท็บเดียวกัน ภายใต้ "อุปกรณ์ต่อพ่วง I/O" เลือก ENET 0 (และเปลี่ยนเมนูแบบเลื่อนลงเป็น "MIO 16.. 27", USB 0, SD 0, UART 1, I2C 0
- ภายใต้ "GPIO" ให้ตรวจสอบ GPIO MIO, ENET Reset, USB Reset และ I2C Reset
- ตอนนี้ไปที่ "การกำหนดค่านาฬิกา" เลือก FCLK_CLK0 ภายใต้ PL Fabric Clocks จากนั้นคลิก "ตกลง"
ขั้นตอนที่ 3: สร้างบล็อก PWM IP แบบกำหนดเอง
บล็อก IP นี้ช่วยให้บอร์ดส่งสัญญาณ PWM ออกเพื่อควบคุมการเคลื่อนที่ของเซอร์โว งานนี้มีพื้นฐานมาจากการสอนโดย Digitronix Nepal พบได้ที่นี่ เพิ่มลอจิกเพื่อทำให้นาฬิกาช้าลง ดังนั้นพัลส์จึงส่งสัญญาณออกในอัตราที่ถูกต้อง บล็อกใช้ตัวเลขตั้งแต่ 0 ถึง 180 และแปลงเป็นพัลส์ตั้งแต่ 750-2150 usec
- ตอนนี้ ใต้แท็บเครื่องมือใกล้มุมซ้ายบน คลิก "สร้างและจัดแพ็คเกจ IP…" แล้วกดถัดไป
- จากนั้นเลือก "สร้างอุปกรณ์ต่อพ่วง AXI4 ใหม่" แล้วกดถัดไป
- ตั้งชื่อบล็อก PWM IP ของคุณ (เราตั้งชื่อว่า pwm_core) แล้วคลิก ถัดไป จากนั้นคลิก ถัดไป ในหน้าถัดไปด้วย
- ตอนนี้คลิก "แก้ไข IP" และกด Finish ซึ่งจะเป็นการเปิดหน้าต่างใหม่เพื่อแก้ไขบล็อก pwm
- ในแท็บ "แหล่งที่มา" และใต้ "แหล่งที่มาของการออกแบบ" ให้ขยาย 'pwm_core_v1_0' (แทนที่ pwm_core ด้วยชื่อของคุณ) แล้วเปิดไฟล์ที่มองเห็นได้
- คัดลอกและวางรหัสที่ให้ไว้ใต้ 'pwm_core_v1_0_S00_AXI.v' ในไฟล์ zip ที่ด้านล่างของโครงการ Ctrl + Shift + R และแทนที่ 'pwm_core' ด้วยชื่อของคุณสำหรับบล็อก ip
- ถัดไปเปิด ' ชื่อ _v1_0' และคัดลอกในรหัสที่ให้ไว้ในไฟล์ 'pwm_core_v1_0.v' Ctrl + Shift + R และแทนที่ 'pwm_core' ด้วย name
- ตอนนี้ไปที่แท็บ 'Package IP - name' และเลือก "Customization Parameters"
- ในแท็บนี้จะมีแถบสีเหลืองที่ด้านบนซึ่งมีข้อความเชื่อมโยงอยู่ เลือกสิ่งนี้และ "พารามิเตอร์ที่ซ่อนอยู่" จะปรากฏขึ้นในกล่อง
- ตอนนี้ไปที่ "Customization GUI" และคลิกขวาที่ Pwm Counter Max เลือก "Edit Parameter…"
- ทำเครื่องหมายที่ช่อง "มองเห็นได้ใน GUI การปรับแต่ง" และ "ระบุช่วง"
- เปลี่ยนเมนูแบบเลื่อนลง "ประเภท:" เป็นช่วงของจำนวนเต็มและตั้งค่าต่ำสุดเป็น 0 และสูงสุดเป็น 65535 และทำเครื่องหมายที่ช่อง "แสดงช่วง" ตอนนี้คลิกตกลง
- ลาก Pwm Counter Max ใต้ทรี 'หน้า 0' ตอนนี้ไปที่ "ตรวจสอบและแพ็คเกจ" แล้วคลิกปุ่ม "Re-Package IP"
ขั้นตอนที่ 4: เพิ่ม PWM IP Block ในการออกแบบ
เราจะเพิ่มบล็อก IP ลงในการออกแบบบล็อกเพื่อให้ผู้ใช้สามารถเข้าถึงบล็อก PWM IP ผ่านโปรเซสเซอร์
- คลิกขวาในแท็บไดอะแกรมแล้วคลิก "การตั้งค่า IP…" ไปที่แท็บ "ตัวจัดการพื้นที่เก็บข้อมูล"
- คลิกปุ่มบวกสีเขียวแล้วเลือก ตอนนี้ให้ค้นหา ip_repo ในตัวจัดการไฟล์และเพิ่มไปยังโครงการ จากนั้นกดสมัครแล้วตกลง
- คลิกขวาในแท็บไดอะแกรมแล้วคลิก "เพิ่ม IP…" พิมพ์ชื่อบล็อก PWM IP ของคุณแล้วเลือก
- ควรมีแถบสีเขียวที่ด้านบนของหน้าจอ ก่อนอื่นให้เลือก "เรียกใช้การเชื่อมต่ออัตโนมัติ" แล้วคลิกตกลง จากนั้นคลิก "เรียกใช้ Block Automation" แล้วคลิกตกลง
- ดับเบิลคลิกที่บล็อก PWM และเปลี่ยน Pwm Counter Max เป็น 1024 จาก 128
- วางตัวชี้เมาส์ไว้เหนือ PWM0 บนบล็อก PWM ควรมีดินสอแท่งเล็กๆ ปรากฏขึ้นเมื่อคุณทำ คลิกขวาและเลือก "สร้างพอร์ต…" และคลิกตกลงเมื่อหน้าต่างเปิดขึ้น สิ่งนี้จะสร้างพอร์ตภายนอกสำหรับส่งสัญญาณไปยัง
- ทำซ้ำขั้นตอนที่ 6 สำหรับ PWM1 และ PWM2 ด้วย
- ค้นหาไอคอนลูกศรคู่วงกลมขนาดเล็กบนแถบด้านข้างแล้วคลิก มันจะสร้างเค้าโครงใหม่และการออกแบบบล็อกของคุณควรมีลักษณะเหมือนภาพด้านบน
ขั้นตอนที่ 5: กำหนดค่า HDL Wrapper และตั้งค่าไฟล์ข้อจำกัด
ตอนนี้เรากำลังจะสร้างการออกแบบระดับสูงสำหรับการออกแบบบล็อกของเรา จากนั้นจึงแมป PWM0, PWM1 และ PWM2 กับพิน Pmod บนบอร์ด Zybo
- ไปที่แท็บ "แหล่งที่มา" คลิกขวาที่ไฟล์การออกแบบบล็อกของคุณภายใต้ "แหล่งที่มาของการออกแบบ" และคลิก "สร้าง HDL Wrapper…" เลือก "คัดลอกเสื้อคลุมที่สร้างขึ้นเพื่ออนุญาตให้ผู้ใช้แก้ไข" แล้วคลิกตกลง สิ่งนี้สร้างการออกแบบระดับสูงสำหรับการออกแบบบล็อกที่เราสร้างขึ้น
- Pmod ที่เราจะส่งออกไปคือ JE
- ใต้ไฟล์ เลือก "เพิ่มแหล่งที่มา…" แล้วเลือก "เพิ่มหรือสร้างข้อจำกัด" แล้วคลิกถัดไป
- คลิกเพิ่มไฟล์และเลือกไฟล์ "ZYBO_Master.xdc" ที่รวมไว้ หากคุณดูในไฟล์นี้ คุณจะสังเกตเห็นว่าทุกอย่างไม่มีความคิดเห็น ยกเว้น "set_property" หกบรรทัดภายใต้ "##Pmod Header JE" คุณจะสังเกตเห็นว่า PWM0, PWM1 และ PWM2 เป็นอาร์กิวเมนต์สำหรับบรรทัดเหล่านี้ พวกมันจับคู่กับพิน 1 พิน 2 และพิน 3 ของ JE Pmod
ขั้นตอนที่ 6: การสร้าง Bitstream
เราจำเป็นต้องสร้างบิตสตรีมสำหรับการออกแบบฮาร์ดแวร์เพื่อส่งออกไปยัง SDK ก่อนที่เราจะดำเนินการต่อ
- ใต้ "โปรแกรมและดีบัก" บนแถบด้านข้าง ให้เลือก "สร้าง Bitstream" การดำเนินการนี้จะเรียกใช้การสังเคราะห์ จากนั้นนำไปปฏิบัติ และสร้างบิตสตรีมสำหรับการออกแบบ
- แก้ไขข้อผิดพลาดที่ปรากฏขึ้น แต่โดยทั่วไปสามารถละเว้นคำเตือนได้
- ไปที่ File->Launch SDK แล้วคลิก OK ซึ่งจะเป็นการเปิด Xilinx SDK
ขั้นตอนที่ 7: การตั้งค่าโครงการใน SDK
ส่วนนี้อาจทำให้หงุดหงิดเล็กน้อย หากมีข้อสงสัย ให้สร้าง BSP ใหม่และแทนที่อันเก่า สิ่งนี้ช่วยเราประหยัดเวลาในการดีบักได้มากมาย
- เริ่มต้นด้วยการดาวน์โหลด FreeRTOS เวอร์ชันล่าสุดที่นี่
- แยกทุกอย่างจากการดาวน์โหลดและนำเข้า FreeRTOS ลงใน SDK โดยคลิกไฟล์ -> นำเข้า และภายใต้ "ทั่วไป" ให้คลิก "โครงการที่มีอยู่สู่พื้นที่ทำงาน" จากนั้นคลิกถัดไป
- ไปที่ "FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702" ภายในโฟลเดอร์ FreeRTOS นำเข้าเฉพาะ "RTOSDemo" จากตำแหน่งนี้
- ตอนนี้สร้าง Board Support Package (BSP) โดยคลิก File->New Board Support Package
- เลือก "ps7_cortexa9_0" และเลือก "lwip141" แล้วคลิกตกลง
- คลิกขวาที่โฟลเดอร์ RTOSDemo สีน้ำเงิน และเลือก "Project References"
- ยกเลิกการเลือก "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 ได้ เรายังเพิ่มฟังก์ชันสำหรับคำนวณการแก้ไขการวางแนวของกล้องอีกด้วย เราได้ทิ้งข้อความสั่งพิมพ์ไว้หลายฉบับซึ่งเป็นประโยชน์สำหรับการดีบัก ส่วนใหญ่มีการแสดงความคิดเห็น แต่ถ้าคุณรู้สึกว่าจำเป็นต้องคุณสามารถยกเลิกการแสดงความคิดเห็นได้
- วิธีที่ง่ายที่สุดในการแก้ไขไฟล์ main.c คือการแทนที่โค้ดด้วยโค้ดที่คัดลอกจากไฟล์ main.c ที่รวมไว้ของเรา
- ในการสร้างไฟล์ใหม่ ให้คลิกขวาที่โฟลเดอร์ src ภายใต้ RTOSDemo แล้วเลือก C Source File ตั้งชื่อไฟล์นี้ว่า "iic_main_thread.c"
- คัดลอกโค้ดจาก "iic_main_thread.c" ที่รวมไว้ แล้ววางลงในไฟล์ที่สร้างขึ้นใหม่
- ทำซ้ำขั้นตอนที่ 2 และ 3 กับไฟล์ที่เหลือ
- ต้องการคำแนะนำในการลิงก์ใน gcc หากต้องการเพิ่มสิ่งนี้ไปยังเส้นทางการบิลด์ คุณคลิกขวาที่ RTOSDemo และเลือก "การตั้งค่าบิลด์ C/C++"
- หน้าต่างใหม่จะเปิดขึ้น ไปที่ ARM v7 gcc linker->Libraries เลือกไฟล์เพิ่มขนาดเล็กที่มุมบนขวาแล้วพิมพ์ "m" ซึ่งจะรวมถึงห้องสมุดคณิตศาสตร์ในโครงการ
- สร้างโครงการด้วย Ctrl + B เพื่อยืนยันว่าทุกอย่างใช้งานได้ ตรวจสอบคำเตือนที่สร้างขึ้น แต่คุณอาจเพิกเฉยได้
- มีสถานที่สองสามแห่งที่จำเป็นต้องแก้ไข ส่วนใหญ่เป็นการปฏิเสธแม่เหล็กของตำแหน่งปัจจุบันของคุณ เราจะอธิบายวิธีเปลี่ยนแปลงในส่วนการปรับเทียบของบทช่วยสอน
ขั้นตอนที่ 9: การพิมพ์ 3 มิติสำหรับตัวกันโคลง
คุณต้องพิมพ์ 3 มิติสองสามส่วนสำหรับโครงการนี้ เราอาจซื้อชิ้นส่วนที่มีขนาด/ขนาดใกล้เคียงกับชิ้นส่วนที่พิมพ์ของเราได้
- ใช้ไฟล์ที่ให้มาเพื่อพิมพ์แขนและขายึดสำหรับ GoPro
- คุณต้องเพิ่มนั่งร้านลงในไฟล์.stl
- ตัด/ทำความสะอาดส่วนนั่งร้านส่วนเกินเมื่อพิมพ์เสร็จ
- คุณสามารถเปลี่ยนเดือยไม้ด้วยชิ้นส่วนที่พิมพ์ 3 มิติได้หากต้องการ
ขั้นตอนที่ 10: การประกอบชิ้นส่วน
มีหลายชิ้นส่วนสำหรับประกอบเหล็กกันโคลง ขายึดที่ซื้อมาพร้อมกับสกรูตัวเองแตะ 4 ตัว และน็อต 4 ตัวพร้อมน็อต เนื่องจากมีเซอร์โวอยู่ 3 ตัว จึงจำเป็นต้องเคาะแตรเซอร์โวตัวใดตัวหนึ่งไว้ล่วงหน้า เพื่อให้สลักเกลียว 2 ตัวเข้าได้พอดี
- บัดกรี 8 พินบน IMU breakout 4 ด้านแต่ละด้าน
- IMU ติดอยู่กับตัวยึดที่พิมพ์ 3 มิติสำหรับ GoPro ที่กึ่งกลางของตัวยึด
- จัดแนวโครงยึดเพื่อให้รูยึดเซอร์โวอยู่ทางด้านซ้ายมือของคุณ วาง IMU ไว้ที่ขอบที่ใกล้ที่สุด โดยให้หมุดห้อยอยู่ที่ขอบ จากนั้น วางตัวยึด GoPro ที่ด้านบนของ IMU ติด IMU และตัวยึดให้เข้าที่บนโครงยึด
- ติด HS-5485HB เข้ากับโครงยึดเซอร์โวที่รวมเข้ากับแขนพิมพ์ 3 มิติ
- ขันสกรูยึด GoPro เข้ากับเซอร์โวที่ติดแขน ตรวจสอบให้แน่ใจว่าได้ตั้งค่าเซอร์โวให้อยู่ในช่วงกลางของช่วงการเคลื่อนที่
- ถัดไป ติดเซอร์โว HS-5685MH เข้ากับโครงยึดเซอร์โว จากนั้นแตะแตรเซอร์โวด้วยสกรูตัวใดตัวหนึ่ง ตอนนี้แนบเซอร์โวที่ด้านล่างของวงเล็บเซอร์โวสุดท้าย
- ตอนนี้แนบเซอร์โวตัวสุดท้ายเข้ากับโครงยึดที่ยึดเซอร์โว HS-5685MH ไว้ จากนั้นขันสกรูแขนเข้ากับเซอร์โวนี้ ตรวจสอบให้แน่ใจว่าได้ขันแขนแล้วเพื่อให้สามารถเคลื่อนที่ได้ 90 องศาในแต่ละทาง
- เมื่อต้องการสร้าง gimbal ให้เสร็จสิ้น ให้เพิ่มเดือยไม้ชิ้นเล็กๆ เพื่อเชื่อมต่อระหว่างโครงยึด GoPro กับแขนพิมพ์ 3 มิติ ตอนนี้คุณได้ประกอบโคลงแล้ว
- สุดท้าย คุณสามารถเพิ่มที่จับที่เชื่อมต่อกับโครงยึดเซอร์โวด้านล่างได้
ขั้นตอนที่ 11: เชื่อมต่อ Zybo กับ Stabilizer
มีสองสิ่งที่ต้องระวังเมื่อทำเช่นนี้ คุณต้องการให้แน่ใจว่า 5V จากแหล่งจ่ายไฟจะไม่เข้าไปในบอร์ด Zybo เนื่องจากจะทำให้เกิดปัญหากับบอร์ดได้ ตรวจสอบให้แน่ใจว่าได้ตรวจสอบจัมเปอร์ของคุณอีกครั้งเพื่อยืนยันว่าไม่มีการสลับสายไฟ
- ในการติด Zybo เข้ากับโคลง คุณจะต้องมีจัมเปอร์ตัวผู้ถึงตัวผู้ 15 ตัว และจัมเปอร์ตัวผู้ถึงตัวเมีย 4 ตัว
- ขั้นแรก เชื่อมต่อจัมเปอร์สองตัวกับแหล่งจ่ายไฟ 5V ของคุณตามราง + และ - ของเขียงหั่นขนม สิ่งเหล่านี้จะจ่ายพลังงานให้กับเซอร์โว
- จากนั้นเชื่อมต่อจัมเปอร์ 3 คู่เข้ากับราง + และ - ของเขียงหั่นขนม สิ่งเหล่านี้จะเป็นพลังสำหรับเซอร์โวแต่ละตัว
- เสียบปลายอีกด้านของจัมเปอร์ + และ - เข้ากับเซอร์โวแต่ละตัว
- เชื่อมต่อจัมเปอร์ระหว่างราง - ของเขียงหั่นขนมกับหมุด GND ตัวใดตัวหนึ่งบน Zybo JE Pmod (ดูภาพขั้นตอนที่ 5) สิ่งนี้จะสร้างจุดร่วมระหว่างบอร์ด Zybo และแหล่งจ่ายไฟ
- ถัดไป ต่อสายสัญญาณเข้ากับพิน 1, พิน 2 และพิน 3 ของ JE Pmod ปักหมุด 1 แมปกับเซอร์โวด้านล่าง ปักหมุด 2 แมปกับเซอร์โวที่ปลายแขน และปักหมุด 3 แมปกับเซอร์โวตรงกลาง
- เสียบสายไฟตัวเมีย 4 เส้นเข้ากับพิน GND, VDD, SDA และ SCL ของการฝ่าวงล้อม IMU GND และ VDD เสียบเข้ากับ GND และ 3V3 บนหมุด JF เสียบพิน SDA เข้ากับพิน 8 และ SCL เข้ากับพิน 7 บน JF (ดูภาพขั้นตอนที่ 5)
- สุดท้าย เชื่อมต่อคอมพิวเตอร์กับบอร์ดโดยใช้สายไมโคร USB สิ่งนี้จะช่วยให้การสื่อสาร uart และอนุญาตให้คุณตั้งโปรแกรมบอร์ด Zybo
ขั้นตอนที่ 12: แก้ไขทิศเหนือจริง
การสอบเทียบเครื่องวัดความเข้มข้นของสนามแม่เหล็กใน IMU มีความสำคัญต่อการทำงานที่ถูกต้องของอุปกรณ์ การปฏิเสธแม่เหล็กซึ่งแก้ไขทิศเหนือแม่เหล็กเป็นทิศเหนือจริง
- ในการแก้ไขความแตกต่างจากทิศเหนือแม่เหล็กและทิศเหนือจริง คุณต้องใช้บริการสองอย่างร่วมกัน ได้แก่ Google Maps และเครื่องคำนวณสนามแม่เหล็กของ NOAA
- ใช้ Google Maps เพื่อค้นหาละติจูดและลองจิจูดของตำแหน่งปัจจุบันของคุณ
- นำลองจิจูดและละติจูดปัจจุบันของคุณแล้วเสียบเข้ากับเครื่องคำนวณสนามแม่เหล็ก
- สิ่งที่ส่งคืนคือการปฏิเสธแม่เหล็ก เสียบการคำนวณนี้ลงในโค้ดในบรรทัด 378 ของ "iic_main_thread.c" หากการปฏิเสธของคุณอยู่ทางทิศตะวันออก ให้ลบออกจากค่าการหัน หากทิศตะวันตก ให้บวกค่าการหัน
*รูปภาพถูกนำมาจากคู่มือการเชื่อมต่อ MPU 9250 ของ Sparkfun พบได้ที่นี่
ขั้นตอนที่ 13: เรียกใช้โปรแกรม
ช่วงเวลาที่คุณรอคอย! ส่วนที่ดีที่สุดของโครงการคือการเห็นการทำงาน ปัญหาหนึ่งที่เราสังเกตเห็นคือมีการเบี่ยงเบนจากค่าที่รายงานจาก IMU ตัวกรองสัญญาณความถี่ต่ำอาจช่วยแก้ไขการเบี่ยงเบนนี้ และการเล่นซอกับเครื่องวัดความเข้มข้นของสนามแม่เหล็ก การเร่งความเร็ว และการปรับเทียบไจโรจะช่วยแก้ไขการเคลื่อนตัวนี้ด้วย
- ขั้นแรก สร้างทั้งหมดใน SDK ซึ่งสามารถทำได้โดยกด Ctrl + B
- ตรวจสอบให้แน่ใจว่าได้เปิดแหล่งจ่ายไฟและตั้งค่าเป็น 5V ตรวจสอบอีกครั้งว่าสายไฟทั้งหมดกำลังไปยังตำแหน่งที่ถูกต้อง
- จากนั้น ในการรันโปรแกรม ให้กดสามเหลี่ยมสีเขียวตรงกลางบนของทาสก์บาร์
- เมื่อโปรแกรมทำงาน เซอร์โวทั้งหมดจะรีเซ็ตเป็น 0 ตำแหน่ง ดังนั้นเตรียมตัวให้พร้อมสำหรับการเคลื่อนที่ เมื่อโปรแกรมเริ่มต้น เซอร์โวจะเลื่อนกลับไปที่ตำแหน่ง 90 องศา
- ฟังก์ชันการปรับเทียบแมกนีโตมิเตอร์จะทำงานและทิศทางจะถูกพิมพ์ไปยังเทอร์มินัล UART ซึ่งคุณสามารถเชื่อมต่อผ่านจอภาพแบบอนุกรม เช่น 'ผงสำหรับอุดรู' หรือจอภาพแบบอนุกรมที่มีให้ใน SDK
- การสอบเทียบจะทำให้คุณขยับอุปกรณ์ในรูปที่ 8 เป็นเวลาประมาณ 10 วินาที คุณสามารถลบขั้นตอนนี้ได้โดยแสดงความคิดเห็นในบรรทัดที่ 273 ของ "iic_main_thread.c" หากคุณแสดงความคิดเห็น คุณต้องยกเลิกการใส่ความคิดเห็นในบรรทัด 323 - 325 "iic_main_thread.c" ค่าเหล่านี้ในขั้นต้นถูกรวบรวมจากการสอบเทียบเครื่องวัดความเข้มข้นของสนามแม่เหล็กด้านบนแล้วเสียบเป็นค่า
- หลังจากการปรับเทียบแล้ว รหัสการรักษาเสถียรภาพจะเริ่มต้นและอุปกรณ์จะทำให้กล้องมีความเสถียร
แนะนำ:
DIY 37 Leds เกมรูเล็ต Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)
DIY 37 Leds เกมรูเล็ต Arduino: รูเล็ตเป็นเกมคาสิโนที่ตั้งชื่อตามคำภาษาฝรั่งเศสหมายถึงวงล้อเล็ก
หมวกนิรภัย Covid ส่วนที่ 1: บทนำสู่ Tinkercad Circuits!: 20 ขั้นตอน (พร้อมรูปภาพ)
Covid Safety Helmet ตอนที่ 1: บทนำสู่ Tinkercad Circuits!: สวัสดีเพื่อน ๆ ในชุดสองตอนนี้ เราจะเรียนรู้วิธีใช้วงจรของ Tinkercad - เครื่องมือที่สนุก ทรงพลัง และให้ความรู้สำหรับการเรียนรู้เกี่ยวกับวิธีการทำงานของวงจร! หนึ่งในวิธีที่ดีที่สุดในการเรียนรู้คือการทำ ดังนั้น อันดับแรก เราจะออกแบบโครงการของเราเอง: th
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)
4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-