3 feb. 2015

DESARROLLO DE UN INTERFAZ GRÁFICO PARA UN SISTEMA DE CONTROL [PARTE 2]

En esta segunda práctica vamos a desarrollar un sencillito interfaz gráfico para controlar el estado ON/OFF de un led al pulsar un botón de la pantalla. El objetivo ahora no es monitorizar variables del sistema (como en la práctica anterior), sino la de controlar nuestro sistema en remoto. En este caso la comunicación será Interfaz -> Sistema (ARDUINO).

Veamos por partes cada uno de ellos:


SISTEMA DE CONTROL (ARDUINO)


Esquema eléctrico:


Circuito en placa protoboard:

Código fuente:

int Led = 13;
String estado;
//Serial myPort;

void setup()
{
Serial.begin(9600);
pinMode(Led,OUTPUT);
}
void loop()
{
if(Serial.available()!=10)
{
estado = Serial.readString();
Serial.println(estado);
if(estado == "APAGADO")
   digitalWrite(Led,LOW);
if(estado == "ENCENDIDO")
   digitalWrite(Led,HIGH);
}

}

INTERFAZ - PC - PROCESSING

//librerias
import processing.serial.*;

Serial port;
boolean activado = false;
String envioEstado = "APAGADO";

void setup(){
println(Serial.list());
port = new Serial(this, Serial.list()[1], 9600);
size(600,400);//tamaño de la ventana
background(128); //color de fondo
fill(#ff0000);
rect(350,75,200,200);//para mostrar el color seleccionado
textSize(64);
fill(#ffffff);
text("OFF", 390, 195);
}

void draw()
{
//action botton
if(mousePressed){
//para subir la intensidad
if(mouseX>350 && mouseX<550 && mouseY>75 && mouseY<275)
{
if(activado)
{
fill(#ff0000);
rect(350,75,200,200);
textSize(64);
fill(#ffffff);
text("OFF", 390, 195);
println("apagado");
activado = false;
envioEstado = "APAGADO";
println(envioEstado); // en la consola
port.write(envioEstado); // por el puerto Serial
}
else
{
fill(#00ff00);
rect(350,75,200,200);
textSize(64);
fill(#ffffff);
text("ON", 400, 195);
println("encendido");
activado = true;
envioEstado = "ENCENDIDO";
println(envioEstado); // en la consola
port.write(envioEstado); // por el puerto Serial
}
delay(800);
}

}
}


No hay comentarios:

Publicar un comentario