Code
Sorry for the late respnse ezekiel181 and electrictape22, but you’re still intrested here is the code.
It’s pretty sloppy programmed, there are no comments and variable names are in dutch but here you go:
-------------------------------------------------------------------------
Arduino code:
#include <SoftwareServo.h>
SoftwareServo servo1;
SoftwareServo servo2;
SoftwareServo servo3;
int servo1Pos = 90;
int servo2Pos = 90;
int servo3Pos = 90;
int servo1Afwijking = -2;
int servo2Afwijking = 8;
int servo3Afwijking = 8;
int data = 0;
void setup(){
pinMode(13, OUTPUT);
servo1.attach(10);
servo2.attach(11);
servo3.attach(12);
//pinmode
Serial.begin(115200);
}
void loop(){
if (Serial.available() > 0) {
// read the incoming byte:
data = Serial.read();
if (data == 255){
delay(7);
if (Serial.available() > 0) {
servo1Pos = Serial.read();
}
}
if (data == 254){
delay(7);
if (Serial.available() > 0) {
servo2Pos = Serial.read();
}
}
if (data == 253){
delay(7);
if (Serial.available() > 0) {
servo3Pos = Serial.read();
}
serialTeller = 0;
} else {
serialTeller++;
}
if (serialTeller >1000){
servo1Pos = 90;
servo2Pos = 90;
servo3Pos = 90;
}
if (serialTeller < 2000){
SoftwareServo::refresh();
}
}
if (servo1Pos < 30){
servo1Pos = 30;
}
if (servo2Pos < 30){
servo2Pos = 30;
}
if (servo3Pos < 30){
servo3Pos = 30;
}
if (servo1Pos > 130){
servo1Pos = 130;
}
if (servo2Pos > 130){
servo2Pos = 130;
}
if (servo3Pos > 130){
servo3Pos = 130;
}
servo1.write(servo1Pos-servo1Afwijking);
servo2.write(servo2Pos-servo2Afwijking);
servo3.write(servo3Pos-servo3Afwijking);
}
-------------------------------------------------------------------------
Precessing code:
import processing.serial.*;
Serial myPort; // The serial port:
int servo1 = 0;
int servo2 = 0;
int servo3 = 0;
int serialBegin = 255;
void setup() {
size(600,600);
myPort = new Serial(this, Serial.list()[1], 115200);
frameRate(100);
noCursor();
}
void draw() {
background(255);
triangle(width/2, height, 0, 200, width, 200);
servo1 = 100-int(dist(width/2,0,mouseX,mouseY)/6);
servo2 = 100-int(dist(0,height,mouseX,mouseY)/6);
servo3 = 100-int(dist(width,height,mouseX,mouseY)/6);
strokeWeight(3);
line(300,200,mouseX,mouseY);
line(150,400,mouseX,mouseY);
line(450,400,mouseX,mouseY);
println("X "+mouseX);
println("Y "+mouseY);
if (servo1 < 0){
servo1=0;
}
if (servo2 <0){
servo2=0;
}
if (servo3 <0){
servo3=0;
}
if (mousePressed && (mouseButton == LEFT)) {
servo1 -= 20;
servo2 -= 20;
servo3 -= 20;
}
if (mousePressed && (mouseButton == RIGHT)) {
servo1 += 40;
servo2 += 40;
servo3 += 40;
}
//println("servo1 "+servo1);
//println("servo2 "+servo2);
//println("servo3 "+servo3);
//Serial.write
myPort.write(255);
//delay(10);
myPort.write(servo1+30);
//delay(10);
myPort.write(254);
//delay(10);
myPort.write(servo2+30);
//delay(10);
myPort.write(253);
//delay(10);
myPort.write(servo3+30);
//delay(10);
}