สารบัญ:

แพลตฟอร์มสจ๊วตควบคุมบอลทรงตัวแบบควบคุมด้วย PID: 6 ขั้นตอน
แพลตฟอร์มสจ๊วตควบคุมบอลทรงตัวแบบควบคุมด้วย PID: 6 ขั้นตอน

วีดีโอ: แพลตฟอร์มสจ๊วตควบคุมบอลทรงตัวแบบควบคุมด้วย PID: 6 ขั้นตอน

วีดีโอ: แพลตฟอร์มสจ๊วตควบคุมบอลทรงตัวแบบควบคุมด้วย PID: 6 ขั้นตอน
วีดีโอ: Очередной рейс (1958) фильм 2024, กรกฎาคม
Anonim
Image
Image
รับวัสดุ
รับวัสดุ

แรงจูงใจและแนวคิดโดยรวม:

ในฐานะนักฟิสิกส์ในการฝึก ฉันรู้สึกสนใจและพยายามทำความเข้าใจระบบทางกายภาพโดยธรรมชาติ ฉันได้รับการฝึกอบรมให้แก้ปัญหาที่ซับซ้อนโดยแยกย่อยเป็นส่วนประกอบพื้นฐานและจำเป็นที่สุด จากนั้นจึงสร้างปัญหาขึ้นมาใหม่ แม้ว่าฉันจะได้เรียนรู้กลศาสตร์และแม่เหล็กไฟฟ้าจากหลักการแรก แต่ฉันก็ยังไม่ได้ใช้มันในการใช้งานทางกายภาพบางอย่าง ในที่สุดฉันก็จะได้รับโอกาสนี้โดยการสร้างหุ่นยนต์ที่ใช้ทฤษฎีการควบคุมอัตโนมัติเพื่อปรับสมดุลลูกบอลบนแพลตฟอร์มที่แบนราบและมีการควบคุมอย่างเต็มที่ด้วยตัวมันเอง!

ในวิธีการนี้ ซึ่งมีไว้สำหรับแฮ็กเกอร์ โปรแกรมเมอร์ หรือวิศวกรที่เชี่ยวชาญทางเทคนิค เราจะใช้ Arduino Uno เป็นแพลตฟอร์มไมโครคอนโทรลเลอร์ของเรา วงจรป้อนกลับแบบปิดจะเริ่มต้นขึ้นเมื่อสัมผัสได้ถึงตำแหน่งของลูกปืนโลหะแข็งที่วางอยู่บนหน้าจอตัวต้านทานแบบสัมผัสที่แบน ซึ่งจะดึงกลับตำแหน่งทันทีของลูกบอล ตำแหน่งนี้จะถูกป้อนเข้าสู่คอนโทรลเลอร์แบบสัดส่วน-อินทิกรัล-อนุพันธ์ (PID) ซึ่งเราได้ตั้งโปรแกรมไว้ใน Arduino Uno ฉันได้สร้างรหัสนี้ให้เป็นโอเพ่นซอร์สและเชื่อมโยงในโครงการ ผู้ควบคุมได้รับมอบหมายให้นำลูกบอลกลับคืนสู่ตำแหน่งที่ผู้ใช้เลือกไว้บนโต๊ะ แม้ว่าจะมีการรบกวนอย่างมาก แพลตฟอร์มรองรับโครงสร้างที่เราจะใช้เรียกว่า "แพลตฟอร์มสจ๊วต" และได้รับการสนับสนุนโดยแท่งเชื่อมต่ออิสระ 6 อันที่ขับเคลื่อนด้วยเซอร์โวมอเตอร์ซึ่งจะให้อิสระสูงสุดหกองศา การแปล X, Y และ Z, ม้วน, ขว้างและหันเห (การหมุนรอบแกน X, Y และ Z ตามลำดับ) การสร้างและเขียนโปรแกรมแพลตฟอร์มที่เคลื่อนที่ได้สูงเช่นนี้ทำให้เกิดความท้าทาย ดังนั้นสำหรับโครงการนี้ เราจะเรียกเฉพาะระดับความอิสระและระดับความอิสระเท่านั้น ปล่อยให้ส่วนอื่นๆ เป็นการอัพเกรดฟังก์ชันการทำงานที่เป็นทางเลือก หากผู้ใช้ต้องการ พร้อมกับแพลตฟอร์มที่เคลื่อนลูกบอลไปยังชุดของตำแหน่งคงที่ที่ผู้ใช้กำหนดไว้ โปรแกรมเมอร์ขั้นสูงจะพบว่ามันง่ายที่จะปรับปรุงโปรแกรมและเพิ่มความสวยงามโดยการแทนที่ตำแหน่งคงที่ที่ผู้ใช้กำหนดของเราด้วยการติดตามกึ่งต่อเนื่องของผู้ใช้ เส้นทางที่กำหนด เช่น รูปที่แปด วิถีวงกลม ชื่อของคุณในรูปแบบตัวสะกด หรือสตรีมสดของสไตลัสหรือนิ้วของใครบางคนที่ฉันโปรดปรานบนอุปกรณ์มือถือของพวกเขาเอง! แฮ็คอย่างมีความสุข!

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

รับวัสดุ
รับวัสดุ
รับวัสดุ
รับวัสดุ
รับวัสดุ
รับวัสดุ

วัสดุที่จำเป็น:

1. แผ่นอะคริลิก 1/4" และ 1/8" สองสามแผ่น

2. 6 - เซอร์โวมอเตอร์ (เราใช้เซอร์โว HS5485HB)

3. 6 - ก้านสูบเกลียว (ปรับได้)

4. 6 - แขนเซอร์โวอาร์ม CNC Machined พร้อมรูหลายรูสำหรับการปรับ

5. 12 - ปลายก้านร่วม Heim

6. 6 - แท่ง (ปรับได้)

7. 1- 17” Five Wire Resistive Touch Screen Panel USB kit (ตำแหน่งสัมผัสของลูกปืน)

ขั้นตอนที่ 2: เตรียมวัสดุ

เตรียมวัตถุดิบ
เตรียมวัตถุดิบ
เตรียมวัตถุดิบ
เตรียมวัตถุดิบ
เตรียมวัตถุดิบ
เตรียมวัตถุดิบ

วิธีที่ดีที่สุดในการตัดอะคริลิกคือการใช้กล้องเลเซอร์ การเข้าถึงอันใดอันหนึ่งอาจทำได้ยาก ดังนั้น อะครีลิคจึงสามารถตัดได้อย่างง่ายดายโดยใช้เครื่องมือตัดใดๆ ที่คุณคุ้นเคย ผ่านการฝึกอบรมอย่างเหมาะสม และสามารถทำงานได้อย่างปลอดภัย ถ้าฉันทำสิ่งนี้ที่บ้าน ฉันจะใช้เลื่อยฉลุมือ รูปร่างโดยรวมของแพลตฟอร์มสจ๊วตไม่จำเป็นต้องตรงกับแบบจำลองที่ฉันสร้างขึ้น อย่างไรก็ตาม ฉันต้องการชี้ให้เห็นโอกาสง่ายๆ สองสามข้อ อย่างแรก การทำแผนที่ระดับความอิสระของพิทช์และการหมุนจะง่ายกว่ามากโดยใช้สามฐาน แทนที่จะเป็นสองมาตรฐาน ทำได้โดยทำให้การยึดแท่งเชื่อมต่อกับแท่นจริงเป็นรูปสามเหลี่ยมด้านเท่า วิธีนี้ช่วยให้คุณละเลยความยุ่งยากทั้งหมดในการค้นหาองศาพิทช์และการหมุนขององศาอิสระ (DOF) ตั้งแต่เริ่มต้น แต่เรากลับใช้ "พื้นฐาน" ที่ไม่ขึ้นกับเชิงเส้น 3 แบบ ซึ่งเป็นเพียงแผนที่ของมุมนั้นของสามเหลี่ยมที่กำลังขึ้น นี่อาจเป็นเรื่องยากสำหรับคุณหรือฉันในการเขียนพิกัดบนพื้นฐานนี้ แต่รหัสสามารถจัดการการพึ่งพาอาศัยกันของพื้นฐานเหล่านี้ได้อย่างง่ายดาย สมมติฐานที่เข้าใจง่ายนี้เป็นกุญแจสำคัญในการละเลยความซับซ้อนทั้งหมดของเรขาคณิต ดูภาพกราฟิก MS Paint และภาพไวท์บอร์ดสำหรับรายละเอียด

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

ขั้นตอนที่ 3: ประกอบวัสดุ

ประกอบวัสดุ
ประกอบวัสดุ
ประกอบวัสดุ
ประกอบวัสดุ
ประกอบวัสดุ
ประกอบวัสดุ
ประกอบวัสดุ
ประกอบวัสดุ

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

ขั้นตอนที่ 4: การเขียนโปรแกรม

การเขียนโปรแกรม
การเขียนโปรแกรม

การเขียนโปรแกรมอาจใช้เวลาสักครู่ นี่คือจุดที่ทักษะการเขียนโปรแกรมของคุณสามารถชำระได้อย่างแท้จริง คุณไม่จำเป็นต้องเขียนโค้ดตั้งแต่เริ่มต้น แต่ถ้าคุณสามารถหาซอร์สโค้ดที่มีความคิดเห็นและจัดระเบียบได้ดีเพื่อแก้ไข นั่นจะทำให้ชีวิตง่ายขึ้นมาก นี่คือลิงค์ไปยังซอร์สโค้ดของเรา: https://github.com/a6guerre/Ball-balanced-on-Stew… ช่วยตัวเองด้วย! มันไม่ได้ปรับให้เหมาะสมอย่างแน่นอน แต่ได้งานทำ! จำไว้ว่าเรากำลังใช้พื้นฐานที่ไม่ใช่แบบออร์โธแกนอล และไม่อิสระเชิงเส้นสามแบบแยกกันสำหรับแผนที่การควบคุม เราเพียงแค่อ่านทุกอย่างใน x, y และจับคู่กับ A, B และ C จากนั้นการตอบสนองนี้จะถูกปรับทั่วโลกเพื่อปรับว่าเราต้องการให้ระบบตอบสนองมากหรือน้อยเพียงใด

ขั้นตอนที่ 5: การทดสอบ

ที่นี่เราทดสอบระดับความเป็นอิสระ สังเกตว่า 3 พื้นฐานของเรานั้นให้ผลตอบแทนอย่างไร! ตัวอย่างเช่น เพื่อให้ได้ม้วน DOF เราเพียงแค่ลงไปหนึ่งหน่วยทางด้านซ้าย ในขณะที่ขึ้นไปหนึ่งหน่วยทางด้านขวา และในทางกลับกันสำหรับอีกทิศทางหนึ่ง สิ่งสำคัญคือต้องกรองสัญญาณรบกวนจากหน้าจอสัมผัสของคุณได้ดีเพียงพอ นี่เป็นสิ่งสำคัญในการมีข้อมูลที่ดีในการป้อน PID ของคุณ

ขั้นตอนที่ 6: ปรับแต่งและสนุก

ขั้นตอนการทดสอบเป็นเพียงเพื่อกำจัดข้อบกพร่องเท่านั้น ที่นี่ เราเน้นที่การปรับระบบควบคุมอย่างละเอียด วิธีนี้ทำได้ดีที่สุดด้วยอัลกอริธึมที่ตั้งไว้ล่วงหน้า สิ่งที่ฉันชอบคือการเข้าใกล้เหมือนปัญหาการดูดซับที่สำคัญ อะแฮ่ม! ฉันเป็นนักฟิสิกส์! ดังนั้นคุณจึงปิดระยะแดมเปอร์! คือเทอมอนุพันธ์ซึ่งทำหน้าที่เหมือนเทอมลาก ตอนนี้ลูกบอลจะสั่นอย่างรุนแรง! อย่างไรก็ตาม เป้าหมายคือการทำให้การสั่นใกล้เคียงกับฮาร์โมนิกมากที่สุดเท่าที่จะเป็นไปได้ ไม่เติบโตหรือเสื่อมสลาย ให้ดีที่สุดเท่าที่จะทำได้ เมื่อเสร็จแล้ว คุณเปิดเทอมอนุพันธ์ และปรับจนกว่าจะกลับสู่สมดุลโดยเร็วที่สุด นี่คือเวลาที่บรรลุการทำให้หมาด ๆ ที่สำคัญ อย่างไรก็ตาม หากวิธีนี้ใช้ไม่ได้ผล มีแผนการปรับแต่งอื่นๆ ที่ได้รับการพิสูจน์แล้วสำหรับระบบควบคุม PID ฉันพบสิ่งนี้บนวิกิพีเดีย ภายใต้ตัวควบคุม PID ขอบคุณมากสำหรับการดูโครงการของฉัน และโปรดติดต่อเราหากมีคำถามใดๆ เรายินดีที่จะตอบคำถามของคุณ หมายเหตุพิเศษ: ฉันต้องการชี้ให้เห็นว่าโครงการนี้ตั้งแต่ต้นจนจบเสร็จสิ้นโดย Miracle Max Guerrro และตัวฉันในเวลาไม่ถึงสี่สัปดาห์รวมทั้งรอสองสัปดาห์สำหรับหน้าจอใหม่ที่ติดอยู่ในศุลกากรหลังจากครั้งแรกของเรา แตกหัก. ดังนั้นโปรดยกโทษให้มันยังห่างไกลจากประสิทธิภาพที่สมบูรณ์แบบ แฮ็คอย่างมีความสุข!

แนะนำ: