Table des matières:

Utiliser un Arduino avec un contrôleur N64 : 5 étapes (avec photos)
Utiliser un Arduino avec un contrôleur N64 : 5 étapes (avec photos)

Vidéo: Utiliser un Arduino avec un contrôleur N64 : 5 étapes (avec photos)

Vidéo: Utiliser un Arduino avec un contrôleur N64 : 5 étapes (avec photos)
Vidéo: 📚APPRENDRE ARDUINO : Les Bases de la Programmation🦾 | Pour les Débutants👨‍💻 2024, Novembre
Anonim
Utiliser un Arduino avec un contrôleur N64
Utiliser un Arduino avec un contrôleur N64

Il existe des tutoriels pour utiliser un contrôleur NES avec un Arduino, mais l'utilisation du contrôleur N64 plus compliqué et de son joystick analogique a un attrait certain. Si vous avez un Arduino et que vous ne voulez pas acheter un Adaptoid, cette instructable permettra de jouer à des jeux émulés dans Project 64 avec votre Ardunio et un contrôleur N64. Est-ce difficile ? / Est-ce que ça va endommager mes affaires ? Cela ne modifiera en rien votre manette, et le câblage est extrêmement simple, donc si vous faites tout avec soin il ne devrait y avoir aucun risque pour votre manette, et vous pouvez la décrocher à tout moment pour l'utiliser avec une console N64. besoin:Arduino - $30Processing 1.0 - logiciel gratuit Arduino - 3 morceaux de fil gratuits - câble USB gratuit (j'espère)

Étape 1: Câblage du contrôleur

Câblage du contrôleur
Câblage du contrôleur
Câblage du contrôleur
Câblage du contrôleur
Câblage du contrôleur
Câblage du contrôleur

La première chose que vous devez faire est de connecter votre Arduino au contrôleur. Le contrôleur n'utilise que trois fils: +3,3 V, signal et masse. En regardant directement la prise, la masse est la plus à gauche, le signal est au milieu et +3,3 V est à droite. À l'aide du fil, connectez la terre et +3,3 V aux broches respectives de l'Arduino et connectez le fil de signal à la broche Digital 2 de l'Ardunio. REMARQUE: si vous avez un autre code sur votre Arduino, vous devez déconnecter le contrôleur et télécharger le nouveau code de la page suivante à l'Arduino avant de l'allumer avec le contrôleur connecté. Connectez l'Arduino Connectez le câble USB et l'Arduino sera alimenté.

Étape 2: Décompressez et exécutez le code

Ce code a été écrit par moi, avec des parties du fichier N64_Arduino basé sur le code d'assemblage écrit par Andrew Brown. Archives ZIP: Les deux fichiers Zip ci-dessous contiennent le code nécessaire pour exécuter l'Arduino puis pour interpréter les données qu'il envoie à l'ordinateur. Le fichier N64_Arduino doit être compilé dans l'IDE Arduino et le N64_Controller s'exécute dans Processing 1.0. N64_Arduino Ce fichier PDE doit être téléchargé sur votre Arduino et s'exécuter sans problème si tout est correctement connecté. Il interroge simplement le contrôleur N64 pour les données sur les boutons et le stick analogique et les renvoie à l'ordinateur via le port série. Il est assez facile à modifier, par exemple, vous pouvez utiliser les méthodes de ce fichier pour interroger un contrôleur et utiliser les données pour exécuter un robot Arduino au lieu de le transmettre à l'ordinateur. N64_Controller Il s'agit d'un projet Processing 1.0 qui prend le données transmises par l'Arduino et les convertit en pressions de clavier que vous pouvez mapper à un émulateur comme Project 64. Vous devrez peut-être modifier la ligne String portName = Serial.list ()[1]; pour correspondre à votre Arduino, il doit être soit Serial.list()[0]; Serial.list ()[1]; ou Serial.list()[2]; EDIT: ajoutez « import java.awt. Robot; » « import java.awt. AWTException; » "import java.awt.event. InputEvent;" dans le code si vous utilisez Processing 1.1N64_Controller_mouse C'est la même chose que N64_Controller, sauf que le stick analogique contrôle votre souris, pas les touches fléchées. A et B sont respectivement des clics droit et gauche. Pour activer la souris, appuyez sur le bouton de démarrage de votre manette.

Étape 3: Configurer le projet 64

Configurer le projet 64
Configurer le projet 64

Avant de pouvoir utiliser le contrôleur, l'Arduino doit être connecté et exécuter le code que vous avez téléchargé à la dernière étape, et Processing 1.0 doit être ouvert avec le programme N64_Controller en cours d'exécution. Testez-le dans le Bloc-notes, appuyez sur le bouton A pour taper un A, B pour taper un B, etc. Vous avez donc maintenant un contrôleur fonctionnel (espérons-le) et vous voulez jouer à quelques jeux. Downl0ad PJ 64https://www.pj64 -emu.com/downloads/Set Key MappingsDémarrez PJ 64 et ouvrez d'abord le menu des paramètres (Ctrl+T). Changez le contrôleur d'entrée en entrée directe de N-Rage. Ouvrez le menu "Configurer le plug-in du contrôleur" et définissez les mappages à l'aide du contrôleur. Commencez à jouer ! Vous devriez être prêt à partir maintenant ! Téléchargez des ROM et commencez à profiter de votre adaptateur homebrew N64.

Étape 4: Code Arduino en profondeur

Code Arduino en profondeur
Code Arduino en profondeur

Le protocole N64 Les bits envoyés vers et depuis le contrôleur N64 sur l'interface à un fil sont codés en impulsions de 4 µs de large. Un '0' est 3 µs bas et 1 µs haut. Un '1' correspond à 1 µs de bas et 3 µs de haut. Le code Arduino dans les méthodes N64_send ou N64_receive utilise un code d'assemblage très soigneusement chronométré écrit par Andrew Brown pour exploser la ligne de données afin de communiquer avec le contrôleur. Les blocs nop sont utilisés pour attendre les quantités appropriées de µs avant d'interroger la ligne d'envoi de données. Au démarrage, 0x00 est envoyé au contrôleur, puis la seule commande utilisée est 0x01 pour demander l'état du contrôleur. Codage des données Lorsque les données sont reçues après un 0x01, elles arrivent sous forme de 16 bits d'informations de bouton et 16 bits de informations sur le joystick analogique. Les données ressembleraient à 440000000000004000444400440000444. Le format des bits est: A, B, Z, Start, Dup, Ddown, Dleft, Dright, 0, 0, L, R, Cup, Cdown, Cleft, Cright + 16 bits d'analogique position du bâton. La méthode translate_raw_data() parcourt les 32 bits, les insérant dans la struct N64_status. Les 16 premiers bits sont simples 1 ou 0, mais les 16 derniers sont traduits en un entier approximativement dans la plage (-80, 80) par for (i=0; i<8; i++) { N64_status.stick_x |= N64_raw_dump[16+i] ? (0x80 >> je): 0; } Une fois que les données sont sous cette forme simple, il est facile d'en faire ce que vous voulez. Dans ce cas, il est simplement envoyé sur le port série dans la méthode loop() sous la forme d'une chaîne de données binaires avec deux entiers pour les valeurs x et y. Les données envoyées via le port série pourraient ressembler à: 0400000000000400 63 -67, ce qui signifierait que deux boutons ont été enfoncés et que le manche de commande était à 63, -67.

Étape 5: Références

Les références
Les références

Le projet d'Andrew Brown de créer un adaptateur gamecube vers N64 avec l'Arduino a été inestimable lors du codage de ce projet:

Des schémas utiles peuvent être trouvés ici: https://www.raphnet.net/electronique/gc_n64_usb/index_en.php Des informations sur le protocole propriétaire des contrôleurs N64 peuvent être trouvées ici:

Conseillé: