Hola
estoy haciendo un proyecto para poder controlar unos servo motores con processing y arduino
pero estoy teniendo problemas con algo nuevo que añadi, lo que pasa es que ahora añadí un boton para que no me “ejecute” de golpe las posiciones de los servos si no que primero yo ponga las nuevas posiciones y luego yo oprima el boton para que las ejecute pero aun no se como, alguna idea?
a aqui les dejo mi código
import processing.serial.*;
import cc.arduino.*;
import controlP5.*;
Arduino arduino;
ControlP5 cp5;
PFont font;
Serial port;
Slider Servo1;
Slider Servo2;
Slider Servo3;
Button Boton1;
Button Boton2;
Button Boton3;
void setup()
{
size(950, 900);//Definir el tamano de la pantalla
cp5 = new ControlP5(this);
font = createFont("calibri light bold", 20); // custom fonts for buttons and title
cp5.addButton("Enviar") //"red" is the name of button
.setPosition(650, 125) //x and y coordinat
.setSize(120, 70) //(width, height)
.setFont(font)
;
println(Arduino.list());// Mostrar los puertos COM disponibles
arduino = new Arduino(this, Arduino.list()[0], 57600);//En los corchetes debes introducir el numero del COM empezando de 0,1,2,3 dependiendo los dispositivos que aparescan en la lista
cp5 = new ControlP5(this);
arduino.pinMode(10, Arduino.SERVO);//Definir el pin 2 para la conexion de un servomotor
arduino.pinMode(11, Arduino.SERVO);//Definir el pin 3 para la conexion de un servomotor
arduino.pinMode(12, Arduino.SERVO);//Definir el pin 4 para la conexion de un servomotor
Servo1 = cp5.addSlider("1").setRange(0, 180).setValue(90).setPosition(110, 110).setSize(270, 25).setNumberOfTickMarks(270).setLabelVisible(false).setColorForeground(color(255, 0, 0)).setColorBackground(color(0, 255, 0)).setColorActive(color(0, 0, 255));
Servo2 = cp5.addSlider("2").setRange(0, 180).setValue(90).setPosition(110, 210).setSize(270, 25).setNumberOfTickMarks(270).setLabelVisible(false).setColorForeground(color(255, 0, 0)).setColorBackground(color(0, 255, 0)).setColorActive(color(0, 0, 255));
Servo3 = cp5.addSlider("3").setRange(0, 180).setValue(90).setPosition(110, 310).setSize(270, 25).setNumberOfTickMarks(270).setLabelVisible(false).setColorForeground(color(255, 0, 0)).setColorBackground(color(0, 255, 0)).setColorActive(color(0, 0, 255));
}
void draw()
{
background(color(10, 10, 10));
arduino.servoWrite(10, int(Servo1.getValue()));
arduino.servoWrite(11, int(Servo2.getValue()));
arduino.servoWrite(12, int(Servo3.getValue()));
textSize(50);
text("Panel de control para robot Scara", 100, 75);
textSize(25);
text("Servo1", 20, 125);
text("Servo2", 20, 225);
text("Servo3", 20, 325);
textSize(18);
text("[Pin 2]", 25, 150);
text("[Pin 3]", 25, 250);
text("[Pin 4]", 25, 350);
textSize(25);
text(int(Servo1.getValue())+"°", 390, 130);
text(int(Servo2.getValue())+"°", 390, 230);
text(int(Servo3.getValue())+"°", 390, 330);
}
void red() {
port.write('r');
}