Skip to content
This repository was archived by the owner on Oct 29, 2019. It is now read-only.

Commit c4ced65

Browse files
authored
Merge pull request #3 from kattni/property-name-update
Update to method names and linting
2 parents 388b287 + a7135b2 commit c4ced65

File tree

6 files changed

+42
-50
lines changed

6 files changed

+42
-50
lines changed

README.rst

+5-5
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Usage Example
2727
=============
2828

2929
.. code-block:: python
30-
30+
3131
import time
3232
import board
3333
import busio
@@ -38,10 +38,10 @@ Usage Example
3838
sensor = adafruit_lsm303.LSM303(i2c)
3939
4040
while True:
41-
raw_accel_x, raw_accel_y, raw_accel_z = sensor.raw_accelerometer
42-
accel_x, accel_y, accel_z = sensor.accelerometer
43-
raw_mag_x, raw_mag_y, raw_mag_z = sensor.raw_magnetometer
44-
mag_x, mag_y, mag_z = sensor.magnetometer
41+
raw_accel_x, raw_accel_y, raw_accel_z = sensor.raw_acceleration
42+
accel_x, accel_y, accel_z = sensor.acceleration
43+
raw_mag_x, raw_mag_y, raw_mag_z = sensor.raw_magnetic
44+
mag_x, mag_y, mag_z = sensor.magnetic
4545
4646
print('Acceleration raw: ({0:6d}, {1:6d}, {2:6d}), (m/s^2): ({3:10.3f}, {4:10.3f}, {5:10.3f})'.format(raw_accel_x, raw_accel_y, raw_accel_z, accel_x, accel_y, accel_z))
4747
print('Magnetometer raw: ({0:6d}, {1:6d}, {2:6d}), (gauss): ({3:10.3f}, {4:10.3f}, {5:10.3f})'.format(raw_mag_x, raw_mag_y, raw_mag_z, mag_x, mag_y, mag_z))

adafruit_lsm303.py

+25-34
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@
116116
_LSM303ACCEL_MG_LSB = 16704.0
117117
_GRAVITY_STANDARD = 9.80665 # Earth's gravity in m/s^2
118118
_GAUSS_TO_MICROTESLA = 100.0 # Gauss to micro-Tesla multiplier
119+
# pylint: enable=bad-whitespace
120+
119121

120122
class LSM303(object):
121123
"""Driver for the LSM303 accelerometer/magnetometer."""
@@ -128,122 +130,111 @@ class LSM303(object):
128130
def __init__(self, i2c):
129131
self._accel_device = I2CDevice(i2c, _ADDRESS_ACCEL)
130132
self._mag_device = I2CDevice(i2c, _ADDRESS_MAG)
131-
self._write_u8(self._accel_device, _REG_ACCEL_CTRL_REG1_A, 0x27) # Enable the accelerometer
132-
self._write_u8(self._mag_device, _REG_MAG_MR_REG_M, 0x00) # Enable the magnetometer
133+
self._write_u8(self._accel_device, _REG_ACCEL_CTRL_REG1_A, 0x27) # Enable the accelerometer
134+
self._write_u8(self._mag_device, _REG_MAG_MR_REG_M, 0x00) # Enable the magnetometer
133135
self._lsm303mag_gauss_lsb_xy = 1100.0
134136
self._lsm303mag_gauss_lsb_z = 980.0
135137
self._mag_gain = MAGGAIN_1_3
136138
self._mag_rate = MAGRATE_0_7
137139

138140
@property
139-
def raw_accelerometer(self):
141+
def raw_acceleration(self):
140142
"""The raw accelerometer sensor values.
141143
A 3-tuple of X, Y, Z axis values that are 16-bit signed integers.
142144
"""
143145
self._read_bytes(self._accel_device, _REG_ACCEL_OUT_X_L_A | 0x80, 6, self._BUFFER)
144146
return struct.unpack_from('<hhh', self._BUFFER[0:6])
145147

146-
147148
@property
148-
def accelerometer(self):
149+
def acceleration(self):
149150
"""The processed accelerometer sensor values.
150151
A 3-tuple of X, Y, Z axis values in meters per second squared that are signed floats.
151152
"""
152-
raw_accel_data = self.raw_accelerometer
153-
return [n / _LSM303ACCEL_MG_LSB * _GRAVITY_STANDARD for n in raw_accel_data]
154-
153+
raw_accel_data = self.raw_acceleration
154+
return tuple([n / _LSM303ACCEL_MG_LSB * _GRAVITY_STANDARD for n in raw_accel_data])
155155

156156
@property
157-
def raw_magnetometer(self):
157+
def raw_magnetic(self):
158158
"""The raw magnetometer sensor values.
159159
A 3-tuple of X, Y, Z axis values that are 16-bit signed integers.
160160
"""
161161
self._read_bytes(self._mag_device, _REG_MAG_OUT_X_H_M, 6, self._BUFFER)
162162
raw_values = struct.unpack_from('>hhh', self._BUFFER[0:6])
163-
return [n >> 4 for n in raw_values]
164-
163+
return tuple([n >> 4 for n in raw_values])
165164

166165
@property
167-
def magnetometer(self):
166+
def magnetic(self):
168167
"""The processed magnetometer sensor values.
169168
A 3-tuple of X, Y, Z axis values in microteslas that are signed floats.
170169
"""
171-
mag_x, mag_y, mag_z = self.raw_magnetometer
170+
mag_x, mag_y, mag_z = self.raw_magnetic
172171
return (mag_x / self._lsm303mag_gauss_lsb_xy * _GAUSS_TO_MICROTESLA,
173172
mag_y / self._lsm303mag_gauss_lsb_xy * _GAUSS_TO_MICROTESLA,
174173
mag_z / self._lsm303mag_gauss_lsb_z * _GAUSS_TO_MICROTESLA)
175174

176-
177175
@property
178176
def mag_gain(self):
179177
"""The magnetometer's gain."""
180178
return self._mag_gain
181179

182-
183180
@mag_gain.setter
184181
def mag_gain(self, value):
185-
# pylint: disable=line-too-long
186-
assert value in (MAGGAIN_1_3, MAGGAIN_1_9, MAGGAIN_2_5, MAGGAIN_4_0, MAGGAIN_4_7, MAGGAIN_5_6, MAGGAIN_8_1)
187-
# pylint: enable=line-too-long
182+
assert value in (MAGGAIN_1_3, MAGGAIN_1_9, MAGGAIN_2_5, MAGGAIN_4_0, MAGGAIN_4_7,
183+
MAGGAIN_5_6, MAGGAIN_8_1)
188184

189185
self._mag_gain = value
190186
self._write_u8(self._mag_device, _REG_MAG_CRB_REG_M, self._mag_gain)
191187
if self._mag_gain == MAGGAIN_1_3:
192188
self._lsm303mag_gauss_lsb_xy = 1100.0
193-
self._lsm303mag_gauss_lsb_z = 980.0
189+
self._lsm303mag_gauss_lsb_z = 980.0
194190
elif self._mag_gain == MAGGAIN_1_9:
195191
self._lsm303mag_gauss_lsb_xy = 855.0
196-
self._lsm303mag_gauss_lsb_z = 760.0
192+
self._lsm303mag_gauss_lsb_z = 760.0
197193
elif self._mag_gain == MAGGAIN_2_5:
198194
self._lsm303mag_gauss_lsb_xy = 670.0
199-
self._lsm303mag_gauss_lsb_z = 600.0
195+
self._lsm303mag_gauss_lsb_z = 600.0
200196
elif self._mag_gain == MAGGAIN_4_0:
201197
self._lsm303mag_gauss_lsb_xy = 450.0
202-
self._lsm303mag_gauss_lsb_z = 400.0
198+
self._lsm303mag_gauss_lsb_z = 400.0
203199
elif self._mag_gain == MAGGAIN_4_7:
204200
self._lsm303mag_gauss_lsb_xy = 400.0
205-
self._lsm303mag_gauss_lsb_z = 355.0
201+
self._lsm303mag_gauss_lsb_z = 355.0
206202
elif self._mag_gain == MAGGAIN_5_6:
207203
self._lsm303mag_gauss_lsb_xy = 330.0
208-
self._lsm303mag_gauss_lsb_z = 295.0
204+
self._lsm303mag_gauss_lsb_z = 295.0
209205
elif self._mag_gain == MAGGAIN_8_1:
210206
self._lsm303mag_gauss_lsb_xy = 230.0
211-
self._lsm303mag_gauss_lsb_z = 205.0
212-
207+
self._lsm303mag_gauss_lsb_z = 205.0
213208

214209
@property
215210
def mag_rate(self):
216211
"""The magnetometer update rate."""
217212
return self._mag_rate
218213

219-
220214
@mag_rate.setter
221215
def mag_rate(self, value):
222-
# pylint: disable=line-too-long
223-
assert value in (MAGRATE_0_7, MAGRATE_1_5, MAGRATE_3_0, MAGRATE_7_5, MAGRATE_15, MAGRATE_30, MAGRATE_75, MAGRATE_220)
224-
# pylint: enable=line-too-long
216+
assert value in (MAGRATE_0_7, MAGRATE_1_5, MAGRATE_3_0, MAGRATE_7_5, MAGRATE_15, MAGRATE_30,
217+
MAGRATE_75, MAGRATE_220)
225218

226219
self._mag_rate = value
227220
reg_m = ((value & 0x07) << 2) & 0xFF
228221
self._write_u8(self._mag_device, _REG_MAG_CRA_REG_M, reg_m)
229222

230-
231223
def _read_u8(self, device, address):
232224
with device as i2c:
233225
self._BUFFER[0] = address & 0xFF
234226
i2c.write(self._BUFFER, end=1, stop=False)
235227
i2c.readinto(self._BUFFER, end=1)
236228
return self._BUFFER[0]
237229

238-
239230
def _write_u8(self, device, address, val):
240231
with device as i2c:
241232
self._BUFFER[0] = address & 0xFF
242233
self._BUFFER[1] = val & 0xFF
243234
i2c.write(self._BUFFER, end=2)
244235

245-
# pylint: disable=no-self-use
246-
def _read_bytes(self, device, address, count, buf):
236+
@staticmethod
237+
def _read_bytes(device, address, count, buf):
247238
with device as i2c:
248239
buf[0] = address & 0xFF
249240
i2c.write(buf, end=1, stop=False)

examples/fast_accel/fast_accel.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@
99
sensor = adafruit_lsm303.LSM303(i2c)
1010

1111
while True:
12-
accel_x, accel_y, accel_z = sensor.accelerometer
12+
accel_x, accel_y, accel_z = sensor.acceleration
1313
print('{0:10.3f} {1:10.3f} {2:10.3f}'.format(accel_x, accel_y, accel_z))

examples/fast_mag/fast_mag.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@
88
sensor = adafruit_lsm303.LSM303(i2c)
99

1010
while True:
11-
mag_x, mag_y, mag_z = sensor.magnetometer
11+
mag_x, mag_y, mag_z = sensor.magnetic
1212
print('{0:10.3f} {1:10.3f} {2:10.3f}'.format(mag_x, mag_y, mag_z))
+8-7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
""" Display both accelerometer and magnetometer data once per second """
2-
# pylint: disable=line-too-long
32

43
import time
54
import board
@@ -11,12 +10,14 @@
1110
sensor = adafruit_lsm303.LSM303(i2c)
1211

1312
while True:
14-
raw_accel_x, raw_accel_y, raw_accel_z = sensor.raw_accelerometer
15-
accel_x, accel_y, accel_z = sensor.accelerometer
16-
raw_mag_x, raw_mag_y, raw_mag_z = sensor.raw_magnetometer
17-
mag_x, mag_y, mag_z = sensor.magnetometer
13+
raw_accel_x, raw_accel_y, raw_accel_z = sensor.raw_acceleration
14+
accel_x, accel_y, accel_z = sensor.acceleration
15+
raw_mag_x, raw_mag_y, raw_mag_z = sensor.raw_magnetic
16+
mag_x, mag_y, mag_z = sensor.magnetic
1817

19-
print('Acceleration raw: ({0:6d}, {1:6d}, {2:6d}), (m/s^2): ({3:10.3f}, {4:10.3f}, {5:10.3f})'.format(raw_accel_x, raw_accel_y, raw_accel_z, accel_x, accel_y, accel_z))
20-
print('Magnetometer raw: ({0:6d}, {1:6d}, {2:6d}), (gauss): ({3:10.3f}, {4:10.3f}, {5:10.3f})'.format(raw_mag_x, raw_mag_y, raw_mag_z, mag_x, mag_y, mag_z))
18+
print('Acceleration raw: ({0:6d}, {1:6d}, {2:6d}), (m/s^2): ({3:10.3f}, {4:10.3f}, {5:10.3f})'
19+
.format(raw_accel_x, raw_accel_y, raw_accel_z, accel_x, accel_y, accel_z))
20+
print('Magnetometer raw: ({0:6d}, {1:6d}, {2:6d}), (gauss): ({3:10.3f}, {4:10.3f}, {5:10.3f})'
21+
.format(raw_mag_x, raw_mag_y, raw_mag_z, mag_x, mag_y, mag_z))
2122
print('')
2223
time.sleep(1.0)

examples/slow_both/slow_both.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
sensor = adafruit_lsm303.LSM303(i2c)
1010

1111
while True:
12-
acc_x, acc_y, acc_z = sensor.accelerometer
13-
mag_x, mag_y, mag_z = sensor.magnetometer
12+
acc_x, acc_y, acc_z = sensor.acceleration
13+
mag_x, mag_y, mag_z = sensor.magnetic
1414

1515
print('Acceleration (m/s^2): ({0:10.3f}, {1:10.3f}, {2:10.3f})'.format(acc_x, acc_y, acc_z))
1616
print('Magnetometer (gauss): ({0:10.3f}, {1:10.3f}, {2:10.3f})'.format(mag_x, mag_y, mag_z))

0 commit comments

Comments
 (0)