33import busio
44import adafruit_lps35hw
55from puff_detector import PuffDetector
6- from adafruit_debug_i2c import DebugI2C
76
87
98
109
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-
6010i2c = busio .I2C (board .SCL , board .SDA )
6111# i2c = DebugI2C(i2c)
62- lps = adafruit_lps35hw .LPS35HW (i2c , 0x5c )
12+ lps = adafruit_lps35hw .LPS35HW (i2c , 0x5C )
6313
6414lps .zero_pressure ()
6515lps .data_rate = adafruit_lps35hw .DataRate .RATE_75_HZ
@@ -74,7 +24,7 @@ def pressure_string(pressure_type):
7424
7525lps .filter_config = True
7626# print("Filter Config:", lps.low_pass_config)
77-
27+ detector = PuffDetector ( min_pressure = 8 , high_pressure = 20 )
7828time .sleep (1 )
7929prev_direction = None
8030pressure_list = []
@@ -89,16 +39,16 @@ def pressure_string(pressure_type):
8939 current_pressure = lps .pressure
9040 # print((current_pressure,))
9141
92- pressure_type = catagorize_pressure (current_pressure )
42+ pressure_type = detector . catagorize_pressure (current_pressure )
9343
9444 if pressure_type != prev_pressure_type :
9545 puff_end = time .monotonic ()
96- puff_duration = puff_end - puff_start
46+ puff_duration = puff_end - puff_start
9747 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)
10050 direction , level = pressure_type
101- #print("direction:", direction, "level:", level)
51+ # print("direction:", direction, "level:", level)
10252
10353 if (direction == 1 ) and (prev_level > level ):
10454 print ("Down" )
@@ -108,18 +58,18 @@ def pressure_string(pressure_type):
10858 print ("Up" )
10959 puff_duration += prev_duration
11060 level = prev_level
111-
112- #print("direction:", direction, "level:", level)
61+
62+ # print("direction:", direction, "level:", level)
11363 if puff_duration > 0.2 :
11464 print ("direction:" , direction , "level:" , level )
11565
11666 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 )
12070 print ("\t \t \t \t " , label )
12171 print ("____________________" )
12272 prev_pressure_type = pressure_type
12373 prev_duration = puff_duration
12474 prev_level = level
125- time .sleep (0.01 )
75+ time .sleep (0.01 )
0 commit comments