Jump to content

jawedoo

Members
  • Gesamte Inhalte

    5
  • Benutzer seit

  • Letzter Besuch

jawedoo's Achievements

Newbie

Newbie (1/14)

0

Reputation in der Community

  1. Hallo liebe Leute, Ich hab hier an einem Red-Brick eine IMU 2.0, einen Accelerometer und ein GPS bricklet. jetzt würde ich gerne zu einer bestimmten Frequenz (20Hz z.b.) von allen Sensoren ihre aktuellen Daten bekommen. Geht das auf diese Art und Weise?: Alldata-Listener der Imu ruft eine außenstehende methode auf und übergibt alle 3 sensoren. Diese werden ausgelesen und geloggt. Mein gedanke war, dass ich nur den Alldata callback von der IMU nutze, weil diese sich mit sicherheit ändert und auf die 20Hz hört (alle anderen callbacks auch einzuschalten würde meine logdatenzahl vervielfachen und nicht zum gewünschten effekt führen)... nur ist mein problem dass ich statt 20 ergebnissen pro sekunde z.b. nur 13/15 bekomme... die imu unterstütz ja eigentlich eine Abtastrate von 100Hz, übersehe ich da was? Hier mein Code, bin für jede Hilfe dankbar =) public class Red { private static final String HOST = "localhost"; private static final int PORT = 4223; private static final String UID = "xxx"; //IMUV2 private static final String UID2 = "xx2"; //Accelerometer 1.1 private static final String UID3 = "xx3"; //GPS 1.0 private static final int HERZ = 20; //Set here your desired Frequency public static void main(String args[]) throws Exception { IPConnection ipcon = new IPConnection(); // Create IP connection BrickIMUV2 imu = new BrickIMUV2(UID, ipcon); BrickletAccelerometer accel = new BrickletAccelerometer(UID2, ipcon); BrickletGPS gps = new BrickletGPS(UID3, ipcon); ipcon.connect(HOST, PORT); // Connect to brickd // Don't use device before ipcon is connected //#####################All Listeners are going to trigger the logging###################### // Add all data listener imu.addAllDataListener(new BrickIMUV2.AllDataListener() { public void allData(short[] acceleration, short[] magneticField, short[] angularVelocity, short[] eulerAngle, short[] quaternion, short[] linearAcceleration, short[] gravityVector, byte temperature, short calibrationStatus) { output(imu, accel, gps); } }); //###############################Listener Ends here ####################################### // Set period for all callbacks imu.setAllDataPeriod(1000/HERZ); //first line for titles System.out.println("Euler Angle x;ImuAccel x;ImuAccel y; Accel x; Accel y;Latitude;Longitude;Speed;Date;Time;Satelites used;GPS fix"); System.in.read(); ipcon.disconnect(); } private static void output(BrickIMUV2 imu, BrickletAccelerometer accel, BrickletGPS gps){ try { LinearAcceleration acc = imu.getLinearAcceleration(); Acceleration acc2 = accel.getAcceleration(); Orientation euler = imu.getOrientation(); Coordinates coords = gps.getCoordinates(); Motion speed = gps.getMotion(); Status stat = gps.getStatus(); String timeStamp = new SimpleDateFormat("dd.MM.yyyy;HH:mm:ss.SSS").format(new Date()); System.out.println(euler.heading/16 + ";" + acc.x/100.0 + ";" + acc.y/100.0 + ";" + acc2.x/1000.0 + ";" + acc2.y/1000.0 + ";" + coords.latitude/1000000.0 + ";" + coords.longitude/1000000.0 + ";" + speed.speed/100.0 + ";" + timeStamp + ";" + stat.satellitesUsed + ";" + stat.fix); } catch (TimeoutException | NotConnectedException e) { // dont log } } }
  2. hab rausgefunden wie das geht, einfach die datei als .jar exportieren mit der IDE seiner wahl und e voila, auf einmal findet er sofort meine main klasse und schlägt sie mir sogar vor, programm läuft auch =) (die GpsMain.jar und die tinkerforge.jar hab ich als einzelne dateien hochgeladen)
  3. Meine Auflistungen waren nur Möglichkeiten die mir als logisch erschienen sind.. keine die mir das programm vorschlägt. Das programm an sich schlägt mir in Schritt 3 das programm gar nichts vor (siehe schritt3.png). also ich habe nun folgendes probiert: in /bin den tinkerforge ordner (mein package) als ordner hochgeladen, die tinkerforge.jar als einzelnes zusätzlich noch hochgeladen (keine ahnung ob das notwendig ist, die sind nämlich nicht im selben ordner). als main class namen habe ich 4 möglichkeiten probiert und keines von denen hat geklappt (siehe die stdout.log). Vielleicht gibt es auch ein problem mit meinem code? ich lad mal die .java datei auch hoch... wie das so schwer sein kann..? continuous_stdout.log GpsMain.java
  4. Hallo alle erst einmal =) ich bekomme es nicht hin, dass der red brick mein java programm durchlaufen lässt... auf eclipse läuft mein programm und mein bricklet ist ansprechbar, aber wenn ich unter Schritt 2 add directory die /bin/tinkerforge ordner nehme und danach unter schritt 3 sehe ich keinen vorschlag für Main Class: ... mein programm heißt GpsMain, schreibe ich da nun GpsMain.class oder nur GpsMain oder tinkerforge.GpsMain...? auf alle fälle gibts bei mir immer der exit code 1, could not find or load GpsMain (in diesem falle..) bin dankbar für jede hilfe
×
×
  • Neu erstellen...