Оглавление:

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

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

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

Существуют учебные пособия по использованию контроллера 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

Настроить проект 64
Настроить проект 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 в деталях

Код Arduino в деталях
Код 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 можно найти здесь:

Рекомендуемые: