add snippet 'sensor-reading'

This commit is contained in:
pls.153 2023-03-23 18:14:37 +01:00
parent 5a39941fac
commit 22c92da97c
3 changed files with 56 additions and 0 deletions

View file

@ -0,0 +1,28 @@
(in-package :qml-user)
;;; low-pass filter
(defun make-low-pass-filter (&optional (alpha 0.02))
(let ((a alpha)
filtered)
(lambda (value)
(setf filtered (if filtered
(+ (* value a)
(* filtered (- 1.0 a)))
value)))))
(defvar *accel-x* (make-low-pass-filter))
(defvar *accel-y* (make-low-pass-filter))
(defvar *accel-z* (make-low-pass-filter))
;;; sensor data
(defun hr (x)
"Human readable."
(floor (+ 0.5 (* 1000 x))))
(defun accel-changed (x y z)
(qlog :x (hr (funcall *accel-x* x)))
(qlog :y (hr (funcall *accel-y* y)))
(qlog :z (hr (funcall *accel-z* z))))