Instruction video :
Make an Arduino based game controller
Arduino Script:
// Monkey Game controller - By Jee Van Kur is not a Monkey ;)
const int button[] = {10, 11, 12}; // pins
int i = 0;
void setup() {
Serial.begin(9600);
while(i<3) // define pins
{
pinMode(button[i], INPUT);
digitalWrite(button[i], HIGH);
i++;
}
}
void loop(){
int sum = 0;
for(i=0;i<3;i++)
const int button[] = {10, 11, 12}; // pins
int i = 0;
void setup() {
Serial.begin(9600);
while(i<3) // define pins
{
pinMode(button[i], INPUT);
digitalWrite(button[i], HIGH);
i++;
}
}
void loop(){
int sum = 0;
for(i=0;i<3;i++)
{
if(digitalRead(button[i]) == LOW)
sum += (i+1)*pow(2, i); // sum up the pressed button indexes
}
Serial.println(sum); // print value
delay(50);
}
// I am of no use without processing
if(digitalRead(button[i]) == LOW)
sum += (i+1)*pow(2, i); // sum up the pressed button indexes
}
Serial.println(sum); // print value
delay(50);
}
// I am of no use without processing
Processing Script:
import processing.serial.*;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import javax.swing.KeyStroke;
import java.io.IOException;
Serial MyPort;
String KeyString = "";
void setup()
{
size(700, 500);
MyPort = new Serial(this, "COM4", 9600);// My Arduino is on COM4. Enter the COM on which your Arduino talks.
MyPort.bufferUntil('\n');
}
void draw(){
background(0, 0, 0);
fill(255, 0, 0);
text("Console Connected !", 200, 175);
}
void serialEvent(Serial MyPort)throws Exception {
KeyString = MyPort.readStringUntil('\n');
float num = float(KeyString);
int sum = int(num);
System.out.println(sum);//prints the value for debugging purpose
Robot Arduino = new Robot();//Constructor of robot class
switch(sum){
case 0 : // none is pressed
{
delay(40);
Arduino.keyRelease(KeyEvent.VK_UP);
Arduino.keyRelease(KeyEvent.VK_RIGHT);
Arduino.keyRelease(KeyEvent.VK_LEFT);
break;
}
case 1 : // left
{
delay(40);
Arduino.keyPress(KeyEvent.VK_LEFT);
Arduino.keyRelease(KeyEvent.VK_UP);
Arduino.keyRelease(KeyEvent.VK_RIGHT);
break;
}
case 4 : // up
{
delay(40);
Arduino.keyPress(KeyEvent.VK_UP);//presses up key.
Arduino.keyRelease(KeyEvent.VK_LEFT);
Arduino.keyRelease(KeyEvent.VK_RIGHT);
break;
}
case 5 : // left + up
{
delay(40);
Arduino.keyPress(KeyEvent.VK_UP);//presses up key.
Arduino.keyPress(KeyEvent.VK_LEFT);//presses up key.
Arduino.keyRelease(KeyEvent.VK_RIGHT);
break;
}
case 11 : // right
{
delay(40);
Arduino.keyPress(KeyEvent.VK_RIGHT);//presses up key.
Arduino.keyRelease(KeyEvent.VK_UP);
Arduino.keyRelease(KeyEvent.VK_LEFT);
break;
}
case 12 : // left + right
{
delay(40);
Arduino.keyPress(KeyEvent.VK_RIGHT);//presses up key.
Arduino.keyRelease(KeyEvent.VK_UP);
Arduino.keyPress(KeyEvent.VK_LEFT);
break;
}
case 15 : // up + right
{
delay(40);
Arduino.keyPress(KeyEvent.VK_RIGHT);//presses up key.
Arduino.keyPress(KeyEvent.VK_UP);
Arduino.keyRelease(KeyEvent.VK_LEFT);
break;
}
case 16 : // left + up + right
{
delay(40);
Arduino.keyPress(KeyEvent.VK_RIGHT);//presses up key.
Arduino.keyPress(KeyEvent.VK_UP);
Arduino.keyPress(KeyEvent.VK_LEFT);
break;
}
}
}
// Export me if I am working fine
Make your own game controllers and have fun. Also post a pic in the comments if you make one.. would love to see it..

hi can i get the processing script
ReplyDelete