This library helps communicate with the already setup Easy IMU Module in your PC or microcomputer-based python projects, with the eimu_setup_application.
you can use it in your microcomputer robotics project (e.g Raspberry Pi, PC, etc.)
A simple way to get started is simply to try out and follow the example code
- you'll need to pip install the pyserial library
pip3 install pyserial //linux or mac pip install pyserial //windows
- Download (by clicking on the green Code button above) or clone the repo into your PC using
git clone
Note
you can use this command if you want to clone the repo:
git clone https://github.com/samuko-things-company/eimu_python.git
-
Ensure you have the Easy IMU Module is already calibrated.
-
Connect the Easy IMU Module to your PC or microcomputer
-
A simple way to get started is simply to try out and follow the example
read_rpy.pycode. -
You can copy the
eimu.pyfile into your python robotics project, import the library as shown in the exampleread_imu.pycode, add it to your code, and start using it.
-
connect to smc_driver shield module
eimu = EIMU()
eimu.connect("port_name or port_path")
eimu.clearDataBuffer() # returns bool -> success
-
set imu reference frame -> NWU (0), ENU (1), NED (2)
eimu.setWorldFrameId(frame_id)
-
get imu reference frame -> NWU (0), ENU (1), NED (2)
eimu.getWorldFrameId() # returns tuple -> (success, frame_id): bool, int
-
adjust filter gain
eimu.setFilterGain(gain)
-
read filter gain
eimu.getFilterGain() # returns tuple -> (success, gain): bool, float
-
read all IMU data (orientation - RPY, linear acceleration, angular velocity)
eimu.readImuData() # returns tuple -> (success, r, p, y, ax, ay, az, gx, gy, gz): bool, float, float, float, float, float, float, float, float, float
-
read Oreintation - Quaterninos
eimu.readQuat() # returns tuple -> (success, qw, qx, qy, qz): bool, float, float, float, float
-
read Oreintation - RPY
eimu.readRPY() # returns tuple -> (success, r, p, y): bool, float, float, float
-
read Linear Acceleration
eimu.readLinearAcc() # returns tuple -> (success, ax, ay, az): bool, float, float, float
-
read Gyro (Angular velocity)
eimu.readGyro() # returns tuple -> (success, gx, gy, gz): bool, float, float, float