สารบัญ:

Wireless 4 Player Family Game Controller: 3 ขั้นตอน
Wireless 4 Player Family Game Controller: 3 ขั้นตอน

วีดีโอ: Wireless 4 Player Family Game Controller: 3 ขั้นตอน

วีดีโอ: Wireless 4 Player Family Game Controller: 3 ขั้นตอน
วีดีโอ: Nintendo Switch | Pairing Multiple Controllers 2024, กรกฎาคม
Anonim
Wireless 4 Player Family Game Controller
Wireless 4 Player Family Game Controller
Wireless 4 Player Family Game Controller
Wireless 4 Player Family Game Controller
Wireless 4 Player Family Game Controller
Wireless 4 Player Family Game Controller

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

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

เสบียง

1. กล่องกระดาษแข็ง2. โฟมหรือฟิลเลอร์หนาแน่นอื่นๆ 3. ปุ่มอาเขตจาก Ali Express หรือ Amazon 4. Raspberry Pi 3B+ 5. คอมพิวเตอร์และหน้าจออื่นๆ 6. มีดหรืออะไรเจาะรูกระดาษแข็ง 7. เทปกาว8. สีสเปรย์

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

การก่อสร้าง
การก่อสร้าง
การก่อสร้าง
การก่อสร้าง
การก่อสร้าง
การก่อสร้าง

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

Raspberry Pi 3B+ มีพอร์ต usb สี่พอร์ต เรามีปุ่มอาร์เคดตระกูลสี่และ 4 ชุด! นี่คือพรหมลิขิต

ขั้นตอนที่ 2: การเขียนโปรแกรม

การเขียนโปรแกรม
การเขียนโปรแกรม
การเขียนโปรแกรม
การเขียนโปรแกรม
การเขียนโปรแกรม
การเขียนโปรแกรม
การเขียนโปรแกรม
การเขียนโปรแกรม

รหัสสำหรับโครงการนี้เรียบง่ายและมีข้อบกพร่อง สามารถพบได้ที่นี่:

github.com/melvyniandrag/SuperTuxJunkKartคอนโทรลเลอร์ 4 ตัวเชื่อมต่อผ่าน usb กับ raspberry pi บน Raspberry pi มีสคริปต์หลามขนาดเล็กที่ทำงานอยู่ ฉันใช้ไลบรารีอินพุต Python เพื่อรับสัญญาณจากปุ่มและจอยสติ๊ก จากนั้นโปรแกรมจะเปลี่ยนสัญญาณเป็นรหัส ASCII สั้น ๆ และส่งผ่านซ็อกเก็ต TCP ผ่าน wifi ไปยังพีซีที่รันเกม (ฉันจะเรียกสิ่งนี้ว่าเซิร์ฟเวอร์เกม) ตัวอย่างเช่น เมื่อผู้เล่น 0 เลื่อนจอยสติ๊กไปทางซ้าย อักขระ '0XL' จะถูกส่งผ่านซ็อกเก็ต TCP ไปยังเซิร์ฟเวอร์เกม สำหรับการทดสอบ ฉันใช้ SuperTuxKart บน Thinkpad ของฉัน แอปพลิเคชันเซิร์ฟเวอร์ขนาดเล็กทำงานบน Thinkpad และรับฟังบนซ็อกเก็ต TCP รหัสที่มาจากราสเบอร์รี่ pi ผ่าน wifi จะถูกแปลเป็นการกดปุ่มบนแป้นพิมพ์ผ่านไลบรารี pyautogui ดังนั้น เมื่อผู้เล่น 0 บนคอนโทรลเลอร์แบบกระดาษแข็งเลื่อนจอยสติ๊กไปทางซ้าย และคอนโทรลเลอร์ปล่อย 'OXL' เซิร์ฟเวอร์ที่รันเกมจะคิดว่าผู้เล่นกดปุ่ม '1' บนแป้นพิมพ์ เกมต้องได้รับการกำหนดค่าให้รู้จักการกดแป้นพิมพ์เหล่านี้ดังที่แสดงในหน้าจอตัวเลือกที่นี่ เกมนี้ทำงานได้ดีกับผู้เล่นหนึ่งหรือสองคน แต่เมื่อ 4 คนเล่น SuperTuxKart อย่างจริงจัง เซิร์ฟเวอร์จะเริ่มขาดข้อมูลบางส่วนจากคอนโทรลเลอร์ ฉันไม่แน่ใจว่านี่เป็นข้อผิดพลาด: 1. บนไคลเอนต์ (ตัวควบคุม) ด้าน2. บนเซิร์ฟเวอร์ (thinkpad) ด้าน 3. ฟังก์ชันลินุกซ์ในตัว บางทีแล็ปท็อป Ubuntu ของฉันอาจไม่รู้จักการกดปุ่มพร้อมกันจำนวนมาก ดังนั้นหากผู้เล่น 0, 1 และ 2 หมุนพวงมาลัยขึ้นและไปทางซ้ายทั้งหมด แสดงว่ามีการกดปุ่ม 2 * 3 = 6 ปุ่มพร้อมกัน ฉันไม่แน่ใจว่าคอมพิวเตอร์ของฉัน (หรือคอมพิวเตอร์เครื่องใดก็ตาม) ได้รับการออกแบบมาเพื่อรองรับสิ่งนั้นหรือไม่ ปกติแล้วฮ็อตคีย์จะมี 3 ปุ่มหรือน้อยกว่านั้น เช่น ปุ่มลัด CTRL + ALT + DEL ในอนาคต ฉันจะลองเปิดซ็อกเก็ต TCP 4 ช่อง หนึ่งซ็อกเก็ตสำหรับคอนโทรลเลอร์แต่ละตัว จากนั้นที่ฝั่งเซิร์ฟเวอร์ เพื่อสร้างแผ่นเกมเสมือน ยังไม่มีเวลาดูว่าจะทำอย่างไรระหว่างการเลี้ยงลูก การทำงาน และการตัดกล่องกระดาษแข็ง

ขั้นตอนที่ 3: อนาคต

นี่เป็นการพิสูจน์แนวคิดง่ายๆ ในอนาคตโค้ดจะต้องดีขึ้น ฉันต้องการเข้ารหัสการเชื่อมต่อเป็นอุปกรณ์ Bluetooth HID แต่ bluez5 บน Linux นั้นใช้เวลาสักครู่ในการทำงาน - นั่นเป็นสาเหตุที่ฉันใช้ซ็อกเก็ต TCP + Python นอกจากนี้ - มาเผชิญหน้ากัน - ตัวควบคุมดู เหมือนห่า มีเวลามากขึ้นฉันจะลงทุนพลังงานอีกเล็กน้อยในการตัดอย่างระมัดระวังมากขึ้น จากนั้นฉันจะใส่ที่รองรับเพิ่มเติม - ด้านข้างของกล่องเริ่มบิดเบี้ยวเล็กน้อยสำหรับสิ่งที่เป็นและราคา แต่สิ่งนี้ดูดีพอ ฉันจะแก้ไขต่อไปในขณะที่เราดูหนังในตอนเย็น

แนะนำ: