From d61a94d44735c1b5b8d642d054011c00ecc675d8 Mon Sep 17 00:00:00 2001 From: FoamyGuy Date: Wed, 5 Feb 2020 16:45:50 -0600 Subject: [PATCH 1/4] adding inclinometer example --- examples/lsm303_accel_inclinometer.py | 37 +++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 examples/lsm303_accel_inclinometer.py diff --git a/examples/lsm303_accel_inclinometer.py b/examples/lsm303_accel_inclinometer.py new file mode 100644 index 0000000..fc70f68 --- /dev/null +++ b/examples/lsm303_accel_inclinometer.py @@ -0,0 +1,37 @@ +""" Display inclination data five times per second """ + +import time +import board +import busio +import adafruit_lsm303_accel +from math import atan2, degrees + +i2c = busio.I2C(board.SCL, board.SDA) +sensor = adafruit_lsm303_accel.LSM303_Accel(i2c) + + +def vector_2_degrees(x, y): + radians = atan2(y, x) + degrees_calc = degrees(radians) + if degrees_calc < 0: + degrees_calc = 360 + degrees_calc + return degrees_calc + + +def get_inclination(_sensor): + return get_inclination_respect_x(_sensor), get_inclination_respect_y(_sensor) + + +def get_inclination_respect_x(_sensor): + accel_axis_data = _sensor.acceleration + return vector_2_degrees(accel_axis_data[0], accel_axis_data[2]) + + +def get_inclination_respect_y(_sensor): + accel_axis_data = _sensor.acceleration + return vector_2_degrees(accel_axis_data[1], accel_axis_data[2]) + + +while True: + print("inclination: (%s, %s)" % (get_inclination(sensor))) + time.sleep(0.2) From b2fbce5e03e1a01129a167e736543e7f4bb97f54 Mon Sep 17 00:00:00 2001 From: FoamyGuy Date: Wed, 5 Feb 2020 16:58:59 -0600 Subject: [PATCH 2/4] adding inclinometer example, change import order for pylint --- examples/lsm303_accel_inclinometer.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/lsm303_accel_inclinometer.py b/examples/lsm303_accel_inclinometer.py index fc70f68..b9f6753 100644 --- a/examples/lsm303_accel_inclinometer.py +++ b/examples/lsm303_accel_inclinometer.py @@ -1,10 +1,11 @@ """ Display inclination data five times per second """ import time +from math import atan2, degrees import board import busio import adafruit_lsm303_accel -from math import atan2, degrees + i2c = busio.I2C(board.SCL, board.SDA) sensor = adafruit_lsm303_accel.LSM303_Accel(i2c) From dcda6cc1325c1fbb12979fa45e507b0429763191 Mon Sep 17 00:00:00 2001 From: FoamyGuy Date: Thu, 6 Feb 2020 17:29:44 -0600 Subject: [PATCH 3/4] refactoring and new string formatting --- examples/lsm303_accel_inclinometer.py | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/examples/lsm303_accel_inclinometer.py b/examples/lsm303_accel_inclinometer.py index b9f6753..3581dd6 100644 --- a/examples/lsm303_accel_inclinometer.py +++ b/examples/lsm303_accel_inclinometer.py @@ -12,27 +12,18 @@ def vector_2_degrees(x, y): - radians = atan2(y, x) - degrees_calc = degrees(radians) - if degrees_calc < 0: - degrees_calc = 360 + degrees_calc - return degrees_calc + angle = degrees(atan2(y, x)) + if angle < 0: + angle += 360 + return angle def get_inclination(_sensor): - return get_inclination_respect_x(_sensor), get_inclination_respect_y(_sensor) - - -def get_inclination_respect_x(_sensor): - accel_axis_data = _sensor.acceleration - return vector_2_degrees(accel_axis_data[0], accel_axis_data[2]) - - -def get_inclination_respect_y(_sensor): - accel_axis_data = _sensor.acceleration - return vector_2_degrees(accel_axis_data[1], accel_axis_data[2]) + x, y, z = _sensor.acceleration + return vector_2_degrees(x, z), vector_2_degrees(y, z) while True: - print("inclination: (%s, %s)" % (get_inclination(sensor))) + inclination = get_inclination(sensor) + print("XZ angle = {:6.2f}deg YZ angle = {:6.2f}deg".format(inclination[0],inclination[1])) time.sleep(0.2) From 4b2689ec0f30e9796b552993f6d440bedd954b3f Mon Sep 17 00:00:00 2001 From: FoamyGuy Date: Thu, 6 Feb 2020 20:37:32 -0600 Subject: [PATCH 4/4] more descriptive variable names for print statement --- examples/lsm303_accel_inclinometer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/lsm303_accel_inclinometer.py b/examples/lsm303_accel_inclinometer.py index 3581dd6..6e8eb35 100644 --- a/examples/lsm303_accel_inclinometer.py +++ b/examples/lsm303_accel_inclinometer.py @@ -24,6 +24,6 @@ def get_inclination(_sensor): while True: - inclination = get_inclination(sensor) - print("XZ angle = {:6.2f}deg YZ angle = {:6.2f}deg".format(inclination[0],inclination[1])) + angle_xz, angle_yz = get_inclination(sensor) + print("XZ angle = {:6.2f}deg YZ angle = {:6.2f}deg".format(angle_xz, angle_yz)) time.sleep(0.2)