Использование Arduino с контроллером N64: 5 шагов (с изображениями)
Использование Arduino с контроллером N64: 5 шагов (с изображениями)

Видео: Использование Arduino с контроллером N64: 5 шагов (с изображениями)

Видео: Использование Arduino с контроллером N64: 5 шагов (с изображениями)
Видео: Вертикальный плоттер на Ардуино! 2025, Январь
Anonim

Существуют учебные пособия по использованию контроллера NES с Arduino, но использование более сложного контроллера N64 и его аналогового джойстика имеет определенную привлекательность. Если у вас есть Arduino и вы не хотите покупать Adaptoid, эта инструкция позволит вам играть в эмулированные игры в Project 64 с вашим Ardunio и контроллером N64. / Это повредит мои вещи? Это никоим образом не повлияет на ваш контроллер, а проводка чрезвычайно проста, поэтому, если вы все сделаете осторожно, ваш контроллер не будет подвергаться опасности, и вы можете в любой момент отсоединить его для использования с консолью N64. нужно: Arduino - 30 долларов США, обработка 1.0 - бесплатно Программное обеспечение Arduino - бесплатно 3 провода - бесплатно (я надеюсь) USB-кабель

Шаг 1: Подключение контроллера

Первое, что вам нужно сделать, это подключить Arduino к контроллеру. Контроллер использует только три провода: + 3,3 В, сигнал и заземление. Если смотреть прямо на вилку, земля находится слева, сигнал посередине, а + 3,3 В справа. Используя провод, подключите заземление и + 3,3 В к соответствующим контактам на Arduino и подключите сигнальный провод к контакту Digital 2 на Ardunio. ПРИМЕЧАНИЕ: если у вас есть другой код на вашем Arduino, вы должны отключить контроллер и загрузить новый код со следующей страницы для Arduino перед включением с подключенным контроллером. Подключите Arduino Подключите USB-кабель, и Arduino будет иметь питание.

Шаг 2. Распакуйте и запустите код

Этот код был написан мной с частями файла N64_Arduino на основе кода сборки, написанного Эндрю Брауном. ZIP-архивы: два Zip-файла ниже содержат код, необходимый для запуска Arduino, а затем для интерпретации данных, которые он отправляет на компьютер. Файл N64_Arduino должен быть скомпилирован в среде Arduino IDE, а N64_Controller запускается в Processing 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]; РЕДАКТИРОВАТЬ: добавьте «import java.awt. Robot;» "import java.awt. AWTException;" «import java.awt.event. InputEvent;» в код, если вы используете Processing 1.1N64_Controller_mouse. Это то же самое, что и N64_Controller, за исключением того, что аналоговый джойстик управляет вашей мышью, а не клавишами со стрелками. A и B - это правый и левый щелчок соответственно. Чтобы активировать мышь, нажмите кнопку запуска на вашем контроллере.

Шаг 3. Настройте Project 64

Прежде чем вы сможете использовать контроллер, необходимо подключить Arduino и запустить код, который вы загрузили на последнем шаге, а также необходимо открыть Processing 1.0 с запущенной программой N64_Controller. Протестируйте это в Блокноте, нажав кнопку A, вы должны ввести A, B - ввести B и т. Д. Итак, теперь у вас есть рабочий контроллер (надеюсь), и вы хотите поиграть в некоторые игры. Downl0ad PJ 64 https://www.pj64 -emu.com/downloads/Set Key Mappings Запустите PJ 64 и сначала откройте меню настроек (Ctrl + T). Измените контроллер ввода на прямой ввод N-Rage. Откройте меню «Настроить подключаемый модуль контроллера» и установите сопоставления с помощью контроллера. Начните играть! Теперь у вас все готово! Загрузите несколько ПЗУ и начните пользоваться своим доморощенным адаптером N64.

Шаг 4: Код Arduino в деталях

Протокол N64 Биты, отправляемые на контроллер N64 и от него по однопроводному интерфейсу, кодируются импульсами длительностью 4 мкс. «0» соответствует низкому уровню 3 мкс и высокому значению 1 мкс. «1» соответствует низкому уровню 1 мкс и высокому значению 3 мкс. Код Arduino в методах N64_send или N64_receive использует очень тщательно рассчитанный по времени ассемблерный код, написанный Эндрю Брауном для побитового преобразования линии данных для связи с контроллером. Блоки nop используются для ожидания соответствующего количества мкс перед опросом строки отправки данных. При запуске контроллеру отправляется 0x00, а затем единственная используемая команда - это 0x01 для запроса состояния контроллера. Кодирование данных Когда данные принимаются после 0x01, они поступают в виде 16 бит информации о кнопках и 16 битов информация об аналоговом джойстике. Данные будут выглядеть так: 44000000000000400044440044000444. Формат битов следующий: A, B, Z, Start, Dup, Ddown, Dleft, Dright, 0, 0, L, R, Cup, Cdown, Cleft, Cright + 16 аналоговых бит. положение палки. Метод translate_raw_data () перебирает 32 бита, вставляя их в структуру N64_status. Первые 16 бит - это простые 1 или 0, но последние 16 преобразуются в целое число примерно в диапазоне (-80, 80) с помощью for (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: ссылки

Проект Эндрю Брауна по созданию адаптера gamecube для N64 с Arduino оказался бесценным при написании кода для этого проекта:

Полезные схемы можно найти здесь: https://www.raphnet.net/electronique/gc_n64_usb/index_en.php Информацию о проприетарном протоколе контроллеров N64 можно найти здесь: