สารบัญ:

โครงการ BricKuber – หุ่นยนต์แก้ปัญหา Raspberry Pi Rubiks Cube: 5 ขั้นตอน (พร้อมรูปภาพ)
โครงการ BricKuber – หุ่นยนต์แก้ปัญหา Raspberry Pi Rubiks Cube: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: โครงการ BricKuber – หุ่นยนต์แก้ปัญหา Raspberry Pi Rubiks Cube: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: โครงการ BricKuber – หุ่นยนต์แก้ปัญหา Raspberry Pi Rubiks Cube: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: DEF CON 29- Dennis Giese - Robots with lasers and cameras but no security Liberating your vacuum 2024, มิถุนายน
Anonim
Image
Image

BricKuber สามารถแก้ลูกบาศก์ของ Rubik ได้ในเวลาไม่ถึง 2 นาที

BricKuber เป็นหุ่นยนต์แก้ลูกบาศก์ของ Rubik แบบโอเพ่นซอร์สที่คุณสามารถสร้างได้ด้วยตัวเอง

เราต้องการสร้างหุ่นยนต์แก้ลูกบาศก์รูบิกด้วย Raspberry Pi แทนที่จะเร่งความเร็ว เราใช้ความเรียบง่าย: หากคุณมี Raspberry Pi, ชุด BrickPi และ LEGO Mindstorms EV3 หรือ NXT Kit มาตรฐาน คุณควรเดินตามรอยเท้าของเราได้อย่างง่ายดาย ซอฟต์แวร์เขียนด้วยภาษาโปรแกรม Python คุณสามารถดูซอร์สโค้ดทั้งหมดบน Github ได้ที่นี่

ความเป็นมา ลูกบาศก์ของ Rubik เพิ่งเริ่มกลับมา ประดิษฐ์ขึ้นในปี 1974 เป็นของเล่นที่ขายดีที่สุดในโลก แต่การแก้ปัญหาต้องใช้ความคิด ความพยายาม และทักษะ.. แล้วทำไมไม่ปล่อยให้หุ่นยนต์ทำล่ะ? ในโครงการนี้ เรานำ Raspberry Pi, BrickPi และชุด LEGO Mindstorms มาสร้างหุ่นยนต์ไขลูกบาศก์ของ Rubik เพียงวางลูกบาศก์ของ Rubik ที่ยังไม่ได้แก้ในโปรแกรมแก้ปัญหา รันโปรแกรม python และลูกบาศก์ของ Rubik ของคุณก็จะได้รับการแก้ไข! โปรเจ็กต์นี้ใช้ Pi เพื่อแก้ลูกบาศก์ของรูบิกโดยตรง BrickPi3 ใช้ลูกบาศก์ของรูบิคที่ยังไม่ได้แก้ และ Raspberry Pi ถ่ายภาพลูกบาศก์ของรูบิกแต่ละด้านด้วยกล้อง Raspberry Pi Pi จะสร้างแผนผังข้อความของสี่เหลี่ยมสีที่แสดงตำแหน่งที่อยู่ของลูกบาศก์ เมื่อทำการแมปลูกบาศก์อย่างสมบูรณ์แล้ว Pi จะใช้ไลบรารีหลาม “kociemba” เพื่อทำแผนที่การเคลื่อนไหวที่จำเป็นในการแก้ปัญหาลูกบาศก์ของรูบิก ข้อมูลนี้ใช้โดย Pi และ BrickPi3 เพื่อแก้ลูกบาศก์ของ Rubik โดยใช้มอเตอร์ของ LEGO ผลลัพธ์: ลูกบาศก์ของรูบิคที่แก้ได้

ขั้นตอนที่ 1: เครื่องมือและวัสดุ

สร้างมัน
สร้างมัน
  • BrickPi3 – เราจะใช้ BrickPi เพื่อควบคุมมอเตอร์ของ LEGO ที่ไขตัวแก้ลูกบาศก์ของ Rubik
  • Raspberry Pi – Pi จะทำการประมวลผล ถ่ายภาพ และสั่งการ BrickPi
  • กล้อง Raspberry Pi – กล้อง Pi จะถ่ายภาพลูกบาศก์รูบิกที่ยังไม่ได้แก้
  • สายเคเบิลอีเทอร์เน็ต – คุณจะต้องเชื่อมต่อเครื่องกับอินเทอร์เน็ต หากคุณต้องการทำสิ่งนี้ผ่าน wifi ก็ไม่เป็นไร!
  • Raspbian สำหรับ Robots SD Card – ซอฟต์แวร์ที่รัน Raspberry Pi สิ่งนี้มาพร้อมกับซอฟต์แวร์ส่วนใหญ่ที่จำเป็นสำหรับบทช่วยสอนนี้ คุณยังสามารถดาวน์โหลดซอฟต์แวร์ได้ฟรี
  • LEGO Mindstorms EV3 Kit (31313) – คุณจะต้องมี LEGO และมอเตอร์ขนาดใหญ่ 2 ตัว และเซอร์โวมอเตอร์ 1 ตัว และ Ultrasonic Sensor
  • A Rubik's Cube – เราพบอันที่หมุนได้อย่างอิสระที่นี่ คุณสามารถใช้ลูกบาศก์ของรูบิคขนาด 9x9x9 อะไรก็ได้

ขั้นตอนที่ 2: สร้างมัน

สร้างมัน
สร้างมัน
สร้างมัน
สร้างมัน

การสร้างตัวแก้ปัญหา

การออกแบบนี้ได้รับแรงบันดาลใจจากการออกแบบ MindCub3r สำหรับ LEGO EV3 ในการสร้าง BricKuber ให้เริ่มต้นด้วยการสร้าง MindCub3r สามารถดูคำแนะนำการสร้าง LEGO ฉบับเต็มได้ที่นี่

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

สุดท้าย เราเพิ่มแขนกล้อง ในการออกแบบดั้งเดิมโดย MindCubr สิ่งนี้ถือเซ็นเซอร์สี EV3 ไว้เหนือลูกบาศก์ของ Rubik ในการออกแบบที่ได้รับการดัดแปลงของเรา กล้องรุ่นนี้ถือกล้อง Raspberry Pi ไว้เหนือลูกบาศก์ของรูบิก เราใช้มอเตอร์ LEGO Mindstorms สองตัวเพื่อจัดการกับลูกบาศก์: อันแรกอยู่ใต้แท่นเพื่อหมุนลูกบาศก์ และอันที่สองเคลื่อนแขนสับเปลี่ยนเพื่อหมุนลูกบาศก์บนแกนตรงข้าม

ประกอบ BrickPi3

คุณสามารถดูคำแนะนำในการประกอบ BrickPi3 ได้ที่นี่ เราจะต้องประกอบเคส ติด BrickPi3, Raspberry Pi, กล้อง Raspberry Pi, เพิ่มการ์ด SD และเพิ่มแบตเตอรี่ เพื่อให้ซอฟต์แวร์ติดตั้งได้ง่ายขึ้น Raspbian for Robots มาพร้อมกับซอฟต์แวร์ส่วนใหญ่ที่คุณต้องมีการติดตั้งไว้แล้ว คุณจะต้องมีการ์ด SD อย่างน้อย 8 GB และคุณจะต้องการขยายดิสก์เพื่อให้พอดีกับขนาดเต็มของการ์ด SD

แนบ BrickPi3

เราเพิ่ม BrickPi3 ลงในชุดประกอบเลโก้ เราใช้ "ปีก" ของ LEGO EV3 เพื่อรองรับ BrickPi3 และทำให้ระดับเดียวกับตัว BricKuber นี่เป็นขั้นตอนที่ดีในการเพิ่มแบตเตอรี่ 8XAA ลงในชุดจ่ายไฟและต่อชุดไฟ BrickPi3 เข้ากับชุดประกอบ LEGO สำหรับการตั้งโปรแกรม คุณสามารถจ่ายไฟให้กับ BrickPi3 ผ่านไฟ USB ไปยัง Raspberry Pi ได้ อย่างไรก็ตาม ในการเคลื่อนย้ายมอเตอร์ คุณจะต้องจ่ายไฟให้กับ Power Pack

เชื่อมต่อมอเตอร์กับ BrickPi3

ติด Shuffler Motor เข้ากับพอร์ตมอเตอร์ “MD” ติดแครดเดิลมอเตอร์เข้ากับพอร์ต “MA” บน BrickPi3 ติดมอเตอร์เซ็นเซอร์กล้องเข้ากับพอร์ต “MC” (ซึ่งเป็นมอเตอร์ขนาดเล็กคล้ายเซอร์โว) แม้ว่าเราจะไม่ขยับกล้อง แต่คุณอาจต้องการปรับตำแหน่งของกล้องโดยใช้มอเตอร์

ติดกล้อง Raspberry Pi

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

raspistill -o cam.jpg

ตรวจสอบว่าลูกบาศก์อยู่ตรงกลางภาพพอดี

ขั้นตอนที่ 3: เตรียมซอฟต์แวร์

คุณสามารถใช้ Raspbian หรือ Raspbian สำหรับ Robots เวอร์ชันใดก็ได้ ซึ่งเป็นอิมเมจที่เรากำหนดเองซึ่งมาพร้อมกับ BrickPi3 ที่ติดตั้งไว้แล้ว หากคุณใช้ Raspbian เวอร์ชันมาตรฐาน คุณสามารถติดตั้งไลบรารี BrickPi3 ได้โดยใช้คำสั่ง

sudo curl -kL dexterindustries.com/update_brickpi3 | ทุบตี

ขั้นตอนนี้จะติดตั้งไลบรารีทั้งหมดที่จำเป็นในการรัน BrickPi3 บน Raspbian Image ของคุณ ข้ามขั้นตอนนี้หากคุณใช้ Raspbian สำหรับ Robots: BrickPi3 ได้รับการติดตั้งแล้ว

สุดท้าย ติดตั้งการพึ่งพาโครงการทั้งหมดโดยใช้คำสั่ง:

sudo curl https://raw.githubusercontent.com/DexterInd/Brick… | ทุบตี

สำหรับขั้นตอนนี้ BrickPi3 ของคุณจะต้องเชื่อมต่อกับอินเทอร์เน็ต มีห้องสมุดจำนวนหนึ่งที่โปรเจ็กต์ต้องพึ่งพา ซึ่งรวมถึงห้องสมุดที่สำคัญโดย Daniel Walton (@dwalton76) บน Github ที่ใช้ในการแก้ลูกบาศก์ของรูบิก

ขั้นตอนที่ 4: แก้ลูกบาศก์รูบิค

ไขลูกบาศก์รูบิค
ไขลูกบาศก์รูบิค
ไขลูกบาศก์รูบิค
ไขลูกบาศก์รูบิค
ไขลูกบาศก์รูบิค
ไขลูกบาศก์รูบิค

วางลูกบาศก์รูบิคที่ยังไม่ได้แก้ลงในเปล เรียกใช้คำสั่ง

sudo python ~/Dexter/BrickPi3/Projects/BricKuber/BricKuber.py

หุ่นยนต์จะหมุนลูกบาศก์ให้แต่ละหน้า และกล้องจะถ่ายภาพ 6 ภาพ โดยแต่ละด้านของลูกบาศก์ Raspberry Pi จะกำหนดการกำหนดค่าคิวบ์จากหกภาพ การกำหนดค่า Cube จะถูกส่งไปยังไลบรารี kociemba Python เพื่อค้นหาโซลูชันที่มีประสิทธิภาพ ในที่สุด หุ่นยนต์ก็จะทำการเคลื่อนไหวเพื่อไขลูกบาศก์รูบิค!

ขั้นตอนที่ 5: ซอร์สโค้ด

ซอร์สโค้ดทั้งหมดสำหรับ BricKuber สามารถพบได้ใน repo github โอเพ่นซอร์สของเราที่นี่

โปรเจ็กต์นี้ใช้แพ็คเกจซอฟต์แวร์ต่อไปนี้ที่ติดตั้งโดยคำสั่ง

แนะนำ: