Πίνακας περιεχομένων:

Χρησιμοποιήστε ένα Arduino με έναν ελεγκτή N64: 5 βήματα (με εικόνες)
Χρησιμοποιήστε ένα Arduino με έναν ελεγκτή N64: 5 βήματα (με εικόνες)

Βίντεο: Χρησιμοποιήστε ένα Arduino με έναν ελεγκτή N64: 5 βήματα (με εικόνες)

Βίντεο: Χρησιμοποιήστε ένα Arduino με έναν ελεγκτή N64: 5 βήματα (με εικόνες)
Βίντεο: Νέα Raspberry Pi 3 Tutorial - Πώς να δημιουργήσει για Gaming & Entertainment Έργα 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.3V, σήμα και γείωση. Κοιτάζοντας απευθείας το βύσμα, η γείωση βρίσκεται πιο αριστερά, το σήμα βρίσκεται στη μέση και +3,3V στα δεξιά. Χρησιμοποιώντας το καλώδιο, συνδέστε τη γείωση και το +3.3V στις αντίστοιχες ακίδες του Arduino και συνδέστε το καλώδιο σήματος στον ψηφιακό ακροδέκτη 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 για δεδομένα στα κουμπιά και το Analog stick και τα στέλνει πίσω στον υπολογιστή μέσω της σειριακής θύρας. Είναι αρκετά εύκολο να τροποποιήσετε, για παράδειγμα, μπορείτε να χρησιμοποιήσετε τις μεθόδους από αυτό το αρχείο για να ζητήσετε έναν ελεγκτή και να χρησιμοποιήσετε τα δεδομένα για να εκτελέσετε ένα ρομπότ Arduino αντί να το μεταφέρετε πίσω στον υπολογιστή. N64_Controller Αυτό είναι ένα έργο Επεξεργασίας 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, εκτός από το ότι το αναλογικό ραβδί ελέγχει το ποντίκι σας και όχι τα βέλη. Τα Α και Β είναι δεξί και αριστερό κλικ, αντίστοιχα. Για να ενεργοποιήσετε το ποντίκι, πατήστε το κουμπί έναρξης στο χειριστήριο.

Βήμα 3: Ρύθμιση έργου 64

Ρύθμιση έργου 64
Ρύθμιση έργου 64

Για να μπορέσετε να χρησιμοποιήσετε το χειριστήριο, το Arduino πρέπει να συνδεθεί και να εκτελέσει τον κώδικα που κατεβάσατε στο τελευταίο βήμα και η Επεξεργασία 1.0 πρέπει να είναι ανοιχτή με το πρόγραμμα N64_Controller να εκτελείται. Δοκιμάστε το στο Σημειωματάριο, πατώντας το κουμπί Α θα πρέπει να πληκτρολογήσετε ένα Α, το Β θα πρέπει να πληκτρολογήσετε ένα Β, κλπ. Έτσι, τώρα έχετε έναν ελεγκτή εργασίας (ελπίζουμε) και θέλετε να παίξετε μερικά παιχνίδια. Downl0ad PJ 64 -emu.com/downloads/ Ρυθμίστε τις αντιστοιχίσεις κλειδιών Ξεκινήστε το PJ 64 και ανοίξτε πρώτα το μενού ρυθμίσεων (Ctrl+T). Αλλάξτε τον ελεγκτή εισόδου στην άμεση είσοδο του N-Rage. Ανοίξτε το μενού "Διαμόρφωση προσθήκης ελεγκτή" και ορίστε τις αντιστοιχίσεις χρησιμοποιώντας το χειριστήριο. Ξεκινήστε την αναπαραγωγή! Θα πρέπει να είστε έτοιμοι να ξεκινήσετε τώρα! Κατεβάστε μερικές ROM και ξεκινήστε να απολαμβάνετε τον προσαρμογέα N64 του homebrew.

Βήμα 4: Κώδικας Arduino σε βάθος

Κώδικας Arduino σε βάθος
Κώδικας Arduino σε βάθος

Το πρωτόκολλο N64 Τα δυαδικά ψηφία που αποστέλλονται προς και από τον ελεγκτή N64 στη διασύνδεση ενός καλωδίου κωδικοποιούνται σε παλμούς πλάτους 4 μs. Το Α '0' είναι 3 μs χαμηλό και 1 μs υψηλό. Το Α '1' είναι 1 μs χαμηλό και 3 μs υψηλό. Ο κώδικας Arduino στις μεθόδους N64_send ή N64_receive χρησιμοποιεί πολύ προσεκτικά χρονομετρημένο κώδικα συναρμολόγησης που γράφτηκε από τον Andrew Brown για να κάνει bit-bang τη γραμμή δεδομένων για επικοινωνία με τον ελεγκτή. Τα μπλοκ nop χρησιμοποιούνται για να περιμένουν τις κατάλληλες ποσότητες μs πριν από την αναζήτηση της γραμμής αποστολής δεδομένων. Κατά την εκκίνηση, το 0x00 αποστέλλεται στον ελεγκτή και, στη συνέχεια, η μόνη εντολή που χρησιμοποιείται είναι 0x01 για ερώτηση για την κατάσταση του ελεγκτή. Κωδικοποίηση δεδομένων Όταν τα δεδομένα ληφθούν μετά από 0x01, φτάνουν ως 16 bit πληροφοριών κουμπιού και 16 bit από αναλογικές πληροφορίες χειριστηρίου. Τα δεδομένα θα μοιάζουν με 44000000000000000400044440044000444. Η μορφή των δυαδικών ψηφίων είναι: A, B, Z, Start, Dup, Ddown, Dleft, Dright, 0, 0, L, R, Cup, Cdown, Cleft, Cright + 16 bits of analog θέση ραβδιού. Η μέθοδος translate_raw_data () περνάει από τα 32 bits, εισάγοντάς τα στη δομή 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; } Αφού τα δεδομένα είναι σε αυτήν την απλή μορφή, είναι εύκολο να κάνετε ό, τι θέλετε με αυτό. Σε αυτήν την περίπτωση, απλώς αποστέλλεται μέσω της σειριακής θύρας στη μέθοδο βρόχου () ως μια σειρά δυαδικών δεδομένων με δύο ακέραιους αριθμούς για τις τιμές x και y. Τα δεδομένα που αποστέλλονται μέσω της σειριακής θύρας μπορεί να μοιάζουν με: 0400000000000400 63 -67, πράγμα που σημαίνει ότι πατήθηκαν δύο κουμπιά και το ραβδί ελέγχου ήταν 63, -67.

Βήμα 5: Αναφορές

βιβλιογραφικές αναφορές
βιβλιογραφικές αναφορές

Το έργο του Andrew Brown για τη δημιουργία ενός προσαρμογέα gamecube σε N64 με το Arduino ήταν ανεκτίμητο κατά την κωδικοποίηση αυτού του έργου:

Χρήσιμα σχήματα μπορείτε να βρείτε εδώ: https://www.raphnet.net/electronique/gc_n64_usb/index_en.php Πληροφορίες για το ιδιόκτητο πρωτόκολλο ελεγκτών N64 μπορείτε να βρείτε εδώ:

Συνιστάται: