สารบัญ:
- ขั้นตอนที่ 1: ส่วนประกอบที่จำเป็น
- ขั้นตอนที่ 2: การพึ่งพา
- ขั้นตอนที่ 3: การเตรียมการ
- ขั้นตอนที่ 4: การใช้งาน
วีดีโอ: Rubik's Cube Blindfolded Solver แบบเรียลไทม์โดยใช้ Raspberry Pi และ OpenCV: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:02
นี่เป็นเครื่องมือคิวบ์ของ Rubik รุ่นที่ 2 ที่สร้างขึ้นสำหรับการแก้ปริศนาโดยปิดตา รุ่นที่ 1 ถูกพัฒนาโดย javascript คุณสามารถเห็นโครงการ RubiksCubeBlindfolded1
เวอร์ชันนี้ใช้ไลบรารี OpenCV ต่างจากรุ่นก่อนเพื่อตรวจจับสีและป้อนอินพุต และให้เทคนิคการแสดงภาพที่ดีขึ้น
ปัญหาที่ใหญ่ที่สุดในเวอร์ชันใหม่ล่าสุดนี้คือการแสดงภาพเอาต์พุต รายการลำดับจะแสดงบนคิวบ์ที่ดึงออกมาทีละ 1 รายการ เนื่องจากลูกบาศก์เป็นรูปทรง 3 มิติ จึงยากที่จะแสดงทุกด้านพร้อมกัน ดูผลลัพธ์ในช่อง YouTube วิดีโอ YouTube ของฉัน
ฉันใช้คิวบ์แบบไม่มีสติกเกอร์ สิ่งนี้ต้องการการจดจำแบบกำหนดเองและไม่รองรับโอเพนซอร์สโค้ดส่วนใหญ่ ฉันใช้โอเพ่นซอร์สนี้ที่พัฒนาโดย Kim Koomen ซึ่งระบุพื้นที่คงที่บนเฟรมกล้องเพื่อตรวจจับสีที่ถูกต้องของคิวบ์ใบหน้าโปรเจ็กต์
ขั้นตอนที่ 1: ส่วนประกอบที่จำเป็น
- ราสเบอร์รี่ปี่
- เว็บแคม
หรือจะใช้โน้ตบุ๊กก็ได้
ขั้นตอนที่ 2: การพึ่งพา
- Python3
- ห้องสมุด numpy
- ห้องสมุด OpenCV
$ sudo apt-get ติดตั้ง python3-opencv
แพ็คเกจรูบิกปิดตา
$ pip3 ติดตั้ง RubiksBlindfolded
ขั้นตอนที่ 3: การเตรียมการ
คุณต้องปรับเทียบการตรวจจับสีเป็นขั้นตอนเบื้องต้น รหัสสี HSV นั้นแตกต่างกันไปตามแสง คุณภาพและความละเอียดของกล้อง และสีของลูกบาศก์เอง ในกรณีของฉัน ฉันรวมแสงสีขาวและสีเหลืองเข้าด้วยกันเพื่อให้ได้ผลลัพธ์ที่ถูกต้อง
อัปเดตฟังก์ชัน get_color_name(hsv) บน colordetection.py
ซอร์สโค้ดดั้งเดิมใช้แพ็คเกจ kociemba เพื่อแก้ปัญหาคิวบ์ โดยจะแก้ไขโดยค้นหาขั้นตอนย้อนกลับของการแย่งชิงใดๆ ในเวอร์ชันนี้ ฉันใช้แพ็คเกจการแก้ปัญหาของตัวเองที่ชื่อ RubiksBlindfolded ซึ่งเผยแพร่บน PyPI ดูคำอธิบายเพื่อทราบวิธีใช้งาน RubiksBlindfolded
ขั้นตอนที่ 4: การใช้งาน
หลังจากติดตั้งการพึ่งพาทั้งหมดและตั้งค่ากล้องของคุณแล้ว ถึงเวลาเรียกใช้สคริปต์ blindfolded.py
ขั้นแรก คุณต้องสแกนลูกบาศก์ของคุณในทิศทางที่ถูกต้อง นี่คือโครงสร้างลูกบาศก์ ลำดับการสแกนใบหน้าไม่สำคัญ โปรดสังเกตว่าสีเหล่านี้เป็นสีเริ่มต้นของใบหน้าลูกบาศก์ คุณสามารถเปลี่ยนได้โดยอัปเดตพจนานุกรมสัญลักษณ์บนสคริปต์ blindfolded.py
หากต้องการทำการสแกนให้กดแป้นเว้นวรรคเพื่อบันทึกมุมมองและแป้น ESC หลังจากเสร็จสิ้น
ประการที่สอง คุณสามารถดูลำดับของโซลูชันบนคอนโซล และการตรวจสอบพาริตีเพื่อบอกคุณว่าคุณต้องการใช้อัลกอริธึมพาริตีหรือไม่
ประการที่สาม เฟรมใหม่จะถูกสร้างขึ้นซึ่งแสดงลูกบาศก์ที่วาดออกมา 2 ลูกบาศก์สำหรับลำดับขอบและลำดับมุม คุณสามารถใช้ปุ่มลูกศรซ้ายและขวาเพื่อสลับระหว่างรายการลำดับ และปุ่มลูกศรขึ้นและลงเพื่อสลับระหว่างขอบและมุม สีเทาอ่อนแสดงถึงลำดับปัจจุบัน
คุณสามารถดูสีของบัฟเฟอร์ปัจจุบันที่มีการเปลี่ยนแปลงแบบไดนามิกด้วยปุ่มลูกศร สีเทาเป็นตัวแทนของคิวบีเป้าหมาย และสีชมพูแสดงถึงใบหน้าที่สลับกัน
รหัสแหล่งที่มา
github.com/mn-banjar/blindfolded2
แนะนำ:
Q-Bot - Open Source Rubik's Cube Solver: 7 ขั้นตอน (พร้อมรูปภาพ)
Q-Bot - Cube Solver ของ Open Source Rubik: ลองนึกภาพว่าคุณมี Rubik's Cube ที่มีสัญญาณรบกวน คุณทราบดีว่าปริศนาดังกล่าวสร้างจากยุค 80 ที่ทุกคนมี แต่ไม่มีใครรู้วิธีแก้ปัญหาจริงๆ และคุณต้องการนำมันกลับคืนสู่รูปแบบเดิม โชคดีที่ทุกวันนี้มันง่ายมากที่จะหาคำสั่งแก้
Arduino Mega Stepper Shield สำหรับ Rubiks Cube Solver: 4 ขั้นตอน
Arduino Mega Stepper Shield สำหรับ Rubiks Cube Solver: เมื่อไม่นานมานี้ ฉันกำลังทำงานกับเครื่องที่จะแก้ปัญหา Rubiks Cube 3x3 ที่มีสัญญาณรบกวนโดยอัตโนมัติ คุณสามารถดูคำแนะนำของฉันได้ที่นี่ ในโครงการใช้ไดรเวอร์ stepper จาก polulu เพื่อขับเคลื่อนมอเตอร์หกตัว เพื่อสองให้เชื่อมต่อ d เหล่านี้
DIY IBeacon และ Beacon Scanner ด้วย Raspberry Pi และ HM13: 3 ขั้นตอน
DIY IBeacon และ Beacon Scanner ด้วย Raspberry Pi และ HM13: Story A beacon จะส่งสัญญาณอย่างต่อเนื่องเพื่อให้อุปกรณ์บลูทู ธ อื่น ๆ รู้ว่ามีอยู่ และฉันอยากได้บีคอนบลูทูธเพื่อติดตามกุญแจมาตลอด เพราะฉันลืมเอามันมาเหมือน 10 ครั้งในปีที่แล้ว และฉันก็เกิดขึ้น
ARS - Arduino Rubik Solver: 13 ขั้นตอน (พร้อมรูปภาพ)
ARS - Arduino Rubik Solver: ARS เป็นระบบที่สมบูรณ์ในการแก้ลูกบาศก์ของ Rubik: ใช่ หุ่นยนต์อีกตัวหนึ่งที่ใช้แก้ลูกบาศก์!ARS เป็นโครงการโรงเรียนระยะเวลาสามปีที่สร้างด้วยชิ้นส่วนที่พิมพ์ 3 มิติและโครงสร้างการตัดด้วยเลเซอร์: Arduino ได้รับลำดับที่ถูกต้องที่สร้างขึ้น โดยโซฟาทำที่บ้าน
Rubics Cube Solver Bot: 5 ขั้นตอน (พร้อมรูปภาพ)
Rubics Cube Solver Bot: การสร้างหุ่นยนต์อิสระที่แก้ลูกบาศก์ของ Rubik ที่มีอยู่จริง นี่เป็นโครงการภายใต้ Robotics Club, IIT Guwahati ทำด้วยวัสดุธรรมดาที่หาได้ง่าย ส่วนใหญ่เราใช้เซอร์โวมอเตอร์ & Arduino เพื่อควบคุมพวกมัน อะครีลิค