Skip to content

Commit 1c6cabd

Browse files
committed
try to implement taps (failed)
1 parent 655c3e3 commit 1c6cabd

File tree

2 files changed

+99
-31
lines changed

2 files changed

+99
-31
lines changed

BoxAccelerometer.cpp

+87-24
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,21 @@ void BoxAccelerometer::begin() {
1414
_accel.setupPL();
1515

1616

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
2020
_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
2323
_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
2727

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
3232

3333
Log.info("...done");
3434
}
@@ -51,13 +51,13 @@ void BoxAccelerometer::loop() {
5151

5252
uint8_t tap = _accel.readTap();
5353
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);
6161

6262
//X+ = box bottom
6363
//X- = box top
@@ -80,22 +80,85 @@ void BoxAccelerometer::loop() {
8080
if (AxY && AxZ) {
8181
if (PolY && PolZ) {
8282
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);
8484
} else if (!PolY && !PolZ) {
8585
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);
8787
} else if (PolY && !PolZ) {
8888
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);
9090
} else if (!PolY && PolZ) {
9191
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);
93109
}
94110
}
95111

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;
97140

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;
98152

153+
case TapOn::RIGHT_BACK:
154+
Log.printfln("RIGHT_BACK");
155+
break;
156+
157+
default:
158+
break;
159+
Log.printfln("OTHER");
160+
}
161+
99162
}
100163

101164
}

BoxAccelerometer.h

+12-7
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,18 @@ class BoxAccelerometer : public EnhancedThread {
2121
EARS_DOWN2 = 0x4
2222
};
2323
enum class TapOn {
24-
NONE = 0x0,
25-
LEFT = 0x1,
26-
RIGHT = 0x2, //17,34,68 - 34
27-
FRONT = 0x3, //16, 17
28-
BACK = 0x4,
29-
TOP = 0x5, //16,32,64,68,24 - 16
30-
BOTTOM = 0x6 //17
24+
NONE = 0x00,
25+
LEFT = 0x01,
26+
RIGHT = 0x02, //17,34,68 - 34
27+
FRONT = 0x04, //16, 17
28+
BACK = 0x08,
29+
TOP = 0x10, //16,32,64,68,24 - 16
30+
BOTTOM = 0x20, //17
31+
32+
LEFT_FRONT = LEFT + FRONT,
33+
RIGHT_FRONT = RIGHT + FRONT,
34+
LEFT_BACK = LEFT + BACK,
35+
RIGHT_BACK = RIGHT + BACK
3136
};
3237

3338
void

0 commit comments

Comments
 (0)