
第8步启动程序
1. 如果你没有processing IDE,需要先下载,地址是:processing.org.
2.你还需要下载 oscP5 library,地址是:http://www.sojamo.de/libraries/oscP5/#installation
解压文件,将oscP5文件夹移动到目录 {C:\Users\[your user name]\Documents\Processing\libraries\}
3. 打开附件的代码运行。
Processing IDE运行方式和 Arduino IDE一样:File->open
4. 在Arduino IDE上为Arduino板选择COM接口,记住你的数字
Tools-> serial port-> COM?
5
//----------------------Arduino code-------------------------
int message = 0; // This will hold one byte of the serial message
int forwardPin = 12;
int forward = 0;
int leftPin = 9;
int left = 0;
int rightPin = 8;
int right = 0;
int downPin = 11;
int down = 0;
void setup() {
pinMode(rightPin, OUTPUT);
Serial.begin(9600); //set serial to 9600 baud rate
}
void loop(){
if (Serial.available() > 0) { // Check if there is a new message
message = Serial.read(); // Put the serial input into the message
if (message == 'U'){ // If a capitol R is received...
forward = 255; // Set forward to 255 (on)
}
if (message == 'u'){ // If a lowercase r is received...
forward = 0; // Set forward to 0 (off)
}
if (message == 'L'){//If capitol L is received..
left = 255;//set left to 255
}
if (message == 'u'){// If lowercase l is recieved...
left = 0;//set left to 0
}
if (message == 'R'){ // I think you get it
right = 255;
}
if (message == 'u'){
right = 0;
}
if (message == 'D'){
down = 255;
}
if (message == 'u'){
down = 0;
}
}
analogWrite(forwardPin, forward); // Write an analog value between 0-255analogWrite(leftpin,left);
analogWrite(leftPin, left);
analogWrite(rightPin, right);
analogWrite(downPin, down);
}import processing.serial.*;
import oscP5.*;
import netP5.*;
OscP5 oscP5;
int alphaValue;
Serial arduinoPort;
float v_push1 = 0.0f;
float v_push2 = 0.0f;
float v_push3 = 0.0f;
float v_push4 = 0.0f;
void setup() {
size(320,440);
frameRate(25);
arduinoPort = new Serial(this, "COM4", 9600);//change to the serial port arduino is on
/* start oscP5, listening for incoming messages at port 8000 */
oscP5 = new OscP5(this,8000);
}
void oscEvent(OscMessage theOscMessage) {
String addr = theOscMessage.addrPattern();
float val = theOscMessage.get(0).floatValue();
if(addr.equals("/1/push1")) { v_push1 = val; }
else if(addr.equals("/1/push2")) { v_push2 = val; }
else if(addr.equals("/1/push3")) { v_push3 = val; }
else if(addr.equals("/1/push4")) { v_push4 = val; }
}
void draw() {
background(0);
// fader5 + push 1-4 outlines
fill(0);
stroke(0, 196, 168);
rect(17,21,287,55);
rect(17,369,60,50);
rect(92,369,60,50);
rect(168,369,60,50);
rect(244,369,60,50);
// fader5 + push 1-4 fills
fill(0, 196, 168);
if(v_push1 == 1.0f) rect(22,374,50,40);
if(v_push2 == 1.0f) rect(97,374,50,40);
if(v_push3 == 1.0f) rect(173,374,50,40);
if(v_push4 == 1.0f) rect(249,374,50,40);
if(v_push1 == 1.0f) arduinoPort.write("U");
if(v_push1 == 0.0f) arduinoPort.write("u");
if(v_push2 == 1.0f) arduinoPort.write("D");
if(v_push2 == 0.0f) arduinoPort.write("d");
if(v_push3 == 1.0f) arduinoPort.write("L");
if(v_push3 == 0.0f) arduinoPort.write("l");
if(v_push4 == 1.0f) arduinoPort.write("R");
if(v_push4 == 0.0f) arduinoPort.write("r");
2 条记录 1/1 页
猜你会喜欢
自制廉价的iPhone全息投影
这个初音未来的全息3D投影是针对iPho...
TEM36温度传感器
非常容易解释什么是模拟温度传感器,它就是...
基于MK802的摄像头自动光源跟踪
基于MK802的摄像头自动光源跟踪,展示...
用Android和Arduino控制门锁
这次我制作一个简易的无线控制门锁,实现用...
Arduino加速度传感器与幻彩立方的互动
这篇文章介绍MM7361三轴加速度传感器...
















评 论
选择昵称后请轻按空格键
请勿进行人身攻击,谩骂以及任何违法国家相关法律法规的言论。