Sử dụng Bộ điều khiển Nintendo NES cũ làm thiết bị đầu vào


7

Có ai có sơ đồ chân cho Bộ điều khiển Nintendo NES không? Tôi muốn kết nối bộ điều khiển NES với Arduino.


3
trừ khi bạn muốn thử tìm nguồn cung cấp kết nối giao phối cho phích cắm NES bất thường đó, tại sao phải lo lắng về sơ đồ chân? Có lẽ tôi đã cắt phích cắm ban đầu và thay thế nó bằng DB-9 và nối dây cho phù hợp.
JustJeff

Câu trả lời:




6

Đây là một trang khác với một số thông tin hữu ích , bao gồm một sơ đồ tín hiệu.

          +----> Power  (white)
          |
5 +---------+  7    
  | x  x  o   \     
  | o  o  o  o |    
4 +------------+ 1  
    |  |  |  |
    |  |  |  +-> Ground (brown)
    |  |  +----> Pulse  (red)
    |  +-------> Latch  (orange)
    +----------> Data   (yellow)

6

Tôi tìm thấy một bài viết tuyệt vời về Hack-A-Day lấy lại nhiệm vụ của bạn. Bài viết này là về việc kết nối bộ điều khiển SNES với Android sử dụng Arduino. Để tiết kiệm cho bạn một số rắc rối của việc sàng lọc thông qua bài viết, tôi đã tìm thấy mã được liên kết mà họ đã trích dẫn:

Mã này sử dụng bộ điều khiển NES cũ của năm 1980 để điều khiển servo và đèn LED với Arduino. Với mã này, phần đệm 'lên' biến một servo thành 180 độ, 'bên phải' biến nó thành 90 và 'xuống' biến nó thành 0 độ. Ngoài ra, các nút A và B bật và tắt đèn LED. Bạn có thể nhận được bộ điều khiển NES từ ebay với giá dưới 10 đô la Dưới đây là bản vẽ thô của phích cắm bộ điều khiển, bốn lỗ ở một bên, ba lỗ ở mặt khác.


                       0 - 0v (mặt đất)
      + 5V --- 0 0 --CLOCK   
  không có gì --- 0 0 - CUỐI  
  không có gì --- 0 0 - NGOÀI RA 

Bạn chỉ có thể dán dây vào các lỗ cắm bộ điều khiển để tạo mẫu. +5 được kết nối với Arduino +5 Ground to Arduino Ground Latch đi đến Pin 2 (với mã này) Đồng hồ đến Pin 3 Nối tiếp với Pin 4

Đường dữ liệu servo được kết nối với Chân 10 và đèn LED ở Chân 11.

Nếu bạn muốn xem đầu vào bộ điều khiển trên màn hình nối tiếp thì chỉ cần mở màn hình nối tiếp. Nó sẽ cho bạn thấy các số nhị phân đến từ bộ điều khiển. Mỗi nút có số nhị phân riêng. 'Lên' là 11110111, ví dụ. Tôi đã bao gồm // mã serial.println ẩn sẽ hiển thị "Nút đã được nhấn" nếu bạn nhấn nút bắt đầu. Chỉ cần xóa '//' nếu bạn muốn sử dụng nó. Phích cắm SNES thì khác, bạn quan tâm đến việc bạn sẽ phải tìm nơi khác để biết thông tin về đồng hồ, chốt, nối tiếp.

Trích dẫn:

/* INITIALIZATION */
#include <ServoTimer1.h>
ServoTimer1 servo1;

int latch = 2; // set the latch pin
int clock = 3; // set the clock pin
int datin = 4;// set the data in pin
byte controller_data = 0;
int ledpin = 11;


/* SETUP */
void setup() {
Serial.begin(57600);
pinMode(latch,OUTPUT);
pinMode(clock,OUTPUT);
pinMode(datin,INPUT);
pinMode(ledpin, OUTPUT);

digitalWrite(latch,HIGH);
digitalWrite(clock,HIGH);

servo1.attach(10);

}

/* THIS READS DATA FROM THE CONTROLLER */
void controllerRead() {
controller_data = 0;
digitalWrite(latch,LOW);
digitalWrite(clock,LOW);

digitalWrite(latch,HIGH);
delayMicroseconds(2);
digitalWrite(latch,LOW);

controller_data = digitalRead(datin);

for (int i = 1; i <= 7; i ++) {
digitalWrite(clock,HIGH);
delayMicroseconds(2);
controller_data = controller_data << 1;
controller_data = controller_data + digitalRead(datin) ;
delayMicroseconds(4);
digitalWrite(clock,LOW);
}

}

/* THE LED, SERVO, AND SERIAL MONITOR PROGRAM */
void loop() {
controllerRead();
Serial.println(controller_data, BIN);

// if (controller_data==B11101111){
  // Serial.println("Button has been Pressed");   
   //}  else {
   //Serial.println("Button not pressed");
   //}

//for REFERENCE:  
//UP = 11110111
//DOWN=11111011
//LEFT=11111101
//RIGHT=11111110
//SELECT=11011111
//START=11101111
//A=01111111
//B=10111111

if (controller_data==B01111111){
 digitalWrite(ledpin, HIGH);   
 }

if (controller_data==B10111111){
 digitalWrite(ledpin, LOW);
}

if (controller_data==B11110111){
 servo1.write(180);
}  

if (controller_data==B11111011){
 servo1.write(0);
}

if (controller_data==B11111110){
 servo1.write(90);
}

delay(100);
}

Arduino SNES hướng dẫn

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.