สารบัญ:
วีดีโอ: Rubics Cube Solver Bot: 5 ขั้นตอน (พร้อมรูปภาพ)
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
สร้างหุ่นยนต์อัตโนมัติเพื่อแก้ลูกบาศก์ของรูบิค นี่เป็นโครงการภายใต้ Robotics Club, IIT Guwahati
ทำด้วยวัสดุธรรมดาที่หาได้ง่าย ส่วนใหญ่เราใช้เซอร์โวมอเตอร์และ Arduino เพื่อควบคุม, แผ่นอะคริลิก, Mini Drafter ที่ชำรุด, L-clamps และเทปคู่!
เพื่อให้ได้อัลกอริธึมในการแก้คิวบ์เราใช้ไลบรารี่คิวบ์จาก GitHub
ขั้นตอนที่ 1: วัสดุที่ใช้
- 6 เซอร์โวมอเตอร์
- Arduino Uno
- แบตเตอรี่ LiPo 3 เซลล์
- แผ่นอะครีลิค (ความหนา 8 มม. และ 5 มม.)
- ปืนความร้อน(
- เครื่องเจาะ
- เลื่อยวงเดือน
- L แคลมป์
- แถบอลูมิเนียม
- ช่างเขียนแบบมินิ/ แท่งโลหะ
- เทปคู่
- เฟวี่ ควิก
- น็อตน็อต
- สายจัมเปอร์
ขั้นตอนที่ 2: เตรียมโครงสร้างทางกลให้พร้อม
เฟรมพื้นฐาน
- ใช้แผ่นอะคริลิกหนา 8 มม. ประมาณ 50 ซม. * 50 ซม. แล้วทำเครื่องหมายที่กึ่งกลางของทุกด้าน (นี่จะเป็นฐานของหุ่นยนต์ของคุณ)
- หยิบไม้ขีดที่หักแล้วถอดเหล็กเส้น 4 อันออก.. (แท่งเหล่านี้จะใช้เป็นทางสำหรับตัวเลื่อนของคุณ).
- บนอะคริลิกสี่เหลี่ยมสองชิ้น (ขนาดใดก็ได้) ให้ยึดแท่งสองอันขนานกันและทำการประกอบสองคู่นี้
- ถัดไป ในการทำตัวเลื่อน ให้วางอะครีลิคชิ้นเล็กๆ สองชิ้นทับกันโดยใช้ตัวเว้นวรรคที่มุมทั้งสี่ แล้วขันให้แน่นด้วยสลักเกลียวในสเปเซอร์ คุณจะต้องมี 4 ตัวเลื่อนดังกล่าว
- ก่อนยึดตัวเลื่อนทั้งสองชิ้น ให้สอดแท่งคู่ขนานที่ตรึงไว้ก่อนหน้านี้ระหว่างแท่งทั้งสองเพื่อให้ตัวเว้นระยะสัมผัสกับพื้นผิวด้านนอกของแท่ง
- สำหรับแท่งคู่ขนานแต่ละคู่จะมีแถบเลื่อนสองตัว
- เมื่อพร้อมแล้ว ให้จัดคู่แท่งในรูปกากบาท 90 องศา ตรวจสอบให้แน่ใจว่ามีตัวเลื่อนหนึ่งตัวที่ปลายแต่ละด้านของไม้กางเขน
-
ตอนนี้ สิ่งที่คุณต้องทำคือแนบทางตัดนี้เข้ากับฐานของหุ่นยนต์ของคุณ ที่ระดับความสูงจากฐาน (ตรวจสอบให้แน่ใจว่าระดับความสูงนั้นมากกว่าความสูงของเซอร์โวมอเตอร์)
สำหรับสิ่งนี้ คุณสามารถใช้ตัวยึดอะคริลิกกับแคลมป์ L เหมือนที่เราทำหรือวิธีอื่นก็เพียงพอแล้ว
หลังจากนี้โครงสร้างของคุณควรมีลักษณะเหมือนรูปภาพ
การติดเซอร์โวฐาน
- ควรติดเซอร์โวฐานสองอันโดยให้เซอร์โวอยู่ใต้แขนของกากบาทและออฟเซ็ตจากศูนย์กลาง
- เซอร์โวติดอยู่ในตำแหน่งแนวนอนกับแผ่นเวเฟอร์ซิลิกอนที่มีรูพรุนโดยใช้สลักเกลียวยาว ซึ่งจะติดเข้ากับฐานด้วย L-clamp และเทปสองทาง
การทำคันดัน-ดึง
- ตั้งค่ามุมเซอร์โวเป็นศูนย์และติดแขนโยกของเซอร์โวในตำแหน่งที่เหมาะสม
- วางลูกบาศก์ที่กึ่งกลางของกากบาทเพื่อประเมินระยะห่างของตัวเลื่อนในตำแหน่งที่ใกล้ที่สุด และวางตัวเลื่อนในตำแหน่งนั้น
- ติดแถบอะลูมิเนียมรูปตัว L ที่ด้านล่างของตัวเลื่อนแต่ละตัวโดยใช้เทปคู่
- ตอนนี้เพื่อวัดระยะห่างของแถบอลูมิเนียมแต่ละอันจากด้านบนหรือด้านล่างของตัวโยกเซอร์โวซึ่งอยู่ในระนาบ นี่จะเป็นความยาวของแท่งกดดึงของคุณ
- เมื่อกำหนดความยาวแล้ว ก้านดันสามารถแก้ไขได้โดยการเจาะแถบอลูมิเนียมหรืออย่างอื่น
การติดตั้งเซอร์โวด้านบน
- ตัดสินใจเลือกความสูงที่จะแก้ลูกบาศก์ของคุณ แกนของเซอร์โวมอเตอร์ควรอยู่ที่ความสูงนี้
- ติดเซอร์โวมอเตอร์สี่ตัว โดยแต่ละตัวเข้ากับแผ่นเวเฟอร์ซิลิกอนที่มีรูพรุนโดยใช้สลักเกลียวในแนวตั้ง
- ตอนนี้แผ่นเวเฟอร์ถูกติดตั้งบนแถบอะลูมิเนียมรูปตัว L ซึ่งฐานยึดกับตัวเลื่อนที่ความสูงที่เหมาะสม เพื่อให้แกนเซอร์โวอยู่ตรงกลางลูกบาศก์
C-กรงเล็บ
- กรงเล็บควรเป็นแบบที่พอดีกับด้านข้างของลูกบาศก์พอดี และความยาวของส่วนบนและส่วนล่างต้องไม่เกินด้านหนึ่งของลูกบาศก์
- เมื่อต้องการทำเช่นนี้ให้ใช้แถบอะคริลิกที่มีความหนาเพียงพอและให้ความร้อน เมื่อมันละลายแล้ว จะก่อร่างใหม่ จะเป็นแคลมป์รูปตัว C เพื่อให้มันเข้าที่ด้านข้างของลูกบาศก์พอดี
- ทำเครื่องหมายที่กึ่งกลางของ C-claw และยึดที่หนีบนี้กับตัวโยกของเซอร์โวที่อยู่ตรงกลาง
ทำการปรับเปลี่ยนเล็กน้อยตามความจำเป็นเพื่อให้แคลมป์แต่ละตัวมีความสูงเท่ากัน
โครงสร้างทางกลของหุ่นยนต์ของคุณเสร็จสมบูรณ์ ให้ย้ายไปที่การเชื่อมต่อวงจร……..
ขั้นตอนที่ 3: การเชื่อมต่อวงจร
ในการควบคุมบอท เราใช้ Arduino ตัวควบคุมแรงดันไฟฟ้า และแบตเตอรี่ LiPo 3 เซลล์ (12v)
เนื่องจากเซอร์โวมอเตอร์ใช้พลังงานมาก เราใช้ตัวควบคุมแรงดันไฟฟ้า 6 ตัว หนึ่งตัวสำหรับมอเตอร์แต่ละตัว
อินพุตสัญญาณของมอเตอร์ (สายสีที่เบาที่สุดของทั้งสาม) เชื่อมต่อกับหมุด PWM ดิจิตอล 3, 5, 6, 9, 10, 11 ของ Arduino
ตัวควบคุมแรงดันไฟฟ้าเชื่อมต่อกับเขียงหั่นขนมและใช้พลังงานจากแบตเตอรี่ 12 โวลต์ การจ่ายไฟออก (5V) ถูกป้อนเข้าสู่มอเตอร์โดยตรง กราวด์ของมอเตอร์ยังเชื่อมต่อกับเขียงหั่นขนม พื้นดินทั่วไปติดอยู่กับ Arduino เช่นกัน
ขั้นตอนที่ 4:
ขั้นตอนที่ 5: รหัส:
ไฟล์สองไฟล์ที่ให้มาแสดงโค้ดที่เขียนขึ้นเพื่อให้คำสั่งกับมอเตอร์สำหรับขั้นตอนเฉพาะโดยใช้ Arduino
ไฟล์แรกมีฟังก์ชันหลักและการกำหนดตัวแปรอื่นๆ ไฟล์ที่สองมีฟังก์ชันสำหรับแต่ละการเคลื่อนไหวที่ใช้ในการแก้ลูกบาศก์ (เช่น U สำหรับ 'การหมุนตามเข็มนาฬิกาขึ้นหน้า'; R1 สำหรับ 'การหมุนทวนเข็มนาฬิกาด้านขวา' เป็นต้น)
เพื่อให้ได้อัลกอริธึมในการแก้คิวบ์เราใช้ไลบรารี่คิวบ์จาก GitHub
อัลกอริธึมให้ผลลัพธ์โดยตรงใน 'การเคลื่อนไหวใบหน้า' ซึ่งเสร็จสมบูรณ์โดยรหัส Arduino