Fixed seismic sensors

This commit is contained in:
2026-07-03 13:37:09 -04:00
parent bbcc62af7d
commit 5bd2e786c2
2 changed files with 101 additions and 72 deletions

View File

@@ -185,8 +185,8 @@ def mpu_loop():
o = _mpu_offsets
ax = s16((d[0] << 8) | d[1]) / 16384.0 - o[0]
ay = s16((d[2] << 8) | d[3]) / 16384.0 - o[1]
az = s16((d[4] << 8) | d[5]) / 16384.0 - o[2]
mag = math.sqrt(ax**2 + ay**2 + (az - 1.0)**2)
az = s16((d[4] << 8) | d[5]) / 16384.0 - o[2] - 1.0 # remove gravity
mag = math.sqrt(ax**2 + ay**2 + az**2)
with _mpu_lock:
if _mpu_peak is None or mag > _mpu_peak['seismic_magnitude']:
_mpu_peak = {
@@ -203,6 +203,8 @@ def flush_mpu(c):
data, _mpu_peak = _mpu_peak, None
if data and data['seismic_magnitude'] > c['SEISMIC_NOISE_FLOOR']:
write(c, data)
else:
write(c, {'seismic_x': 0.0, 'seismic_y': 0.0, 'seismic_z': 0.0, 'seismic_magnitude': 0.0})
# ── QMC5883L ──────────────────────────────────────────────────────────────────