สารบัญ:

On the Go Controller: 8 ขั้นตอน
On the Go Controller: 8 ขั้นตอน

วีดีโอ: On the Go Controller: 8 ขั้นตอน

วีดีโอ: On the Go Controller: 8 ขั้นตอน
วีดีโอ: DJI SMART CONTROLLER : แนะนำการใช้งาน GO SHARE By DJI Phantom Thailand 2024, กรกฎาคม
Anonim
On the Go Controller
On the Go Controller
On the Go Controller
On the Go Controller
On the Go Controller
On the Go Controller

คุณชอบเล่นเกมบนสมาร์ทโฟนของคุณหรือไม่? คุณเบื่อกับการเล่นเกมด้วยการควบคุมหน้าจอสัมผัสที่ยุ่งยากหรือไม่? เกลียดการลืมชาร์จคอนโทรลเลอร์ Bluetooth ของคุณหรือไม่? ต้องการใช้สายเคเบิลที่คุณซื้อแต่ไม่เคยใช้ใช่หรือไม่

ทำไมไม่ลองสร้างคอนโทรลเลอร์ของคุณเองดูล่ะ?

ฉันแน่ใจว่าฉันมาช้าไปเล่นเกม (ตั้งใจเล่นสำนวน) แต่ฉันเพิ่งค้นพบว่าสมาร์ทโฟนเครื่องเก่าของฉันสามารถเล่นเกมย้อนยุคผ่านการจำลองได้ เมื่อโตขึ้นฉันเป็นแฟนตัวยงของระบบ Game Boy และชอบความทรงจำในการเล่นเป็นเวลาหลายชั่วโมงและต้องนั่งรถนาน ๆ พยายามหาจุดประหยัดก่อนที่แบตเตอรี่จะหมดหรือดวงอาทิตย์อยู่ไกลเกินขอบฟ้า ดูหน้าจอของฉัน ตอนนี้ฉันสามารถเล่นบนโทรศัพท์และคิดถึงแต่หน้าจอที่มีแสงด้านหลังที่สวยงาม ขอบคุณเทคโนโลยี!

ข้อจำกัดความรับผิดชอบ: การจำลองเกมเป็นเรื่องที่งี่เง่าและเป็นอุปสรรคต่อการละเมิดลิขสิทธิ์ในบางกรณี โปรดให้ความรู้และเล่นอย่างมีความรับผิดชอบ!

พื้นหลัง:

ฉันตัดสินใจทำโครงการนี้หลังจากสร้างแป้นพิมพ์ลัด ในขณะที่เรียนรู้ไลบรารีคีย์บอร์ด Arduino และการสร้างทางลัด ฉันผูกปุ่มทดสอบบางปุ่มกับ WASD มันเริ่มทำงานกับเกมพีซีของฉันทันที และนั่นทำให้วงล้อหมุนไป ในช่วงเวลาเดียวกันนั้น พื้นที่ในโทรศัพท์ของฉันสำหรับหนังสือเสียงหมด และมองหาวิธีใช้แฟลชไดรฟ์ USB กับโทรศัพท์ของฉัน เนื่องจากรุ่นของฉันไม่อนุญาตให้ใช้การ์ด microSD นั่นคือตอนที่ฉันได้เรียนรู้เกี่ยวกับ OTG OTG ใช้การชาร์จจากแบตเตอรี่โทรศัพท์ของคุณเพื่อให้พลังงานแก่อุปกรณ์ที่เชื่อมต่ออยู่ ซึ่งรวมถึงคีย์บอร์ด เมาส์ และแฟลชไดรฟ์ เป็นต้น โทรศัพท์สามารถจ่ายไฟให้กับอุปกรณ์ 5v และเดาว่า Arduino micro ต้องใช้อะไรบ้าง? มันเป็นการแข่งขันที่เกิดขึ้นในสวรรค์

เสบียง

Arduino Micro

บอร์ดต้นแบบ

ปุ่ม 12 x 6 มม. (ฉันใช้สวิตช์ชั่วขณะสัมผัสเขียงหั่นขนมแบบคลาสสิก)

หัวแร้งและหัวแร้ง

เครื่องพิมพ์ 3 มิติ

สายเคเบิลขณะเดินทาง (OTG); ฉันทำเอง

สายชาร์จ Micro USB

ขั้นตอนที่ 1: ออกแบบ

ออกแบบ
ออกแบบ
ออกแบบ
ออกแบบ
ออกแบบ
ออกแบบ

ฉันต้องการให้คอนโทรลเลอร์ของฉันพกพาได้และมีปุ่มทั้งหมดที่ฉันต้องการเพื่อเล่นเกมจนถึงยุค Super Nintendo นี่หมายความว่าฉันต้องการ 12 ปุ่ม สี่สำหรับแป้นทิศทาง (d-pad) และแปดสำหรับ A, B, X, Y, Start, Select, Left Trigger และ Right Trigger ฉันยังมีข้อกำหนดเพิ่มเติมที่ต้องการให้มันสมมาตรเพื่อที่ฉันจะได้เล่นด้วยมือเดียวโดยใช้มือทั้งสองข้าง ข้อกำหนดเพิ่มเติมนั้นอาจฟังดูแปลก แต่เพื่อให้บริบท ฉันต้องพูดถึงว่าเมื่อเร็ว ๆ นี้ฉันพบว่าตัวเองกำลังอุ้มทารกนอนหลับอยู่เป็นประจำและใช้มือข้างเดียวในช่วงเวลาเล่นเกมที่จำกัด

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

(ฉันวางแผนที่จะ แต่ไฟล์.stl บน Thingiverse เมื่อเวลาเอื้ออำนวย ไฟล์จะอยู่ที่นั่นเพื่อให้ฉันสามารถอัปเดตได้โดยไม่ต้องอัปโหลดไฟล์ที่นี่ตลอดเวลา)

ขั้นตอนที่ 2: พิมพ์ผลงานของคุณ

พิมพ์ผลงานของคุณ!
พิมพ์ผลงานของคุณ!

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

ขั้นตอนที่ 3: การเตรียมบอร์ดต้นแบบของคุณ

การเตรียมบอร์ดต้นแบบของคุณ
การเตรียมบอร์ดต้นแบบของคุณ
การเตรียมบอร์ดต้นแบบของคุณ
การเตรียมบอร์ดต้นแบบของคุณ

ก่อนบัดกรีปุ่มบนบอร์ดต้นแบบ ฉันทดสอบปุ่มทั้งหมดบนเขียงหั่นขนมและทดสอบรหัส Arduino ของฉันพร้อมกัน ฉันจะตรวจสอบรหัสในขั้นตอนต่อไป

ตอนนี้เป็นเวลาที่ดีที่สุดในการตัดบอร์ดต้นแบบของคุณให้มีขนาด ใช้กล่องควบคุมที่พิมพ์ออกมาเป็นแนวทางและติดปุ่มให้พอดีเพื่อให้แน่ใจว่าทุกอย่างเข้าที่ ฉันเพิ่งตัดลวดและตัดกระดานส่วนเกินออกแล้วขัดขอบสี่เหลี่ยมด้วยกระดาษทรายกรวด 150 เม็ด

การเดินสายสำหรับคอนโทรลเลอร์นั้นตรงไปตรงมามาก เนื่องจากเราใช้ตัวต้านทานแบบดึงขึ้นภายในของ Arduino micro ปุ่มทั้งหมดไปที่อินพุตและกราวด์ ปุ่มที่ฉันใช้คือสวิตช์ชั่วขณะสัมผัสทั่วไปขนาด 6 มม.

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

สำหรับการออกแบบเฉพาะของฉัน ฉันบัดกรีปุ่มแพดทิศทางขึ้นและลง (ฉันพลาดปุ่มแพดทิศทางซ้ายและขวา) ไปที่บอร์ดต้นแบบพร้อมกับสายยาวพิเศษบางอัน จากนั้นพลิกบอร์ดและบัดกรีอาร์ดิโน ฉันไม่มีไดอะแกรมเพราะฉันทำการบัดกรีปุ่มทีละปุ่มเป็นส่วนใหญ่โดยสุ่ม (ฉันอาจอัปโหลดหนึ่งอันหากมีความสนใจเพียงพอ) หลังจากที่ Arduino ได้รับการรักษาความปลอดภัยฉันก็พลิกกระดานกลับไปที่ด้านปุ่มแล้วบัดกรีปุ่มที่เหลือและสายไฟ

ขั้นตอนที่ 4: ทางเลือก: ปรับปรุงตัวเรือนคอนโทรลเลอร์ของคุณ

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

ขั้นตอนที่ 5: การประกอบขั้นสุดท้าย

การประกอบขั้นสุดท้าย
การประกอบขั้นสุดท้าย

ตอนนี้เป็นเวลาที่จะใส่ปุ่มทั้งหมดของคุณและบอร์ดต้นแบบที่เสร็จสมบูรณ์ลงในตัวเรือน ฉันใช้สกรูโลหะแผ่น #4-24 x 1/2 สำหรับการออกแบบของฉัน พวกเขาได้งานทำแต่ไม่พอดีเท่าที่ฉันต้องการ

ขั้นตอนที่ 6: ตั้งโปรแกรม Arduino. ของคุณ

คุณอาจต้องการทำขั้นตอนนี้ก่อนหน้านี้เมื่อคุณยังคงออกแบบบอร์ดหรือหลังจากที่คุณบัดกรีทุกอย่างเข้ากับบอร์ดต้นแบบแล้ว ฉันชอบที่จะมีสิ่งนี้ในส่วนของตัวเอง

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

สำหรับผู้ที่สนใจ ฉันใช้แอป retroArch เพื่อเล่นเกมย้อนยุคของฉัน แป้นที่ฉันใช้ถูกตั้งค่าเป็นรูปแบบแป้นพิมพ์เริ่มต้นที่ใช้สำหรับ retroArch

#include #include "Keyboard.h" #define NUM_BUTTONS 12 const uint8_t BUTTON_PINS[NUM_BUTTONS] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; // a = 'x' // b = 'z' // x = 's' // y = 'a' // ไหล่ซ้าย = 'q' // ไหล่ขวา = 'w' // select = 'rshift ' // start = 'enter' // up = 'key:up' // down = 'key:down' // left = 'key:left' // right = 'key:right' const char BUTTON_KEYS [NUM_BUTTONS] = {KEY_RETURN, KEY_DOWN_ARROW, KEY_UP_ARROW, KEY_LEFT_ARROW, KEY_RIGHT_ARROW, KEY_RIGHT_SHIFT, 'z', 'x', 's', 'a', 'q', 'w'}; ปุ่มเด้ง * = เด้งใหม่[NUM_BUTTONS]; การตั้งค่าเป็นโมฆะ () { สำหรับ (int i = 0; i < NUM_BUTTONS; i++) { ปุ่ม .attach (BUTTON_PINS , INPUT_PULLUP); ปุ่ม.ช่วง(25); } // เริ่มต้นการควบคุมบนแป้นพิมพ์: Keyboard.begin(); } void loop() { // ตรวจสอบว่าค่าเปลี่ยนสำหรับ (int i = 0; i < NUM_BUTTONS; i++) { buttons.update(); ถ้า (ปุ่ม .fell ()) { Keyboard.press (BUTTON_KEYS ); } ถ้า (ปุ่ม .rose ()) { Keyboard.release (BUTTON_KEYS ); } } }

ขั้นตอนที่ 7: เล่นเกมของคุณ

เล่นเกมของคุณ!
เล่นเกมของคุณ!

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

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

ขั้นตอนที่ 8: บทเรียนที่ได้รับ

CAD:

ฉันไม่เคยยุ่งกับซอฟต์แวร์ CAD มาก่อนและต้องเรียนรู้ระหว่างเดินทางด้วยการออกแบบนี้ เดิมทีฉันออกแบบให้ตั้งตรงมากขึ้นซึ่งจะพอดีกับมือคุณเหมือนกับเครื่อง Wii Nunchuk ความรู้ที่จำกัดของฉันเกี่ยวกับการออกแบบด้วยรูปทรงออร์แกนิกคือความหายนะของฉัน บางทีฉันควรนำ Intructables มาใช้กับคลาสการออกแบบ CAD ของมัน

ปุ่ม:

ปุ่มที่ฉันใช้นั้นดังกว่าที่ฉันต้องการ (โดยเฉพาะเมื่อคุณพยายามไม่ให้ใครซักคนตื่น) ฉันต้องการหาปุ่มที่เงียบกว่านี้ การผสมผสานสปริงระหว่างปุ่มและฝาครอบปุ่มจะช่วยให้งานสร้างดูสวยงามยิ่งขึ้น ปุ่มหย่อนเกินไปสำหรับรสนิยมของฉัน

การบัดกรี:

ฉันเป็นสามเณรในการบัดกรีและไม่มีมือที่มั่นคงมาก การบัดกรีสายไฟเล็กๆ ทั้งหมดทั่วสถานที่ใช้เวลานานกว่าที่ฉันคาดไว้ ถ้าฉันต้องทำทั้งหมดอีกครั้ง ฉันจะทำแผนที่ให้แน่ชัดว่าสายไฟของฉันจะไปที่ใดก่อนที่จะคว้าเตารีด ซึ่งจะช่วยลดข้อผิดพลาดที่ฉันค้นพบหลังจากติด Arduino กับบอร์ดต้นแบบและจะช่วยประหยัดเวลาฉันได้

แนะนำ: