สารบัญ:

Arduino Drone พร้อม GPS: 16 ขั้นตอน
Arduino Drone พร้อม GPS: 16 ขั้นตอน

วีดีโอ: Arduino Drone พร้อม GPS: 16 ขั้นตอน

วีดีโอ: Arduino Drone พร้อม GPS: 16 ขั้นตอน
วีดีโอ: สอนสร้าง QUADCOPTER ด้วยตนเอง ตอนที่ 9 2024, พฤศจิกายน
Anonim
Arduino Drone พร้อม GPS
Arduino Drone พร้อม GPS

เราตั้งเป้าหมายที่จะสร้างโดรนควอดคอปเตอร์มุมมองบุคคลที่หนึ่ง (FPV) แบบมุมมองบุคคลที่หนึ่ง (FPV) ที่ควบคุมและเสถียรซึ่งควบคุมโดย Arduino พร้อมการกลับบ้าน ไปที่พิกัด และฟังก์ชั่นการถือ GPS เราสันนิษฐานอย่างไร้เดียงสาว่าการรวมโปรแกรม Arduino ที่มีอยู่และการเดินสายสำหรับ quadcopter ที่ไม่มี GPS เข้ากับระบบส่งสัญญาณ GPS จะค่อนข้างตรงไปตรงมา และเราสามารถดำเนินการเขียนโปรแกรมที่ซับซ้อนขึ้นได้อย่างรวดเร็ว อย่างไรก็ตาม จำนวนที่น่าประหลาดใจต้องเปลี่ยนแปลงเพื่อให้เข้ากับสองโครงการนี้ ดังนั้นเราจึงลงเอยด้วยการสร้าง FPV quadcopter ที่เปิดใช้งาน GPS โดยไม่มีฟังก์ชันเพิ่มเติมใด ๆ

เราได้รวมคำแนะนำเกี่ยวกับวิธีการทำซ้ำผลิตภัณฑ์ของเราหากคุณพอใจกับควอดคอปเตอร์ที่มีข้อจำกัดมากขึ้น

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

นี่เป็นโครงการที่ยอดเยี่ยมในการเรียนรู้บางสิ่งเกี่ยวกับการสร้างและการเข้ารหัสสำหรับ Arduino ไม่ว่าคุณจะมีประสบการณ์มากเพียงใด นอกจากนี้คุณหวังว่าจะเดินออกไปพร้อมกับเสียงหึ่งๆ

การตั้งค่ามีดังนี้:

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

ชิ้นส่วนที่มีเครื่องหมายดอกจันหนึ่งอันจำเป็นสำหรับโครงการที่ยังไม่เสร็จของ quadcopter ที่เป็นอิสระมากขึ้นเท่านั้น

ชิ้นส่วนที่มีเครื่องหมายดอกจันสองอันจำเป็นสำหรับ quadcopter ที่จำกัดมากกว่าเท่านั้น

ขั้นตอนทั่วไปสำหรับทั้งสองโปรเจ็กต์ไม่มีเครื่องหมายหลังชื่อ

ขั้นตอนที่จำเป็นสำหรับ quadcopter ที่ไม่ใช่อิสระที่ จำกัด มากขึ้นมี "(Uno)" หลังชื่อ

ขั้นตอนที่จำเป็นสำหรับ quadcopter แบบอัตโนมัติที่กำลังดำเนินการมี "(Mega)" หลังชื่อเรื่อง

ในการสร้าง Quad แบบ Uno ให้ทำตามขั้นตอนตามลำดับโดยข้ามขั้นตอนใด ๆ ที่มี "(Mega)" หลังชื่อ

ในการทำงานกับ Quad แบบ Mega ให้ทำตามขั้นตอนตามลำดับ โดยข้ามขั้นตอนใดๆ ที่มี "(Uno)" ต่อท้ายชื่อ

ขั้นตอนที่ 1: รวบรวมวัสดุ

ส่วนประกอบ:

1) เฟรม quadcopter หนึ่งเฟรม (เฟรมที่แน่นอนไม่สำคัญ) ($ 15)

2) มอเตอร์ไร้แปรงถ่าน 2830, 900kV สี่ตัว (หรือใกล้เคียง) และชุดอุปกรณ์เสริมสำหรับติดตั้งสี่ชุด (4x$6 + 4x$4 = ทั้งหมด $40)

3) สี่ 20A UBEC ESCs (4x$10 = ทั้งหมด $40)

4) บอร์ดจ่ายไฟหนึ่งบอร์ด (พร้อมการเชื่อมต่อ XT-60) (20 เหรียญ)

5) แบตเตอรี่ LiPo 3s, 3000-5000mAh หนึ่งก้อนพร้อมการเชื่อมต่อ XT-60 (3000mAh สอดคล้องกับเวลาบินประมาณ 20 นาที) ($ 25)

6) ใบพัดจำนวนมาก (แบ่งได้มาก) (10 เหรียญ)

7) หนึ่ง Arduino Mega 2560* ($40)

8) Arduino Uno R3 หนึ่งตัว (20 เหรียญ)

9) Arduino Uno R3 ตัวที่สอง** ($20)

10) Arduino Ultimate GPS Shield หนึ่งตัว (คุณไม่จำเป็นต้องมีเกราะ แต่การใช้ GPS อื่นจะต้องเดินสายต่างกัน) ($45)

11) ตัวรับส่งสัญญาณไร้สาย HC-12 สองตัว (2x$5 = $ 10)

12) หนึ่ง MPU- 6050, 6DOF (ระดับอิสระ) ไจโร / มาตรความเร่ง ($ 5)

13) หนึ่ง Turnigy 9x 2.4GHz, 9 ช่องคู่ตัวส่ง / ตัวรับ ($ 70)

14) ส่วนหัว Arduino ตัวเมีย (วางซ้อนกันได้) (20 เหรียญ)

15) เครื่องชาร์จแบตเตอรี่ LiPo (และอะแดปเตอร์ 12V DC ไม่รวม) (20 เหรียญ)

17) สายอะแดปเตอร์ USB A ถึง B ชายกับชาย ($ 5)

17) เทปพันท่อ

18) ท่อหด

อุปกรณ์:

1) หัวแร้ง

2) ประสาน

3) อีพ็อกซี่พลาสติก

4) ไฟแช็ก

5) คีมปอกสายไฟ

6) ชุดประแจอัลเลน

ส่วนประกอบเสริมสำหรับการส่งสัญญาณวิดีโอ FPV (มุมมองบุคคลที่หนึ่ง) แบบเรียลไทม์:

1) กล้อง FPV ขนาดเล็ก (ลิงก์นี้ไปยังกล้องราคาถูกและคุณภาพแย่ที่เราใช้ คุณอาจใช้กล้องที่ดีกว่านี้แทนได้) (20 เหรียญ)

2) คู่ตัวส่ง/ตัวรับวิดีโอ 5.6GHz (ใช้รุ่น 832) ($30)

3) แบตเตอรี่ LiPo 500mAh, 3s (11.1V) ($7) (เราใช้กับปลั๊กกล้วย แต่เราขอแนะนำให้ใช้แบตเตอรี่ที่เชื่อมโยงไว้ เนื่องจากมีขั้วต่อที่เข้ากันได้กับเครื่องส่งสัญญาณ TS832 ดังนั้นจึงไม่มี ต้องบัดกรี)

4) 2 1000mAh 2s (7.4V) LiPo แบตเตอรี่หรือคล้ายกัน ($ 5) จำนวน mAh ไม่สำคัญตราบใดที่มีมากกว่า 1,000mAh หรือมากกว่านั้น ข้อความเดียวกันกับข้างต้นใช้กับประเภทปลั๊กของแบตเตอรี่หนึ่งในสองก้อน อีกอันหนึ่งจะใช้เพื่อจ่ายไฟให้กับจอภาพ ดังนั้นคุณจะต้องบัดกรีไม่ว่าอะไรจะเกิดขึ้น น่าจะดีที่สุดถ้าจะใช้ปลั๊ก XT-60 สำหรับสิ่งนี้ (นั่นคือสิ่งที่เราทำ) ลิงค์สำหรับประเภทนั้นอยู่ที่นี่: 1000mAh 2s (7.4V) LiPo พร้อมปลั๊ก XT-60

5) จอ LCD (อุปกรณ์เสริม) ($ 15) คุณยังสามารถใช้อะแดปเตอร์ AV-USB และซอฟต์แวร์คัดลอกดีวีดีเพื่อดูได้โดยตรงบนแล็ปท็อป นอกจากนี้ยังให้ตัวเลือกในการบันทึกวิดีโอและภาพถ่าย แทนที่จะดูแบบเรียลไทม์

6) หากคุณซื้อแบตเตอรี่ที่มีปลั๊กต่างจากที่เชื่อมต่อ คุณอาจต้องใช้อะแดปเตอร์ที่เหมาะสม ไม่ว่าจะใช้อะแดปเตอร์ที่ตรงกับปลั๊กสำหรับแบตเตอรี่ที่จ่ายไฟให้กับจอภาพ นี่คือที่ที่จะรับอะแดปเตอร์ XT-60

* = สำหรับโครงการขั้นสูงเท่านั้น

** = เฉพาะโครงการพื้นฐานเพิ่มเติม

ค่าใช้จ่าย:

หากเริ่มจากศูนย์ (แต่ใช้หัวแร้ง ฯลฯ…) ไม่มีระบบ FPV: ~$370

หากคุณมีเครื่องส่ง/เครื่องรับ RC, เครื่องชาร์จแบตเตอรี่ LiPo และแบตเตอรี่ LiPo อยู่แล้ว: ~$260

ค่าใช้จ่ายของระบบ FPV: $80

ขั้นตอนที่ 2: ประกอบเฟรม

ประกอบกรอบ
ประกอบกรอบ
ประกอบกรอบ
ประกอบกรอบ
ประกอบกรอบ
ประกอบกรอบ

ขั้นตอนนี้ค่อนข้างตรงไปตรงมา โดยเฉพาะอย่างยิ่งหากใช้เฟรมที่สร้างไว้ล่วงหน้าแบบเดียวกับที่เราใช้ เพียงใช้สกรูที่ให้มาและประกอบโครงเข้าด้วยกันตามที่แสดง โดยใช้ประแจหกเหลี่ยมหรือไขควงที่เหมาะสมกับโครงของคุณ ตรวจสอบให้แน่ใจว่าแขนที่มีสีเดียวกันอยู่ติดกัน (ดังในภาพนี้) เพื่อให้โดรนมีด้านหน้าและด้านหลังที่ชัดเจน นอกจากนี้ ตรวจสอบให้แน่ใจว่าส่วนที่ยาวของแผ่นด้านล่างยื่นออกมาระหว่างแขนสีตรงข้าม สิ่งนี้จะมีความสำคัญในภายหลัง

ขั้นตอนที่ 3: ติดตั้งมอเตอร์และเชื่อมต่อ Escs

ติดตั้งมอเตอร์และเชื่อมต่อ Escs
ติดตั้งมอเตอร์และเชื่อมต่อ Escs
ติดตั้งมอเตอร์และเชื่อมต่อ Escs
ติดตั้งมอเตอร์และเชื่อมต่อ Escs
ติดตั้งมอเตอร์และเชื่อมต่อ Escs
ติดตั้งมอเตอร์และเชื่อมต่อ Escs
ติดตั้งมอเตอร์และเชื่อมต่อ Escs
ติดตั้งมอเตอร์และเชื่อมต่อ Escs

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

เมื่อขันมอเตอร์เข้าที่แล้ว ให้อีพ็อกซี่แผงจ่ายกำลังไฟฟ้า (PDB) เข้าที่ด้านบนของเพลทด้านบนของโครงควอดคอปเตอร์ ตรวจสอบให้แน่ใจว่าคุณได้จัดวางตำแหน่งโดยให้ขั้วต่อแบตเตอรี่ชี้อยู่ระหว่างแขนที่มีสีต่างกัน (ขนานกับส่วนที่ยาวด้านหนึ่งของแผ่นด้านล่าง) ดังในภาพด้านบน

คุณควรมีกรวยใบพัดสี่อันที่มีเกลียวตัวเมีย ทิ้งสิ่งเหล่านี้ไว้ก่อน

ตอนนี้นำ ESC ของคุณออก ด้านหนึ่งจะมีสายไฟออกมาสองเส้น ข้างหนึ่งสีแดงและอีกข้างหนึ่งสีดำ สำหรับแต่ละ ESC สี่ตัว ให้เสียบสายสีแดงเข้ากับขั้วต่อบวกบน PDB และสีดำเข้าไปในขั้วลบ โปรดทราบว่าหากคุณใช้ PDB อื่น ขั้นตอนนี้อาจต้องมีการบัดกรี ตอนนี้เชื่อมต่อสายไฟสามเส้นที่ออกมาจากมอเตอร์แต่ละตัว ณ จุดนี้ ไม่สำคัญว่าคุณจะต่อสาย ESC ใดกับสายมอเตอร์ใด (ตราบใดที่คุณต่อสายทั้งหมดของ ESC ตัวเดียวด้วยมอเตอร์ตัวเดียวกัน!) คุณจะแก้ไขขั้วย้อนกลับในภายหลัง ไม่เป็นอันตรายหากสายไฟกลับด้าน ส่งผลให้มอเตอร์หมุนถอยหลังเท่านั้น

ขั้นตอนที่ 4: เตรียม Arduino และ Shield

เตรียม Arduino และ Shield
เตรียม Arduino และ Shield
เตรียม Arduino และ Shield
เตรียม Arduino และ Shield

ข้อสังเกตก่อนเริ่ม

ขั้นแรก คุณอาจเลือกบัดกรีสายไฟทั้งหมดเข้าด้วยกันโดยตรง อย่างไรก็ตาม เราพบว่าการใช้ส่วนหัวของหมุดนั้นมีค่ามาก เนื่องจากมีความยืดหยุ่นสูงสำหรับการแก้ไขปัญหาและการปรับโปรเจ็กต์ ต่อไปนี้เป็นคำอธิบายของสิ่งที่เราทำ (และแนะนำให้ผู้อื่นทำ)

เตรียม Arduino และโล่

นำ Arduino Mega ของคุณออกมา (หรือ Uno หากทำรูปสี่เหลี่ยมที่ไม่ใช่แบบอิสระ), ตัวป้องกัน GPS และส่วนหัวที่ซ้อนกันได้ ประสานส่วนปลายตัวผู้ของส่วนหัวที่วางซ้อนกันได้บนแผงป้องกัน GPS ในแถวของหมุดที่ขนานกับหมุดที่บัดกรีไว้ล่วงหน้าดังที่แสดงในภาพด้านบน บัดกรีในส่วนหัวที่วางซ้อนกันได้บนแถวพินที่ระบุว่า 3V, CD, … RX ใช้คีมตัดลวดเพื่อตัดส่วนที่ยาวเกินออกจากหมุดที่ยื่นออกมาด้านล่าง วางส่วนหัวของผู้ชายโดยให้ส่วนปลายงอในส่วนหัวที่วางซ้อนกันได้ทั้งหมดเหล่านี้ นี่คือสิ่งที่คุณจะบัดกรีสายไฟสำหรับส่วนประกอบที่เหลือ

ติดตัวป้องกัน GPS ที่ด้านบน ตรวจสอบให้แน่ใจว่าหมุดตรงกับหมุดบน Arduino (Mega หรือ Uno) โปรดทราบว่าหากใช้ Mega Arduino จำนวนมากจะยังคงถูกเปิดเผยหลังจากที่คุณใส่โล่เข้าที่

วางเทปพันสายไฟไว้ที่ด้านล่างของ Arduino ครอบคลุมหมุดบัดกรีที่สัมผัสทั้งหมด เพื่อป้องกันไฟฟ้าลัดวงจรขณะที่ Arduino วางอยู่บน PDB

ขั้นตอนที่ 5: เชื่อมต่อส่วนประกอบและวางแบตเตอรี่ (Uno)

ต่อส่วนประกอบและวางแบตเตอรี่ (Uno)
ต่อส่วนประกอบและวางแบตเตอรี่ (Uno)
ต่อส่วนประกอบและวางแบตเตอรี่ (Uno)
ต่อส่วนประกอบและวางแบตเตอรี่ (Uno)
ต่อส่วนประกอบและวางแบตเตอรี่ (Uno)
ต่อส่วนประกอบและวางแบตเตอรี่ (Uno)
ต่อส่วนประกอบและวางแบตเตอรี่ (Uno)
ต่อส่วนประกอบและวางแบตเตอรี่ (Uno)

แผนผังด้านบนเกือบจะเหมือนกับที่ทำโดย Joop Brooking เนื่องจากเราใช้การออกแบบของเราเป็นหลัก

*โปรดทราบว่าแผนผังนี้ใช้เกราะป้องกัน GPS อย่างถูกต้อง ดังนั้น GPS จึงไม่ปรากฏในแผนผังนี้

แผนผังด้านบนจัดทำขึ้นโดยใช้ซอฟต์แวร์ Fritzing ซึ่งแนะนำเป็นอย่างยิ่งสำหรับแผนผังที่เกี่ยวข้องกับ Arduino ส่วนใหญ่เราใช้ชิ้นส่วนทั่วไปซึ่งสามารถแก้ไขได้อย่างยืดหยุ่น เนื่องจากโดยทั่วไปแล้วชิ้นส่วนของเราไม่อยู่ในคลังชิ้นส่วนของ Fritzing

- ตรวจสอบให้แน่ใจว่าสวิตช์บนตัวป้องกัน GPS ถูกเปลี่ยนเป็น "เขียนโดยตรง"

- ตอนนี้ต่อส่วนประกอบทั้งหมดตามแผนผังด้านบน (ยกเว้นแบตเตอรี่!) (หมายเหตุสำคัญเกี่ยวกับสายข้อมูล GPS ด้านล่าง)

- โปรดทราบว่าคุณได้ต่อ ESC เข้ากับมอเตอร์และ PDB แล้ว ดังนั้นส่วนนี้ของแผนผังจึงเสร็จสิ้น

- นอกจากนี้ โปรดทราบว่าข้อมูล GPS (สายสีเหลือง) มาจากพิน 0 และ 1 บน Arduino (ไม่ใช่พิน Tx และ Rx ที่แยกจากกันบน GPS) นั่นเป็นเพราะกำหนดค่าเป็น "เขียนโดยตรง" (ดูด้านล่าง) GPS จะส่งออกโดยตรงไปยังพอร์ตอนุกรมของฮาร์ดแวร์บน uno (พิน 0 และ 1) นี่แสดงให้เห็นอย่างชัดเจนที่สุดในภาพที่สองด้านบนของการเดินสายที่สมบูรณ์

- เมื่อเดินสายเครื่องรับ RC โปรดดูภาพด้านบน สังเกตว่าสายข้อมูลจะเข้าไปในแถวบนสุด ในขณะที่ Vin และ Gnd อยู่ในแถวที่สองและสามตามลำดับ (และในคอลัมน์พินที่สองถึงไกลที่สุด)

- ในการเดินสายสำหรับตัวรับส่งสัญญาณ HC-12, ตัวรับสัญญาณ RC และ 5Vout จาก PDB ไปยัง Vin ของ Arduino เราใช้ส่วนหัวแบบวางซ้อนกันได้ ในขณะที่สำหรับไจโร เราบัดกรีสายไฟเข้ากับบอร์ดโดยตรง และใช้ท่อหดความร้อนรอบๆ ประสาน. คุณอาจเลือกทำอย่างใดอย่างหนึ่งกับส่วนประกอบใดก็ได้ อย่างไรก็ตาม ขอแนะนำให้บัดกรีโดยตรงกับไจโร เนื่องจากจะช่วยประหยัดพื้นที่ซึ่งทำให้ชิ้นส่วนขนาดเล็กติดตั้งได้ง่ายขึ้น การใช้เฮดเดอร์เป็นขั้นตอนเล็กๆ น้อยๆ ก่อน แต่ให้ความยืดหยุ่นมากกว่า การบัดกรีสายไฟโดยตรงเป็นการเชื่อมต่อที่ปลอดภัยกว่าในระยะยาว แต่หมายความว่าการใช้ส่วนประกอบนั้นในโครงการอื่นนั้นยากกว่า โปรดทราบว่าหากคุณเคยใช้ส่วนหัวบนตัวป้องกัน GPS คุณจะยังคงมีความยืดหยุ่นในระดับที่เหมาะสมโดยไม่คำนึงถึงสิ่งที่คุณทำ ที่สำคัญ ตรวจสอบให้แน่ใจว่าสายข้อมูล GPS ในพิน 0 และ 1 บน GPS นั้นง่ายต่อการถอดและเปลี่ยน

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

เมื่อทุกอย่างเชื่อมต่อและเข้าที่แล้ว ให้นำแบตเตอรี่ LiPo ของคุณและเลื่อนเข้าไประหว่างแผ่นด้านบนและด้านล่างของเฟรม ตรวจสอบให้แน่ใจว่าตัวเชื่อมต่อชี้ไปในทิศทางเดียวกับตัวเชื่อมต่อของ PDB และสามารถเชื่อมต่อได้จริง เราใช้เทปพันสายไฟเพื่อยึดแบตเตอรี่ให้เข้าที่ (เทปเวลโครก็ใช้ได้นะ แต่น่ารำคาญกว่าเทปพันสายไฟ) เทปพันสายไฟใช้งานได้ดีเพราะสามารถเปลี่ยนแบตเตอรี่หรือถอดออกเพื่อชาร์จได้อย่างง่ายดาย อย่างไรก็ตาม คุณต้องแน่ใจว่าได้ปิดแบตเตอรี่ไว้แน่น ราวกับว่าแบตเตอรี่เคลื่อนที่ไปมาระหว่างเที่ยวบิน อาจทำให้เสียสมดุลของโดรนได้อย่างรุนแรง อย่าเพิ่งเชื่อมต่อแบตเตอรี่กับ PDB

ขั้นตอนที่ 6: เชื่อมต่อส่วนประกอบและวางแบตเตอรี่ (เมกะ)

เชื่อมต่อส่วนประกอบและวางแบตเตอรี่ (เมกะ)
เชื่อมต่อส่วนประกอบและวางแบตเตอรี่ (เมกะ)
เชื่อมต่อส่วนประกอบและวางแบตเตอรี่ (เมกะ)
เชื่อมต่อส่วนประกอบและวางแบตเตอรี่ (เมกะ)
เชื่อมต่อส่วนประกอบและวางแบตเตอรี่ (เมกะ)
เชื่อมต่อส่วนประกอบและวางแบตเตอรี่ (เมกะ)

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

-โปรดทราบว่าแผนผังนี้ถือว่ามีการติดตั้งเกราะป้องกัน GPS อย่างถูกต้อง ดังนั้น GPS จึงไม่ปรากฏในแผนผังนี้

- พลิกสวิตช์บน Mega 2560 ของคุณเป็น "Soft Serial"

- ตอนนี้ต่อส่วนประกอบทั้งหมดตามแผนผังด้านบน (ยกเว้นแบตเตอรี่!)

- โปรดทราบว่าคุณได้ต่อ ESC เข้ากับมอเตอร์และ PDB แล้ว ดังนั้นส่วนนี้ของแผนผังจึงเสร็จสิ้น

- สายจัมเปอร์จาก Pin 8 ถึง Rx และ Pin 7 ถึง Tx อยู่ที่นั่นเพราะ (ต่างจาก Uno ซึ่งสร้างเกราะป้องกันนี้) mega ขาดตัวรับส่งสัญญาณแบบอะซิงโครนัสสากล (UART) บนพิน 7 และ 8 และด้วยเหตุนี้ เราต้องใช้พินอนุกรมของฮาร์ดแวร์ มีเหตุผลเพิ่มเติมที่เราต้องการพินอนุกรมของฮาร์ดแวร์ซึ่งจะกล่าวถึงในภายหลัง

- เมื่อเดินสายเครื่องรับ RC โปรดดูภาพด้านบน สังเกตว่าสายข้อมูลจะเข้าไปในแถวบนสุด ในขณะที่ Vin และ Gnd อยู่ในแถวที่สองและสามตามลำดับ (และในคอลัมน์พินที่สองถึงไกลที่สุด)

- ในการเดินสายสำหรับตัวรับส่งสัญญาณ HC-12, ตัวรับสัญญาณ RC และ 5Vout จาก PDB ไปยัง Vin ของ Arduino เราใช้ส่วนหัวแบบวางซ้อนกันได้ ในขณะที่สำหรับไจโร เราบัดกรีสายไฟโดยตรงและใช้ท่อหดความร้อนรอบๆ ตัวประสาน คุณอาจเลือกทำอย่างใดอย่างหนึ่งกับส่วนประกอบใดก็ได้ การใช้เฮดเดอร์เป็นขั้นตอนเล็กๆ น้อยๆ ก่อน แต่ให้ความยืดหยุ่นมากกว่า การบัดกรีสายไฟโดยตรงเป็นการเชื่อมต่อที่ปลอดภัยกว่าในระยะยาว แต่หมายความว่าการใช้ส่วนประกอบนั้นในโครงการอื่นนั้นยากกว่า โปรดทราบว่าหากคุณเคยใช้ส่วนหัวบนตัวป้องกัน GPS คุณจะยังคงมีความยืดหยุ่นในระดับที่เหมาะสมโดยไม่คำนึงถึงสิ่งที่คุณทำ

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

เมื่อทุกอย่างเชื่อมต่อและเข้าที่แล้ว ให้นำแบตเตอรี่ LiPo ของคุณและเลื่อนเข้าไประหว่างแผ่นด้านบนและด้านล่างของเฟรม ตรวจสอบให้แน่ใจว่าตัวเชื่อมต่อชี้ไปในทิศทางเดียวกับตัวเชื่อมต่อของ PDB และสามารถเชื่อมต่อได้จริง เราใช้เทปพันสายไฟเพื่อยึดแบตเตอรี่ให้เข้าที่ (เทปเวลโครก็ใช้ได้นะ แต่น่ารำคาญกว่าเทปพันสายไฟ) เทปพันสายไฟใช้งานได้ดีเพราะสามารถเปลี่ยนแบตเตอรี่หรือถอดออกเพื่อชาร์จได้อย่างง่ายดาย อย่างไรก็ตาม คุณต้องแน่ใจว่าได้ปิดแบตเตอรี่ไว้แน่น ราวกับว่าแบตเตอรี่เคลื่อนที่ไปมาระหว่างเที่ยวบิน อาจทำให้เสียสมดุลของโดรนได้อย่างรุนแรง อย่าเพิ่งเชื่อมต่อแบตเตอรี่กับ PDB

ขั้นตอนที่ 7: ผูกผู้รับ

ผูกผู้รับ
ผูกผู้รับ
ผูกผู้รับ
ผูกผู้รับ

นำตัวรับสัญญาณ RC และเชื่อมต่อกับแหล่งจ่ายไฟ 5V ชั่วคราว (โดยการเปิดเครื่อง Arduino ด้วยไฟ USB หรือ 9V หรือด้วยแหล่งจ่ายไฟแยกต่างหาก อย่าเพิ่งเชื่อมต่อ LiPo กับ Arduino) นำหมุดยึดที่มาพร้อมกับเครื่องรับ RC และวางไว้ที่หมุด BIND บนเครื่องรับ อีกวิธีหนึ่งคือตัดหมุดด้านบนและด้านล่างให้สั้นในคอลัมน์ BIND ตามที่แสดงในภาพด้านบน ไฟสีแดงควรกะพริบบนเครื่องรับอย่างรวดเร็ว ตอนนี้ใช้คอนโทรลเลอร์แล้วกดปุ่มที่ด้านหลังในขณะที่ปิดอยู่ดังที่แสดงด้านบน เมื่อกดปุ่ม ให้เปิดคอนโทรลเลอร์ ตอนนี้ไฟกะพริบบนตัวรับควรติดสว่าง ผู้รับถูกผูกไว้ ถอดสายผูกออก หากคุณใช้แหล่งจ่ายไฟอื่น ให้เชื่อมต่อเครื่องรับกับ 5V จาก Arduino อีกครั้ง

ขั้นตอนที่ 8: (ไม่บังคับ) ต่อสายเข้าด้วยกันและติดตั้งระบบกล้อง FPV

(ไม่บังคับ) ต่อสายเข้าด้วยกันและติดตั้งระบบกล้อง FPV
(ไม่บังคับ) ต่อสายเข้าด้วยกันและติดตั้งระบบกล้อง FPV
(ไม่บังคับ) ต่อสายเข้าด้วยกันและติดตั้งระบบกล้อง FPV
(ไม่บังคับ) ต่อสายเข้าด้วยกันและติดตั้งระบบกล้อง FPV

ขั้นแรก ประสานอะแดปเตอร์ XT-60 เข้ากับสายไฟและสายกราวด์บนจอภาพ สิ่งเหล่านี้อาจแตกต่างกันไปในแต่ละจอภาพ แต่กำลังมักจะเป็นสีแดง พื้นเกือบเป็นสีดำเกือบตลอดเวลา ตอนนี้ใส่อะแดปเตอร์ที่มีสายบัดกรีเข้ากับ LiPo 1000mAh ของคุณด้วยปลั๊ก XT-60 จอภาพควรเปิดด้วย (โดยปกติ) พื้นหลังสีน้ำเงิน นั่นเป็นขั้นตอนที่ยากที่สุด!

ตอนนี้ขันสกรูเสาอากาศบนเครื่องรับและเครื่องส่งสัญญาณของคุณ

เชื่อมต่อ Lipo 500mAh ขนาดเล็กของคุณเข้ากับเครื่องส่งสัญญาณ พินขวาสุด (ด้านล่างขวาของเสาอากาศ) คือกราวด์ (V_) ของแบตเตอรี่ พินถัดไปทางซ้ายคือ V+ พวกเขามาสามสายที่ไปที่กล้อง กล้องของคุณควรมาพร้อมกับปลั๊กสามตัวที่พอดีกับตัวส่งสัญญาณ ตรวจสอบให้แน่ใจว่าคุณมีสายข้อมูลสีเหลืองอยู่ตรงกลาง หากคุณใช้แบตเตอรี่ที่เราเชื่อมโยงกับปลั๊กสำหรับสิ่งนี้ ขั้นตอนนี้ไม่ควรต้องมีการบัดกรี

สุดท้าย ต่อแบตเตอรี่ 1000mAh อื่นๆ ของคุณด้วยสาย DC ออกที่มาพร้อมกับเครื่องรับของคุณ จากนั้นให้เสียบปลั๊กเข้ากับพอร์ต DC บนเครื่องรับของคุณ สุดท้าย ให้เชื่อมต่อปลายสาย AVin สีดำที่มาพร้อมกับเครื่องรับของคุณเข้ากับพอร์ต AVin บนเครื่องรับของคุณ และเชื่อมต่อปลายอีกด้านหนึ่ง (สีเหลือง ตัวเมีย) เข้ากับปลายตัวผู้สีเหลืองของสาย AVin ของจอภาพของคุณ

ณ จุดนี้ คุณควรจะสามารถเห็นมุมมองกล้องบนจอภาพได้ หากคุณทำไม่ได้ ตรวจสอบให้แน่ใจว่าทั้งเครื่องรับและเครื่องส่งเปิดอยู่ (คุณควรเห็นตัวเลขบนหน้าจอขนาดเล็ก) และอยู่ในช่องเดียวกัน (เราใช้ช่อง 11 สำหรับทั้งคู่และประสบความสำเร็จเป็นอย่างดี) นอกจากนี้ คุณอาจต้องเปลี่ยนช่องสัญญาณบนจอภาพ

ติดตั้งส่วนประกอบบนเฟรม

เมื่อคุณตั้งค่าใช้งานได้แล้ว ให้ถอดแบตเตอรี่ออกจนกว่าคุณจะพร้อมบิน

ขั้นตอนที่ 9: ตั้งค่าการรับข้อมูล GPS

ตั้งค่าการรับข้อมูล GPS
ตั้งค่าการรับข้อมูล GPS
ตั้งค่าการรับข้อมูล GPS
ตั้งค่าการรับข้อมูล GPS

ต่อ Arduino ตัวที่สองของคุณกับตัวรับส่งสัญญาณ HC-12 ตัวที่สองของคุณตามที่แสดงในแผนผังด้านบน โดยจำไว้ว่าการตั้งค่าจะได้รับพลังงานตามที่แสดงเมื่อเสียบเข้ากับคอมพิวเตอร์เท่านั้น ดาวน์โหลดรหัสตัวรับส่งสัญญาณที่ให้มา เปิดจอภาพอนุกรมของคุณไปที่ 9600 บอด

หากใช้การตั้งค่าพื้นฐานกว่านี้ คุณควรเริ่มรับประโยค GPS หากตัวป้องกัน GPS ของคุณได้รับพลังงานและต่อสายเข้ากับตัวรับส่งสัญญาณ HC-12 อื่นอย่างถูกต้อง (และหากสวิตช์บนแผงป้องกันเปิด "เขียนโดยตรง")

ด้วย Mega ตรวจสอบให้แน่ใจว่าสวิตช์เปิดอยู่ "Soft Serial"

ขั้นตอนที่ 10: ดำเนินการตั้งค่ารหัส (Uno)

รหัสนี้เหมือนกับรหัสที่ใช้โดย Joop Brokking ในบทช่วยสอน Arduino quadcopter ของเขา และเขาสมควรได้รับเครดิตทั้งหมดสำหรับการเขียนโค้ดนี้

เมื่อถอดแบตเตอรี่แล้ว ให้ใช้สาย USB เพื่อเชื่อมต่อคอมพิวเตอร์ของคุณกับ Arduino และอัปโหลดรหัสการตั้งค่าที่แนบมา เปิดเครื่องส่งสัญญาณ RC ของคุณ เปิดมอนิเตอร์ซีเรียลของคุณไปที่ 57600 บอดและปฏิบัติตามคำแนะนำ

ข้อผิดพลาดทั่วไป:

หากรหัสล้มเหลวในการอัปโหลด ตรวจสอบให้แน่ใจว่าได้ถอดหมุด 0 และ 1 บนโล่ UNO/GPS แล้วนี่เป็นพอร์ตฮาร์ดแวร์เดียวกับที่อุปกรณ์ใช้สื่อสารกับคอมพิวเตอร์ ดังนั้นพอร์ตนี้ต้องว่าง

หากรหัสข้ามผ่านหลายขั้นตอนพร้อมกัน ให้ตรวจสอบว่าสวิตช์ GPS ของคุณเปิด "เขียนโดยตรง"

หากตรวจไม่พบตัวรับสัญญาณ ตรวจสอบให้แน่ใจว่ามีไฟสีแดงติดนิ่ง (แต่สลัว) บนเครื่องรับของคุณเมื่อเปิดเครื่องส่ง หากเป็นเช่นนั้น ให้ตรวจสอบสายไฟ

หากตรวจไม่พบไจโร อาจเป็นเพราะไจโรเสียหายหรือถ้าคุณมีไจโรประเภทอื่นจากโค้ดที่ออกแบบมาเพื่อเขียน

ขั้นตอนที่ 11: ดำเนินการตั้งค่ารหัส (เมกะ)

รหัสนี้เหมือนกับรหัสที่ใช้โดย Joop Brokking ในบทช่วยสอน Arduino quadcopter ของเขา และเขาสมควรได้รับเครดิตทั้งหมดสำหรับการเขียนโค้ดนี้ เราเพียงแค่ปรับการเดินสายสำหรับ Mega เพื่อให้อินพุตของตัวรับสอดคล้องกับพินการขัดจังหวะการเปลี่ยนพินที่ถูกต้อง

เมื่อถอดแบตเตอรี่แล้ว ให้ใช้สาย USB เพื่อเชื่อมต่อคอมพิวเตอร์ของคุณกับ Arduino และอัปโหลดรหัสการตั้งค่าที่แนบมา เปิดมอนิเตอร์ซีเรียลของคุณไปที่ 57600 บอดและปฏิบัติตามคำแนะนำ

ขั้นตอนที่ 12: ปรับเทียบ ESCs (Uno)

รหัสนี้เหมือนกับรหัสของ Joop Brokking อีกครั้ง การปรับเปลี่ยนทั้งหมดทำขึ้นเพื่อพยายามรวม GPS และ Arduino และสามารถพบได้ในภายหลังในคำอธิบายของการสร้างควอดคอปเตอร์ขั้นสูง

อัปโหลดรหัสการสอบเทียบ ESC ที่แนบมา บนจอภาพอนุกรม ให้เขียนตัวอักษร 'r' แล้วกด return คุณควรเริ่มเห็นค่าตัวควบคุม RC แบบเรียลไทม์ที่แสดงอยู่ ตรวจสอบว่ามีความแตกต่างกันตั้งแต่ 1,000 ถึง 2000 ในการเร่งความเร็ว การหมุนตัว ระยะพิทช์ และการบิดเบี้ยว จากนั้นเขียน 'a' แล้วกด return ปล่อยให้การปรับเทียบไจโรดำเนินต่อไป จากนั้นตรวจสอบว่าไจโรลงทะเบียนการเคลื่อนที่ของรูปสี่เหลี่ยม ตอนนี้ถอด Arduino จากคอมพิวเตอร์ ดันคันเร่งขึ้นบนตัวควบคุมจนสุดแล้วเชื่อมต่อแบตเตอรี่ ESC ควรวนรอบเสียงบี๊บที่แตกต่างกัน (แต่อาจแตกต่างกันไปขึ้นอยู่กับ ESC และเฟิร์มแวร์) ดันคันเร่งลงจนสุด ESC ควรส่งเสียงบี๊บต่ำลง จากนั้นเงียบลง ถอดปลั๊กแบตเตอรี่

หรือ ณ จุดนี้ คุณสามารถใช้กรวยที่มาพร้อมกับชุดอุปกรณ์เสริมสำหรับติดตั้งมอเตอร์ของคุณเพื่อขันสกรูบนใบพัดให้แน่น จากนั้นป้อนตัวเลข 1 - 4 บนจอภาพอนุกรมเพื่อจ่ายไฟให้มอเตอร์ 1 - 4 ตามลำดับโดยใช้กำลังไฟต่ำสุด โปรแกรมจะบันทึกปริมาณการสั่นเนื่องจากความไม่สมดุลของอุปกรณ์ประกอบฉาก คุณสามารถลองแก้ไขปัญหานี้ได้โดยการเพิ่มสก็อตเทปจำนวนเล็กน้อยที่ด้านใดด้านหนึ่งหรืออีกด้านหนึ่งของอุปกรณ์ประกอบฉาก เราพบว่าเราสามารถบินได้ดีหากไม่มีขั้นตอนนี้ แต่อาจมีประสิทธิภาพน้อยกว่าเล็กน้อยและมีเสียงดังกว่าที่เราจัดอุปกรณ์ประกอบฉากให้สมดุล

ขั้นตอนที่ 13: ปรับเทียบ ESC (เมกะ)

รหัสนี้คล้ายกับรหัสของ Brokking มาก แต่เราได้ดัดแปลง (และการเดินสายที่สอดคล้องกัน) เพื่อทำงานกับ Mega

อัปโหลดรหัสการสอบเทียบ ESC ที่แนบมา บนจอภาพอนุกรม ให้เขียนตัวอักษร 'r' แล้วกด return คุณควรเริ่มเห็นค่าตัวควบคุม RC แบบเรียลไทม์ที่แสดงอยู่ ตรวจสอบว่ามีความแตกต่างกันตั้งแต่ 1,000 ถึง 2000 ในการเร่งความเร็ว การหมุนตัว ระยะพิทช์ และการบิดเบี้ยว

จากนั้นเขียน 'a' แล้วกด return ปล่อยให้การปรับเทียบไจโรไป จากนั้นตรวจสอบว่าไจโรลงทะเบียนการเคลื่อนที่ของรูปสี่เหลี่ยม

ตอนนี้ถอด Arduino จากคอมพิวเตอร์ ดันคันเร่งขึ้นบนตัวควบคุมจนสุดแล้วเชื่อมต่อแบตเตอรี่ ESC ควรส่งเสียงบี๊บต่ำสามครั้งตามด้วยเสียงบี๊บสูง (แต่อาจแตกต่างกันไปขึ้นอยู่กับ ESC และเฟิร์มแวร์) ดันคันเร่งลงจนสุด ถอดปลั๊กแบตเตอรี่

การเปลี่ยนแปลงที่เราทำกับรหัสนี้คือเปลี่ยนจากการใช้ PORTD สำหรับหมุด ESC เป็นการใช้ PORTA จากนั้นเปลี่ยนไบต์ที่เขียนไปยังพอร์ตเหล่านี้ เพื่อให้เราเปิดใช้งานพินที่เหมาะสมตามที่แสดงในแผนผังการเดินสาย การเปลี่ยนแปลงนี้เป็นเพราะหมุดรีจิสเตอร์ PORTD ไม่ได้อยู่ในตำแหน่งเดียวกันบนเมกะเหมือนกับที่อยู่ใน Uno เราไม่สามารถทดสอบรหัสนี้ได้อย่างเต็มที่ในขณะที่เรากำลังทำงานกับ Mega นอกแบรนด์เก่าที่ร้านค้าของโรงเรียนของเรามี ซึ่งหมายความว่าด้วยเหตุผลบางประการ หมุดลงทะเบียน PORTA ทั้งหมดไม่สามารถเปิดใช้งาน ESC ได้อย่างถูกต้อง นอกจากนี้เรายังมีปัญหาในการใช้โอเปอเรเตอร์ or เท่ากับ (|=) ในโค้ดทดสอบบางส่วนของเรา เราไม่แน่ใจว่าเหตุใดจึงทำให้เกิดปัญหาเมื่อเขียนไบต์เพื่อตั้งค่าแรงดันไฟฟ้าของขา ESC ดังนั้นเราจึงแก้ไขโค้ดของ Brooking ให้น้อยที่สุด เราคิดว่ารหัสนี้ใกล้เคียงกับการใช้งานมาก แต่ระยะของคุณอาจแตกต่างกันไป

ขั้นตอนที่ 14: รับอากาศ !! (อูโน่)

และอีกครั้ง โค้ดอัจฉริยะบิตที่สามนี้เป็นผลงานของ Joop Brokking การเปลี่ยนแปลงของโค้ดทั้งสามนี้มีเฉพาะในความพยายามของเราในการรวมข้อมูล GPS เข้ากับ Arduino

เมื่อติดตั้งใบพัดของคุณเข้ากับเฟรมอย่างแน่นหนาและส่วนประกอบทั้งหมดถูกมัด ติดเทป หรือติดตั้งไว้ ให้โหลดรหัสตัวควบคุมเที่ยวบินไปยัง Arduino ของคุณ จากนั้นถอดปลั๊ก Arduino ออกจากคอมพิวเตอร์ของคุณ

นำ quadcopter ของคุณออกไปข้างนอก เสียบแบตเตอรี่แล้วเปิดเครื่องส่งของคุณ คุณสามารถเลือกนำแล็ปท็อปที่เชื่อมต่อกับการตั้งค่าการรับ GPS รวมถึงการตั้งค่าการรับวิดีโอและจอภาพไปด้วย โหลดรหัสตัวรับส่งสัญญาณไปยัง Arduino ภาคพื้นดินของคุณ เปิดจอภาพอนุกรมของคุณไปที่ 9600 บอด และดูข้อมูล GPS

ตอนนี้คุณพร้อมที่จะบินแล้ว ดันคันเร่งลงและหันซ้ายเพื่อวางแขนของควอดคอปเตอร์ จากนั้นค่อย ๆ ยกคันเร่งขึ้นเพื่อโฮเวอร์ เริ่มต้นด้วยการบินต่ำลงไปที่พื้นและบนพื้นผิวที่อ่อนนุ่มเช่นหญ้าจนกว่าคุณจะรู้สึกสบาย

ดูวิดีโอที่ฝังไว้ของเราที่กำลังบินโดรนอย่างตื่นเต้นในครั้งแรกที่เราสามารถทำให้โดรนและ GPS ทำงานพร้อมกันได้

ขั้นตอนที่ 15: รับอากาศ !! (เมก้า)

เนื่องจากเราวางสายกับรหัสการสอบเทียบ ESC สำหรับ Mega เราจึงไม่สามารถสร้างรหัสควบคุมการบินสำหรับบอร์ดนี้ได้ หากคุณมาถึงจุดนี้แล้ว ฉันคิดว่าอย่างน้อยคุณคงเคยชินกับรหัสการปรับเทียบ ESC เพื่อให้มันใช้งานได้กับ Mega ดังนั้น คุณอาจจะต้องทำการปรับเปลี่ยนที่คล้ายกันกับรหัสควบคุมการบินตามที่คุณทำในขั้นตอนสุดท้าย หากรหัสการสอบเทียบ ESC ของเราสำหรับ Mega ทำงานได้อย่างน่าอัศจรรย์โดยไม่มีการดัดแปลงใดๆ เลย มีเพียงไม่กี่สิ่งที่คุณต้องทำกับรหัสสต็อกเพื่อให้มันทำงานสำหรับขั้นตอนนี้ ก่อนอื่นคุณจะต้องผ่านและแทนที่อินสแตนซ์ทั้งหมดของ PORTD ด้วย PORTA อย่าลืมเปลี่ยน DDRD เป็น DDRA จากนั้น คุณจะต้องเปลี่ยนไบต์ทั้งหมดที่เขียนไปยังรีจิสเตอร์ PORTA เพื่อให้เปิดใช้งานพินที่เหมาะสม ในการดำเนินการนี้ ให้ใช้ไบต์ B11000011 เพื่อตั้งค่าพินให้สูงและ B00111100 เพื่อตั้งค่าพินให้ต่ำ ขอให้โชคดี และโปรดแจ้งให้เราทราบหากคุณบินด้วย Mega สำเร็จ!

ขั้นตอนที่ 16: เราไปถึงที่ที่เราอยู่ด้วยการออกแบบเมกะได้อย่างไร

โครงการนี้เป็นประสบการณ์การเรียนรู้ที่ยิ่งใหญ่สำหรับเราในฐานะผู้เริ่มต้นใช้งาน Arduino และอิเล็กทรอนิกส์ ดังนั้น แม้ว่าเราจะรวมเรื่องราวเกี่ยวกับทุกสิ่งที่เราพบในขณะที่พยายาม GPS เปิดใช้งานโค้ดของ Joop Brokking เนื่องจากโค้ดของ Brokking นั้นละเอียดและซับซ้อนกว่าที่เราเขียน เราจึงตัดสินใจแก้ไขให้น้อยที่สุด เราพยายามรับตัวป้องกัน GPS เพื่อส่งข้อมูลไปยัง Arduino จากนั้นให้ Arduino ส่งข้อมูลนั้นให้เราผ่านตัวรับส่งสัญญาณ HC12 โดยไม่ต้องแก้ไขรหัสเที่ยวบินหรือสายไฟ แต่อย่างใด หลังจากดูแผนผังและการเดินสายของ Arduino Uno เพื่อดูว่ามีพินใดบ้าง เราจึงเปลี่ยนรหัสตัวรับส่งสัญญาณ GPS ที่เราใช้เพื่อแก้ไขการออกแบบที่มีอยู่ จากนั้นเราทดสอบเพื่อให้แน่ใจว่าทุกอย่างทำงาน ณ จุดนี้ สิ่งต่าง ๆ ดูมีแนวโน้ม

ขั้นตอนต่อไปคือการรวมโค้ดที่เราเพิ่งแก้ไขและทดสอบกับตัวควบคุมการบินของ Brokking มันไม่ได้ยากเกินไป แต่เราพบข้อผิดพลาดอย่างรวดเร็ว ตัวควบคุมการบินของ Brokking อาศัยไลบรารี Arduino Wire และ EEPROM ในขณะที่โค้ด GPS ของเราใช้ทั้งไลบรารี Software Serial และไลบรารี Arduino GPS เนื่องจาก Wire Library อ้างอิงถึง Software Serial library เราพบข้อผิดพลาดที่โค้ดไม่สามารถคอมไพล์ได้ เนื่องจากมี "คำจำกัดความหลายคำสำหรับ _vector 3_" ไม่ว่าจะหมายความว่าอย่างไร หลังจากดูใน Google และค้นหาข้อมูลในห้องสมุดต่างๆ แล้ว ในที่สุดเราก็พบว่าข้อขัดแย้งของไลบรารีนี้ทำให้ไม่สามารถใช้โค้ดเหล่านี้ร่วมกันได้ ดังนั้นเราจึงไปค้นหาทางเลือกอื่น

สิ่งที่เราพบก็คือการรวมไลบรารี่เดียวที่ไม่ทำให้เกิดข้อผิดพลาดกับเราคือเปลี่ยนไลบรารี GPS มาตรฐานเป็น neoGPS แล้วใช้ AltSoftSerial แทน Software Serial ชุดค่าผสมนี้ใช้งานได้ แต่ AltSoftSerial สามารถทำงานได้กับหมุดเฉพาะเท่านั้น ซึ่งไม่มีอยู่ในการออกแบบของเรา นี่คือสิ่งที่นำเราไปสู่การใช้เมก้า Arduino Megas มีพอร์ตอนุกรมฮาร์ดแวร์หลายพอร์ต ซึ่งหมายความว่าเราสามารถข้ามข้อขัดแย้งของไลบรารีนี้ได้โดยไม่จำเป็นต้องเปิดพอร์ตอนุกรมของซอฟต์แวร์เลย

อย่างไรก็ตาม เมื่อเราเริ่มใช้ Mega เรารู้ได้อย่างรวดเร็วว่าการกำหนดค่าพินนั้นแตกต่างกัน หมุดบน Uno ที่มีการขัดจังหวะจะแตกต่างกันใน Mega ในทำนองเดียวกัน หมุด SDA และ SCL อยู่ในตำแหน่งที่ต่างกัน หลังจากศึกษาพินไดอะแกรมสำหรับ Arduino แต่ละประเภท และอ้างอิงรีจิสเตอร์ที่เรียกในโค้ด เราสามารถรันโค้ดการตั้งค่าเที่ยวบินได้ด้วยการต่อสายไฟใหม่เพียงเล็กน้อยและไม่มีการเปลี่ยนแปลงซอฟต์แวร์

รหัสการสอบเทียบ ESC คือจุดที่เราเริ่มพบปัญหา เราเคยพูดถึงเรื่องนี้มาก่อนแล้ว แต่โดยพื้นฐานแล้วโค้ดนี้ใช้พินรีจิสเตอร์เพื่อควบคุมพินที่ใช้ในการควบคุม ESC ทำให้โค้ดอ่านยากกว่าการใช้ฟังก์ชัน pinMode() มาตรฐาน อย่างไรก็ตาม มันทำให้โค้ดทำงานเร็วขึ้นและเปิดใช้งานพินพร้อมกัน นี่เป็นสิ่งสำคัญเนื่องจากรหัสเที่ยวบินทำงานในวงเวลาอย่างระมัดระวัง เนื่องจากความแตกต่างของพินระหว่าง Arduinos เราจึงตัดสินใจใช้พอร์ตรีจิสเตอร์ A บนเมกะ อย่างไรก็ตาม ในการทดสอบของเรา หมุดบางตัวไม่ได้ให้แรงดันเอาต์พุตเท่ากันเมื่อได้รับคำสั่งให้ทำงานสูง พินบางตัวมีเอาต์พุตประมาณ 4.90V และบางตัวทำให้เราเข้าใกล้ 4.95V มากขึ้น เห็นได้ชัดว่า ESC ที่เรามีค่อนข้างจู้จี้จุกจิก ดังนั้นพวกมันจึงทำงานได้อย่างถูกต้องเมื่อเราใช้พินที่มีแรงดันไฟฟ้าสูงกว่าเท่านั้น สิ่งนี้บังคับให้เราเปลี่ยนไบต์ที่เราเขียนเพื่อลงทะเบียน A เพื่อที่เราจะได้พูดคุยกับพินที่ถูกต้อง มีข้อมูลเพิ่มเติมเกี่ยวกับสิ่งนี้ในส่วนการปรับเทียบ ESC

นี่คือเท่าที่เราได้รับในส่วนนี้ของโครงการ เมื่อเราไปทดสอบรหัสการสอบเทียบ ESC ที่แก้ไขแล้ว มีบางอย่างลัดวงจรและเราสูญเสียการสื่อสารกับ Arduino ของเรา เรางงมากกับสิ่งนี้เพราะเราไม่ได้เปลี่ยนสายไฟใดๆ สิ่งนี้บังคับให้เราถอยออกมาและตระหนักว่าเรามีเวลาเพียงไม่กี่วันในการรับโดรนที่บินได้หลังจากพยายามประกอบชิ้นส่วนที่เข้ากันไม่ได้ของเรามาหลายสัปดาห์ นี่คือเหตุผลที่เราย้อนรอยและสร้างโครงการที่เรียบง่ายขึ้นด้วย Uno อย่างไรก็ตาม เรายังคงคิดว่าแนวทางของเราใกล้เคียงกับการทำงานร่วมกับ Mega โดยมีเวลาเพิ่มขึ้นเล็กน้อย

เป้าหมายของเราคือคำอธิบายเกี่ยวกับอุปสรรค์ที่เราพบจะเป็นประโยชน์กับคุณ หากคุณกำลังแก้ไขโค้ดของ Brokking เราไม่เคยมีโอกาสได้ลองเข้ารหัสคุณลักษณะการควบคุมอัตโนมัติโดยอิงจาก GPS นี่คือสิ่งที่คุณจะต้องคิดหลังจากสร้างโดรนที่ใช้งานได้กับเมกะ อย่างไรก็ตาม จากการวิจัยเบื้องต้นของ Google ดูเหมือนว่าการใช้ตัวกรองคาลมานอาจเป็นวิธีที่เสถียรและแม่นยำที่สุดในการระบุตำแหน่งในเที่ยวบิน เราขอแนะนำให้คุณค้นคว้าเล็กน้อยเกี่ยวกับวิธีที่อัลกอริทึมนี้ปรับการประมาณสถานะให้เหมาะสมที่สุด นอกจากนั้น ขอให้โชคดีและแจ้งให้เราทราบหากคุณไปได้ไกลกว่าที่เราสามารถทำได้!

แนะนำ: