Мазмуну:

N64 Controller менен Arduino колдонуңуз: 5 кадам (сүрөттөр менен)
N64 Controller менен Arduino колдонуңуз: 5 кадам (сүрөттөр менен)

Video: N64 Controller менен Arduino колдонуңуз: 5 кадам (сүрөттөр менен)

Video: N64 Controller менен Arduino колдонуңуз: 5 кадам (сүрөттөр менен)
Video: Is There Anything Better Than Watching My Pokemon for N64 Ship? 2024, Декабрь
Anonim
N64 Controller менен Arduino колдонуңуз
N64 Controller менен Arduino колдонуңуз

Бул жерде NES контроллерин Arduino менен колдонуу боюнча окуу куралдары бар, бирок татаал N64 контроллерин жана анын аналогдук джойстикин колдонуу жагымдуу. Эгерде сизде Arduino бар болсо жана Adaptoid сатып алгыңыз келбесе, анда бул көрсөтмө сизге Ardunio жана N64 контроллериңиз менен Project 64те эмуляцияланган оюндарды ойнотууга мүмкүндүк берет. / Бул менин буюмдарыма зыян келтиреби? Бул сиздин контроллериңизди эч кандай өзгөртпөйт, жана зымдар өтө жөнөкөй, андыктан баарын кылдаттык менен жасасаңыз, контроллериңизге эч кандай коркунуч болбошу керек жана аны каалаган убакта N64 консолу менен чечип коюңуз. керек: Arduino - $ 30 Иштетүү 1.0 - бекер Arduino Программасы - бекер 3 даана зым - бекер (үмүт кылам) USB кабели

1 -кадам: Контроллерди зымга өткөрүү

Контроллерди зымга өткөрүү
Контроллерди зымга өткөрүү
Контроллерди зымга өткөрүү
Контроллерди зымга өткөрүү
Контроллерди зымга өткөрүү
Контроллерди зымга өткөрүү

Эң биринчи эмне кылыш керек, бул сиздин Arduinoңузду контроллерге туташтыруу. Контроллер үч гана жолду колдонот: +3.3V, сигнал жана жер. Штепсельге түз карасаңыз, жер эң сол жакта, сигнал ортосунда, +3.3В оңдо. Зымды колдонуп, жерге жана +3.3V Arduinoдогу тиешелүү казыктарга туташтырыңыз жана Ardunioдогу Digital 2 пинге сигналды туташтырыңыз. кийинки коддон кийинки контролдоочу тиркелгенден кийин Arduino'го жаңы кодду Arduino туташтырыңыз USB кабелин туташтырыңыз жана Arduino күчкө ээ болот.

2 -кадам: Кодду ачыңыз жана иштетиңиз

Бул кодду мен жазганмын, N64_Arduino файлынын бөлүктөрү Эндрю Браун тарабынан жазылган монтаждык кодго негизделген. ZIP Archives: Төмөндөгү эки Zip файлында Arduino иштетүү үчүн керектүү код камтылган, андан кийин ал компьютерге жөнөткөн маалыматтарды чечмелөө үчүн. N64_Arduino файлы Arduino IDEде түзүлүшү керек жана N64_Controller 1.0. N64_Arduino иштетүүдө иштейт Бул PDE файлы сиздин Arduino файлыңызга жүктөлүшү керек жана эгерде сизде баары туура туташкан болсо, эч тоскоолдуксуз иштеши керек. Бул жөн гана баскычтардагы жана аналогдук таякчадагы N64 контроллерин сурайт жана аны сериялык порт аркылуу компьютерге кайра жөнөтөт. Өзгөртүү жетиштүү оңой, мисалы, бул файлдагы ыкмаларды контроллерди сурап, маалыматтарды кайра компьютерге берүүнүн ордуна Arduino роботун иштетүү үчүн колдонсоңуз болот. маалыматтар Arduino тарабынан берилип, аны клавиатура баскычтарына айландырат, сиз аны Project 64 сыяктуу эмуляторго картага түшүрө аласыз. Саптын сапын өзгөртүү керек болушу мүмкүн PortName = Serial.list () [1]; Сиздин Arduino менен дал келиш үчүн, ал Serial.list () [0] болушу керек; Serial.list () [1]; же Serial.list () [2]; EDIT: "Import java.awt. Robot;" кошуу "java.awt. AWTException импорттоо;" Эгерде сиз Processing 1.1N64_Controller_mouse колдонуп жатсаңыз, кодго "import java.awt.event. InputEvent;" Бул N64_Controller менен бирдей, аналогдук таяк жебе баскычтарын эмес, чычканыңызды башкарат. А жана В, тиешелүүлүгүнө жараша, оң жана сол чыкылдатуу. Чычканды иштетүү үчүн контроллериңиздеги баштоо баскычын басыңыз.

3 -кадам: Долбоорду орнотуу 64

Долбоорду орнотуу 64
Долбоорду орнотуу 64

Контроллерди колдонуудан мурун, Arduino туташып, акыркы кадамда жүктөлгөн кодду иштетиши керек, ал эми Processing 1.0 N64_Controller программасы иштеп турганда ачык болушу керек. Блокнотто сынап көрүңүз, А баскычын басуу А, В В, В ж.б. Ошентип, азыр сизде иштөөчү контролер бар (үмүттөнөм) жана сиз кээ бир оюндарды ойногуңуз келет. -emu.com/downloads/Set Key Mappings орнотуу PJ 64 баштаңыз жана адегенде жөндөөлөр менюсун ачыңыз (Ctrl+T). Киргизүү контроллерин N-Rageдин түз киришине өзгөртүңүз. "Контроллер плагинин конфигурациялоо" менюну ачып, контроллерди колдонуп карталарды орнотуңуз. Ойноону баштаңыз! Азыр барууга даяр болушуңуз керек! Кээ бир ROMдорду жүктөп алып, N64 адаптеринен ырахат алыңыз.

4 -кадам: тереңдиктеги Arduino коду

Ардуино коду тереңдикте
Ардуино коду тереңдикте

N64 Протоколу Бир зым интерфейсиндеги N64 контроллерине жөнөтүлгөн жана келген биттер 4 мкм кең импульс менен коддолгон. A '0' 3 µs төмөн жана 1 µs бийик. A '1' 1 мкм төмөн жана 3 мкс бийик. N64_send же N64_receive ыкмаларындагы Arduino коду Эндрю Браун тарабынан жазылган, контролдоочу менен байланышуу үчүн маалымат линиясын бир аз жардыруу үчүн жазылган, өтө кылдаттык менен белгиленген жыйноо кодун колдонот. nop блоктору маалыматтарды жөнөтүү линиясын сурамжылоодон мурун, тийиштүү өлчөмдөгү микс күтүү үчүн колдонулат. Ишке киргенде, 0x00 контролерге жөнөтүлөт, андан кийин контроллердин статусун сурап билүү үчүн 0x01 колдонулат. аналогдук джойстик маалыматы. Берилиштер 44000000000000400044440044000444 окшойт. Биттердин форматы: A, B, Z, Start, Dup, Ddown, Dleft, Dright, 0, 0, L, R, Cup, Cdown, Cleft, Cright + 16 bit analogs таяк позициясы. Translate_raw_data () ыкмасы 32 биттен өтүп, аларды N64_status структурасына киргизет. Биринчи 16 бит жөнөкөй 1 же 0, бирок акыркы 16 бүтүн санга болжол менен (-80, 80) диапазонунда (i = 0; i <8; i ++) {N64_status.stick_x | = N64_raw_dump [16+i]? (0x80 >> i): 0; } Берилиштер бул жөнөкөй формада болгондон кийин, аны менен каалаганын жасоо оңой. Бул учурда, ал жөн эле loop () методундагы сериялык порт аркылуу x жана y баалуулуктары үчүн эки бүтүн сандары бар экилик маалыматтардын сабы катары жөнөтүлөт. Сериялык порт аркылуу жөнөтүлгөн маалыматтар окшош болушу мүмкүн: 0400000000000400 63 -67, бул эки баскыч басылганын жана башкаруу таягы 63, -67де болгонун билдирет.

5 -кадам: Шилтемелер

Шилтемелер
Шилтемелер

Эндрю Браундун Arduino менен N64 адаптерине gamecube түзүү долбоору бул долбоорду коддоодо баа жеткис болгон:

Пайдалуу схемаларды бул жерден тапса болот: https://www.raphnet.net/electronique/gc_n64_usb/index_en.php N64 контролерлорунун менчик протоколу боюнча маалыматты бул жерден тапса болот:

Сунушталууда: