Stap 1: applet
K_FISH_ARDUINO code:Gegevens lezen van de serie en open/sluiten de voedsel-dispenser
#include < Servo.h >
char val; Gegevens ontvangen van de seriële poort
int ledPin = 13; De PIN-code ingesteld op digitale i/o-13
Servo myservo; maken van servo-object om te bepalen van een servo
int pos = 0; variabele op te slaan van de servo positie
VOID Setup {}
pinMode (ledPin, OUTPUT); Set pin als OUTPUT
Serial.begin(9600); De seriële communicatie start 9600 bps
myservo.attach(9); de servo op pin 9 hecht aan de servo-object
myservo.write(0);
}
void loop {}
Als (Serial.available()) {/ / indien gegevens beschikbaar om te lezen,
Val = Serial.read(); Lees het en sla het in de val
}
Als (val == 'H') {/ / als H werd ontvangen:
digitalWrite (ledPin, hoge); de LED inschakelen
voor (pos = 0; pos < 360; pos += 1) / / en OPEN: gaat van 0 graden tot 180 graden
{/ / in stappen van 10 graden
myservo.write(POS); servo naar positie in de variabele 'pos' vertellen
delay(2); wacht x ms voor de servo te bereiken van de OPEN positie
}
voor (pos = 360; pos > = 1; pos-= 1) / / CLOSE: gaat van 180 graden tot 0 graden
{
myservo.write(POS); servo naar positie in de variabele 'pos' vertellen
delay(2); wacht X ms voor de servo te bereiken de gesloten positie
}
} else {}
digitalWrite (ledPin, laag); Anders zwenking op vandoor
}
delay(5); Wacht 10 milliseconden voor volgende lezing
}
---------------------------------------------------------------------------------------
/*
FISHSERVER: EERSTE START EN WACHTEN TOT HET WERKT
FUNCTIES:
LEESBEWERKINGEN VAN NETWERK
EN SCHRIJFBEWERKINGEN NAAR DE SERIËLE
geschreven door KK voor Cerbero
*/
importeren van processing.net.*;
importeren van processing.serial.*;
Server fishS; Object maken vanuit Server klasse
Client fishC; Object maken vanuit Client klasse
Seriële myPort; Object maakt van seriële klasse
int c; Gegevens ontvangen van de netwerkpoort
int network_port = 1863;
int serial_baud_rate = 9600;
Wel of niet afkomstig van de seriële poort bij de verwerking van gegevens moeten worden afgedrukt.
Boole print_in_processing = waar;
VOID Setup
{
fishS = nieuwe Server (, network_port);
String portName = Serial.list() [1];
println(Serial.List()); Afdrukken van de beschikbare seriële poorten.
myPort = nieuwe Serial (deze, portName, 9600); }
VOID draw()
{
Client fishC = fishS.available();
Als (fishC! = null) {}
Als (fishC.available() > 0) {}
c = fishC.read();
Als (c == 1) {/ / als ontvangen aantal 1 is
myPort.write('H'); Stuur een H motor starten
}
anders / / anders
{myPort.write('L'); } / / Stuur een L
Als (print_in_processing) println(c);//((char) c);
}
// }
}
}
VOID serverEvent (someServer van de Server, Client someClient) {}
println ("nieuwe klant:" + someClient.ip());
ServerEvent bericht wordt gegenereerd wanneer een nieuwe client verbinding met een bestaande server maakt.
}
---------------------------------------------------------------------------------------------
/*
FISHCLIENT: START ALLEEN NADAT DE SERVER IS EN GAAN!!!
FUNCTIES:
LEESBEWERKINGEN VAN KNOP
EN SCHRIJFT MET NETWERK
geschreven door KK voor Cerbero
*/
importeren van processing.net.*;
Server fishS;
Client fishC;
PImage foodKey;
PImage foodKey2;
VOID Setup {}
grootte (125, 50);
foodKey = loadImage("foodKey.png");
foodKey2 = loadImage("foodKey2.png");
println ("initialiseren netwerkverbinding met FishServer...");
fishC = nieuwe Client (dit, "faustofalchi.blogdns.org", 1863);
println ("... verbinding met de server succesvol!");
}
VOID draw() {}
Image(foodKey,0,0); button_idle afbeelding weergeven
Als (mouseOverRect() & & mousePressed) {/ / als knop is geactiveerd
Image(foodKey2,0,0); button_active afbeelding weergeven
fishC.write(1); SCHRIJVEN naar netwerk - Stuur een H om aan te geven van de muisaanwijzer zich boven het vierkant
}
else {fishC.write(0);} Als de knop niet is ingedrukt,
SCHRIJVEN naar netwerk - Stuur een L
}
Booleaanse mouseOverRect() {/ / Test als de muisaanwijzer zich boven het vierkant
retourneren ((mouseX > = 0) & & (mouseX < = 124) & & (mouseY > = 0) & & (mouseY < = 50));
}