@@ -14,21 +14,21 @@ void BoxAccelerometer::begin() {
14
14
_accel.setupPL ();
15
15
16
16
17
- _accel.writeRegister (CTRL_REG1, 0x02 ); // Original 0x02
18
- _accel.writeRegister (XYZ_DATA_CFG, 0x02 ); // Original 0x02
19
- _accel.writeRegister (CTRL_REG2, 0x00 ); // Original 0x00
17
+ _accel.writeRegister (CTRL_REG1, 0x02 ); // Original 0x02 //F_READ
18
+ _accel.writeRegister (XYZ_DATA_CFG, 0x02 ); // Original 0x02 //FS1
19
+ _accel.writeRegister (CTRL_REG2, 0x00 ); // Original 0x00 //Standby
20
20
_accel.writeRegister (F_SETUP, 0x00 ); // Original 0x00
21
- _accel.writeRegister (TRIG_CFG, 0x08 ); // Original 0x08
22
- _accel.writeRegister (PULSE_CFG, 0x54 ); // Original 0x54
21
+ _accel.writeRegister (TRIG_CFG, 0x08 ); // Original 0x08 //Trig_PULSE/ZSPEFE/ELE
22
+ _accel.writeRegister (PULSE_CFG, 0x54 ); // Original 0x54 //YSPEFE
23
23
_accel.setupTap (0x1B , 0x3F , 0x3F ); // Original 0x1B, 0x3F, 0x3F
24
- _accel.writeRegister (PULSE_TMLT, 0x28 ); // Original 0x28
25
- _accel.writeRegister (PULSE_LTCY, 0x7F ); // Original 0x7F
26
- _accel.writeRegister (HP_FILTER_CUTOFF, 0x10 ); // Original 0x10
24
+ _accel.writeRegister (PULSE_TMLT, 0x28 ); // Original 0x28 //TMLT3/TMLT5
25
+ _accel.writeRegister (PULSE_LTCY, 0x7F ); // Original 0x7F //LTCY6/LTCY5/LTCY4/LTCY3/LTCY2/LTCY1/LTCY0
26
+ _accel.writeRegister (HP_FILTER_CUTOFF, 0x10 ); // Original 0x10 //Pulse_LPF_EN
27
27
28
- _accel.writeRegister (CTRL_REG3, 0x12 ); // Original 0x12
29
- _accel.writeRegister (CTRL_REG4, 0x40 ); // Original 0x40
30
- _accel.writeRegister (CTRL_REG5, 0x40 ); // Original 0x40
31
- _accel.writeRegister (CTRL_REG1, 0x03 ); // Original 0x03
28
+ _accel.writeRegister (CTRL_REG3, 0x12 ); // Original 0x12 //WAKE_PULSE/IPOL
29
+ _accel.writeRegister (CTRL_REG4, 0x40 ); // Original 0x40 //INT_EN_FIFO
30
+ _accel.writeRegister (CTRL_REG5, 0x40 ); // Original 0x40 //INT_CFG_FIFO INT1
31
+ _accel.writeRegister (CTRL_REG1, 0x03 ); // Original 0x03 //F_READ/ACTIVE
32
32
33
33
Log.info (" ...done" );
34
34
}
@@ -51,13 +51,13 @@ void BoxAccelerometer::loop() {
51
51
52
52
uint8_t tap = _accel.readTap ();
53
53
if (tap) {
54
- bool AxZ = tap&0b1000000 ; // event on axis
55
- bool AxY = tap&0b0100000 ;
56
- bool AxX = tap&0b0010000 ;
57
- // bool DPE = tap&0b0001000; //double
58
- bool PolZ = tap&0b0000100 ; // 0=positive 1=negative
59
- bool PolY = tap&0b0000010 ;
60
- bool PolX = tap&0b0000001 ;
54
+ bool AxZ = ( tap&0b1000000 )> 0 ; // event on axis
55
+ bool AxY = ( tap&0b0100000 )> 0 ;
56
+ bool AxX = ( tap&0b0010000 )> 0 ;
57
+ // bool DPE = ( tap&0b0001000)>0 ; //double
58
+ bool PolZ = !(( tap&0b0000100 )> 0 ) ; // 0=positive 1=negative
59
+ bool PolY = !(( tap&0b0000010 )> 0 ) ;
60
+ bool PolX = !(( tap&0b0000001 )> 0 ) ;
61
61
62
62
// X+ = box bottom
63
63
// X- = box top
@@ -80,22 +80,85 @@ void BoxAccelerometer::loop() {
80
80
if (AxY && AxZ) {
81
81
if (PolY && PolZ) {
82
82
tapOn = TapOn::BACK;
83
- Box.boxLEDs .setActiveAnimationByIteration (BoxLEDs::ANIMATION_TYPE::BLINK, BoxLEDs::CRGB::Blue, 2 );
83
+ Box.boxLEDs .setActiveAnimationByIteration (BoxLEDs::ANIMATION_TYPE::BLINK, BoxLEDs::CRGB::Blue, 3 );
84
84
} else if (!PolY && !PolZ) {
85
85
tapOn = TapOn::FRONT;
86
- Box.boxLEDs .setActiveAnimationByIteration (BoxLEDs::ANIMATION_TYPE::BLINK, BoxLEDs::CRGB::Violet, 2 );
86
+ Box.boxLEDs .setActiveAnimationByIteration (BoxLEDs::ANIMATION_TYPE::BLINK, BoxLEDs::CRGB::Violet, 3 );
87
87
} else if (PolY && !PolZ) {
88
88
tapOn = TapOn::LEFT;
89
- Box.boxLEDs .setActiveAnimationByIteration (BoxLEDs::ANIMATION_TYPE::BLINK, BoxLEDs::CRGB::Green, 2 );
89
+ Box.boxLEDs .setActiveAnimationByIteration (BoxLEDs::ANIMATION_TYPE::BLINK, BoxLEDs::CRGB::Green, 3 );
90
90
} else if (!PolY && PolZ) {
91
91
tapOn = TapOn::RIGHT;
92
- Box.boxLEDs .setActiveAnimationByIteration (BoxLEDs::ANIMATION_TYPE::BLINK, BoxLEDs::CRGB::GreenYellow, 2 );
92
+ Box.boxLEDs .setActiveAnimationByIteration (BoxLEDs::ANIMATION_TYPE::BLINK, BoxLEDs::CRGB::GreenYellow, 3 );
93
+ }
94
+ } else if (AxY) {
95
+ if (PolY) {
96
+ tapOn = TapOn::LEFT_BACK;
97
+ Box.boxLEDs .setActiveAnimationByIteration (BoxLEDs::ANIMATION_TYPE::BLINK, BoxLEDs::CRGB::Blue, 3 );
98
+ } else {
99
+ tapOn = TapOn::LEFT_FRONT;
100
+ Box.boxLEDs .setActiveAnimationByIteration (BoxLEDs::ANIMATION_TYPE::BLINK, BoxLEDs::CRGB::Violet, 3 );
101
+ }
102
+ } else if (AxZ) {
103
+ if (PolZ) {
104
+ tapOn = TapOn::RIGHT_BACK;
105
+ Box.boxLEDs .setActiveAnimationByIteration (BoxLEDs::ANIMATION_TYPE::BLINK, BoxLEDs::CRGB::Green, 3 );
106
+ } else {
107
+ tapOn = TapOn::RIGHT_FRONT;
108
+ Box.boxLEDs .setActiveAnimationByIteration (BoxLEDs::ANIMATION_TYPE::BLINK, BoxLEDs::CRGB::GreenYellow, 3 );
93
109
}
94
110
}
95
111
96
- Log.verbose (" Tap recieved %B, direction %X" , tap, tapOn);
112
+ Log.disableNewline (true );
113
+ Log.verbose (" Tap recieved %B, direction=%X, " , tap, tapOn);
114
+ Log.disableNewline (false );
115
+ switch (tapOn)
116
+ {
117
+ case TapOn::LEFT:
118
+ Log.printfln (" LEFT" );
119
+ break ;
120
+
121
+ case TapOn::RIGHT:
122
+ Log.printfln (" RIGHT" );
123
+ break ;
124
+
125
+ case TapOn::FRONT:
126
+ Log.printfln (" FRONT" );
127
+ break ;
128
+
129
+ case TapOn::BACK:
130
+ Log.printfln (" BACK" );
131
+ break ;
132
+
133
+ case TapOn::TOP:
134
+ Log.printfln (" TOP" );
135
+ break ;
136
+
137
+ case TapOn::BOTTOM:
138
+ Log.printfln (" BOTTOM" );
139
+ break ;
97
140
141
+ case TapOn::LEFT_FRONT:
142
+ Log.printfln (" LEFT_FRONT" );
143
+ break ;
144
+
145
+ case TapOn::RIGHT_FRONT:
146
+ Log.printfln (" RIGHT_FRONT" );
147
+ break ;
148
+
149
+ case TapOn::LEFT_BACK:
150
+ Log.printfln (" LEFT_BACK" );
151
+ break ;
98
152
153
+ case TapOn::RIGHT_BACK:
154
+ Log.printfln (" RIGHT_BACK" );
155
+ break ;
156
+
157
+ default :
158
+ break ;
159
+ Log.printfln (" OTHER" );
160
+ }
161
+
99
162
}
100
163
101
164
}
0 commit comments