Hi, das hier ist mein erster Post in diesem Forum, also ersteinmal HALLO!
Zu meiner Frage,
Ich lese mit hilfe der wiiremoteJ bib. Sensordaten des Wiibalanceboard aus um eine Bewegungssteuerung zu realiesieren. Die Daten werden an einen Roboter(microcontroller) gesendet, der diese jedoch nicht schnell genug verarbeiten kann und sie dann "abarbeitet" oder abstürzt.
Meine Frage ist nun, wie ich den ausgehenden Datenstrom des Java Programms begrenzen/filtern kann.
Ich befasse mich erst seit 2-3 Wochen mit Java und komme selber bislang auf keine Lösung, wäre also für jede Hilfe bzw. Denkanstoß dankbar.
im vorraus DANKE!
Code:
Zu meiner Frage,
Ich lese mit hilfe der wiiremoteJ bib. Sensordaten des Wiibalanceboard aus um eine Bewegungssteuerung zu realiesieren. Die Daten werden an einen Roboter(microcontroller) gesendet, der diese jedoch nicht schnell genug verarbeiten kann und sie dann "abarbeitet" oder abstürzt.
Meine Frage ist nun, wie ich den ausgehenden Datenstrom des Java Programms begrenzen/filtern kann.
Ich befasse mich erst seit 2-3 Wochen mit Java und komme selber bislang auf keine Lösung, wäre also für jede Hilfe bzw. Denkanstoß dankbar.
im vorraus DANKE!
Code:
Java:
public void massInputReceived(BBMassEvent evt)
{
totalmass = evt.getTotalMass();
if (totalmass > 20)
{// deltas +/- kg in jeweilige Richtung
double massRightTop = evt.getMass(MassConstants.TOP, MassConstants.RIGHT);
double massLeftTop = evt.getMass(MassConstants.TOP, MassConstants.LEFT);
double massRightBottom = evt.getMass(MassConstants.BOTTOM, MassConstants.RIGHT);
double massLeftBottom = evt.getMass(MassConstants.BOTTOM, MassConstants.LEFT);
double massTop = massRightTop+massLeftTop;
double massBottom = massRightBottom+massLeftBottom;
double massRight = massRightBottom+massRightTop;
double massLeft = massLeftBottom+massLeftTop;
double horizontalDelta = (massRightTop + massRightBottom) - (massLeftTop + massLeftBottom);
double verticalDelta = (massLeftBottom + massRightBottom) - (massLeftTop + massRightTop);
horizontal = horizontalDelta / totalmass;
vertical = verticalDelta / totalmass;
} else {
horizontal = 0.0;
vertical = 0.0;
return;
}
if(vertical< -0.4){ //if Schleife VORWÄRTS
byte b[] = {(byte)10};
try {
dos.write(b);
dos.flush();
System.out.println("Vor"+ vertical);
}
catch(IOException e) {
System.out.println("Bluetoothstörung...");
}
}