mirror of
https://gitlab.com/eql/lqml.git
synced 2025-12-07 02:51:09 -08:00
add snippet 'sensor-reading'
This commit is contained in:
parent
5a39941fac
commit
22c92da97c
3 changed files with 56 additions and 0 deletions
28
snippets/sensor-reading/run.lisp
Normal file
28
snippets/sensor-reading/run.lisp
Normal 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))))
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue