Spisu treści:

Użyj Arduino z kontrolerem N64: 5 kroków (ze zdjęciami)
Użyj Arduino z kontrolerem N64: 5 kroków (ze zdjęciami)

Wideo: Użyj Arduino z kontrolerem N64: 5 kroków (ze zdjęciami)

Wideo: Użyj Arduino z kontrolerem N64: 5 kroków (ze zdjęciami)
Wideo: Контроллер R.C.U-1 v1.7 (R-2Z) от О.Н.Р. "Радиотех" 2024, Listopad
Anonim
Użyj Arduino z kontrolerem N64
Użyj Arduino z kontrolerem N64

Istnieją samouczki dotyczące używania kontrolera NES z Arduino, ale użycie bardziej skomplikowanego kontrolera N64 i jego analogowego joysticka ma zdecydowany urok. Jeśli masz Arduino i nie chcesz kupować Adaptoida, ta instrukcja umożliwi granie w emulowane gry w Project 64 za pomocą Ardunio i kontrolera N64. Czy to trudne? / Czy to zniszczy moje rzeczy? Nie zmodyfikuje to w żaden sposób twojego kontrolera, a okablowanie jest niezwykle proste, więc jeśli zrobisz wszystko ostrożnie, nie powinno być żadnego ryzyka dla twojego kontrolera i możesz go odpiąć w dowolnym momencie, aby użyć go z konsolą N64. potrzeba:Arduino - $30Processing 1.0 - darmowe Oprogramowanie Arduino - darmowe 3 sztuki przewodu - darmowe (mam nadzieję) kabel USB

Krok 1: Okablowanie kontrolera

Okablowanie kontrolera
Okablowanie kontrolera
Okablowanie kontrolera
Okablowanie kontrolera
Okablowanie kontrolera
Okablowanie kontrolera

Pierwszą rzeczą, którą musisz zrobić, to podłączyć Arduino do kontrolera. Kontroler wykorzystuje tylko trzy przewody: +3,3 V, sygnał i masę. Patrząc bezpośrednio na wtyczkę, masa jest najdalej na lewo, sygnał pośrodku, a +3,3V po prawej. Za pomocą przewodu podłącz masę i +3,3 V do odpowiednich pinów Arduino i podłącz przewód sygnałowy do pinu Digital 2 na Ardunio. UWAGA: Jeśli masz inny kod na swoim Arduino, powinieneś odłączyć kontroler i wgrać nowy kod z następnej strony do Arduino przed włączeniem go z podłączonym kontrolerem. Podłącz Arduino Podłącz kabel USB, a Arduino będzie miało zasilanie.

Krok 2: Rozpakuj i uruchom kod

Ten kod został napisany przeze mnie, z fragmentami pliku N64_Arduino opartym na kodzie zespołu napisanym przez Andrew Browna. Archiwa ZIP: Dwa poniższe pliki Zip zawierają kod potrzebny do uruchomienia Arduino, a następnie do interpretacji danych wysyłanych do komputera. Plik N64_Arduino musi być skompilowany w Arduino IDE, a N64_Controller działa w Processing 1.0. N64_Arduino Ten plik PDE powinien zostać załadowany do Arduino i działać bezproblemowo, jeśli wszystko jest prawidłowo podłączone. Po prostu wysyła zapytanie do kontrolera N64 o dane dotyczące przycisków i drążka analogowego i wysyła je z powrotem do komputera przez port szeregowy. Modyfikowanie jest dość łatwe, na przykład możesz użyć metod z tego pliku, aby wysłać zapytanie do kontrolera i użyć danych do uruchomienia robota Arduino zamiast przesyłania go z powrotem do komputera. N64_Controller Jest to projekt Processing 1.0, który pobiera dane przesyłane przez Arduino i konwertują je na naciśnięcia klawiatury, które można mapować do emulatora, takiego jak Project 64. Może być konieczna zmiana wiersza String portName = Serial.list()[1]; aby dopasować Arduino, powinno to być Serial.list()[0]; Serial.list()[1]; lub Serial.list()[2]; EDYCJA: Dodaj "import java.awt. Robot;" "importuj java.awt. AWTException;" "import java.awt.event. InputEvent;" do kodu, jeśli używasz Processing 1.1N64_Controller_mouse Jest to to samo co N64_Controller, z tą różnicą, że myszką steruje drążek analogowy, a nie klawisze strzałek. A i B to odpowiednio prawy i lewy przycisk myszy. Aby aktywować mysz, naciśnij przycisk Start na kontrolerze.

Krok 3: Skonfiguruj projekt 64

Skonfiguruj projekt 64
Skonfiguruj projekt 64

Zanim będziesz mógł korzystać z kontrolera, Arduino musi być podłączony i uruchomić kod pobrany w ostatnim kroku, a Processing 1.0 musi być otwarty z uruchomionym programem N64_Controller. Przetestuj to w Notatniku, naciśnięcie przycisku A powinno wpisać A, B powinno wpisać B itd. Więc teraz masz działający kontroler (miejmy nadzieję) i chcesz zagrać w niektóre gry. Downl0ad PJ 64https://www.pj64 -emu.com/downloads/Set Key Mappings Uruchom PJ 64 i otwórz najpierw menu ustawień (Ctrl+T). Zmień kontroler wejścia na bezpośrednie wejście N-Rage. Otwórz menu „Konfiguruj wtyczkę kontrolera” i ustaw mapowania za pomocą kontrolera. Zacznij grać!Powinieneś być gotowy do pracy! Pobierz kilka ROM-ów i zacznij cieszyć się adapterem homebrew N64.

Krok 4: Głębokość kodu Arduino

Dogłębny kod Arduino
Dogłębny kod Arduino

Protokół N64 Bity wysyłane do iz kontrolera N64 przez interfejs jednoprzewodowy są kodowane w impulsach o szerokości 4 µs. „0” to 3 µs niskie i 1 µs wysokie. „1” to 1 µs niski i 3 µs wysoki. Kod Arduino w metodach N64_send lub N64_receive wykorzystuje bardzo starannie zsynchronizowany kod asemblera napisany przez Andrew Browna do bitowego uderzenia linii danych w celu komunikacji z kontrolerem. Bloki nop są używane do oczekiwania odpowiedniej ilości µs przed odpytaniem linii wysyłania danych. Podczas uruchamiania do kontrolera wysyłane jest 0x00, a następnie jedynym używanym poleceniem jest 0x01 do zapytania o status kontrolera. Kodowanie danych Gdy dane są odbierane po 0x01, są one odbierane jako 16 bitów informacji o przycisku i 16 bitów analogowe informacje o joysticku. Dane wyglądałyby jak 44000000000000400044440044000444. Format bitów to: A, B, Z, Start, Dup, Ddown, Dleft, Dright, 0, 0, L, R, Cup, Cdown, Cleft, Cright + 16 bitów pozycja kija. Metoda translate_raw_data() przechodzi przez 32 bity, wstawiając je do struktury N64_status. Pierwsze 16 bitów to zwykłe 1 lub 0, ale ostatnie 16 są tłumaczone na liczbę całkowitą w przybliżeniu z zakresu (-80, 80) przez for (i=0; i<8; i++) { N64_status.stick_x |= N64_raw_dump[16+i] ? (0x80 >> i): 0; } Gdy dane są już w tej prostej formie, łatwo jest z nimi zrobić, co tylko zechcesz. W tym przypadku jest on po prostu wysyłany przez port szeregowy w metodzie loop() jako ciąg danych binarnych z dwiema liczbami całkowitymi dla wartości x i y. Dane przesyłane przez port szeregowy mogą wyglądać następująco: 040000000000400 63 -67, co oznaczałoby, że naciśnięto dwa przyciski, a drążek sterowniczy był na 63, -67.

Krok 5: Referencje

Bibliografia
Bibliografia

Projekt Andrew Browna stworzenia adaptera gamecube do N64 z Arduino był nieoceniony podczas kodowania dla tego projektu:

Pomocne schematy można znaleźć tutaj: https://www.raphnet.net/electronique/gc_n64_usb/index_en.php Informacje na temat zastrzeżonego protokołu kontrolerów N64 można znaleźć tutaj:

Zalecana: