Skip to main content

Calibrate magnetometer and accelerometer readings

Project description

Introduction

Discord Build Status Code Style: Black

This library allows you to calibrate magnetometers when used with a 3 axis accelerometer. It is designed for use with circuitpython and ulab, but can be used in any python environment where numpy is present.

Dependencies

This driver depends on:

Installing from PyPI

On supported GNU/Linux systems like the Raspberry Pi, you can install the driver locally from PyPI. To install for current user:

pip3 install circuitpython-mag-cal

To install system-wide (this may be required in some cases):

sudo pip3 install circuitpython-mag-cal

To install in a virtual environment in your current project:

mkdir project-name && cd project-name
python3 -m venv .venv
source .env/bin/activate
pip3 install circuitpython-mag-cal

Installing to a Connected CircuitPython Device with Circup

Make sure that you have circup installed in your Python environment. Install it with the following command if necessary:

pip3 install circup

With circup installed and your CircuitPython device connected use the following command to install:

circup install mag_cal

Or the following command to update an existing version:

circup update

Usage Example

from mag_cal.calibration import Calibration
from mag_cal.utils import read_fixture

PATH = "../tests/fixtures/cal_data/hj2.json"

with open(PATH) as f:
    aligned, grav, mag = read_fixture(f.read())

calib = Calibration()
calib.fit_ellipsoid(mag, grav)
calib.fit_to_axis(aligned)
calib.fit_non_linear_quick(aligned, param_count=5)

#calib.fit_non_linear(aligned, param_count=3)
for m, g in zip(mag,grav):
    azimuth, inclination, roll = calib.get_angles(m, g)
    print(f"{azimuth:05.1f}° {inclination:+05.1f}° {roll:+04.0f}°")

Documentation

API documentation for this library can be found on Read the Docs.

For information on building library documentation, please check out this guide.

Contributing

Contributions are welcome! Please read our Code of Conduct before contributing to help this project stay welcoming.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

circuitpython-mag-cal-1.2.1.tar.gz (65.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

circuitpython_mag_cal-1.2.1-py3-none-any.whl (23.1 kB view details)

Uploaded Python 3

File details

Details for the file circuitpython-mag-cal-1.2.1.tar.gz.

File metadata

  • Download URL: circuitpython-mag-cal-1.2.1.tar.gz
  • Upload date:
  • Size: 65.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for circuitpython-mag-cal-1.2.1.tar.gz
Algorithm Hash digest
SHA256 d9acb58a9f3ed897c13efd66c388713ed15a2f680879b5f5d2bf6a36f40d877a
MD5 634390c900148a840a33a937c2b73166
BLAKE2b-256 ddead97db2f6a46ae7132e29b1b5221aaae137314bb5dbdf1e6f977d211d64a1

See more details on using hashes here.

File details

Details for the file circuitpython_mag_cal-1.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for circuitpython_mag_cal-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4c2f09801823536ce62c65fb8363ca96a49794b23d0c52873f1dfe0dd8716bb2
MD5 8fd3d8a2d6e171644b2872bda617c79f
BLAKE2b-256 9587e334836c617b342576f929cdb80223dc8a0024bffbc58b260515f5fd6ce8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page