Paso 1: applet
Código K_FISH_ARDUINO:Leer datos de la serie y abrir/cerrar el dispensador de alimentos
#include < Servo.h >
char val; Datos recibidos del puerto serial
int ledPin = 13; Configurar el pin digital 13 de entrada-salida
Servo myservo; crear objeto servo para controlar un servo
int pos = 0; variable para almacenar la posición del servo
void setup() {}
pinMode (ledPin, salida); Conjunto pin como salida
Serial.Begin(9600); Iniciar la comunicación serial a 9600 bps
myservo.Attach(9); se fija el servo en el pin 9 al objeto servo
myservo.Write(0);
}
void loop() {}
Si (Serial.available()) {/ / si hay datos disponibles para leer,
Val = Serial.read(); leerla y guardarla en val
}
Si (val == 'H') {/ / H si se recibió:
digitalWrite (ledPin, HIGH); Encienda el LED
para (pos = 0; pos < 360; pos += 1) / / y abierta: va desde 0 grados a 180 grados
{/ / en pasos de 10 grados
myservo.Write(POS); Dile el servo a la posición en la variable 'pos'
Delay(2); espera x ms para el servo a la abierta posición
}
para (pos = 360; pos > = 1; pos-= 1) / / CLOSE: va de 180 grados a 0 grados
{
myservo.Write(POS); Dile el servo a la posición en la variable 'pos'
Delay(2); espera X ms para el servo a la posición de cerrado
}
} else {}
digitalWrite (ledPin, LOW); De lo contrario apague
}
Delay(5); Esperar 10 milisegundos para la siguiente lectura
}
---------------------------------------------------------------------------------------
/*
FISHSERVER: PRIMERO Y ESPERE HASTA QUE ESTÁ TRABAJANDO
FUNCIONES:
LECTURAS DE LA RED
Y ESCRIBE A SERIE
escrito por KK de Cerbero
*/
Import processing.net.*;
Import processing.serial.*;
Servidor fishS; Crear el objeto de la clase servidor
Cliente fishC; Crear el objeto de la clase cliente
Serie myPort; Crear un objeto de clase Serial
int c; Datos recibidos desde el puerto de red
int network_port = 1863;
int serial_baud_rate = 9600;
Si desea o no imprimir desde el puerto serie en el procesamiento de los datos.
Boolean print_in_processing = true;
void setup()
{
fishS = nuevo servidor (, network_port);
String portName = Serial.list() [1];
println(serial.List()); Imprimir los puertos serie disponibles.
myPort = serie nueva (este, portName, 9600); }
void draw()
{
Cliente fishC = fishS.available();
Si (fishC! = null) {}
Si (fishC.available() > 0) {}
c = fishC.read();
Si (c == 1) {/ / si el número recibido es 1
myPort.write('H'); enviar una H para arrancar el motor
}
Else / / otro
{myPort.write('L'); } / / Enviar un L
Si (print_in_processing) println(c);//((char) c);
}
// }
}
}
{} void serverEvent (someServer servidor, cliente someClient)
println ("nuevo cliente:" + someClient.ip());
ServerEvent mensaje se genera cuando un nuevo cliente se conecta a un servidor existente.
}
---------------------------------------------------------------------------------------------
/*
FISHCLIENT: INICIO SÓLO DESPUÉS DE QUE SERVIDOR Y VA!!!
FUNCIONES:
LEE DE BOTÓN
Y ESCRIBE A RED
escrito por KK de Cerbero
*/
Import processing.net.*;
Servidor fishS;
Cliente fishC;
PImage foodKey;
PImage foodKey2;
void setup() {}
tamaño (125, 50);
foodKey = loadImage("foodKey.png");
foodKey2 = loadImage("foodKey2.png");
println ("inicializando la conexión de red a FishServer...");
fishC = new cliente (este, "faustofalchi.blogdns.org", 1863);
println ("... conexión a servidor exitosa!");
}
void draw() {}
Image(foodKey,0,0); imagen de button_idle
Si (mouseOverRect() & & mousePressed) {/ / si se activa el botón
Image(foodKey2,0,0); imagen de button_active
fishC.write(1); ESCRIBIR a red - enviar una H para indicar el mouse está sobre la Plaza
}
Else {fishC.write(0);} Si no se presiona el botón,
ESCRIBIR a red - enviar un L
}
Boolean mouseOverRect() {/ / comprobar si el mouse está sobre la Plaza
regresar ((ratonX > = 0) & & (mouseX < = 124) & & (ratonY > = 0) & & (ratonY < = 50));
}