33import adafruit_bmp280
44import board
55import displayio
6- import ulab
7- import ulab .filter
6+ from ulab import numpy as np
87
98# Blank the screen. Scrolling text causes unwanted delays.
109d = displayio .Group ()
1514# Transition bandwidth: 0.16Hz
1615# Window type: Hamming
1716# Filter has 311 coefficients
18- taps = ulab .array ([
17+ taps = np .array ([
1918 - 0.000050679794726066 , - 0.000041099278318167 , - 0.000031279920668665 ,
2019 - 0.000021183486597150 , - 0.000010770285292045 , + 0.000000000000000000 ,
2120 + 0.000011167446754809 , + 0.000022770999889941 , + 0.000034847558259864 ,
3130 + 0.000489380560741255 , + 0.000495598812776238 , + 0.000499367108150093 ,
3231 + 0.000500461794444300 , + 0.000498660907473236 , + 0.000493745927786584 ,
3332 + 0.000485503600706003 , + 0.000473727809671115 , + 0.000458221492033063 ,
34- + 0.000438798585855176 , + 0.000415285995764155 , + 0.000387525565446236 ,
35- + 0.000355376044004699 , + 0.000318715033091691 , + 0.000277440901501588 ,
33+ + 0.000438798585855176 , + 0.000415285995764155 , + 0.000387525565446236 ] +
34+ [ + 0.000355376044004699 , + 0.000318715033091691 , + 0.000277440901501588 ,
3635 + 0.000231474653767861 , + 0.000180761739242710 , + 0.000125273788160487 ,
3736 + 0.000065010261293197 , + 0.000000000000000000 , - 0.000069697336247377 ,
3837 - 0.000143989957415198 , - 0.000222752767634882 , - 0.000305826338672358 ,
6362 + 0.013033779302562583 , + 0.013549501700820601 , + 0.014054359855790191 ,
6463 + 0.014546911139352909 , + 0.015025735735186426 , + 0.015489442135386880 ,
6564 + 0.015936672560369614 , + 0.016366108277098043 , + 0.016776474791055797 ,
66- + 0.017166546887869318 , + 0.017535153501103896 , + 0.017881182383493146 ,
67- + 0.018203584559716979 , + 0.018501378539810983 , + 0.018773654273367416 ,
65+ + 0.017166546887869318 , + 0.017535153501103896 , + 0.017881182383493146 ] +
66+ [ + 0.018203584559716979 , + 0.018501378539810983 , + 0.018773654273367416 ,
6867 + 0.019019576825867947 , + 0.019238389759765797 , + 0.019429418204303113 ,
6968 + 0.019592071599501125 , + 0.019725846101288819 , + 0.019830326636332028 ,
7069 + 0.019905188596781104 , + 0.019950199166862841 , + 0.019965218274992248 ,
8584 + 0.002630616483032971 , + 0.002203584045179127 , + 0.001792701398335993 ,
8685 + 0.001398597909331569 , + 0.001021830060775982 , + 0.000662880773589522 ,
8786 + 0.000322159059450752 , + 0.000000000000000001 , - 0.000303334951952833 ,
88- - 0.000587657355512251 , - 0.000852850856865070 , - 0.001098869965763655 ,
89- - 0.001325738543930948 , - 0.001533548017297868 , - 0.001722455325210333 ,
87+ - 0.000587657355512251 , - 0.000852850856865070 , - 0.001098869965763655 ] +
88+ [ - 0.001325738543930948 , - 0.001533548017297868 , - 0.001722455325210333 ,
9089 - 0.001892680620886389 , - 0.002044504738458278 , - 0.002178266442894981 ,
9190 - 0.002294359479963247 , - 0.002393229444145818 , - 0.002475370483091317 ,
9291 - 0.002541321857718479 , - 0.002591664377536210 , - 0.002627016731069256 ,
@@ -143,7 +142,7 @@ def sleep_deadline(deadline_ns):
143142
144143# And our data structures
145144# The most recent data samples, equal in number to the filter taps
146- data = ulab .zeros (len (taps ))
145+ data = np .zeros (len (taps ))
147146t0 = deadline = time .monotonic_ns ()
148147n = 0
149148# Take an initial reading to subtract off later, so that the graph in mu
@@ -163,9 +162,9 @@ def sleep_deadline(deadline_ns):
163162 data = data + value
164163 else :
165164 # Otherwise, add it as the next sample
166- ulab . numerical .roll (data , 1 )
165+ data = np .roll (data , 1 )
167166 data [- 1 ] = value
168- filtered = ulab . numerical .sum (data * taps )
167+ filtered = np .sum (data * taps )
169168 # Actually print every 10th value. This prints about 1.6 values per
170169 # second. You can print values more quickly by removing the 'if' and
171170 # making the print unconditional, or change the frequency of prints up
0 commit comments