สารบัญ:
- ขั้นตอนที่ 1: การเดินสายคอนโทรลเลอร์
- ขั้นตอนที่ 2: แกะและเรียกใช้รหัส
- ขั้นตอนที่ 3: ตั้งค่าโครงการ 64
- ขั้นตอนที่ 4: รหัส Arduino ในเชิงลึก
- ขั้นตอนที่ 5: การอ้างอิง
วีดีโอ: ใช้ Arduino กับคอนโทรลเลอร์ N64: 5 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:09
มีบทช่วยสอนเกี่ยวกับการใช้คอนโทรลเลอร์ NES กับ Arduino แต่การใช้คอนโทรลเลอร์ N64 ที่ซับซ้อนกว่าและจอยสติ๊กแบบอะนาล็อกนั้นมีเสน่ห์ดึงดูดใจ หากคุณมี Arduino อยู่ใกล้ๆ และไม่ต้องการซื้อ Adaptoid คำแนะนำนี้จะทำให้สามารถเล่นเกมจำลองใน Project 64 ด้วย Ardunio และคอนโทรลเลอร์ N64 ได้ ยากไหม / มันจะสร้างความเสียหายให้กับสิ่งของของฉันหรือไม่? การดำเนินการนี้จะไม่แก้ไขคอนโทรลเลอร์ของคุณแต่อย่างใด และการเดินสายทำได้ง่ายมาก ดังนั้น หากคุณทำทุกอย่างอย่างระมัดระวัง ตัวควบคุมของคุณจะไม่มีความเสี่ยง และคุณสามารถปลดมันออกเมื่อใดก็ได้เพื่อใช้กับคอนโซล N64 สิ่งที่คุณจะทำได้ ต้องการ:Arduino - $30 การประมวลผล 1.0 - ฟรีซอฟต์แวร์Arduino - สาย USB ฟรี 3 ชิ้น - ฟรี (ฉันหวังว่า)
ขั้นตอนที่ 1: การเดินสายคอนโทรลเลอร์
สิ่งแรกที่คุณต้องทำคือเชื่อมต่อ Arduino ของคุณกับคอนโทรลเลอร์ คอนโทรลเลอร์ใช้ลีดสามตัวเท่านั้น: +3.3V, สัญญาณ และกราวด์ มองตรงที่ปลั๊ก กราวด์อยู่ซ้ายสุด สัญญาณอยู่ตรงกลาง และ +3.3V อยู่ทางขวา ใช้สายเชื่อมต่อกราวด์และ +3.3V กับพินตามลำดับบน Arduino และเชื่อมต่อสัญญาณที่นำไปสู่ขา Digital 2 บน Ardunio หมายเหตุ: หากคุณมีรหัสอื่นบน Arduino คุณควรถอดคอนโทรลเลอร์ออกและอัปโหลด รหัสใหม่จากหน้าถัดไปไปยัง Arduino ก่อนที่จะเปิดเครื่องโดยต่อกับคอนโทรลเลอร์เชื่อมต่อ Arduino ต่อสาย USB และ Arduino จะมีพลังงาน
ขั้นตอนที่ 2: แกะและเรียกใช้รหัส
ฉันเขียนรหัสนี้โดยมีส่วนต่างๆ ของไฟล์ N64_Arduino ตามรหัสแอสเซมบลีที่เขียนโดย Andrew Brown คลังเก็บ ZIP: ไฟล์ Zip สองไฟล์ด้านล่างมีรหัสที่จำเป็นในการเรียกใช้ Arduino จากนั้นจึงตีความข้อมูลที่ส่งไปยังคอมพิวเตอร์ ต้องคอมไพล์ไฟล์ N64_Arduino ใน Arduino IDE และ N64_Controller ทำงานในการประมวลผล 1.0. N64_Arduino ไฟล์ PDE นี้ควรอัปโหลดไปยัง Arduino ของคุณและทำงานโดยไม่มีปัญหาหากคุณเชื่อมต่อทุกอย่างถูกต้อง เพียงแค่สอบถามข้อมูลคอนโทรลเลอร์ N64 บนปุ่มและอนาล็อกสติ๊ก และส่งกลับไปยังคอมพิวเตอร์ผ่านพอร์ตอนุกรม มันง่ายพอที่จะแก้ไข ตัวอย่างเช่น คุณสามารถใช้เมธอดจากไฟล์นี้เพื่อสอบถามคอนโทรลเลอร์และใช้ข้อมูลเพื่อรันหุ่นยนต์ Arduino แทนที่จะส่งกลับไปยังคอมพิวเตอร์N64_Controller นี่คือโปรเจ็กต์ Processing 1.0 ที่นำ ข้อมูลที่ส่งโดย Arduino และแปลงเป็นแป้นพิมพ์ที่คุณสามารถแมปกับโปรแกรมจำลองเช่น Project 64 คุณอาจต้องเปลี่ยนบรรทัด String portName = Serial.list()[1]; เพื่อให้ตรงกับ Arduino ของคุณ ควรเป็น Serial.list()[0]; Serial.list()[1]; หรือ Serial.list()[2]; แก้ไข: เพิ่ม "นำเข้า java.awt. Robot;" "นำเข้า java.awt. AWTException;" "นำเข้า java.awt.event. InputEvent;" ไปยังโค้ดหากคุณกำลังใช้การประมวลผล 1.1N64_Controller_mouse ซึ่งจะเหมือนกับ N64_Controller ยกเว้นว่าแท่งอนาล็อกจะควบคุมเมาส์ของคุณ ไม่ใช่ปุ่มลูกศร A และ B คลิกขวาและซ้ายตามลำดับ ในการเปิดใช้งานเมาส์ ให้กดปุ่มเริ่มต้นบนคอนโทรลเลอร์ของคุณ
ขั้นตอนที่ 3: ตั้งค่าโครงการ 64
ก่อนที่คุณจะใช้คอนโทรลเลอร์ได้ คุณต้องเชื่อมต่อ Arduino และรันโค้ดที่คุณดาวน์โหลดในขั้นตอนสุดท้าย และต้องเปิดการประมวลผล 1.0 โดยที่โปรแกรม N64_Controller ทำงานอยู่ ทดสอบใน Notepad กดปุ่ม A ควรพิมพ์ A B ควรพิมพ์ A B ฯลฯ ดังนั้นตอนนี้คุณมีตัวควบคุมที่ใช้งานได้ (หวังว่า) และคุณต้องการเล่นเกมบางเกม Downl0ad PJ 64https://www.pj64 -emu.com/downloads/Set Key Mappings เริ่ม PJ 64 และเปิดเมนูการตั้งค่าก่อน (Ctrl+T) เปลี่ยนตัวควบคุมอินพุตเป็นอินพุตโดยตรงของ N-Rage เปิดเมนู "กำหนดค่าปลั๊กอินตัวควบคุม" และตั้งค่าการแมปโดยใช้คอนโทรลเลอร์ เริ่มเล่น! คุณควรพร้อมแล้วที่จะไปตอนนี้! ดาวน์โหลด ROM บางตัวและเริ่มเพลิดเพลินกับอะแดปเตอร์ homebrew N64 ของคุณ
ขั้นตอนที่ 4: รหัส Arduino ในเชิงลึก
โปรโตคอล N64 บิตที่ส่งไปและกลับจากคอนโทรลเลอร์ N64 บนอินเทอร์เฟซแบบสายเดียวถูกเข้ารหัสในพัลส์กว้าง 4 µs '0' มีค่าต่ำ 3 µ และสูง 1 µ '1' มีค่าต่ำ 1 µ และสูง 3 µ รหัส Arduino ในวิธี N64_send หรือ N64_receive ใช้รหัสแอสเซมบลีที่กำหนดเวลาอย่างระมัดระวังซึ่งเขียนโดย Andrew Brown เพื่อบิตแบงสายข้อมูลเพื่อสื่อสารกับคอนโทรลเลอร์ บล็อค nop ใช้เพื่อรอปริมาณ µs ที่เหมาะสมก่อนที่จะทำการโพลบรรทัดการส่งข้อมูล เมื่อเริ่มต้น 0x00 จะถูกส่งไปยังคอนโทรลเลอร์และหลังจากนั้นคำสั่งเดียวที่ใช้คือ 0x01 เพื่อสอบถามสถานะของคอนโทรลเลอร์การเข้ารหัสข้อมูลเมื่อได้รับข้อมูลหลังจาก 0x01 จะมาถึงเป็นข้อมูลปุ่ม 16 บิตและ 16 บิต ข้อมูลจอยสติ๊กแบบอะนาล็อก ข้อมูลจะมีลักษณะดังนี้ 44000000000000400044440044000444 รูปแบบของบิตคือ: A, B, Z, Start, Dup, Ddown, Dleft, Dright, 0, 0, L, R, Cup, Cdown, Cleft, Cright + 16 bits of analog ตำแหน่งติด เมธอด translate_raw_data() จะผ่าน 32 บิต โดยแทรกลงใน struct N64_status 16 บิตแรกนั้นง่าย 1 หรือ 0 แต่ 16 บิตสุดท้ายจะถูกแปลเป็นจำนวนเต็มโดยประมาณในช่วง (-80, 80) โดย for (i=0; i<8; i++) { N64_status.stick_x |= N64_raw_dump[16+i] ? (0x80 >> ผม): 0; } หลังจากที่ข้อมูลอยู่ในรูปแบบง่ายๆ นี้แล้ว คุณจะสามารถทำทุกอย่างที่คุณต้องการได้อย่างง่ายดาย ในกรณีนี้ มันเพียงส่งผ่านพอร์ตอนุกรมในเมธอด loop() เป็นสตริงของข้อมูลไบนารีที่มีจำนวนเต็มสองตัวสำหรับค่า x และ y ข้อมูลที่ส่งผ่านพอร์ตอนุกรมอาจมีลักษณะดังนี้: 040000000000000400 63 -67 ซึ่งหมายความว่ามีการกดปุ่มสองปุ่มและแท่งควบคุมอยู่ที่ 63, -67
ขั้นตอนที่ 5: การอ้างอิง
โครงการของ Andrew Brown ในการสร้าง gamecube เป็นอะแดปเตอร์ N64 ด้วย Arduino นั้นมีค่ามากในขณะที่เขียนโค้ดสำหรับโครงการนี้:
แผนผังที่เป็นประโยชน์สามารถพบได้ที่นี่: https://www.raphnet.net/electronique/gc_n64_usb/index_en.php ข้อมูลเกี่ยวกับโปรโตคอลที่เป็นกรรมสิทธิ์ของคอนโทรลเลอร์ N64 สามารถพบได้ที่นี่:
แนะนำ:
เกม DIY Steampunk Operation ของฉัน ใช้ Arduino: 9 ขั้นตอน (พร้อมรูปภาพ)
เกม DIY Steampunk Operation ของฉันที่ใช้ Arduino: โครงการนี้ค่อนข้างกว้างขวางในขอบเขต ไม่ต้องใช้เครื่องมือหรือความรู้เดิมมากนัก แต่จะสอนใครก็ได้ (รวมถึงฉันด้วย) ในแผนกต่างๆ มากมาย เช่น Captive-sensing กับ Arduino การทำงานหลายอย่างพร้อมกันกับ Arduino
ใช้ Arduino เพื่อแสดง Engine RPM: 10 ขั้นตอน (พร้อมรูปภาพ)
ใช้ Arduino เพื่อแสดง RPM ของเครื่องยนต์: คู่มือนี้จะสรุปวิธีที่ฉันใช้ Arduino UNO R3, จอแสดงผล LCD ขนาด 16x2 พร้อม I2C และแถบ LED เพื่อใช้เป็นมาตรวัดความเร็วเครื่องยนต์และไฟเปลี่ยนเกียร์ในรถแทร็ก Acura Integra ของฉัน มันเขียนในแง่ของคนที่มีประสบการณ์หรือเปิดเผย
ใช้ Cortana และ Arduino เพื่อควบคุม RGB Leds หรือ Ledstrips ด้วยเสียงของคุณ!: 4 ขั้นตอน (พร้อมรูปภาพ)
ใช้ Cortana และ Arduino เพื่อควบคุม RGB Leds หรือ Ledstrips ด้วยเสียงของคุณ!: ในคำแนะนำนี้ฉันจะแสดงให้คุณเห็นว่าคุณสามารถควบคุม RGB led หรือ led strip ด้วยเสียงของคุณได้อย่างไร ทำได้โดยแอป CoRGB ซึ่งมีให้ใช้งานฟรีใน Windows App Store แอพนี้เป็นส่วนหนึ่งของโครงการ CortanaRoom ของฉัน เมื่อคุณทำปัญญา
ATmega8 ในฐานะ Arduino (ใช้ Internal 8Mhz Crystal): 7 ขั้นตอน (พร้อมรูปภาพ)
ATmega8 ในฐานะ Arduino (ใช้ Internal 8Mhz Crystal): ทุกวันนี้ อุปกรณ์อย่าง Arduino ได้รับความนิยมอย่างมาก สามารถใช้เพื่อสร้างโครงการได้มากมาย อย่างไรก็ตาม พวกเขาใช้พื้นที่มากและมีราคาแพงสำหรับพวกเราบางคน (รวมถึงฉันด้วย) เพื่อแก้ปัญหานี้ ผมขอนำเสนอคำแนะนำนี้แก่คุณ
เครื่อง ATM ใช้ Arduino (พิมพ์ลายนิ้วมือ+บัตร RFID) : 4 ขั้นตอน (พร้อมรูปภาพ)
เครื่อง ATM ที่ใช้ Arduino (พิมพ์ลายนิ้วมือ+บัตร RFID): สวัสดีเพื่อน ๆ ฉันกลับมาพร้อมกับแนวคิดใหม่เกี่ยวกับเครื่อง ATM โดยใช้ Arduino ซึ่งมีประโยชน์ในพื้นที่ชนบทที่ไม่สามารถให้บริการเงินสดได้ มันเป็นความคิดเล็กน้อย ฉันหวังว่า คุณสนุกกับมัน มาเริ่มกันเลย