3
3
import busio
4
4
import adafruit_lps35hw
5
5
from puff_detector import PuffDetector
6
- from adafruit_debug_i2c import DebugI2C
7
6
8
7
9
8
10
9
11
- # if pressure > 0:
12
- # if pressure_level == 1:
13
- # pressure_type = "Soft Puff"
14
- # if pressure_level == 2:
15
- # pressure_type = "Hard Puff"
16
- # else:
17
-
18
- # if pressure_level == 1:
19
- # pressure_type = "Soft Sip"
20
- # if pressure_level == 2:
21
- # pressure_type = "Hard Sip"
22
- #pylint:disable:invalid-name
23
-
24
- def catagorize_pressure (pressure ):
25
- """determine the strength and polarity of the pressure reading"""
26
- level = 0
27
- direction = 0
28
- abs_pressure = abs (pressure )
29
-
30
- if abs_pressure > min_pressure :
31
- level = 1
32
- if abs_pressure > high_pressure :
33
- level = 2
34
-
35
- if level != 0 :
36
- if pressure > 0 :
37
- direction = 1
38
- else :
39
- direction = - 1
40
-
41
- return (direction , level )
42
-
43
- def pressure_string (pressure_type ):
44
- dir , level = pressure_type
45
- pressure_str = "HIGH"
46
- if level == 0 or dir == 0 :
47
- return ""
48
- #print("pressure level:", level)
49
- if level == 1 :
50
- pressure_str = "LOW"
51
- elif level == 2 :
52
- presure_str = "HIGH"
53
-
54
- if dir == 1 :
55
- pressure_str += "PUFF"
56
- elif dir == - 1 :
57
- pressure_str += "SIP"
58
- return pressure_str
59
-
60
10
i2c = busio .I2C (board .SCL , board .SDA )
61
11
# i2c = DebugI2C(i2c)
62
- lps = adafruit_lps35hw .LPS35HW (i2c , 0x5c )
12
+ lps = adafruit_lps35hw .LPS35HW (i2c , 0x5C )
63
13
64
14
lps .zero_pressure ()
65
15
lps .data_rate = adafruit_lps35hw .DataRate .RATE_75_HZ
@@ -74,7 +24,7 @@ def pressure_string(pressure_type):
74
24
75
25
lps .filter_config = True
76
26
# print("Filter Config:", lps.low_pass_config)
77
-
27
+ detector = PuffDetector ( min_pressure = 8 , high_pressure = 20 )
78
28
time .sleep (1 )
79
29
prev_direction = None
80
30
pressure_list = []
@@ -89,16 +39,16 @@ def pressure_string(pressure_type):
89
39
current_pressure = lps .pressure
90
40
# print((current_pressure,))
91
41
92
- pressure_type = catagorize_pressure (current_pressure )
42
+ pressure_type = detector . catagorize_pressure (current_pressure )
93
43
94
44
if pressure_type != prev_pressure_type :
95
45
puff_end = time .monotonic ()
96
- puff_duration = puff_end - puff_start
46
+ puff_duration = puff_end - puff_start
97
47
puff_start = puff_end
98
- #print("\tpressure type:", pressure_type)
99
- #print("duration:", puff_duration)
48
+ # print("\tpressure type:", pressure_type)
49
+ # print("duration:", puff_duration)
100
50
direction , level = pressure_type
101
- #print("direction:", direction, "level:", level)
51
+ # print("direction:", direction, "level:", level)
102
52
103
53
if (direction == 1 ) and (prev_level > level ):
104
54
print ("Down" )
@@ -108,18 +58,18 @@ def pressure_string(pressure_type):
108
58
print ("Up" )
109
59
puff_duration += prev_duration
110
60
level = prev_level
111
-
112
- #print("direction:", direction, "level:", level)
61
+
62
+ # print("direction:", direction, "level:", level)
113
63
if puff_duration > 0.2 :
114
64
print ("direction:" , direction , "level:" , level )
115
65
116
66
print ("\t duration:" , puff_duration )
117
- # print(current_pressure)
118
- label = pressure_string ((direction , level ))
119
- label = pressure_string (pressure_type )
67
+ # print(current_pressure)
68
+ label = detector . pressure_string ((direction , level ))
69
+ label = detector . pressure_string (pressure_type )
120
70
print ("\t \t \t \t " , label )
121
71
print ("____________________" )
122
72
prev_pressure_type = pressure_type
123
73
prev_duration = puff_duration
124
74
prev_level = level
125
- time .sleep (0.01 )
75
+ time .sleep (0.01 )
0 commit comments