Motion tracking sensors
Motion tracking assists in tracking the movement of objects and transferring the sensed data to an application for further processing. Motion tracking includes capturing the motions of objects matching with its stored motion template. This has a wide range of applications such as in military, entertainment, sports, medical applications, validation of computer vision and robotics. Furthermore, it is also used in film making and in video game development. In many areas, motion tracking is often called motion capture, whereas in film making and games, motion tracking is commonly called match moving.
MEMS Gyroscopes
The Gyroscope measures angular velocity using the Coriolis Effect. When a mass moves in a certain direction with a certain speed and an external angular rate is applied as shown in the green arrow below, a force such as the red-blue arrow shown, causes the mass to move vertically.
So, similar to the accelerometer, this displacement causes a change in capacitance that is associated with a specific angular rate.
The structure of the micro-Gyroscope is something like this. A mass that is constantly moving or oscillating and when an external angular rate is applied, the flexible part of the mass moves and undergoes vertical displacement.
Accelerometers
An accelerometer is a device that measures the vibration, or acceleration of motion of a structure. The force caused by vibration or a change in motion (acceleration) causes the mass to “squeeze” the piezoelectric material which produces an electrical charge that is proportional to the force exerted upon it. Since the charge is proportional to the force, and the mass is a constant, then the charge is also proportional to the acceleration. These sensors are used in a variety of ways from space stations to handheld devices, and there’s a good chance you already own a device with an accelerometer in it. For example, almost all smartphones today house an accelerometer. They help the phone know whether it undergoes acceleration in any direction, and it’s the reason why your phone’s display switches on when you flip it. In an industry setting, accelerometers help engineers understand a machine’s stability and enable them to monitor for any unwanted forces/vibrations.
An accelerometer works using an electromechanical sensor that is designed to measure either static or dynamic acceleration. Static acceleration is the constant force acting on a body, like gravity or friction. These forces are predictable and uniform to a large extend. For example, the acceleration due to gravity is constant at 9.8m/s, and the gravitation force is almost the same at every point on earth.
The theory behind accelerometers is that they can detect acceleration and convert it into measurable quantities like electrical signals.
An overview of the ICM20602
ICM20602 MEMS Motion Tracking Sensor
The ICM20602 is a 6-axis MotionTracking device that combines a 3-axis gyroscope, 3-axis accelerometer, in a small 3 mm x 3 mm x 0.75 mm (16-pin LGA) package.
ICM20602 includes on-chip 16-bit ADCs, programmable digital filters, an embedded temperature sensor, and programmable interrupts. The device features an operating voltage range down to 1.71V. Communication ports include I2C and high speed SPI at 10 MHz..
this sensor has a 3-axis gyroscope with programmable FSR of ±250,dps, ±500 dps, ±1000 dps, and ±2000 dps, also the accelerometer in this sensor is also a 3-axis accelerometer that has a programmable FSR of ± 2g, ± 4g, ±8g and ±16g.
The ICM20602 device also includes 1 KB FIFO to reduce traffic on the serial bus interface, and reduce power consumption by allowing the system processor to burst read sensor data and then go into a low-power mode.
Both SPI and I2C protocols can be used to communicate with this sensor. This sensor can also be used in sports applications and to make wearable sensors.
Specification
Applications
- Number of Axis: 6-Axis
- Output type: Digital-I2C or SPI
- Accelerometer FSR: ±2, ±4, ±8, ±16(g)
- Accelerometer Sensitivity SF: 16384, 2048 (LSB/g), 4096, 8192
- Gyroscope FSR: ±250, ±500, ±1000, ±2000(dps)
- Gyroscope Sensitivity SF: 131, 16.4 (LSB/dps), 32.8, 65.5
- Acc. & Gyro ADC: 16 Bit
For more specifications please refer to the Datasheet
- Smartphones and Tablets
- Wearable Sensors
- IOT Applications
- Motion-based game controllers
- 3D remote controls for Internet connected DTVs and set top boxes, 3D mice
GebraBit ICM20602 Module Key Features
- User-selectable module power supply voltage between 1V8 and 3V3
- User-selectable module I/O logic voltage between 1V8 and 3V3
- User-selectable interface protocol (I2C or SPI)
- User-selectable I2C address (AD0)
- Access to all data pins of the sensor
- On Board, ON/OFF LED indicator
- Pin Compatible with GEBRABUS
- It can be used as a daughter board of GebraBit MCU Modules
- Featuring Castellated pad (Assembled as SMD Part)
- Separatable screw parts to reduce the size of the board
- Package: GebraBit small (36.29mm x 32.72mm)
GebraBit ICM20602 module
After the explanations mentioned above , due to LGA package and lack of access to sensor pins, you have noticed that, the user needs a starter circuit and driver for the hardware development and of course the software development of the ICM20602 sensor. For the convenience of users, this work has been done by implementing the ICM20602 sensor circuit and providing access to the communication and power supply signal pins, with the ability to select the I2C or SPI communication protocol and the operation voltage and logic level of the communication protocols.
It is enough to put the GebraBit ICM20602 module in the BreadBoard, then by applying the proper voltage and choosing the I2C or SPI communication protocol, setting up the GebraBit ICM20602 module with any of Arduino, Raspberry Pi, Discovery board, and especially we recommend using GebraBit microcontroller development modules( GebraBit STM32F303 or GebraBit ATMEGA32 module) then receiving the data.
The reason of our recommendation for setting-up the GebraBit ICM20602 module with GebraBit microcontroller development modules(such as GebraBit STM32F303 or GebraBit ATMEGA32), is the presence of an internal 3V3 regulator on these modules and the compatibility of the pin order of all GebraBit modules together (GEBRABUS standard), it’s enough to Put the ICM20602 in the corresponding socket as shown in the above picture and develop the desired sensor module without the need for wiring.
.
Introduction of module sections
ICM20602 sensor
It’s the main IC of the following module, which is placed in the center of the module and its circuit is designed.
Communication Potocol Selection Jumpers
If the 0R resistors of all Jumper Selectors are to the left, the I2C protocol is selected.
If the 0R resistors of all jumper selectors are to the right side, the SPI protocol is selected.
by default, I2C protocol is selected.
AD0 SEL jumper
If the I2C protocol is selected, the state of the AD0 SEL jumper, determines the I2C address of the sensor (0 => 0x68 or 1 =>0x69).
By default, the 0R resistor is set to 0 and the address 0x68 is selected.
VDIO SEL jumper
According to the state of 0R resistance of this jumper, the logic level of digital communication (I2C or SPI) of the sensor is selected between 1V8 and 3V3.
By default, the digital communication logic level (I2C or SPI) of the sensor is selected 3V3.
VDD SEL jumper
According to the state of 0R resistance of this jumper, the main voltage of power supply the sensor is selected between 1V8 and 3V3.
The main sensor power supply voltage is 3V3 (By default).
LED power supply
According to the state of the VDD SEL jumper and applying voltage to the module by the corresponding pin, the LED of the module will be lit.
GebraBit ICM20602 Module pins
Supply pins
- 3V3: This pin can supply the sensor’s main power supply and the logic level of the sensor’s digital connection (I2C or SPI) according to the state of the VDDSEL and VDIOSEL jumper selectors.
- 1V8: This pin can supply the sensor’s main power supply and the logic level of the sensor’s digital communication (I2C or SPI) according to the state of the VDDSEL and VDIOSEL jumper selectors.
- GND: This is the common ground pin for power and logic level of the sensor.
I2C pins
By using the on-board embedded Jumper selectors, you can choose the type of module communication . If the 0R resistors of all the Jumper Selectors are to the left side, the I2C protocol is selected. AD0 SEL jumper status is the I2C address of the sensor (0x68 or 0x69 ).
- SDA: This pin is the I2C communication data pin, which is connected to the corresponding data pin in the microcontroller (processor). According to the state of the VDIOSEL jumper, you can use the logic level with a voltage of 1V8 or 3V3.This pin is pulled up with a 10K resistor.
- SCL: This pin is the I2C communication clock pin, which is connected to the corresponding clock pin in the microcontroller (processor). Depending on the state of the VDIOSEL jumper, you can use the logic level with a voltage of 1V8 or 3V3. This pin is pulled up with a 10K resistor.
SPI pins
The type of communication with the module can be selected by using the on-board embedded Jumper Selectors. If the 0R resistors of all the Jumper Selectors are to the right side, the SPI protocol has been selected. The state of the AD0 SEL jumper has no effect in this case.
- SDI (MOSI): This pin is used to send data from the microcontroller (processor) to the module (sensor). The abbreviation of this pin is derived from the Latin phrase Serial Data In / Microcontroller Out Sensor In.
- SDO (MISO): This pin is used to send data from the module (sensor) to the microcontroller (processor). The abbreviation of this pin is derived from the Latin phrase Serial Data Out / Microcontroller In Sensor Out.
- SCK: This pin is the clock pin for SPI communication, which is considered as an input for the sensor and is connected to the corresponding clock pin in the microcontroller (processor).
- CS: This pin is the Chip Select pin for SPI communication with the module (sensor), which is selected by applying LOW voltage (0V), the module (sensor) for SPI communication. This pin is input type for the sensor.
If you want to use several GebraBit ICM20602 modules at the same time, it is enough to connect the SDO, SDI, SCK pins of all modules and the microcontroller (processor) and assign a unique pin to each CS.
Other pins
- INT: Interrupt pin for ICM20602 sensor, according to the datasheet , the user can set the interrupt conditions, the modes and methods of the interruption, etc.
- FSY(FSYNC): This pin is used to synchronize the sensor with an external source. For more information, read the data sheet of the sensor. By default, this pin is connected to the ground with R3 resistor. To use Pin, R3resistor must be removed (disassembly) from the module.
Connect to the processor
I2C connection with GebraBit STM32F303
First, make sure that the I2C protocol is selected by using the on-board jumpers, then for i2c connection of GebraBit ICM20602 and GebraBit STM32F303 microcontroller module, after defining SDA and SCL on pins PB9 and PB8 (for convenience in STMCUBEMX), follow the below steps:
- Connect the 3V3 pin of the ICM20602 module to the 3V3 output pin of the microcontroller module. (red wire)
- Connect the GND pin of the ICM20602 module to the GND pin of the microcontroller module (black wire).
- Connect the SCL pin of the ICM20602 module to the PB8 pin of the microcontroller (SCL) module (blue wire).
- Connect the SDA pin of the ICM20602 module to the PB9 pin of the microcontroller (SDA) module. (yellow wire)
You can see how to connect the above items mentioned in this picture:
Note: Considering that the PA14 pin of the GebraBit STM32F303 microcontroller module is used to program the microcontroller, I2C setting on the PA14 and PA15 pins is impossible in this version, so in this version for I2C connection with the GebraBit STM32F303 microcontroller module, GebraBit ICM20602 module cannot be placed on it as Pin to Pin. For convenience, you can select the SPI protocol by using the on-board jumpers and then place the GebraBit ICM20602 module as Pin to Pin on the GebraBit STM32F303 module.
SPI connection with GebraBit STM32F303
First, make sure that the SPI protocol is selected by using the on-board jumpers, then for connecting GebraBit ICM20602 module to the GebraBit STM32F303 microcontroller module with SPI protocol, after defining SDI, SDO, SCK, and CS on pins PB5, PB4, PB3, and PC13 ( For ease of work in STMCUBEMX) place the GebraBit ICM20602 module Pin to Pin on the GebraBit STM32F303 module easily. Here the separate connection of the modules is shown for better understanding.
NOTE: If you are using GebraBit microcontroller modules, note that the power jumper selectors of the GebraBit ICM20602 are set to 3V3 so that you can easily power-on the GebraBit ICM20602 module by getting the 3V3 voltage from the microcontroller module.
SPI or I2C connection with GebraBit ATMEGA32A
Considering that the SPI and I2C pins of the ATMEGA32A microcontroller are based on the GEBRABUS standard and correspond to the SPI and I2C pins of other GEBRABIT modules, the GebraBit ICM20602 module can be placed pin to pin on the GebraBit ATMEGA32A module and communicate with the GebraBit ICM20602 module via SPI or I2C by changing the state of the protocol selection jumper resistors. Here the separate connection of the modules is shown for better understanding.
I2C Connection with ARDUINO UNO
First, make sure that the I2C protocol is selected by using the on-board jumpers, then follow the below steps to connect the GebraBit ICM20602 module to the ARDUINO UNO via I2C :
- Connect the 3V3 pin of the ICM20602 module to the 3V3 output pin of the ARDUINO UNO board. (red wire)
- Connect the GND pin of the ICM20602 module to the GND pin of the ARDUINO UNO board. (black wire)
- Connect the SCL pin of the ICM20602 module to the A5 pin of the ARDUINO UNO board (SCL). (blue wire)
- Connect the SDA pin of the ICM20602 module to the A4 pin of the ARDUINO UNO board (SDA). (orange wire)
You can see how to connect the above items mentioned in this picture:
SPI Connection with ARDUINO UNO
First, make sure the SPI protocol is selected using the on-board jumpers, then follow the below steps to connect the GebraBit ICM20602 module to the ARDUINO UNO via SPI:
- Connect the 3V3 pin of ICM20602 module to the 3V3 output pin of the ARDUINO UNO board. (red wire)
- Connect the GND pin of the ICM20602 module to the GND pin of the ARDUINO UNO board (black wire).
- Connect the SDI pin of the ICM20602 module to the D11 pin of the ARDUINO UNO board (SDI). (yellow wire)
- Connect the SDO pin of the ICM20602 module to the D12 pin of the ARDUINO UNO board (SDO). (Purple wire)
- Connect SCK pin of ICM20602 module to D13 pin of ARDUINO UNO board (SCK). (Orange wire)
- Connect the CS pin of the ICM20602 module to the D10 pin of the ARDUINO UNO board (SS). (blue wire)
You can see how to connect the above items mentioned in this picture: