Rei Vilo's fischertechnik Corner
  • About
  • Blog
  • Reviews
    • How to Start?
    • Controllers >
      • Robotics TXT
      • TXT 4.0 Controller
      • Bluetooth Smart Beginner Set
      • Interface Boards for fischertechnik Models
      • Didacta Advance Pi-F5 interface board
    • Sets >
      • Technical Revolutions Set
      • Pneumatic Power Set
      • Automation Robots Set
      • Electro-Pneumatic Set
      • Starter Set for micro:bit
      • Bluetooth Smart Beginner Set
      • Robotics TXT Smart Home Set
    • Exploring the Lego World >
      • Purchasing
      • Unboxing
      • Installing
      • Building
      • Programming
      • Connecting
      • Playing
      • Expanding
      • Concluding
  • Models
    • Back to the 70's
    • Micro Models
    • New Magasin >
      • Magasin releases 1, 2 and 3
      • Long X-Axis
      • Moving Desk And Y-Axis
      • Compressed Air And Vacuum For Z-Axis
      • Pictures
      • Specifications
    • Power Saving White LED
    • Flipper with I²C LCD Panel
    • Celebrating 50 Years!
    • ft Convention 2013
    • ft Convention 2014
  • Sensors
    • Interfacing an Arduino to a Robo TX Controller >
      • Analog Interface
      • Digital Interface
      • I²C Interface
    • Standard Sensors >
      • Playing With Accelerometers
      • Proximity Sensor
      • Pressure Sensor
    • Advanced Sensors >
      • Industrial Colour Reader
      • Stepper Motor Controller
      • DC-Motor with Quadrature Encoder Controller
    • smartDevices >
      • smartColours
      • smartRFID
      • smartLED
      • smartHub
      • smartControls
      • smartMeter
      • smartCamera
      • smartNewCamera
      • smartWiFi
      • smartBLE
      • smartNode
      • smartIMU
  • RoboPro
    • Value Operations >
      • Min and Max Functions
      • Signal Management With Median
      • Modulo Function
      • Map Function
    • Standard Modules >
      • Software Managed Compressor
      • Self-Calibrated Colour-Reader
      • Standard Conveyor Belt Routine
      • Management Panel
      • Encoder-Motor Position Management
    • Variable Types >
      • CSV List Management
      • Queue Function
    • Program Structures >
      • Parallel Processing
      • Multi-Tasking End Management Procedure
    • Tutorials >
      • Setting Bluetooth LAN with Multiple TX-Cs
      • Dealing with Very Large Models >
        • Getting a General View
        • Defining User's Functions
        • Elaborating the Modelisation
        • Defining the Processes
        • Setting the Messages
        • Going Further
        • References
      • Program Error 2 Message
  • I²C
    • How to Connect an I²C Device to the Robo TX?
    • How to Connect an I²C Device to the Robotics TXT?
    • How to Manage an I²C Device?
    • How to Use an I²C Driver?
    • List of I²C Drivers for Sensors >
      • I²C Real Time Clock DS1307
      • I²C LCD screen 4 lines of 20 characters LCD03
      • I²C Triple Axis Accelerometer ADXL345
      • I²C Red-Green-Blue LED BlinkM
      • I²C Two Axis Compass HMC6352
      • I²C Triple Axis Magnetometer HMC5843
      • I²C True Colour Sensor ADJD-S371
      • I²C Stepper Controller AMIS-30624
    • List of I²C Drivers for smartDevices >
      • I²C True Colours Smart Sensor smartColours
      • I²C RFID Smart Sensor smartRFID
      • I²C 4-Digit 7-Segment LED Display smartLED
      • I²C Screen With Touch and SD-Card smartControls
      • I²C Smart Sensor smartCamera
      • I²C Smart Sensor smartNewCamera
      • I²C Remote WiFi Interface smartWiFi​
      • I²C Remote Bluetooth Interface smartBLE​
      • I²C Remote Interface smartNode​
      • I²C New LCD Screen 4 x 20 characters smartLCD
      • I²C Inertial Measurement Unit smartIMU

smartIMU

This project is shared with the Embedded Computing website, as the whole development is carried out with the tools I use for embedded computing.

The 519143 Robotics Competition Set features a new I²C sensor, the gyro-sensor (reference 158402) based on a BMX055.
​
Picture

​Functional Description

The BMX055 (data-sheet) by Bosch SensorTec combines 9-DOF IMU (9 degrees of freedom inertial measurement unit) with a 3-axis acceleration sensor, a 3-axis gyroscope and a 3-axis geomagnetic sensor.

However, it only  provides raw data, and does not include any MCU to fusion data and compute angles.

Another sensors on the extensive range of Bosch SensorTec are the BNO055 (data-sheet) and BNO080 (data-sheet), which offer the same 9-DOF IMU but include a built-in Cortex-M0+ MCU for data fusion and angle computation, including Euler angles, quaternion, rotation vector, linear acceleration. The smartIMU sensor is based on this range of sensors.
Picture

​Commands

The smartIMU relies on a limited set of commands:
  • IMU_begin  checks the I²C connection with the sensor and initialises the sensor.
  • IMU_setConfiguration configures the units and orientation of the IMU.
  • IMU_getEuler gets the Euler angles (roll, pitch and yaw).
  • IMU_getLinearAcceleration gets the linear acceleration.
  • IMU_getGravityVector gets the gravity vector.
  • IMU_getQuaternion gets the quaternion.
  • IMU_getAccelerometer gets the acceleration data.
  • IMU_getGyroscope gets the gyroscope data.
  • IMU_getMagnetometer gets the magnetometer data.
Picture

​First Prototype

The prototype was built on a breadboard and tested with a MCU-based board, then with the RoboTX controller.

​The sensor worked fine on the first test.
Picture

​Finalised and Working Sensor

The sensor is finalised, integrated into a standard fischertechnik 9 V battery box and working!
Picture
Powered by Create your own unique website with customizable templates.