สารบัญ:

Q-Bot - Open Source Rubik's Cube Solver: 7 ขั้นตอน (พร้อมรูปภาพ)
Q-Bot - Open Source Rubik's Cube Solver: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Q-Bot - Open Source Rubik's Cube Solver: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Q-Bot - Open Source Rubik's Cube Solver: 7 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: solve rubik 3x3 fast - Solve floor 3 cube rubik 2024, กรกฎาคม
Anonim
Image
Image
ภาพ
ภาพ

ลองนึกภาพว่าคุณมีลูกบาศก์รูบิคที่มีสัญญาณรบกวน คุณรู้หรือไม่ว่าปริศนาดังกล่าวสร้างจากยุค 80 ที่ทุกคนมี แต่ไม่มีใครรู้วิธีแก้ปัญหาจริงๆ และคุณต้องการนำมันกลับคืนสู่รูปแบบเดิม โชคดีที่ทุกวันนี้หาคำแนะนำในการแก้ปัญหาได้ง่ายมาก ดังนั้น ดูวิดีโอออนไลน์เพื่อเรียนรู้วิธีพลิกด้านเพื่อให้คุณมีความสุข หลังจากทำไปสองสามครั้ง คุณจะรู้ว่ามีบางอย่างที่ขาดหายไป รูภายในที่ไม่สามารถเติมได้ วิศวกร/ผู้ผลิต/แฮ็กเกอร์ในตัวคุณไม่สามารถพอใจกับการแก้ปัญหาที่น่าทึ่งด้วยวิธีง่ายๆ เช่นนี้ จะดีกว่าไหมถ้าคุณมีเครื่องจักรที่แก้ปัญหาให้คุณ หากคุณสร้างบางสิ่งที่เพื่อนของคุณทุกคนจะต้องทึ่ง? ฉันสามารถรับประกันได้ว่ามันไม่ได้ดีไปกว่าการดูสิ่งที่คุณสร้างทำสิ่งมหัศจรรย์และไขลูกบาศก์รูบิค มาร่วมผจญภัยไปกับผมบนเส้นทางสุดอัศจรรย์ของการสร้าง Q-Bot ซึ่งเป็น Cube Solver ของ Rubik แบบโอเพ่นซอร์สที่ไม่มีวันทำลายสถิติโลกได้อย่างแน่นอน แต่จะทำให้คุณมีความสุขได้เป็นชั่วโมงๆ (แน่นอนว่าหลังจากผ่านความผิดหวังมาหมดแล้ว ระหว่างการก่อสร้าง)

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

ตัวแก้ไขที่สมบูรณ์ได้รับการออกแบบด้วย CAD ใน Catia วิธีนี้จะพบข้อผิดพลาดในการออกแบบส่วนใหญ่และแก้ไขก่อนการผลิตส่วนประกอบทางกายภาพใดๆ ตัวแก้ปัญหาส่วนใหญ่พิมพ์ 3 มิติใน PLA โดยใช้เครื่องพิมพ์ prusa MK3 นอกจากนี้ มีการใช้ฮาร์ดแวร์ต่อไปนี้:

  • แท่งอลูมิเนียม 8 มม. 8 ชิ้น (ความยาว 10 ซม.)
  • ตลับลูกปืนเชิงเส้น 8 ตัว (LM8UU)
  • เข็มขัดเวลา GT2 6 มม. น้อยกว่า 2 ม. + รอกบางส่วน
  • 6 NEMA 17 สเต็ปปิ้งมอเตอร์แบบไบโพลาร์
  • 6 ตัวขับสเต็ปของ Polulu 4988
  • Arudino Mega เป็นผู้ควบคุมโครงการ
  • แหล่งจ่ายไฟ 12 V 3A
  • ตัวแปลง step down เพื่อจ่ายไฟให้กับ arduino. อย่างปลอดภัย
  • สกรูและขั้วต่อบางตัว
  • ไม้อัดสำหรับฐาน

คำอธิบายฮาร์ดแวร์

ส่วนนี้อธิบายสั้น ๆ ว่า Q-Bot ทำงานอย่างไรและมีการใช้ส่วนประกอบที่กล่าวถึงข้างต้นอย่างไร ด้านล่างนี้ คุณสามารถดูการเรนเดอร์โมเดล CAD ที่ประกอบอย่างสมบูรณ์ได้

Q-bot ทำงานโดยติดมอเตอร์สี่ตัวเข้ากับ Rubik's Cube โดยตรงด้วยกริปเปอร์แบบพิมพ์ 3 มิติ ซึ่งหมายความว่าสามารถหมุนซ้าย ขวา ด้านหน้าและด้านหลังได้โดยตรง หากจำเป็นต้องหมุนด้านบนหรือด้านล่าง จะต้องหมุนลูกบาศก์ทั้งหมดและต้องย้ายมอเตอร์สองตัวออกไป ซึ่งทำได้โดยติดมอเตอร์จับยึดแต่ละตัวเข้ากับแคร่เลื่อนที่ขับเคลื่อนด้วยสเต็ปเปอร์มอเตอร์อีกตัวและสายพานราวลิ้นพร้อมระบบรางเชิงเส้น ระบบรางประกอบด้วยลูกปืน 8 ลูกสองตัวที่ติดตั้งอยู่ในโพรงในรางเลื่อน และรางเลื่อนทั้งหมดบนเพลาอะลูมิเนียม 8 มม. 2 ตัว ด้านล่าง คุณจะเห็นส่วนประกอบย่อยของแกนตัวแก้หนึ่งแกน

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

ภาพ
ภาพ

ขั้นตอนที่ 2: การเลือกมอเตอร์ที่เหมาะสม

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

โดยทั่วไปแล้ว แรงบิดถูกกำหนดโดยแรงที่ตั้งฉากกับตำแหน่งของจุดหมุนที่ระยะทาง r:

ภาพ
ภาพ
ภาพ
ภาพ

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

ภาพ
ภาพ

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

ภาพ
ภาพ

ความเร่งในกรณีนี้คือความเร่งโน้มถ่วง ดังนั้นแรงบิดที่ต้องการจึงถูกกำหนดโดย

ภาพ
ภาพ

การเสียบค่าทั้งหมดเข้าไป รวมถึงครึ่งหนึ่งของเส้นทแยงมุมของลูกบาศก์ของรูบิก ในที่สุดก็เผยให้เห็นแรงบิดที่ต้องการ

ภาพ
ภาพ

ฉันใช้สเต็ปเปอร์มอเตอร์ที่สามารถใช้ได้ถึง 0.4Nm ซึ่งอาจจะเกินความสามารถ แต่ฉันต้องการความปลอดภัย

ขั้นตอนที่ 3: การสร้างฐาน

ฐานประกอบด้วยกล่องไม้ที่เรียบง่ายและมีอุปกรณ์อิเล็กทรอนิกส์ที่จำเป็นทั้งหมด มีปลั๊กสำหรับเปิดและปิดเครื่อง ไฟ LED เพื่อระบุว่าเปิดอยู่หรือไม่ พอร์ต USB B และเต้ารับสำหรับเสียบแหล่งจ่ายไฟ สร้างโดยใช้ไม้อัดขนาด 15 มม. สกรูบางตัวและกาวเล็กน้อย

ภาพ
ภาพ
ภาพ
ภาพ
ภาพ
ภาพ
ภาพ
ภาพ

ขั้นตอนที่ 4: การประกอบฮาร์ดแวร์

ด้วยชิ้นส่วนที่จำเป็นทั้งหมด รวมถึงฐาน Q-bot ก็พร้อมที่จะประกอบ ชิ้นส่วนที่กำหนดเองได้รับการพิมพ์ 3 มิติและปรับแต่งตามความจำเป็น คุณสามารถดาวน์โหลดไฟล์ CAD ทั้งหมดได้ที่ส่วนท้ายของ ible นี้ การประกอบรวมถึงการติดตั้งชิ้นส่วนที่พิมพ์ 3 มิติทั้งหมดเข้ากับชิ้นส่วนที่ซื้อมา การต่อสายเคเบิลของมอเตอร์ และการขันชิ้นส่วนทั้งหมดเข้ากับฐาน นอกจากนี้ ฉันสวมปลอกหุ้มสายมอเตอร์เพื่อให้ดูเรียบร้อยขึ้นเล็กน้อย และเพิ่มตัวเชื่อมต่อ JST ที่ปลายสาย

เพื่อเน้นย้ำถึงความสำคัญของฐานที่ฉันสร้าง นี่คือภาพก่อนและหลังของลักษณะการประกอบ การจัดเตรียมทุกอย่างให้เรียบร้อยอาจสร้างความแตกต่างอย่างมาก

ภาพ
ภาพ
ภาพ
ภาพ

ขั้นตอนที่ 5: อุปกรณ์อิเล็กทรอนิกส์

สำหรับอุปกรณ์อิเล็กทรอนิกส์ โครงการนี้ค่อนข้างง่าย มีแหล่งจ่ายไฟหลัก 12V ที่สามารถจ่ายกระแสไฟได้ถึง 3A ซึ่งให้กำลังแก่มอเตอร์ โมดูลแบบสเต็ปดาวน์ใช้เพื่อจ่ายไฟให้กับ Arduino อย่างปลอดภัย และชิลด์แบบกำหนดเองสำหรับ Arduino ได้รับการออกแบบให้มีไดรเวอร์สเต็ปเปอร์มอเตอร์ทั้งหมด ไดรเวอร์ทำให้การควบคุมมอเตอร์ง่ายขึ้นมาก การขับสเต็ปเปอร์มอเตอร์จำเป็นต้องมีลำดับการควบคุมเฉพาะ แต่ด้วยการใช้ตัวขับมอเตอร์ เราเพียงแค่ต้องสร้างพัลส์สูงสำหรับแต่ละขั้นตอนที่มอเตอร์จะหมุน นอกจากนี้ ตัวเชื่อมต่อ jst บางตัวยังถูกเพิ่มเข้ากับชิลด์เพื่อให้การเชื่อมต่อมอเตอร์ทำได้ง่ายขึ้น ชิลด์สำหรับ Arduino ถูกสร้างขึ้นอย่างแน่นหนาบนชิ้นส่วนของ perfboard และหลังจากตรวจสอบให้แน่ใจว่าทุกอย่างทำงานได้ตามที่ควรจะเป็นซึ่งผลิตโดย jlc pcb

นี่คือก่อนและหลังของต้นแบบและ pcb ที่ผลิตขึ้น

ภาพ
ภาพ
ภาพ
ภาพ

ขั้นตอนที่ 6: ซอฟต์แวร์และอินเทอร์เฟซแบบอนุกรม

Q-Bot แบ่งออกเป็นสองส่วน ในอีกด้านหนึ่งมีฮาร์ดแวร์ที่ควบคุมโดย Arduino ในทางกลับกันมีซอฟต์แวร์ที่คำนวณเส้นทางการแก้สำหรับคิวบ์ตามช่วงชิงปัจจุบัน เฟิร์มแวร์ที่ทำงานบน Arduino นั้นเขียนขึ้นเอง แต่เพื่อให้คำแนะนำนี้สั้น ฉันจะไม่ลงรายละเอียดใด ๆ เกี่ยวกับมันที่นี่ หากคุณต้องการดูและลองเล่นดู ลิงก์ไปยังที่เก็บ git ของฉันจะมีให้ที่ส่วนท้ายของเอกสารนี้ ซอฟต์แวร์ที่คำนวณโซลูชันทำงานบนเครื่อง windows และเขียนโดยเพื่อนร่วมงานของฉัน ลิงก์ไปยังซอร์สโค้ดของเขาอีกครั้งสามารถพบได้ที่ส่วนท้ายของ ible นี้ ทั้งสองส่วนสื่อสารกันโดยใช้อินเทอร์เฟซแบบอนุกรมอย่างง่าย จะคำนวณโซลูชันตามอัลกอริทึมแบบสองเฟสของ Kociemba ซอฟต์แวร์แก้ไขจะส่งคำสั่งที่ประกอบด้วยสองไบต์ไปยังตัวแก้ปัญหาและรอให้คำสั่งส่งคืน 'ACK' วิธีนี้จะสามารถทดสอบและแก้จุดบกพร่องของโปรแกรมแก้ปัญหาได้โดยใช้จอภาพแบบอนุกรมอย่างง่าย ชุดคำสั่งที่สมบูรณ์สามารถพบได้ด้านล่าง

ภาพ
ภาพ

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

ขั้นตอนที่ 7: บทสรุป

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

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

ภาพ
ภาพ

หากคำแนะนำนี้จุดประกายความสนใจของคุณ อย่าลังเลและเริ่มสร้าง Q-bot เวอร์ชันของคุณเอง มันอาจจะดูน่ากลัวในตอนแรก แต่มันคุ้มค่ามากสำหรับความพยายาม และถ้าฉันทำได้ คุณก็ทำได้

ทรัพยากร:

รหัสที่มาของเฟิร์มแวร์:

github.com/Axodarap/QBot_firmware

รหัสที่มาของซอฟต์แวร์ควบคุม

github.com/waldhube16/Qbot_SW

แนะนำ: