สารบัญ:
- ขั้นตอนที่ 1: ข้อกำหนด
- ขั้นตอนที่ 2: การสร้างฮาร์ดแวร์
- ขั้นตอนที่ 3: ซอฟต์แวร์ที่เคลื่อนย้ายหุ่นยนต์
- ขั้นตอนที่ 4: ซอฟต์แวร์ที่รับรู้การเคลื่อนไหวของมนุษย์
- ขั้นตอนที่ 5: กล้อง, ไฟ, คีย์บอร์ด, ตาราง, จอแสดงผล
- ขั้นตอนที่ 6: การรับซอฟต์แวร์
วีดีโอ: หุ่นยนต์หมากรุก Raspberry Pi Lynxmotion AL5D แขน: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
สร้างหุ่นยนต์หมากรุกตัวนี้และเห็นว่ามันเอาชนะทุกคน!
มันค่อนข้างง่ายที่จะสร้างหากคุณสามารถทำตามคำแนะนำในการสร้างแขน และถ้าคุณมีความรู้เบื้องต้นเกี่ยวกับการเขียนโปรแกรมคอมพิวเตอร์และลินุกซ์
มนุษย์ที่เล่นเป็นสีขาวเคลื่อนไหว สิ่งนี้ถูกตรวจพบโดยระบบจดจำภาพ จากนั้นหุ่นยนต์จะไตร่ตรองแล้วเคลื่อนไหว และอื่นๆ…
บางทีสิ่งที่แปลกใหม่ที่สุดในหุ่นยนต์ตัวนี้อาจเป็นรหัสสำหรับการจดจำการเคลื่อนไหว โค้ดวิชันซิสเต็มนี้ยังใช้ได้กับหุ่นยนต์หมากรุกที่สร้างขึ้นด้วยวิธีอื่นๆ อีกมาก (เช่น หุ่นยนต์หมากรุกของฉันที่มี LEGO build)
เนื่องจากการเคลื่อนไหวของมนุษย์ได้รับการยอมรับจากระบบการมองเห็น จึงไม่จำเป็นต้องใช้ฮาร์ดแวร์กระดานหมากรุกพิเศษ (เช่น สวิตช์กก หรืออะไรก็ตาม)
รหัสของฉันสามารถใช้ได้สำหรับการใช้งานส่วนตัว
ขั้นตอนที่ 1: ข้อกำหนด
รหัสทั้งหมดเขียนด้วย Python ซึ่งจะทำงานบน Raspberry Pi เหนือสิ่งอื่นใด
Raspberry Pi เป็นคอมพิวเตอร์บอร์ดเดี่ยวขนาดเล็กราคาไม่แพง (ประมาณ 40 ดอลลาร์) ที่พัฒนาโดยมูลนิธิ Raspberry Pi โมเดลดั้งเดิมได้รับความนิยมมากกว่าที่คาดไว้มาก ขายเพื่อการใช้งานเช่นหุ่นยนต์
หุ่นยนต์ของฉันใช้ Raspberry Pi และแขนหุ่นยนต์ถูกสร้างขึ้นจากชุดอุปกรณ์: Lynxmotion AL5D ชุดนี้มาพร้อมกับบอร์ดควบคุมเซอร์โว (ลิงก์ที่ฉันให้ไปคือไซต์ของ RobotShop ในสหรัฐฯ คลิกธงที่ด้านบนขวาของหน้าเว็บไซต์สำหรับประเทศของคุณ เช่น สหราชอาณาจักร)
คุณจะต้องมีโต๊ะ กล้อง ไฟส่องสว่าง แป้นพิมพ์ หน้าจอ และอุปกรณ์ชี้ตำแหน่ง (เช่น เมาส์) และแน่นอนว่าตัวหมากรุกและกระดาน ข้าพเจ้าจะอธิบายสิ่งเหล่านี้โดยละเอียดในขั้นตอนต่อไป
ขั้นตอนที่ 2: การสร้างฮาร์ดแวร์
ดังที่ฉันได้กล่าวไว้ก่อนหน้านี้ หัวใจของรหัสวิชันซิสเต็มจะทำงานกับบิลด์ที่หลากหลาย
โครงสร้างนี้ใช้ชุดแขนหุ่นยนต์จาก Lynxmotion, AL5D ในชุดประกอบด้วยบอร์ดควบคุมเซอร์โว SSC-32U ซึ่งใช้สำหรับควบคุมมอเตอร์ที่แขน
ฉันเลือก AL5D เพราะแขนต้องสามารถเคลื่อนที่ได้อย่างแม่นยำซ้ำแล้วซ้ำเล่า และไม่หลุดลอย ตัวจับต้องสามารถระหว่างชิ้นส่วนและแขนต้องสามารถไปถึงด้านไกลของกระดาน ฉันยังต้องทำการปรับเปลี่ยนบางอย่างตามรายละเอียดด้านล่าง
Raspberry Pi ที่ฉันใช้คือ Raspberry Pi 3 รุ่น B+ สิ่งนี้จะพูดคุยกับบอร์ด SSC-32U ผ่านการเชื่อมต่อ USB
แก้ไข: Raspberry Pi 4 พร้อมใช้งานแล้ว คุณจะต้อง:
- แหล่งจ่ายไฟ USB-C 15W – เราขอแนะนำ Raspberry Pi USB-C Power Supply อย่างเป็นทางการ
- การ์ด microSD ที่โหลดด้วย NOOBS ซอฟต์แวร์ที่ติดตั้งระบบปฏิบัติการ (ซื้อการ์ด SD ที่โหลดไว้ล่วงหน้าพร้อมกับ Raspberry Pi ของคุณ หรือดาวน์โหลด NOOBS เพื่อโหลดการ์ดด้วยตัวเอง)
- แป้นพิมพ์และเมาส์ (ดูภายหลัง)
- สายเคเบิลสำหรับเชื่อมต่อกับจอแสดงผลผ่านพอร์ต micro HDMI ของ Raspberry Pi 4
ฉันต้องการการเข้าถึงเพิ่มเติมบนแขนหุ่นยนต์ ดังนั้นฉันจึงทำการปรับเปลี่ยนเล็กน้อยโดยใช้ชิ้นส่วน Lynxmotion เพิ่มเติมซึ่งสามารถซื้อได้จาก RobotShop:
1. เปลี่ยนท่อ 4.5 นิ้วเป็นท่อ 6 นิ้ว - Lynxmotion part AT-04 รหัสสินค้า RB-Lyn-115
2. ลองใช้ชุดสปริงเพิ่มเติม แต่กลับไปใช้คู่เดียวเมื่อใช้งานรายการ 3 ด้านล่าง
3. ขยายความสูงโดยใช้ตัวเว้นวรรค 1 นิ้ว - Lynxmotion part HUB-16 รหัสสินค้า RB-Lyn-336
4. ขยายการเข้าถึงของกริปเปอร์โดยใช้แผ่นรองกริปเปอร์สำรองที่ติดด้วยชิ้นส่วนเลโก้สำรองที่ฉันมีและแถบยางยืด (!) ซึ่งใช้ได้ผลดีมาก เนื่องจากมีความยืดหยุ่นในการยกชิ้นส่วน
การแก้ไขเหล่านี้สามารถเห็นได้ในภาพด้านบนทางด้านขวา
มีกล้องติดอยู่เหนือกระดานหมากรุก ใช้เพื่อกำหนดการเคลื่อนไหวของมนุษย์
ขั้นตอนที่ 3: ซอฟต์แวร์ที่เคลื่อนย้ายหุ่นยนต์
รหัสทั้งหมดเขียนด้วย Python 2 จำเป็นต้องมีรหัสจลนศาสตร์ผกผันเพื่อที่จะเคลื่อนย้ายมอเตอร์ต่างๆ ได้อย่างถูกต้องเพื่อให้สามารถเคลื่อนย้ายชิ้นหมากรุกได้ ฉันใช้รหัสห้องสมุดจาก Lynxmotion ซึ่งรองรับการเคลื่อนมอเตอร์ในสองมิติ และได้เพิ่มเข้าไปด้วยรหัสของฉันเองสำหรับ 3 มิติ มุมกริปเปอร์ และการเคลื่อนไหวของกรามกริปเปอร์
ดังนั้นเราจึงมีรหัสที่จะย้ายชิ้นส่วน แยกชิ้นส่วน ปราสาท การสนับสนุน en passant และอื่น ๆ
เครื่องมือหมากรุกคือ Stockfish - ซึ่งสามารถเอาชนะมนุษย์คนใดก็ได้! "Stockfish เป็นหนึ่งในเครื่องมือหมากรุกที่แข็งแกร่งที่สุดในโลก นอกจากนี้ยังแข็งแกร่งกว่าปรมาจารย์หมากรุกที่เก่งที่สุดของมนุษย์อีกด้วย"
รหัสสำหรับขับเคลื่อนกลไกหมากรุก ตรวจสอบว่าการเคลื่อนไหวถูกต้อง และอื่นๆ คือ ChessBoard.py
ฉันใช้รหัสจาก https://chess.fortherapy.co.uk เพื่อเชื่อมต่อกับสิ่งนั้น รหัสของฉัน (ด้านบน) เชื่อมต่อกับสิ่งนั้น!
ขั้นตอนที่ 4: ซอฟต์แวร์ที่รับรู้การเคลื่อนไหวของมนุษย์
ฉันได้อธิบายรายละเอียดนี้ใน Instructable สำหรับ Chess Robot Lego build ของฉันแล้ว - ดังนั้นฉันไม่จำเป็นต้องทำซ้ำที่นี่!
ชิ้นส่วน "สีดำ" ของฉันเดิมเป็นสีน้ำตาล แต่ฉันทาให้เป็นสีดำด้าน (ด้วย "สีกระดานดำ") ซึ่งทำให้อัลกอริทึมทำงานได้ดีขึ้นภายใต้สภาพแสงที่แปรผันมากขึ้น
ขั้นตอนที่ 5: กล้อง, ไฟ, คีย์บอร์ด, ตาราง, จอแสดงผล
สิ่งเหล่านี้เหมือนกับใน Chess Robot Lego ของฉัน ดังนั้นฉันไม่จำเป็นต้องทำซ้ำที่นี่
ยกเว้นว่าครั้งนี้ฉันใช้ลำโพงที่แตกต่างและดีกว่าอย่างเห็นได้ชัด นั่นคือลำโพง Lenrui Bluetooth ซึ่งฉันเชื่อมต่อกับ RPi ด้วย USB
มีจำหน่ายที่ amazon.com, amazon.co.uk และร้านค้าอื่นๆ
ตอนนี้ฉันกำลังใช้กล้องอื่น - HP Webcam HD 2300 เนื่องจากฉันไม่สามารถทำให้กล้องรุ่นก่อนทำงานได้อย่างน่าเชื่อถือ
อัลกอริทึมจะทำงานได้ดีที่สุดหากกระดานหมากรุกมีสีที่ห่างไกลจากสีของหมาก ในหุ่นยนต์ของฉัน ชิ้นส่วนต่างๆ จะเป็นสีขาวนวลและสีน้ำตาล และกระดานหมากรุกเป็นการ์ดที่ทำด้วยมือ และเป็นสีเขียวอ่อนโดยมีความแตกต่างเล็กน้อยระหว่างช่องสี่เหลี่ยม "สีดำ" และ "สีขาว"
อัลกอริธึมต้องมีการวางแนวกล้องโดยเฉพาะ โปรดแสดงความคิดเห็นด้านล่างหากคุณมีปัญหา แขนมีระยะเอื้อมจำกัด ดังนั้นขนาดสี่เหลี่ยมจัตุรัสควรเป็น 3.5 ซม.
ขั้นตอนที่ 6: การรับซอฟต์แวร์
1. ปลาสต็อก
หากคุณเรียกใช้ Raspbian บน RPi คุณสามารถใช้เครื่องมือ Stockfish 7 ได้ฟรี เพียงแค่เรียกใช้:
sudo apt-get ติดตั้ง stockfish
2. ChessBoard.py รับสิ่งนี้จากที่นี่
3. รหัสอ้างอิงจาก https://chess.fortherapy.co.uk/home/a-wooden-chess… มาพร้อมกับรหัสของฉัน
4. ไลบรารี่ Python 2D Inverse Kinematics -
5. รหัสของฉันที่เรียกใช้รหัสทั้งหมดข้างต้นและทำให้หุ่นยนต์เคลื่อนไหวและรหัสการมองเห็นของฉัน รับสิ่งนี้จากฉันโดยสมัครรับข้อมูลจากช่อง YouTube ของฉันก่อนจากนั้นคลิกที่ปุ่ม "รายการโปรด" ใกล้กับด้านบนของคำแนะนำนี้แล้วโพสต์ความคิดเห็นในคำแนะนำนี้แล้วฉันจะตอบกลับ
แนะนำ:
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
LED กะพริบด้วย Raspberry Pi - วิธีใช้พิน GPIO บน Raspberry Pi: 4 ขั้นตอน
LED กะพริบด้วย Raspberry Pi | วิธีใช้ GPIO Pins บน Raspberry Pi: สวัสดีทุกคนในคำแนะนำนี้เราจะเรียนรู้วิธีใช้ GPIO ของ Raspberry pi หากคุณเคยใช้ Arduino คุณอาจรู้ว่าเราสามารถเชื่อมต่อสวิตช์ LED ฯลฯ เข้ากับหมุดของมันและทำให้มันทำงานได้ ทำให้ไฟ LED กะพริบหรือรับอินพุตจากสวิตช์ดังนั้น
อินเทอร์เฟซ ADXL335 Sensor บน Raspberry Pi 4B ใน 4 ขั้นตอน: 4 ขั้นตอน
อินเทอร์เฟซ ADXL335 Sensor บน Raspberry Pi 4B ใน 4 ขั้นตอน: ในคำแนะนำนี้ เราจะเชื่อมต่อเซ็นเซอร์ ADXL335 (accelerometer) บน Raspberry Pi 4 กับ Shunya O/S
การติดตั้ง Raspbian Buster บน Raspberry Pi 3 - เริ่มต้นใช้งาน Raspbian Buster ด้วย Raspberry Pi 3b / 3b+: 4 ขั้นตอน
การติดตั้ง Raspbian Buster บน Raspberry Pi 3 | เริ่มต้นใช้งาน Raspbian Buster ด้วย Raspberry Pi 3b / 3b+: สวัสดี องค์กร Raspberry pi ที่เพิ่งเปิดตัว Raspbian OS ใหม่ที่เรียกว่า Raspbian Buster เป็นเวอร์ชันใหม่ของ Raspbian สำหรับ Raspberry pi ดังนั้นวันนี้ในคำแนะนำนี้ เราจะได้เรียนรู้วิธีติดตั้ง Raspbian Buster OS บน Raspberry pi 3 ของคุณ
การติดตั้ง Raspbian ใน Raspberry Pi 3 B โดยไม่ต้องใช้ HDMI - เริ่มต้นใช้งาน Raspberry Pi 3B - การตั้งค่า Raspberry Pi ของคุณ 3: 6 ขั้นตอน
การติดตั้ง Raspbian ใน Raspberry Pi 3 B โดยไม่ต้องใช้ HDMI | เริ่มต้นใช้งาน Raspberry Pi 3B | การตั้งค่า Raspberry Pi ของคุณ 3: อย่างที่พวกคุณบางคนรู้ว่าคอมพิวเตอร์ Raspberry Pi นั้นยอดเยี่ยมมากและคุณสามารถรับคอมพิวเตอร์ทั้งหมดได้บนบอร์ดเล็ก ๆ ตัวเดียว Raspberry Pi 3 Model B มี ARM Cortex A53 แบบ 64 บิตแบบ quad-core โอเวอร์คล็อกที่ 1.2 GHz ทำให้ Pi 3 ประมาณ 50