private static string UID = "XYZ"; // Change XYZ to the UID of your IMU Bricklet 3.0 // Callback function for all data callback static void AllDataCB(BrickletIMUV3 sender, short[] acceleration, short[] magneticField, short[] angularVelocity, short[] eulerAngle, short[] quaternion, short[] linearAcceleration, short[] gravityVector, short temperature, byte calibrationStatus) { Console.WriteLine("Acceleration [X]: " + acceleration[0] / 100.0 + " m/s²"); Console.WriteLine("Acceleration [Y]: " + acceleration[1] / 100.0 + " m/s²"); Console.WriteLine("Acceleration [Z]: " + acceleration[2] / 100.0 + " m/s²"); Console.WriteLine("Magnetic Field [X]: " + magneticField[0] / 16.0 + " µT"); Console.WriteLine("Magnetic Field [Y]: " + magneticField[1] / 16.0 + " µT"); Console.WriteLine("Magnetic Field [Z]: " + magneticField[2] / 16.0 + " µT"); Console.WriteLine("Angular Velocity [X]: " + angularVelocity[0] / 16.0 + " °/s"); Console.WriteLine("Angular Velocity [Y]: " + angularVelocity[1] / 16.0 + " °/s"); Console.WriteLine("Angular Velocity [Z]: " + angularVelocity[2] / 16.0 + " °/s"); Console.WriteLine("Euler Angle [Heading]: " + eulerAngle[0] / 16.0 + " °"); Console.WriteLine("Euler Angle [Roll]: " + eulerAngle[1] / 16.0 + " °"); Console.WriteLine("Euler Angle [Pitch]: " + eulerAngle[2] / 16.0 + " °"); Console.WriteLine("Quaternion [W]: " + quaternion[0] / 16383.0); Console.WriteLine("Quaternion [X]: " + quaternion[1] / 16383.0); Console.WriteLine("Quaternion [Y]: " + quaternion[2] / 16383.0); Console.WriteLine("Quaternion [Z]: " + quaternion[3] / 16383.0); Console.WriteLine("Linear Acceleration [X]: " + linearAcceleration[0] / 100.0 + " m/s²"); Console.WriteLine("Linear Acceleration [Y]: " + linearAcceleration[1] / 100.0 + " m/s²"); Console.WriteLine("Linear Acceleration [Z]: " + linearAcceleration[2] / 100.0 + " m/s²"); Console.WriteLine("Gravity Vector [X]: " + gravityVector[0] / 100.0 + " m/s²"); Console.WriteLine("Gravity Vector [Y]: " + gravityVector[1] / 100.0 + " m/s²"); Console.WriteLine("Gravity Vector [Z]: " + gravityVector[2] / 100.0 + " m/s²"); Console.WriteLine("Temperature: " + temperature + " °C"); Console.WriteLine("Calibration Status: " + Convert.ToString(calibrationStatus, 2)); Console.WriteLine(""); }
private static string UID = "XYZ"; // Change XYZ to the UID of your IMU Bricklet 3.0 // Callback function for quaternion callback static void QuaternionCB(BrickletIMUV3 sender, short w, short x, short y, short z) { Console.WriteLine("Quaternion [W]: " + w / 16383.0); Console.WriteLine("Quaternion [X]: " + x / 16383.0); Console.WriteLine("Quaternion [Y]: " + y / 16383.0); Console.WriteLine("Quaternion [Z]: " + z / 16383.0); Console.WriteLine(""); }
static void Main() { IPConnection ipcon = new IPConnection(); // Create IP connection BrickletIMUV3 imu = new BrickletIMUV3(UID, ipcon); // Create device object ipcon.Connect(HOST, PORT); // Connect to brickd // Don't use device before ipcon is connected // Register quaternion callback to function QuaternionCB imu.QuaternionCallback += QuaternionCB; // Set period for quaternion callback to 0.1s (100ms) imu.SetQuaternionCallbackConfiguration(100, false); Console.WriteLine("Press enter to exit"); Console.ReadLine(); ipcon.Disconnect(); }
private static string UID = "XYZ"; // Change XYZ to the UID of your IMU Bricklet 3.0 static void Main() { IPConnection ipcon = new IPConnection(); // Create IP connection BrickletIMUV3 imu = new BrickletIMUV3(UID, ipcon); // Create device object ipcon.Connect(HOST, PORT); // Connect to brickd // Don't use device before ipcon is connected // Get current quaternion short w, x, y, z; imu.GetQuaternion(out w, out x, out y, out z); Console.WriteLine("Quaternion [W]: " + w / 16383.0); Console.WriteLine("Quaternion [X]: " + x / 16383.0); Console.WriteLine("Quaternion [Y]: " + y / 16383.0); Console.WriteLine("Quaternion [Z]: " + z / 16383.0); Console.WriteLine("Press enter to exit"); Console.ReadLine(); ipcon.Disconnect(); }