Class: Tinkerforge::BrickletIMUV3
- Defined in:
- lib/tinkerforge/bricklet_imu_v3.rb
Overview
Full fledged AHRS with 9 degrees of freedom
Constant Summary collapse
- DEVICE_IDENTIFIER =
:nodoc:
2161
- DEVICE_DISPLAY_NAME =
:nodoc:
'IMU Bricklet 3.0'
- CALLBACK_ACCELERATION =
This callback is triggered periodically with the period that is set by BrickletIMUV3#set_acceleration_callback_configuration. The parameters are the acceleration for the x, y and z axis.
33
- CALLBACK_MAGNETIC_FIELD =
This callback is triggered periodically with the period that is set by BrickletIMUV3#set_magnetic_field_callback_configuration. The parameters are the magnetic field for the x, y and z axis.
34
- CALLBACK_ANGULAR_VELOCITY =
This callback is triggered periodically with the period that is set by BrickletIMUV3#set_angular_velocity_callback_configuration. The parameters are the angular velocity for the x, y and z axis.
35
- CALLBACK_TEMPERATURE =
This callback is triggered periodically with the period that is set by BrickletIMUV3#set_temperature_callback_configuration. The parameter is the temperature.
36
- CALLBACK_LINEAR_ACCELERATION =
This callback is triggered periodically with the period that is set by BrickletIMUV3#set_linear_acceleration_callback_configuration. The parameters are the linear acceleration for the x, y and z axis.
37
- CALLBACK_GRAVITY_VECTOR =
This callback is triggered periodically with the period that is set by BrickletIMUV3#set_gravity_vector_callback_configuration. The parameters gravity vector for the x, y and z axis.
38
- CALLBACK_ORIENTATION =
This callback is triggered periodically with the period that is set by BrickletIMUV3#set_orientation_callback_configuration. The parameters are the orientation (heading (yaw), roll, pitch) of the IMU Brick in Euler angles. See BrickletIMUV3#get_orientation for details.
39
- CALLBACK_QUATERNION =
This callback is triggered periodically with the period that is set by BrickletIMUV3#set_quaternion_callback_configuration. The parameters are the orientation (w, x, y, z) of the IMU Brick in quaternions. See BrickletIMUV3#get_quaternion for details.
40
- CALLBACK_ALL_DATA =
This callback is triggered periodically with the period that is set by BrickletIMUV3#set_all_data_callback_configuration. The parameters are as for BrickletIMUV3#get_all_data.
41
- FUNCTION_GET_ACCELERATION =
:nodoc:
1
- FUNCTION_GET_MAGNETIC_FIELD =
:nodoc:
2
- FUNCTION_GET_ANGULAR_VELOCITY =
:nodoc:
3
- FUNCTION_GET_TEMPERATURE =
:nodoc:
4
- FUNCTION_GET_ORIENTATION =
:nodoc:
5
- FUNCTION_GET_LINEAR_ACCELERATION =
:nodoc:
6
- FUNCTION_GET_GRAVITY_VECTOR =
:nodoc:
7
- FUNCTION_GET_QUATERNION =
:nodoc:
8
- FUNCTION_GET_ALL_DATA =
:nodoc:
9
- FUNCTION_SAVE_CALIBRATION =
:nodoc:
10
- FUNCTION_SET_SENSOR_CONFIGURATION =
:nodoc:
11
- FUNCTION_GET_SENSOR_CONFIGURATION =
:nodoc:
12
- FUNCTION_SET_SENSOR_FUSION_MODE =
:nodoc:
13
- FUNCTION_GET_SENSOR_FUSION_MODE =
:nodoc:
14
- FUNCTION_SET_ACCELERATION_CALLBACK_CONFIGURATION =
:nodoc:
15
- FUNCTION_GET_ACCELERATION_CALLBACK_CONFIGURATION =
:nodoc:
16
- FUNCTION_SET_MAGNETIC_FIELD_CALLBACK_CONFIGURATION =
:nodoc:
17
- FUNCTION_GET_MAGNETIC_FIELD_CALLBACK_CONFIGURATION =
:nodoc:
18
- FUNCTION_SET_ANGULAR_VELOCITY_CALLBACK_CONFIGURATION =
:nodoc:
19
- FUNCTION_GET_ANGULAR_VELOCITY_CALLBACK_CONFIGURATION =
:nodoc:
20
- FUNCTION_SET_TEMPERATURE_CALLBACK_CONFIGURATION =
:nodoc:
21
- FUNCTION_GET_TEMPERATURE_CALLBACK_CONFIGURATION =
:nodoc:
22
- FUNCTION_SET_ORIENTATION_CALLBACK_CONFIGURATION =
:nodoc:
23
- FUNCTION_GET_ORIENTATION_CALLBACK_CONFIGURATION =
:nodoc:
24
- FUNCTION_SET_LINEAR_ACCELERATION_CALLBACK_CONFIGURATION =
:nodoc:
25
- FUNCTION_GET_LINEAR_ACCELERATION_CALLBACK_CONFIGURATION =
:nodoc:
26
- FUNCTION_SET_GRAVITY_VECTOR_CALLBACK_CONFIGURATION =
:nodoc:
27
- FUNCTION_GET_GRAVITY_VECTOR_CALLBACK_CONFIGURATION =
:nodoc:
28
- FUNCTION_SET_QUATERNION_CALLBACK_CONFIGURATION =
:nodoc:
29
- FUNCTION_GET_QUATERNION_CALLBACK_CONFIGURATION =
:nodoc:
30
- FUNCTION_SET_ALL_DATA_CALLBACK_CONFIGURATION =
:nodoc:
31
- FUNCTION_GET_ALL_DATA_CALLBACK_CONFIGURATION =
:nodoc:
32
- FUNCTION_GET_SPITFP_ERROR_COUNT =
:nodoc:
234
- FUNCTION_SET_BOOTLOADER_MODE =
:nodoc:
235
- FUNCTION_GET_BOOTLOADER_MODE =
:nodoc:
236
- FUNCTION_SET_WRITE_FIRMWARE_POINTER =
:nodoc:
237
- FUNCTION_WRITE_FIRMWARE =
:nodoc:
238
- FUNCTION_SET_STATUS_LED_CONFIG =
:nodoc:
239
- FUNCTION_GET_STATUS_LED_CONFIG =
:nodoc:
240
- FUNCTION_GET_CHIP_TEMPERATURE =
:nodoc:
242
- FUNCTION_RESET =
:nodoc:
243
- FUNCTION_WRITE_UID =
:nodoc:
248
- FUNCTION_READ_UID =
:nodoc:
249
- FUNCTION_GET_IDENTITY =
:nodoc:
255
- MAGNETOMETER_RATE_2HZ =
:nodoc:
0
- MAGNETOMETER_RATE_6HZ =
:nodoc:
1
- MAGNETOMETER_RATE_8HZ =
:nodoc:
2
- MAGNETOMETER_RATE_10HZ =
:nodoc:
3
- MAGNETOMETER_RATE_15HZ =
:nodoc:
4
- MAGNETOMETER_RATE_20HZ =
:nodoc:
5
- MAGNETOMETER_RATE_25HZ =
:nodoc:
6
- MAGNETOMETER_RATE_30HZ =
:nodoc:
7
- GYROSCOPE_RANGE_2000DPS =
:nodoc:
0
- GYROSCOPE_RANGE_1000DPS =
:nodoc:
1
- GYROSCOPE_RANGE_500DPS =
:nodoc:
2
- GYROSCOPE_RANGE_250DPS =
:nodoc:
3
- GYROSCOPE_RANGE_125DPS =
:nodoc:
4
- GYROSCOPE_BANDWIDTH_523HZ =
:nodoc:
0
- GYROSCOPE_BANDWIDTH_230HZ =
:nodoc:
1
- GYROSCOPE_BANDWIDTH_116HZ =
:nodoc:
2
- GYROSCOPE_BANDWIDTH_47HZ =
:nodoc:
3
- GYROSCOPE_BANDWIDTH_23HZ =
:nodoc:
4
- GYROSCOPE_BANDWIDTH_12HZ =
:nodoc:
5
- GYROSCOPE_BANDWIDTH_64HZ =
:nodoc:
6
- GYROSCOPE_BANDWIDTH_32HZ =
:nodoc:
7
- ACCELEROMETER_RANGE_2G =
:nodoc:
0
- ACCELEROMETER_RANGE_4G =
:nodoc:
1
- ACCELEROMETER_RANGE_8G =
:nodoc:
2
- ACCELEROMETER_RANGE_16G =
:nodoc:
3
- ACCELEROMETER_BANDWIDTH_7_81HZ =
:nodoc:
0
- ACCELEROMETER_BANDWIDTH_15_63HZ =
:nodoc:
1
- ACCELEROMETER_BANDWIDTH_31_25HZ =
:nodoc:
2
- ACCELEROMETER_BANDWIDTH_62_5HZ =
:nodoc:
3
- ACCELEROMETER_BANDWIDTH_125HZ =
:nodoc:
4
- ACCELEROMETER_BANDWIDTH_250HZ =
:nodoc:
5
- ACCELEROMETER_BANDWIDTH_500HZ =
:nodoc:
6
- ACCELEROMETER_BANDWIDTH_1000HZ =
:nodoc:
7
- SENSOR_FUSION_OFF =
:nodoc:
0
- SENSOR_FUSION_ON =
:nodoc:
1
- SENSOR_FUSION_ON_WITHOUT_MAGNETOMETER =
:nodoc:
2
- SENSOR_FUSION_ON_WITHOUT_FAST_MAGNETOMETER_CALIBRATION =
:nodoc:
3
- BOOTLOADER_MODE_BOOTLOADER =
:nodoc:
0
- BOOTLOADER_MODE_FIRMWARE =
:nodoc:
1
- BOOTLOADER_MODE_BOOTLOADER_WAIT_FOR_REBOOT =
:nodoc:
2
- BOOTLOADER_MODE_FIRMWARE_WAIT_FOR_REBOOT =
:nodoc:
3
- BOOTLOADER_MODE_FIRMWARE_WAIT_FOR_ERASE_AND_REBOOT =
:nodoc:
4
- BOOTLOADER_STATUS_OK =
:nodoc:
0
- BOOTLOADER_STATUS_INVALID_MODE =
:nodoc:
1
- BOOTLOADER_STATUS_NO_CHANGE =
:nodoc:
2
- BOOTLOADER_STATUS_ENTRY_FUNCTION_NOT_PRESENT =
:nodoc:
3
- BOOTLOADER_STATUS_DEVICE_IDENTIFIER_INCORRECT =
:nodoc:
4
- BOOTLOADER_STATUS_CRC_MISMATCH =
:nodoc:
5
- STATUS_LED_CONFIG_OFF =
:nodoc:
0
- STATUS_LED_CONFIG_ON =
:nodoc:
1
- STATUS_LED_CONFIG_SHOW_HEARTBEAT =
:nodoc:
2
- STATUS_LED_CONFIG_SHOW_STATUS =
:nodoc:
3
Constants inherited from Device
Device::DEVICE_IDENTIFIER_CHECK_MATCH, Device::DEVICE_IDENTIFIER_CHECK_MISMATCH, Device::DEVICE_IDENTIFIER_CHECK_PENDING, Device::RESPONSE_EXPECTED_ALWAYS_TRUE, Device::RESPONSE_EXPECTED_FALSE, Device::RESPONSE_EXPECTED_INVALID_FUNCTION_ID, Device::RESPONSE_EXPECTED_TRUE
Instance Attribute Summary
Attributes inherited from Device
#callback_formats, #expected_response_function_id, #expected_response_sequence_number, #high_level_callbacks, #registered_callbacks, #replaced, #uid
Instance Method Summary collapse
-
#get_acceleration ⇒ Object
Returns the calibrated acceleration from the accelerometer for the x, y and z axis.
-
#get_acceleration_callback_configuration ⇒ Object
Returns the callback configuration as set by BrickletIMUV3#set_acceleration_callback_configuration.
-
#get_all_data ⇒ Object
Return all of the available data of the IMU Brick.
-
#get_all_data_callback_configuration ⇒ Object
Returns the callback configuration as set by BrickletIMUV3#set_all_data_callback_configuration.
-
#get_angular_velocity ⇒ Object
Returns the calibrated angular velocity from the gyroscope for the x, y and z axis.
-
#get_angular_velocity_callback_configuration ⇒ Object
Returns the callback configuration as set by BrickletIMUV3#set_angular_velocity_callback_configuration.
-
#get_bootloader_mode ⇒ Object
Returns the current bootloader mode, see BrickletIMUV3#set_bootloader_mode.
-
#get_chip_temperature ⇒ Object
Returns the temperature as measured inside the microcontroller.
-
#get_gravity_vector ⇒ Object
Returns the current gravity vector of the IMU Brick for the x, y and z axis.
-
#get_gravity_vector_callback_configuration ⇒ Object
Returns the callback configuration as set by BrickletIMUV3#set_gravity_vector_callback_configuration.
-
#get_identity ⇒ Object
Returns the UID, the UID where the Bricklet is connected to, the position, the hardware and firmware version as well as the device identifier.
-
#get_linear_acceleration ⇒ Object
Returns the linear acceleration of the IMU Brick for the x, y and z axis.
-
#get_linear_acceleration_callback_configuration ⇒ Object
Returns the callback configuration as set by BrickletIMUV3#set_linear_acceleration_callback_configuration.
-
#get_magnetic_field ⇒ Object
Returns the calibrated magnetic field from the magnetometer for the x, y and z axis.
-
#get_magnetic_field_callback_configuration ⇒ Object
Returns the callback configuration as set by BrickletIMUV3#set_magnetic_field_callback_configuration.
-
#get_orientation ⇒ Object
Returns the current orientation (heading, roll, pitch) of the IMU Brick as independent Euler angles.
-
#get_orientation_callback_configuration ⇒ Object
Returns the callback configuration as set by BrickletIMUV3#set_orientation_callback_configuration.
-
#get_quaternion ⇒ Object
Returns the current orientation (w, x, y, z) of the IMU Brick as ‘quaternions <en.wikipedia.org/wiki/Quaternions_and_spatial_rotation>`__.
-
#get_quaternion_callback_configuration ⇒ Object
Returns the callback configuration as set by BrickletIMUV3#set_quaternion_callback_configuration.
-
#get_sensor_configuration ⇒ Object
Returns the sensor configuration as set by BrickletIMUV3#set_sensor_configuration.
-
#get_sensor_fusion_mode ⇒ Object
Returns the sensor fusion mode as set by BrickletIMUV3#set_sensor_fusion_mode.
-
#get_spitfp_error_count ⇒ Object
Returns the error count for the communication between Brick and Bricklet.
-
#get_status_led_config ⇒ Object
Returns the configuration as set by BrickletIMUV3#set_status_led_config.
-
#get_temperature ⇒ Object
Returns the temperature of the IMU Brick.
-
#get_temperature_callback_configuration ⇒ Object
Returns the callback configuration as set by BrickletIMUV3#set_temperature_callback_configuration.
-
#initialize(uid, ipcon) ⇒ BrickletIMUV3
constructor
Creates an object with the unique device ID
uid
and adds it to the IP Connectionipcon
. -
#read_uid ⇒ Object
Returns the current UID as an integer.
-
#register_callback(id, &block) ⇒ Object
Registers a callback with ID
id
to the blockblock
. -
#reset ⇒ Object
Calling this function will reset the Bricklet.
-
#save_calibration ⇒ Object
A call of this function saves the current calibration to be used as a starting point for the next restart of continuous calibration of the IMU Brick.
-
#set_acceleration_callback_configuration(period, value_has_to_change) ⇒ Object
The period is the period with which the CALLBACK_ACCELERATION callback is triggered periodically.
-
#set_all_data_callback_configuration(period, value_has_to_change) ⇒ Object
The period is the period with which the CALLBACK_ALL_DATA callback is triggered periodically.
-
#set_angular_velocity_callback_configuration(period, value_has_to_change) ⇒ Object
The period is the period with which the CALLBACK_ANGULAR_VELOCITY callback is triggered periodically.
-
#set_bootloader_mode(mode) ⇒ Object
Sets the bootloader mode and returns the status after the requested mode change was instigated.
-
#set_gravity_vector_callback_configuration(period, value_has_to_change) ⇒ Object
The period is the period with which the CALLBACK_GRAVITY_VECTOR callback is triggered periodically.
-
#set_linear_acceleration_callback_configuration(period, value_has_to_change) ⇒ Object
The period is the period with which the CALLBACK_LINEAR_ACCELERATION callback is triggered periodically.
-
#set_magnetic_field_callback_configuration(period, value_has_to_change) ⇒ Object
The period is the period with which the CALLBACK_MAGNETIC_FIELD callback is triggered periodically.
-
#set_orientation_callback_configuration(period, value_has_to_change) ⇒ Object
The period is the period with which the CALLBACK_ORIENTATION callback is triggered periodically.
-
#set_quaternion_callback_configuration(period, value_has_to_change) ⇒ Object
The period is the period with which the CALLBACK_QUATERNION callback is triggered periodically.
-
#set_sensor_configuration(magnetometer_rate, gyroscope_range, gyroscope_bandwidth, accelerometer_range, accelerometer_bandwidth) ⇒ Object
Sets the available sensor configuration for the Magnetometer, Gyroscope and Accelerometer.
-
#set_sensor_fusion_mode(mode) ⇒ Object
If the fusion mode is turned off, the functions BrickletIMUV3#get_acceleration, BrickletIMUV3#get_magnetic_field and BrickletIMUV3#get_angular_velocity return uncalibrated and uncompensated sensor data.
-
#set_status_led_config(config) ⇒ Object
Sets the status LED configuration.
-
#set_temperature_callback_configuration(period, value_has_to_change) ⇒ Object
The period is the period with which the CALLBACK_TEMPERATURE callback is triggered periodically.
-
#set_write_firmware_pointer(pointer) ⇒ Object
Sets the firmware pointer for BrickletIMUV3#write_firmware.
-
#write_firmware(data) ⇒ Object
Writes 64 Bytes of firmware at the position as written by BrickletIMUV3#set_write_firmware_pointer before.
-
#write_uid(uid) ⇒ Object
Writes a new UID into flash.
Methods inherited from Device
#check_validity, #dequeue_response, #enqueue_response, #get_api_version, #get_response_expected, #send_request, #set_response_expected, #set_response_expected_all
Constructor Details
#initialize(uid, ipcon) ⇒ BrickletIMUV3
Creates an object with the unique device ID uid
and adds it to the IP Connection ipcon
.
Instance Method Details
#get_acceleration ⇒ Object
Returns the calibrated acceleration from the accelerometer for the x, y and z axis. The acceleration is in the range configured with BrickletIMUV3#set_sensor_configuration.
If you want to get the acceleration periodically, it is recommended to use the CALLBACK_ACCELERATION callback and set the period with BrickletIMUV3#set_acceleration_callback_configuration.
236 237 238 239 240 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 236 def get_acceleration check_validity send_request FUNCTION_GET_ACCELERATION, [], '', 14, 's s s' end |
#get_acceleration_callback_configuration ⇒ Object
Returns the callback configuration as set by BrickletIMUV3#set_acceleration_callback_configuration.
454 455 456 457 458 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 454 def get_acceleration_callback_configuration check_validity send_request FUNCTION_GET_ACCELERATION_CALLBACK_CONFIGURATION, [], '', 13, 'L ?' end |
#get_all_data ⇒ Object
Return all of the available data of the IMU Brick.
-
acceleration (see BrickletIMUV3#get_acceleration)
-
magnetic field (see BrickletIMUV3#get_magnetic_field)
-
angular velocity (see BrickletIMUV3#get_angular_velocity)
-
Euler angles (see BrickletIMUV3#get_orientation)
-
quaternion (see BrickletIMUV3#get_quaternion)
-
linear acceleration (see BrickletIMUV3#get_linear_acceleration)
-
gravity vector (see BrickletIMUV3#get_gravity_vector)
-
temperature (see BrickletIMUV3#get_temperature)
-
calibration status (see below)
The calibration status consists of four pairs of two bits. Each pair of bits represents the status of the current calibration.
-
bit 0-1: Magnetometer
-
bit 2-3: Accelerometer
-
bit 4-5: Gyroscope
-
bit 6-7: System
A value of 0 means for “not calibrated” and a value of 3 means “fully calibrated”. In your program you should always be able to ignore the calibration status, it is used by the calibration window of the Brick Viewer and it can be ignored after the first calibration. See the documentation in the calibration window for more information regarding the calibration of the IMU Brick.
If you want to get the data periodically, it is recommended to use the CALLBACK_ALL_DATA callback and set the period with BrickletIMUV3#set_all_data_callback_configuration.
373 374 375 376 377 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 373 def get_all_data check_validity send_request FUNCTION_GET_ALL_DATA, [], '', 54, 's3 s3 s3 s3 s4 s3 s3 c C' end |
#get_all_data_callback_configuration ⇒ Object
Returns the callback configuration as set by BrickletIMUV3#set_all_data_callback_configuration.
630 631 632 633 634 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 630 def get_all_data_callback_configuration check_validity send_request FUNCTION_GET_ALL_DATA_CALLBACK_CONFIGURATION, [], '', 13, 'L ?' end |
#get_angular_velocity ⇒ Object
Returns the calibrated angular velocity from the gyroscope for the x, y and z axis. The angular velocity is in the range configured with BrickletIMUV3#set_sensor_configuration.
If you want to get the angular velocity periodically, it is recommended to use the CALLBACK_ANGULAR_VELOCITY acallback nd set the period with BrickletIMUV3#set_angular_velocity_callback_configuration.
261 262 263 264 265 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 261 def get_angular_velocity check_validity send_request FUNCTION_GET_ANGULAR_VELOCITY, [], '', 14, 's s s' end |
#get_angular_velocity_callback_configuration ⇒ Object
Returns the callback configuration as set by BrickletIMUV3#set_angular_velocity_callback_configuration.
498 499 500 501 502 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 498 def get_angular_velocity_callback_configuration check_validity send_request FUNCTION_GET_ANGULAR_VELOCITY_CALLBACK_CONFIGURATION, [], '', 13, 'L ?' end |
#get_bootloader_mode ⇒ Object
Returns the current bootloader mode, see BrickletIMUV3#set_bootloader_mode.
669 670 671 672 673 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 669 def get_bootloader_mode check_validity send_request FUNCTION_GET_BOOTLOADER_MODE, [], '', 9, 'C' end |
#get_chip_temperature ⇒ Object
Returns the temperature as measured inside the microcontroller. The value returned is not the ambient temperature!
The temperature is only proportional to the real temperature and it has bad accuracy. Practically it is only useful as an indicator for temperature changes.
727 728 729 730 731 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 727 def get_chip_temperature check_validity send_request FUNCTION_GET_CHIP_TEMPERATURE, [], '', 10, 's' end |
#get_gravity_vector ⇒ Object
Returns the current gravity vector of the IMU Brick for the x, y and z axis.
The gravity vector is the acceleration that occurs due to gravity. Influences of additional linear acceleration are removed.
It is also possible to get the linear acceleration with the influence of gravity removed, see BrickletIMUV3#get_linear_acceleration.
If you want to get the gravity vector periodically, it is recommended to use the CALLBACK_GRAVITY_VECTOR callback and set the period with BrickletIMUV3#set_gravity_vector_callback_configuration.
322 323 324 325 326 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 322 def get_gravity_vector check_validity send_request FUNCTION_GET_GRAVITY_VECTOR, [], '', 14, 's s s' end |
#get_gravity_vector_callback_configuration ⇒ Object
Returns the callback configuration as set by BrickletIMUV3#set_gravity_vector_callback_configuration.
586 587 588 589 590 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 586 def get_gravity_vector_callback_configuration check_validity send_request FUNCTION_GET_GRAVITY_VECTOR_CALLBACK_CONFIGURATION, [], '', 13, 'L ?' end |
#get_identity ⇒ Object
Returns the UID, the UID where the Bricklet is connected to, the position, the hardware and firmware version as well as the device identifier.
The position can be ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’ or ‘h’ (Bricklet Port). A Bricklet connected to an :ref:‘Isolator Bricklet <isolator_bricklet>` is always at position ’z’.
The device identifier numbers can be found :ref:‘here <device_identifier>`. |device_identifier_constant|
774 775 776 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 774 def get_identity send_request FUNCTION_GET_IDENTITY, [], '', 33, 'Z8 Z8 k C3 C3 S' end |
#get_linear_acceleration ⇒ Object
Returns the linear acceleration of the IMU Brick for the x, y and z axis. The acceleration is in the range configured with BrickletIMUV3#set_sensor_configuration.
The linear acceleration is the acceleration in each of the three axis of the IMU Brick with the influences of gravity removed.
It is also possible to get the gravity vector with the influence of linear acceleration removed, see BrickletIMUV3#get_gravity_vector.
If you want to get the linear acceleration periodically, it is recommended to use the CALLBACK_LINEAR_ACCELERATION callback and set the period with BrickletIMUV3#set_linear_acceleration_callback_configuration.
304 305 306 307 308 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 304 def get_linear_acceleration check_validity send_request FUNCTION_GET_LINEAR_ACCELERATION, [], '', 14, 's s s' end |
#get_linear_acceleration_callback_configuration ⇒ Object
Returns the callback configuration as set by BrickletIMUV3#set_linear_acceleration_callback_configuration.
564 565 566 567 568 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 564 def get_linear_acceleration_callback_configuration check_validity send_request FUNCTION_GET_LINEAR_ACCELERATION_CALLBACK_CONFIGURATION, [], '', 13, 'L ?' end |
#get_magnetic_field ⇒ Object
Returns the calibrated magnetic field from the magnetometer for the x, y and z axis.
If you want to get the magnetic field periodically, it is recommended to use the CALLBACK_MAGNETIC_FIELD callback and set the period with BrickletIMUV3#set_magnetic_field_callback_configuration.
248 249 250 251 252 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 248 def get_magnetic_field check_validity send_request FUNCTION_GET_MAGNETIC_FIELD, [], '', 14, 's s s' end |
#get_magnetic_field_callback_configuration ⇒ Object
Returns the callback configuration as set by BrickletIMUV3#set_magnetic_field_callback_configuration.
476 477 478 479 480 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 476 def get_magnetic_field_callback_configuration check_validity send_request FUNCTION_GET_MAGNETIC_FIELD_CALLBACK_CONFIGURATION, [], '', 13, 'L ?' end |
#get_orientation ⇒ Object
Returns the current orientation (heading, roll, pitch) of the IMU Brick as independent Euler angles. Note that Euler angles always experience a ‘gimbal lock <en.wikipedia.org/wiki/Gimbal_lock>`__. We recommend that you use quaternions instead, if you need the absolute orientation.
If you want to get the orientation periodically, it is recommended to use the CALLBACK_ORIENTATION callback and set the period with BrickletIMUV3#set_orientation_callback_configuration.
285 286 287 288 289 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 285 def get_orientation check_validity send_request FUNCTION_GET_ORIENTATION, [], '', 14, 's s s' end |
#get_orientation_callback_configuration ⇒ Object
Returns the callback configuration as set by BrickletIMUV3#set_orientation_callback_configuration.
542 543 544 545 546 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 542 def get_orientation_callback_configuration check_validity send_request FUNCTION_GET_ORIENTATION_CALLBACK_CONFIGURATION, [], '', 13, 'L ?' end |
#get_quaternion ⇒ Object
Returns the current orientation (w, x, y, z) of the IMU Brick as ‘quaternions <en.wikipedia.org/wiki/Quaternions_and_spatial_rotation>`__.
You have to divide the return values by 16383 (14 bit) to get the usual range of -1.0 to +1.0 for quaternions.
If you want to get the quaternions periodically, it is recommended to use the CALLBACK_QUATERNION callback and set the period with BrickletIMUV3#set_quaternion_callback_configuration.
337 338 339 340 341 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 337 def get_quaternion check_validity send_request FUNCTION_GET_QUATERNION, [], '', 16, 's s s s' end |
#get_quaternion_callback_configuration ⇒ Object
Returns the callback configuration as set by BrickletIMUV3#set_quaternion_callback_configuration.
608 609 610 611 612 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 608 def get_quaternion_callback_configuration check_validity send_request FUNCTION_GET_QUATERNION_CALLBACK_CONFIGURATION, [], '', 13, 'L ?' end |
#get_sensor_configuration ⇒ Object
Returns the sensor configuration as set by BrickletIMUV3#set_sensor_configuration.
405 406 407 408 409 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 405 def get_sensor_configuration check_validity send_request FUNCTION_GET_SENSOR_CONFIGURATION, [], '', 13, 'C C C C C' end |
#get_sensor_fusion_mode ⇒ Object
Returns the sensor fusion mode as set by BrickletIMUV3#set_sensor_fusion_mode.
432 433 434 435 436 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 432 def get_sensor_fusion_mode check_validity send_request FUNCTION_GET_SENSOR_FUSION_MODE, [], '', 9, 'C' end |
#get_spitfp_error_count ⇒ Object
Returns the error count for the communication between Brick and Bricklet.
The errors are divided into
-
ACK checksum errors,
-
message checksum errors,
-
framing errors and
-
overflow errors.
The errors counts are for errors that occur on the Bricklet side. All Bricks have a similar function that returns the errors on the Brick side.
647 648 649 650 651 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 647 def get_spitfp_error_count check_validity send_request FUNCTION_GET_SPITFP_ERROR_COUNT, [], '', 24, 'L L L L' end |
#get_status_led_config ⇒ Object
Returns the configuration as set by BrickletIMUV3#set_status_led_config
715 716 717 718 719 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 715 def get_status_led_config check_validity send_request FUNCTION_GET_STATUS_LED_CONFIG, [], '', 9, 'C' end |
#get_temperature ⇒ Object
Returns the temperature of the IMU Brick. The temperature is measured in the core of the BNO055 IC, it is not the ambient temperature
270 271 272 273 274 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 270 def get_temperature check_validity send_request FUNCTION_GET_TEMPERATURE, [], '', 9, 'c' end |
#get_temperature_callback_configuration ⇒ Object
Returns the callback configuration as set by BrickletIMUV3#set_temperature_callback_configuration.
520 521 522 523 524 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 520 def get_temperature_callback_configuration check_validity send_request FUNCTION_GET_TEMPERATURE_CALLBACK_CONFIGURATION, [], '', 13, 'L ?' end |
#read_uid ⇒ Object
Returns the current UID as an integer. Encode as Base58 to get the usual string version.
758 759 760 761 762 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 758 def read_uid check_validity send_request FUNCTION_READ_UID, [], '', 12, 'L' end |
#register_callback(id, &block) ⇒ Object
Registers a callback with ID id
to the block block
.
779 780 781 782 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 779 def register_callback(id, &block) callback = block @registered_callbacks[id] = callback end |
#reset ⇒ Object
Calling this function will reset the Bricklet. All configurations will be lost.
After a reset you have to create new device objects, calling functions on the existing ones will result in undefined behavior!
739 740 741 742 743 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 739 def reset check_validity send_request FUNCTION_RESET, [], '', 8, '' end |
#save_calibration ⇒ Object
A call of this function saves the current calibration to be used as a starting point for the next restart of continuous calibration of the IMU Brick.
A return value of true means that the calibration could be used and false means that it could not be used (this happens if the calibration status is not “fully calibrated”).
This function is used by the calibration window of the Brick Viewer, you should not need to call it in your program.
389 390 391 392 393 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 389 def save_calibration check_validity send_request FUNCTION_SAVE_CALIBRATION, [], '', 9, '?' end |
#set_acceleration_callback_configuration(period, value_has_to_change) ⇒ Object
The period is the period with which the CALLBACK_ACCELERATION callback is triggered periodically. A value of 0 turns the callback off.
If the ‘value has to change`-parameter is set to true, the callback is only triggered after the value has changed. If the value didn’t change within the period, the callback is triggered immediately on change.
If it is set to false, the callback is continuously triggered with the period, independent of the value.
447 448 449 450 451 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 447 def set_acceleration_callback_configuration(period, value_has_to_change) check_validity send_request FUNCTION_SET_ACCELERATION_CALLBACK_CONFIGURATION, [period, value_has_to_change], 'L ?', 8, '' end |
#set_all_data_callback_configuration(period, value_has_to_change) ⇒ Object
The period is the period with which the CALLBACK_ALL_DATA callback is triggered periodically. A value of 0 turns the callback off.
If the ‘value has to change`-parameter is set to true, the callback is only triggered after the value has changed. If the value didn’t change within the period, the callback is triggered immediately on change.
If it is set to false, the callback is continuously triggered with the period, independent of the value.
623 624 625 626 627 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 623 def set_all_data_callback_configuration(period, value_has_to_change) check_validity send_request FUNCTION_SET_ALL_DATA_CALLBACK_CONFIGURATION, [period, value_has_to_change], 'L ?', 8, '' end |
#set_angular_velocity_callback_configuration(period, value_has_to_change) ⇒ Object
The period is the period with which the CALLBACK_ANGULAR_VELOCITY callback is triggered periodically. A value of 0 turns the callback off.
If the ‘value has to change`-parameter is set to true, the callback is only triggered after the value has changed. If the value didn’t change within the period, the callback is triggered immediately on change.
If it is set to false, the callback is continuously triggered with the period, independent of the value.
491 492 493 494 495 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 491 def set_angular_velocity_callback_configuration(period, value_has_to_change) check_validity send_request FUNCTION_SET_ANGULAR_VELOCITY_CALLBACK_CONFIGURATION, [period, value_has_to_change], 'L ?', 8, '' end |
#set_bootloader_mode(mode) ⇒ Object
Sets the bootloader mode and returns the status after the requested mode change was instigated.
You can change from bootloader mode to firmware mode and vice versa. A change from bootloader mode to firmware mode will only take place if the entry function, device identifier and CRC are present and correct.
This function is used by Brick Viewer during flashing. It should not be necessary to call it in a normal user program.
662 663 664 665 666 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 662 def set_bootloader_mode(mode) check_validity send_request FUNCTION_SET_BOOTLOADER_MODE, [mode], 'C', 9, 'C' end |
#set_gravity_vector_callback_configuration(period, value_has_to_change) ⇒ Object
The period is the period with which the CALLBACK_GRAVITY_VECTOR callback is triggered periodically. A value of 0 turns the callback off.
If the ‘value has to change`-parameter is set to true, the callback is only triggered after the value has changed. If the value didn’t change within the period, the callback is triggered immediately on change.
If it is set to false, the callback is continuously triggered with the period, independent of the value.
579 580 581 582 583 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 579 def set_gravity_vector_callback_configuration(period, value_has_to_change) check_validity send_request FUNCTION_SET_GRAVITY_VECTOR_CALLBACK_CONFIGURATION, [period, value_has_to_change], 'L ?', 8, '' end |
#set_linear_acceleration_callback_configuration(period, value_has_to_change) ⇒ Object
The period is the period with which the CALLBACK_LINEAR_ACCELERATION callback is triggered periodically. A value of 0 turns the callback off.
If the ‘value has to change`-parameter is set to true, the callback is only triggered after the value has changed. If the value didn’t change within the period, the callback is triggered immediately on change.
If it is set to false, the callback is continuously triggered with the period, independent of the value.
557 558 559 560 561 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 557 def set_linear_acceleration_callback_configuration(period, value_has_to_change) check_validity send_request FUNCTION_SET_LINEAR_ACCELERATION_CALLBACK_CONFIGURATION, [period, value_has_to_change], 'L ?', 8, '' end |
#set_magnetic_field_callback_configuration(period, value_has_to_change) ⇒ Object
The period is the period with which the CALLBACK_MAGNETIC_FIELD callback is triggered periodically. A value of 0 turns the callback off.
If the ‘value has to change`-parameter is set to true, the callback is only triggered after the value has changed. If the value didn’t change within the period, the callback is triggered immediately on change.
If it is set to false, the callback is continuously triggered with the period, independent of the value.
469 470 471 472 473 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 469 def set_magnetic_field_callback_configuration(period, value_has_to_change) check_validity send_request FUNCTION_SET_MAGNETIC_FIELD_CALLBACK_CONFIGURATION, [period, value_has_to_change], 'L ?', 8, '' end |
#set_orientation_callback_configuration(period, value_has_to_change) ⇒ Object
The period is the period with which the CALLBACK_ORIENTATION callback is triggered periodically. A value of 0 turns the callback off.
If the ‘value has to change`-parameter is set to true, the callback is only triggered after the value has changed. If the value didn’t change within the period, the callback is triggered immediately on change.
If it is set to false, the callback is continuously triggered with the period, independent of the value.
535 536 537 538 539 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 535 def set_orientation_callback_configuration(period, value_has_to_change) check_validity send_request FUNCTION_SET_ORIENTATION_CALLBACK_CONFIGURATION, [period, value_has_to_change], 'L ?', 8, '' end |
#set_quaternion_callback_configuration(period, value_has_to_change) ⇒ Object
The period is the period with which the CALLBACK_QUATERNION callback is triggered periodically. A value of 0 turns the callback off.
If the ‘value has to change`-parameter is set to true, the callback is only triggered after the value has changed. If the value didn’t change within the period, the callback is triggered immediately on change.
If it is set to false, the callback is continuously triggered with the period, independent of the value.
601 602 603 604 605 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 601 def set_quaternion_callback_configuration(period, value_has_to_change) check_validity send_request FUNCTION_SET_QUATERNION_CALLBACK_CONFIGURATION, [period, value_has_to_change], 'L ?', 8, '' end |
#set_sensor_configuration(magnetometer_rate, gyroscope_range, gyroscope_bandwidth, accelerometer_range, accelerometer_bandwidth) ⇒ Object
Sets the available sensor configuration for the Magnetometer, Gyroscope and Accelerometer. The Accelerometer Range is user selectable in all fusion modes, all other configurations are auto-controlled in fusion mode.
398 399 400 401 402 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 398 def set_sensor_configuration(magnetometer_rate, gyroscope_range, gyroscope_bandwidth, accelerometer_range, accelerometer_bandwidth) check_validity send_request FUNCTION_SET_SENSOR_CONFIGURATION, [magnetometer_rate, gyroscope_range, gyroscope_bandwidth, accelerometer_range, accelerometer_bandwidth], 'C C C C C', 8, '' end |
#set_sensor_fusion_mode(mode) ⇒ Object
If the fusion mode is turned off, the functions BrickletIMUV3#get_acceleration, BrickletIMUV3#get_magnetic_field and BrickletIMUV3#get_angular_velocity return uncalibrated and uncompensated sensor data. All other sensor data getters return no data.
Since firmware version 2.0.6 you can also use a fusion mode without magnetometer. In this mode the calculated orientation is relative (with magnetometer it is absolute with respect to the earth). However, the calculation can’t be influenced by spurious magnetic fields.
Since firmware version 2.0.13 you can also use a fusion mode without fast magnetometer calibration. This mode is the same as the normal fusion mode, but the fast magnetometer calibration is turned off. So to find the orientation the first time will likely take longer, but small magnetic influences might not affect the automatic calibration as much.
425 426 427 428 429 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 425 def set_sensor_fusion_mode(mode) check_validity send_request FUNCTION_SET_SENSOR_FUSION_MODE, [mode], 'C', 8, '' end |
#set_status_led_config(config) ⇒ Object
Sets the status LED configuration. By default the LED shows communication traffic between Brick and Bricklet, it flickers once for every 10 received data packets.
You can also turn the LED permanently on/off or show a heartbeat.
If the Bricklet is in bootloader mode, the LED is will show heartbeat by default.
708 709 710 711 712 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 708 def set_status_led_config(config) check_validity send_request FUNCTION_SET_STATUS_LED_CONFIG, [config], 'C', 8, '' end |
#set_temperature_callback_configuration(period, value_has_to_change) ⇒ Object
The period is the period with which the CALLBACK_TEMPERATURE callback is triggered periodically. A value of 0 turns the callback off.
If the ‘value has to change`-parameter is set to true, the callback is only triggered after the value has changed. If the value didn’t change within the period, the callback is triggered immediately on change.
If it is set to false, the callback is continuously triggered with the period, independent of the value.
513 514 515 516 517 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 513 def set_temperature_callback_configuration(period, value_has_to_change) check_validity send_request FUNCTION_SET_TEMPERATURE_CALLBACK_CONFIGURATION, [period, value_has_to_change], 'L ?', 8, '' end |
#set_write_firmware_pointer(pointer) ⇒ Object
Sets the firmware pointer for BrickletIMUV3#write_firmware. The pointer has to be increased by chunks of size 64. The data is written to flash every 4 chunks (which equals to one page of size 256).
This function is used by Brick Viewer during flashing. It should not be necessary to call it in a normal user program.
681 682 683 684 685 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 681 def set_write_firmware_pointer(pointer) check_validity send_request FUNCTION_SET_WRITE_FIRMWARE_POINTER, [pointer], 'L', 8, '' end |
#write_firmware(data) ⇒ Object
Writes 64 Bytes of firmware at the position as written by BrickletIMUV3#set_write_firmware_pointer before. The firmware is written to flash every 4 chunks.
You can only write firmware in bootloader mode.
This function is used by Brick Viewer during flashing. It should not be necessary to call it in a normal user program.
695 696 697 698 699 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 695 def write_firmware(data) check_validity send_request FUNCTION_WRITE_FIRMWARE, [data], 'C64', 9, 'C' end |
#write_uid(uid) ⇒ Object
Writes a new UID into flash. If you want to set a new UID you have to decode the Base58 encoded UID string into an integer first.
We recommend that you use Brick Viewer to change the UID.
750 751 752 753 754 |
# File 'lib/tinkerforge/bricklet_imu_v3.rb', line 750 def write_uid(uid) check_validity send_request FUNCTION_WRITE_UID, [uid], 'L', 8, '' end |