Go Down

Topic: Arduino Nes controller, Please Help! (Read 8 times) previous topic - next topic

Craftee

Feb 01, 2013, 05:26 am Last Edit: Feb 01, 2013, 05:33 am by Craftee Reason: 1
So i came across this project i wanted to do, but i know nothing about code and im getting a bunch to errors. heres the original link
(i have Leonardo and im using 1.0.3)

http://www.instructables.com/id/USB-NES-controller-with-an-arduino/

And heres the code for the arduino

Code: [Select]
const int latch = 2;
const int clock = 3;
const int data  = 4;

#define latchlow digitalWrite(latch, LOW)
#define latchhigh digitalWrite(latch, HIGH)
#define clocklow digitalWrite(clock, LOW)
#define clockhigh digitalWrite(clock, HIGH)
#define dataread digitalRead(data)
#define wait delayMicroseconds(200)

byte output;

void setup() {
Serial.begin(9600);
pinMode(latch, OUTPUT);
       pinMode(clock, OUTPUT);
       pinMode(data, INPUT);
}

void loop() {
 output = 0;
 ReadNESjoy();
 Serial.print(output, BYTE);
}


void ReadNESjoy() {
 latchlow;
 clocklow;
 latchhigh;
 wait;
 latchlow;
 for (int i = 0; i < 8; i++) {
    clockhigh;
    wait;
    output += dataread * (1 << i);
    clocklow;
    wait;
 }
}


It says "BYTE" is no longer used



And heres the code for Processing, idk what it is. (first time using arduino, or any code for that matter and yes i did look around to find any solutions..... none)

Code: [Select]
import processing.serial.*;
import java.awt.*;

Serial arduino;

Robot VKey;

PImage bgImage;

char recvout;
char prevout;
char deltaout;

void setup() {
 size(434,180);
 frameRate(30);
 println(Serial.list());
 arduino = new Serial(this, Serial.list()[1], 9600); // ATTENTION!!!
 bgImage = loadImage("NEScontroller.jpg");
 try
 {
   VKey = new Robot();
 }
 catch(AWTException a){}
 prevout = 0;
}

void draw() {
 if (bgImage != null) { background(bgImage); }
 fill(255, 255, 0);
 serialRead();
 deltaout = (char)((int)recvout ^ (int)prevout);
 emulateKeyboard();
 prevout = recvout;
}

void serialRead() {
 while (arduino.available() > 0) {
   recvout = arduino.readChar();
 }
}

void emulateKeyboard() {
 if ((deltaout & 1  ) == 1  ) { if ((recvout & 1  ) == 1  ) {VKey.keyPress(KeyEvent.VK_L);} else {VKey.keyRelease(KeyEvent.VK_L);}}
 if ((deltaout & 2  ) == 2  ) { if ((recvout & 2  ) == 2  ) {VKey.keyPress(KeyEvent.VK_K);} else {VKey.keyRelease(KeyEvent.VK_K);}}
 if ((deltaout & 4  ) == 4  ) { if ((recvout & 4  ) == 4  ) {VKey.keyPress(KeyEvent.VK_G);} else {VKey.keyRelease(KeyEvent.VK_G);}}
 if ((deltaout & 8  ) == 8  ) { if ((recvout & 8  ) == 8  ) {VKey.keyPress(KeyEvent.VK_H);} else {VKey.keyRelease(KeyEvent.VK_H);}}
 if ((deltaout & 16 ) == 16 ) { if ((recvout & 16 ) == 16 ) {VKey.keyPress(KeyEvent.VK_W);} else {VKey.keyRelease(KeyEvent.VK_W);}}
 if ((deltaout & 32 ) == 32 ) { if ((recvout & 32 ) == 32 ) {VKey.keyPress(KeyEvent.VK_S);} else {VKey.keyRelease(KeyEvent.VK_S);}}
 if ((deltaout & 64 ) == 64 ) { if ((recvout & 64 ) == 64 ) {VKey.keyPress(KeyEvent.VK_A);} else {VKey.keyRelease(KeyEvent.VK_A);}}
 if ((deltaout & 128) == 128) { if ((recvout & 128) == 128) {VKey.keyPress(KeyEvent.VK_D);} else {VKey.keyRelease(KeyEvent.VK_D);}}
}


It says "import" is not used or something like that

Here are the files where i got the code from
http://www.instructables.com/files/orig/F2U/W6FP/GVXHOG2Y/F2UW6FPGVXHOG2Y.zip

if you could help me, i would highly appreciate it
thanks to anyone who answers :D

Craftee

#1
Feb 01, 2013, 05:40 am Last Edit: Feb 01, 2013, 05:53 am by Craftee Reason: 1
So i came across this project i wanted to do, but i know nothing about code and im getting a bunch to errors. heres the original link
(i have Leonardo and im using 1.0.3)

http://www.instructables.com/id/USB-NES-controller-with-an-arduino/

And heres the code for the arduino

Code: [Select]
const int latch = 2;
const int clock = 3;
const int data  = 4;

#define latchlow digitalWrite(latch, LOW)
#define latchhigh digitalWrite(latch, HIGH)
#define clocklow digitalWrite(clock, LOW)
#define clockhigh digitalWrite(clock, HIGH)
#define dataread digitalRead(data)
#define wait delayMicroseconds(200)

byte output;

void setup() {
Serial.begin(9600);
pinMode(latch, OUTPUT);
       pinMode(clock, OUTPUT);
       pinMode(data, INPUT);
}

void loop() {
 output = 0;
 ReadNESjoy();
 Serial.print(output, BYTE);
}


void ReadNESjoy() {
 latchlow;
 clocklow;
 latchhigh;
 wait;
 latchlow;
 for (int i = 0; i < 8; i++) {
    clockhigh;
    wait;
    output += dataread * (1 << i);
    clocklow;
    wait;
 }
}


It says "BYTE" is no longer used



And heres the code for Processing, idk what it is. (first time using arduino, or any code for that matter and yes i did look around to find any solutions..... none)

Code: [Select]
import processing.serial.*;
import java.awt.*;

Serial arduino;

Robot VKey;

PImage bgImage;

char recvout;
char prevout;
char deltaout;

void setup() {
 size(434,180);
 frameRate(30);
 println(Serial.list());
 arduino = new Serial(this, Serial.list()[1], 9600); // ATTENTION!!!
 bgImage = loadImage("NEScontroller.jpg");
 try
 {
   VKey = new Robot();
 }
 catch(AWTException a){}
 prevout = 0;
}

void draw() {
 if (bgImage != null) { background(bgImage); }
 fill(255, 255, 0);
 serialRead();
 deltaout = (char)((int)recvout ^ (int)prevout);
 emulateKeyboard();
 prevout = recvout;
}

void serialRead() {
 while (arduino.available() > 0) {
   recvout = arduino.readChar();
 }
}

void emulateKeyboard() {
 if ((deltaout & 1  ) == 1  ) { if ((recvout & 1  ) == 1  ) {VKey.keyPress(KeyEvent.VK_L);} else {VKey.keyRelease(KeyEvent.VK_L);}}
 if ((deltaout & 2  ) == 2  ) { if ((recvout & 2  ) == 2  ) {VKey.keyPress(KeyEvent.VK_K);} else {VKey.keyRelease(KeyEvent.VK_K);}}
 if ((deltaout & 4  ) == 4  ) { if ((recvout & 4  ) == 4  ) {VKey.keyPress(KeyEvent.VK_G);} else {VKey.keyRelease(KeyEvent.VK_G);}}
 if ((deltaout & 8  ) == 8  ) { if ((recvout & 8  ) == 8  ) {VKey.keyPress(KeyEvent.VK_H);} else {VKey.keyRelease(KeyEvent.VK_H);}}
 if ((deltaout & 16 ) == 16 ) { if ((recvout & 16 ) == 16 ) {VKey.keyPress(KeyEvent.VK_W);} else {VKey.keyRelease(KeyEvent.VK_W);}}
 if ((deltaout & 32 ) == 32 ) { if ((recvout & 32 ) == 32 ) {VKey.keyPress(KeyEvent.VK_S);} else {VKey.keyRelease(KeyEvent.VK_S);}}
 if ((deltaout & 64 ) == 64 ) { if ((recvout & 64 ) == 64 ) {VKey.keyPress(KeyEvent.VK_A);} else {VKey.keyRelease(KeyEvent.VK_A);}}
 if ((deltaout & 128) == 128) { if ((recvout & 128) == 128) {VKey.keyPress(KeyEvent.VK_D);} else {VKey.keyRelease(KeyEvent.VK_D);}}
}


it says   'import' does not name a type

Here are the files where i got the code from
http://www.instructables.com/files/orig/F2U/W6FP/GVXHOG2Y/F2UW6FPGVXHOG2Y.zip

if you could help me, i would highly appreciate it
thanks to anyone who answers :D

JimboZA

Quote
not used or something like that


You're not going to get many responses to a question something like that
No PMs for help please. Not active on this forum any more.

Craftee


Quote
not used or something like that


You're not going to get many responses to a question something like that


It says exactly

Code: [Select]
'import' does not name a type

PaulS

Are you trying to compile the Processing sketch in the Arduino IDE? That's exactly the error I get when I try that.

A visit to http://processing.org is in your future.

Nick Gammon

Please do not cross-post. This wastes time and resources as people attempt to answer your question on multiple threads.

Threads merged.

- Moderator
Please post technical questions on the forum, not by personal message. Thanks!

More info:
http://www.gammon.com.au/electronics

Craftee


Please do not cross-post. This wastes time and resources as people attempt to answer your question on multiple threads.

Threads merged.

- Moderator



D: sorry, i wasnt getting any responses so i expanded my search :( forgive me


also, how do i fix the "BYTE" problem?(i have no clue as to what im doing)

Craftee


Are you trying to compile the Processing sketch in the Arduino IDE? That's exactly the error I get when I try that.

A visit to http://processing.org is in your future.


I downloaded it and rand the thing through processing, but now i get
Code: [Select]
cannot find anything named "KeyEvent.VK_L"

Craftee

so i have this old peice of code here, and i get an error saying "The 'BYTE' keyword is no longer supported" so what do i use instead? please help!

Code: [Select]
const int latch = 2;
const int clock = 3;
const int data  = 4;

#define latchlow digitalWrite(latch, LOW)
#define latchhigh digitalWrite(latch, HIGH)
#define clocklow digitalWrite(clock, LOW)
#define clockhigh digitalWrite(clock, HIGH)
#define dataread digitalRead(data)
#define wait delayMicroseconds(200)

byte output;

void setup() {
Serial.begin(9600);
pinMode(latch, OUTPUT);
       pinMode(clock, OUTPUT);
       pinMode(data, INPUT);
}

void loop() {
 output = 0;
 ReadNESjoy();
 Serial.print(output, BYTE);
}


void ReadNESjoy() {
 latchlow;
 clocklow;
 latchhigh;
 wait;
 latchlow;
 for (int i = 0; i < 8; i++) {
    clockhigh;
    wait;
    output += dataread * (1 << i);
    clocklow;
    wait;
 }
}

AWOL

Topics merged.
Please don't start a new thread on the same subject.

Look up "Serial.write".
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Craftee


Topics merged.
Please don't start a new thread on the same subject.

Look up "Serial.write".


i did look it up, telling me "look up serial.write" doesnt tell me anything. i think as a moderator you could help? jeeze

Craftee

and i get an answer already? so i can move on with my life? seriously why do i have to wait so long for a legit response?

AWOL

Four minutes to a bump post?

Quote
"look up serial.write" doesnt tell me anything.

How am I supposed to know that?

Quote
i think as a moderator you could help?

I saved you the embarrassment of having your cross-posting reported as a violation of forum rules, didn't I?
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Craftee


Four minutes to a bump post?

Quote
"look up serial.write" doesnt tell me anything.

How am I supposed to know that?

Quote
i think as a moderator you could help?

I saved you the embarrassment of having your cross-posting reported as a violation of forum rules, didn't I?


... talk about policing, is this where i come to get help? or is it a place for forum moderators to do their job?

AWOL

I'm a janitor, not a policeman.

I clean up after untidy posters.
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Go Up