秋月電子のアナログジョイスティックDIP化キットをArduinoとProcessingで使ってみた
- 2018/05/08
- 23:07
Analog Joystick on Arduino x Processing
RoboTakaoです。ようこそ「極力ローコスト ロボット製作 ブログ」にお越しくださいました。
Hello everyone! I’m RoboTakao. Welcome to my robot blog.
今回は先日買った秋月電子通商のアナログジョイスティックDIP化キット(K-10263) をArduinoにつなげつつ、X、Y軸のデータをProcessingに送って、キューブを動かしたいと思います。
In this time, I try to control the cube on Processing by data from Arduino with analog Joystick.

ジョイスティックの仕様図 Joystick specification sheet
http://akizukidenshi.com/download/JT8P-3.2T-B10K-1-16Y.pdf

結線図 Connection

動作結果 Results
ジィスティックを動かすとProcessing上のキューブを動かすことができました。
I can control the cube on Processing by Arduino from motion of the Joystick.
Arduinoのスケッチ Sketch of Arduino
int joy_x = 0;
int joy_y = 1;
int val0,val1;
void setup() {
Serial.begin(9600);
}
void loop() {
val0 = analogRead(joy_x);
val1 = analogRead(joy_y);
Serial.print("s,");
Serial.print(val0, DEC);
Serial.print(',');
Serial.print(val1, DEC);
Serial.print(',');
delay(50);
}
Processingのコード Code of Processing
import processing.serial.*;
Serial myPort; // Create object from Serial class
String datline;
int Xaxis = 0;
int Yaxis = 0;
void setup() {
size(800, 800, P3D);
frameRate(30);
noStroke();
colorMode(RGB, 1);
// Serial Port
myPort = new Serial(this, "/dev/cu.usbserial-A104WMBI", 9600);
}
void draw() {
background(0.5);
pushMatrix();
translate(width / 2 + Xaxis, height / 2 - Yaxis, -30);
char datline_c;
datline = "";
int i=0;
while(i < 3){
if ( myPort.available() > 0){
datline_c = myPort.readChar();
if(datline_c=='s'){
i=0;
datline = "";
}
if(datline_c==',') i++;
datline = datline + datline_c;
}
print();
}
int[] splitdata = int(datline.split(","));
println(datline);
println(splitdata[1]);
println(splitdata[2]);
Xaxis = (int(splitdata[1])-512)/2;
Yaxis = -(int(splitdata[2])-512)/2;
println(Xaxis);
println(Yaxis);
scale(100);
beginShape(QUADS);
fill(0, 1, 1);
vertex(-1, 1, 1);
fill(1, 1, 1);
vertex( 1, 1, 1);
fill(1, 0, 1);
vertex( 1, -1, 1);
fill(0, 0, 1);
vertex(-1, -1, 1);
fill(1, 1, 1);
vertex( 1, 1, 1);
fill(1, 1, 0);
vertex( 1, 1, -1);
fill(1, 0, 0);
vertex( 1, -1, -1);
fill(1, 0, 1);
vertex( 1, -1, 1);
fill(1, 1, 0);
vertex( 1, 1, -1);
fill(0, 1, 0);
vertex(-1, 1, -1);
fill(0, 0, 0);
vertex(-1, -1, -1);
fill(1, 0, 0);
vertex( 1, -1, -1);
fill(0, 1, 0);
vertex(-1, 1, -1);
fill(0, 1, 1);
vertex(-1, 1, 1);
fill(0, 0, 1);
vertex(-1, -1, 1);
fill(0, 0, 0);
vertex(-1, -1, -1);
fill(0, 1, 0);
vertex(-1, 1, -1);
fill(1, 1, 0);
vertex( 1, 1, -1);
fill(1, 1, 1);
vertex( 1, 1, 1);
fill(0, 1, 1);
vertex(-1, 1, 1);
fill(0, 0, 0);
vertex(-1, -1, -1);
fill(1, 0, 0);
vertex( 1, -1, -1);
fill(1, 0, 1);
vertex( 1, -1, 1);
fill(0, 0, 1);
vertex(-1, -1, 1);
endShape();
popMatrix();
}
それでは今回はこのへんで失礼します。
Good bye!
スポンサードリンク