สารบัญ:
- ขั้นตอนที่ 1: คุณจะต้องการ:
- ขั้นตอนที่ 2: แยกส่วนคอนโทรลเลอร์
- ขั้นตอนที่ 3: ติดส่วนประกอบเข้าที่
- ขั้นตอนที่ 4: บัดกรีสายไฟ
- ขั้นตอนที่ 5: ตั้งโปรแกรม Arduino
- ขั้นตอนที่ 6: ประกอบคอนโทรลเลอร์อีกครั้ง
- ขั้นตอนที่ 7: การปรับปรุงที่เป็นไปได้
วีดีโอ: Xbox 360 Controller Accelerometer/gyro Steering Mod: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
ฉันเล่น Assetto Corsa ด้วยคอนโทรลเลอร์ Xbox 360 ของฉัน น่าเสียดายที่การบังคับเลี้ยวด้วยแท่งอนาล็อกนั้นเทอะทะมาก และฉันไม่มีที่ว่างสำหรับตั้งล้อ ฉันพยายามคิดถึงวิธีที่ฉันสามารถใส่กลไกการบังคับเลี้ยวที่ดีขึ้นในตัวควบคุม เมื่อฉันคิดว่าฉันสามารถใช้ตัวควบคุมทั้งหมดเป็นพวงมาลัยได้
แท่งอนาล็อกมีโพเทนชิโอมิเตอร์สองตัว หนึ่งวัดการเคลื่อนไหวในแนวตั้ง และหนึ่งวัดการเคลื่อนไหวในแนวนอน มันใส่ 1.6V ผ่านแต่ละอันและวัดแรงดันไฟฟ้าที่ผลิตที่ที่ปัดน้ำฝนเพื่อกำหนดว่าแท่งไม้เคลื่อนที่ไปมากแค่ไหน ซึ่งหมายความว่าสามารถควบคุมการเคลื่อนที่ของแท่งไม้ได้โดยการป้อนแรงดันไฟฟ้าเฉพาะไปยังพินที่ปัดน้ำฝน (ข้อมูลเพิ่มเติมที่นี่:
ตัวดัดแปลงนี้ใช้ Arduino เพื่อคำนวณมุมจากการอ่านค่าความเร่งและแปลงเป็นการเคลื่อนที่แบบแท่งอนาล็อกผ่าน DAC ดังนั้นจึงควรทำงานร่วมกับเกมใดๆ ก็ตามที่ใช้อนาล็อกสติ๊กเป็นอินพุต
ขั้นตอนที่ 1: คุณจะต้องการ:
เครื่องมือ:
- หัวแร้ง
- ประสาน
- บัดกรีดูด/ถักเปีย
- เครื่องปอกสายไฟ
- ไขควงอาจเป็น Torx ขึ้นอยู่กับสกรูในคอนโทรลเลอร์ของคุณ (ของฉันคือครอสเฮด)
- กาว (ควรเป็นกาวที่ไม่แรงมาก จึงสามารถแยกออกได้ในภายหลัง)
- อะแดปเตอร์ USB เป็นซีเรียลเพื่อตั้งโปรแกรม Arduino
วัสดุ:
- ตัวควบคุม Xbox 360 (อุ๊ย!)
- Arduino Pro Mini (หรือโคลน) (ควรเป็น 3.3V หากคุณใช้เวอร์ชัน 5V คุณอาจต้องใช้ตัวแปลงแรงดันไฟฟ้าแบบ step-up)
- ไจโรสโคป/มาตรความเร่ง MPU-6050
- MCP4725 DAC (สองอันถ้าคุณต้องการควบคุมทั้งสองแกน)
- ลวดบางๆ
- เขียงหั่นขนมเพื่อให้คุณสามารถทดสอบทุกอย่างก่อนที่จะบัดกรี (ไม่บังคับ แต่แนะนำ)
ขั้นตอนที่ 2: แยกส่วนคอนโทรลเลอร์
มีสกรูเจ็ดตัวที่คุณต้องถอดออก หกคนชัดเจน แต่คนที่เจ็ดอยู่หลังสติกเกอร์ ฉันถือว่าการนำออกจะทำให้การรับประกันของคุณเป็นโมฆะ ดังนั้นคุณต้องยอมรับความเสี่ยงเอง ไกด์หลายคนบอกว่าคุณต้องการไขควง Torx แต่ของฉันเป็นแบบครอสเฮด ดังนั้นให้ตรวจสอบคอนโทรลเลอร์ของคุณ
หลังจากนั้น ค่อยๆ แงะฝาหลังออก หากคุณแงะปุ่มออกด้านหน้าปุ่มจะหกออกมาและอาจไปทั่วทั้งห้อง ยกจากด้านล่าง จากนั้นถอดปลั๊กมอเตอร์สั่นสะเทือนสองตัว (อันที่มีน้ำหนักน้อยควรอยู่ทางซ้าย และอันที่มีน้ำหนักมากอยู่ทางขวา) นำ PCB ออกแล้วถอดฝายางบนแท่งอนาล็อกออก พวกเขาเพียงแค่ดึงออก
สิ่งต่อไปคือการถอดแท่งอนาล็อกด้านซ้ายออกเพื่อไม่ให้รบกวนการป้อนข้อมูลของเรา แต่กลไกทริกเกอร์ด้านซ้ายกำลังขวางทางอยู่ ในการถอดออก คุณต้องถอดหมุดสามตัวออกจากโพเทนชิออมิเตอร์จากด้านหน้าของบอร์ด จากนั้นปลดกลไกออกจาก PCB
ถัดไป ถอดหมุด 14 ตัวที่ยึดแท่งอนาล็อกด้านซ้ายออก แล้วดึงก้านออก
ขั้นตอนที่ 3: ติดส่วนประกอบเข้าที่
คุณจะสังเกตเห็นช่องว่างระหว่างด้านหลังของ PCB กับเคสค่อนข้างมาก ทำให้สามารถใส่ฮาร์ดแวร์ทั้งหมดลงในเคสได้โดยไม่ต้องถอดอะไรเลย
ฉันเพิ่งรู้ทีหลัง แต่นี่คงเป็นเวลาที่ดีที่จะเลิกใช้ปุ่มรีเซ็ตบน Arduino หากคุณไม่ทำเช่นนั้น มันจะกดที่ด้านหลังของเคสและทำให้โปรเจ็กต์หยุดทำงานหากคุณขันสกรูตัวใดตัวหนึ่งแน่นเกินไปเมื่อประกอบกลับ
ฉันติดการ์ดแผ่นบาง ๆ ที่ด้านหลังของ PCB แต่ละอันเพื่อหุ้มฉนวน จากนั้นจึงติดกาวนั้นกับ PCB ของคอนโทรลเลอร์ ฉันลังเลที่จะใช้กาว แต่ไม่สามารถคิดหาวิธีที่ดีกว่านี้ได้
ตำแหน่งในภาพเป็นชุดค่าผสมที่ดีที่สุดที่ฉันหาได้ Arduino อยู่ทางด้านซ้าย โดยมีขอบที่มีปุ่มรีเซ็ตอยู่ชิดกับชิ้นส่วนพลาสติกจากกลไกทริกเกอร์ด้านขวา โดยให้อีกด้านหนึ่งอยู่ใต้สายไฟและให้มุมใกล้กับขั้วต่อสีขาวมากที่สุด มีส่วนที่นูนเล็กน้อยในกรณีนี้ แต่ฉันไม่สามารถหาที่วางที่ดีกว่านี้ได้
มาตรความเร่งอยู่ทางด้านขวาของเส้นลวด มันควรจะแบนและตรงที่สุดเท่าที่จะทำได้ ไม่เช่นนั้นคุณอาจต้องเขียนโค้ดในภายหลังเพื่อชดเชยออฟเซ็ต โปรดทราบว่ามีชิ้นส่วนพลาสติกยื่นออกมาที่ด้านหลังของเคสซึ่งคุณต้องระมัดระวังเพื่อหลีกเลี่ยง ฉันพบว่าคุณสามารถใส่สิ่งที่เหนียวและมีสีสัน เช่น ลิปสติก ลงบนชิ้นส่วนพลาสติกที่ยื่นออกมา แล้วใส่ฝาหลังเพื่อดูว่ามันทิ้งรอยไว้ตรงไหน
DAC อยู่ที่มุมล่างซ้ายมือ มีพื้นที่ว่างเพียงพอสำหรับวาง DAC สองชุด กองหนึ่งวางทับกัน หากคุณต้องการควบคุมทั้งสองแกน คุณไม่จำเป็นต้องทากาว พวกเขาจะอยู่ในที่ที่พวกเขาอยู่ด้วยการเชื่อมต่อแบบบัดกรี หากคุณกำลังติดการ์ดระหว่างการ์ด อย่าลืมตัดการ์ดเพื่อให้สามารถเข้าถึง SCL, SDA, VCC และ GND ได้ เพราะคุณจะเข้าถึงได้จากทั้งสองฝ่าย
หากคุณใช้ DAC สองตัว อย่าลืมเปลี่ยนจัมเปอร์ที่อยู่และปิดใช้งานตัวต้านทานแบบดึงขึ้นบนตัวใดตัวหนึ่ง ตามที่อธิบายไว้ที่นี่: https://learn.sparkfun.com/tutorials/mcp4725-digital-to-analog -converter-hookup-guide
ขั้นตอนที่ 4: บัดกรีสายไฟ
ตอนนี้คุณต้องเชื่อมต่อทุกอย่าง VCC, GND, SDA และ SCL จากอุปกรณ์ 2/3 ทั้งหมดควรเชื่อมต่อกับ VCC, GND, A4 และ A5 บน Arduino ตามลำดับ DAC เป็นส่วนที่ยากที่สุด หากคุณมีสองอัน คุณต้องเชื่อมต่อเข้าด้วยกัน ในขณะที่ออกจากที่ใดที่หนึ่ง คุณสามารถเชื่อมต่อสายไฟและสายไฟเข้ากับมาตรความเร่ง ขณะที่แยกสาย OUT ออกจากกัน
พิน OUT บน DAC ควรเชื่อมต่อกับพินบน PCB ของคอนโทรลเลอร์ที่เคยใช้สำหรับพินโพเทนชิออมิเตอร์แนวนอนตรงกลางสำหรับแท่งอนาล็อก นั่นคือที่ที่แท่งอนาล็อกอยู่ มีหมุดสามแถวอยู่ด้านบน เชื่อมต่อกับอันกลาง หากคุณมี DAC อื่นให้เชื่อมต่อกับพินโพเทนชิออมิเตอร์แนวตั้ง (แถวทางซ้าย) ในลักษณะเดียวกัน คุณจะไม่สามารถเข้าถึงหมุดจากด้านหลังได้เมื่อเปลี่ยนทริกเกอร์ ดังนั้นคุณต้องเดินสายไฟไปที่ด้านหน้าของบอร์ด มี "ผนัง" พลาสติกทรงกลมอยู่รอบๆ บริเวณแท่งอนาล็อก แต่โชคดีที่มีช่องว่างที่สะดวกสำหรับใส่สายไฟ ตรวจสอบให้แน่ใจว่าสายไฟไม่ไปกีดขวางเสาสกรูที่ส่วนหน้าของเคส
แผนเดิมของฉันคือการจ่ายไฟให้ Arduino ด้วย 5V จากสาย USB ที่เชื่อมต่อกับพิน RAW แต่เมื่อฉันลองใช้งาน มันไม่ทำงาน Arduino ไม่ทำงานอะไรเลย และทั้ง Arduino และคอนโทรลเลอร์ก็ปิดลงหลังจากผ่านไปไม่กี่วินาที อย่างไรก็ตาม ฉันพบว่ามีเอาต์พุต 3.3V คงที่จากพินสองตัวที่ด้านหน้าของบอร์ดใกล้กับซ็อกเก็ตอุปกรณ์ต่อพ่วงสีดำ ซึ่งน่าจะเป็นสำหรับการจ่ายไฟให้กับอุปกรณ์ต่อพ่วง มันใช้งานได้กับทั้ง VCC และ RAW แต่ฉันเลือก VCC เพราะมันมีแรงดันไฟที่เหมาะสมอยู่แล้ว และเพราะมันช่วยให้ฉันบัดกรีมันกับสาย VCC บน DAC ที่อยู่ใกล้กับด้านล่างของบอร์ดแล้วและประหยัดสายไฟ
โปรดทราบว่ามีชิ้นส่วนพลาสติกจำนวนมากยื่นออกมาจากเคสที่คุณต้องแก้ไข แต่ถ้าคุณติดลวดเข้าที่ คุณจะต้องกังวลเพียงครั้งเดียวเท่านั้น
ทั้งหมดนี้อธิบายด้วยคำพูดได้ยาก ดังนั้นฉันจึงรวมรูปภาพและแผนภาพคร่าวๆ
ขั้นตอนที่ 5: ตั้งโปรแกรม Arduino
ตอนนี้คุณต้องตั้งโปรแกรม Arduino สิ่งนี้ต้องย้ายสาย USB บนคอนโทรลเลอร์เพื่อให้คุณสามารถเข้าถึงพินอนุกรมบน Arduino ได้ ฉันได้รวมรหัสที่ฉันใช้แล้ว ต้องใช้ไลบรารี Adafruit MCP4725 ซึ่งสามารถพบได้ที่นี่:
โค้ดนี้ช่วยให้คุณเคลื่อนที่ตลอดช่วงการเคลื่อนที่ของแท่งอนาล็อกได้เท่าๆ กัน โดยเลื่อนคอนโทรลเลอร์ 90 องศาไปทางซ้ายเป็น 90 องศาไปทางขวา และเก็บไว้ตรงกลางโดยถือให้แบน
ได้มุมของตัวควบคุมโดยการคำนวณแทนเจนต์ผกผันของแรง g ของแกน X หารด้วยแรง g ของแกน Z ซึ่งหมายความว่าจะทำงานได้หากคอนโทรลเลอร์อยู่ในแนวตั้ง แบนราบ หรือมุมใดๆ ระหว่างนั้น (ข้อมูลเพิ่มเติมที่นี่:
มันใช้งานได้กับคอนโทรลเลอร์ของฉัน แต่คอนโทรลเลอร์อื่นๆ อาจต้องใช้แรงดันไฟฟ้าที่แตกต่างกัน ซึ่งทำให้ไม่อยู่ในแนวเดียวกัน ฉันคิดว่าวิธีที่ดีที่สุดในการค้นหาช่วงแรงดันไฟฟ้าคือการลองผิดลองถูก หลายเกมจะแสดงแถบเลื่อนสำหรับการเคลื่อนไหวของแท่งอนาล็อก แต่วิธีที่แม่นยำที่สุดที่ฉันพบในการพิจารณาการเคลื่อนไหวคือ jstest บน Linux (https://wiki.archlinux.org/index.php/Gamepad#Joystick_API) โดยจะให้ตัวเลขระหว่าง -32, 767 และ 32, 767 แทนที่จะเป็นกราฟิก คุณจึงรู้ว่าแท่งไม้อยู่ที่ไหน เสียบทั้งคอนโทรลเลอร์และ Arduino USB เข้ากับอะแดปเตอร์อนุกรม โหลด jstest และลองใช้ค่า DAC ที่แตกต่างกันจนกว่าคุณจะไปถึงด้านบนและด้านล่างของช่วง แล้วจดบันทึกแต่ละรายการ สำหรับฉันมันคือ 1, 593 - 382
สิ่งที่น่าสนใจเป็นพิเศษคือบรรทัดที่ 36:
dacvalue = (มุมควบคุม + 2.5617859169446084418) / 0.0025942135867793503208 + 0.5;
ไม่ชัดเจนในทันทีว่ามันทำอะไร พูดง่ายๆ คือ ใช้มุมของตัวควบคุม (วัดเป็นเรเดียนและระหว่าง ~1.57 ถึง ~-1.57) แล้วแปลงเป็นค่าระหว่าง 1, 593 และ 382 สำหรับ DAC หากคุณมีช่วง DAC อื่น คุณจะต้องเปลี่ยนบรรทัดนั้น
บรรทัดสามารถเขียนได้ดังนี้:
dacvalue = (มุมควบคุม +) / + 0.5;
ด้วยและเป็นตัวเลขที่คุณต้องเปลี่ยน เท่ากับช่วงของมุมควบคุม (pi) หารด้วยช่วงรวมของค่า DAC (ด้านบนสุดของช่วงลบด้วยด้านล่างของช่วง) วิธีนี้ทำให้คุณได้เท่าการเปลี่ยนแรงดันไฟฟ้า แม้ว่าผลลัพธ์จะอยู่นอกช่วงที่คุณต้องการก็ตาม นั่นเป็นเหตุผลที่คุณต้องการ เท่ากับคูณด้วยด้านล่างของช่วงบวกครึ่งหนึ่งของช่วงการเคลื่อนที่ของตัวควบคุม (pi / 2) การเพิ่มช่วงของการเคลื่อนไหวครึ่งหนึ่งทำให้แน่ใจได้ว่าไม่ใช่จำนวนลบ และการคูณด้วยด้านล่างของช่วงจะทำให้แน่ใจได้ว่ามีการซิงโครไนซ์กับช่วงที่คุณต้องการ
เมื่อแปลงทศนิยมเป็นจำนวนเต็ม C++ จะไม่ปัดเศษ มันตัดทศนิยมออกแทน ดังนั้น 9.9 กลายเป็น 9 การบวก 0.5 ที่ตอนท้ายทำให้แน่ใจว่าสิ่งใดที่อยู่เหนือครึ่งจะเป็นจำนวนเต็มถัดไป ดังนั้นมันจึงปัดเศษ
เมื่อคุณอัปโหลดโปรแกรมแล้ว ตรวจสอบให้แน่ใจว่าโปรแกรมใช้งานได้กับ jstest
ขั้นตอนที่ 6: ประกอบคอนโทรลเลอร์อีกครั้ง
ใส่คอนโทรลเลอร์กลับเข้าที่ในแบบเดียวกับที่คุณแยกชิ้นส่วน ลบด้วยแท่งอนาล็อกด้านซ้าย มันควรจะทำงานในขณะนี้ ฉันพบว่าไม่มีความล่าช้าที่เห็นได้ชัดเจนและดีกว่าการใช้แท่งอนาล็อกเป็นอย่างมาก เนื่องจากมันใช้มาตรความเร่ง จึงได้รับผลกระทบจากการเคลื่อนไหวอย่างกะทันหัน แต่คุณต้องพยายามสังเกตให้ดี
ขั้นตอนที่ 7: การปรับปรุงที่เป็นไปได้
มีการปรับปรุงบางอย่างที่สามารถทำได้ ซึ่งรวมถึง:
- ใช้ลวดแม่เหล็กที่ยุ่งยากน้อยลง
- สลักทุกอย่างบน PCB เดียวที่ออกแบบมาให้พอดีกับเคสคอนโทรลเลอร์
- ติดอนาล็อกสติ๊กด้านซ้ายกลับเข้าไปใหม่และต่อขาเข้ากับอินพุทอนาล็อกบน Arduino เพื่อให้สามารถใช้ปรับ Arduino ได้
- รับชิ้นส่วนเคสด้านหลังสำหรับคอนโทรลเลอร์ไร้สายและใส่โปรเจ็กต์ลงในช่องใส่แบตเตอรี่ (จำเป็นต้องเจาะรูสำหรับสาย USB)
แนะนำ:
การแปลง Tonka Truck RC พร้อม Dump และ 4WS Quad Steering: 6 ขั้นตอน (พร้อมรูปภาพ)
การแปลง RC ของ Tonka Truck RC ด้วย Dump และ 4WS Quad Steering: ฉันยอมรับว่าการแปลง RC ของ Tonka Truck RC ไม่ใช่แนวคิดดั้งเดิม แต่เมื่อฉันคิดว่าฉันคิดว่าฉันเป็นคนแรก… นั่นคือจนกระทั่งฉันค้นหาเว็บ D'oh ใช่ สิ่งนี้เคยทำมาก่อน แต่ในความคิดของฉัน คนอื่นทำได้ยากและล้มเหลว
Xbox 360 Arcade Controller - โครงการ Gyokusho: 8 ขั้นตอน
Xbox 360 Arcade Controller - Project Gyokusho: นี่คือสิ่งที่ดูเหมือน ฉันได้แยกตัวควบคุม 360 แบบมีสายออกจากกัน ใส่ความกล้าลงในกล่องที่สวยงาม แล้วบัดกรีปุ่มอาร์เคดและจอยสติ๊กเข้าไป คิดว่าฉันจะเผยแพร่สิ่งนี้เพื่อให้คุณได้ทราบว่าจะทำอย่างไร
Simple Xbox 360 Rapid Fire Mod: 8 ขั้นตอน (พร้อมรูปภาพ)
Simple Xbox 360 Rapid Fire Mod: ฉันแน่ใจว่าคุณเคยเห็นสิ่งที่ตัวควบคุม modded สามารถทำได้หากคุณเล่นเกมออนไลน์เช่น Call Of Duty, Halo, Counter Strike หรือ Battlefield นี่คือการปรับเปลี่ยนที่ง่ายมากเพื่อให้คุณ ยิง Barret 50 cal ของคุณเหมือน P90 อัปเดต: มี
การวัดมุมโดยใช้ Gyro, Accelerometer และ Arduino: 5 ขั้นตอน
การวัดมุมโดยใช้ Gyro, Accelerometer และ Arduino: อุปกรณ์นี้เป็นต้นแบบคร่าวๆ ของสิ่งที่จะกลายเป็นหุ่นยนต์สมดุลในตัวเอง ซึ่งเป็นส่วนที่สองของสิ่งที่เป็นรู (อ่านมาตรความเร่งและควบคุมมอเตอร์ให้สมดุลในตัวเอง) ส่วนแรกที่มีเพียงไจโรสามารถพบได้ที่นี่ ในข้อนี้
Xbox 360 Rumble Powered Rapid Fire Mod: 6 ขั้นตอน
ม็อด Rapid Fire ของ Xbox 360 Rumble: วิธีง่ายๆ ในการดัดแปลงคอนโทรลเลอร์ xbox 360 ของคุณโดยไม่ต้องใช้ไมโครชิปแฟนซีและยังตรวจไม่พบ (จนถึงตอนนี้) (ฉันไม่รับผิดชอบต่อความเสียหายใด ๆ ที่เกิดขึ้นกับผู้ควบคุมของคุณในระหว่างกระบวนการดัดแปลง ---- ดำเนินการต่อด้วยความเสี่ยงของคุณเอง) ขออภัยเกี่ยวกับภาพ