Skip to content

Commit b7919cd

Browse files
committed
preliminary tilt
1 parent dc6c521 commit b7919cd

File tree

3 files changed

+31
-4
lines changed

3 files changed

+31
-4
lines changed

examples/firmware/firmware.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ void loop(){
227227
alvik.updateTouch();
228228
msg_size = packeter.packetC1B('t', alvik.getTouchKeys());
229229
alvik.serial->write(packeter.msg,msg_size);
230-
msg_size = packeter.packetC1B('m', alvik.isShaking());
230+
msg_size = packeter.packetC1B('m', alvik.getMotion());
231231
alvik.serial->write(packeter.msg,msg_size);
232232
break;
233233
case 2:

src/Arduino_AlvikCarrier.cpp

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,13 @@ Arduino_AlvikCarrier::Arduino_AlvikCarrier(){
7171
first_wakeup = true;
7272
shake_time = 0;
7373
shake_counter = 0;
74+
tilt_status = 0;
75+
xl = 0;
76+
xh = 0;
77+
yl = 0;
78+
yh = 0;
79+
zl = 0;
80+
zh = 0;
7481

7582
// version
7683
version_high = VERSION_BYTE_HIGH;
@@ -626,6 +633,8 @@ int Arduino_AlvikCarrier::beginImu(){
626633
imu->Enable_Wake_Up_Detection(LSM6DSO_INT1_PIN);
627634
imu->Set_Wake_Up_Threshold(1);
628635
imu->Set_Wake_Up_Duration(3);
636+
imu->Enable_6D_Orientation(LSM6DSO_INT1_PIN);
637+
629638

630639
delay(10);
631640

@@ -695,9 +704,20 @@ void Arduino_AlvikCarrier::updateImu(){
695704
is_shaking = false;
696705
}
697706

698-
707+
imu->Get_6D_Orientation_XL(&xl);
708+
imu->Get_6D_Orientation_XH(&xh);
709+
imu->Get_6D_Orientation_YL(&yl);
710+
imu->Get_6D_Orientation_YH(&yh);
711+
imu->Get_6D_Orientation_ZL(&zl);
712+
imu->Get_6D_Orientation_ZH(&zh);
699713

700-
714+
tilt_status = 0;
715+
tilt_status |= xl<<4;
716+
tilt_status |= xh<<5;
717+
tilt_status |= zl<<7;
718+
tilt_status |= zh<<6;
719+
tilt_status |= yh<<3;
720+
tilt_status |= yl<<2;
701721
}
702722

703723
float Arduino_AlvikCarrier::getAccelerationX(){
@@ -740,6 +760,10 @@ bool Arduino_AlvikCarrier::isShaking(){
740760
return is_shaking;
741761
}
742762

763+
uint8_t Arduino_AlvikCarrier::getMotion(){
764+
return tilt_status | isShaking();
765+
}
766+
743767

744768

745769
/******************************************************************************************************/

src/Arduino_AlvikCarrier.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ class Arduino_AlvikCarrier{
7070
bool first_wakeup;
7171
unsigned long shake_time, shake_time_sig;
7272
uint16_t shake_counter;
73+
uint8_t tilt_status;
74+
uint8_t xl, xh, yl, yh, zl, zh;
7375

7476
uint8_t version_high;
7577
uint8_t version_mid;
@@ -226,7 +228,8 @@ class Arduino_AlvikCarrier{
226228
float getRoll(); // get robot roll
227229
float getPitch(); // get robot pitch
228230
float getYaw(); // get robot yaw
229-
bool isShaking(); // get true if robot is shaking
231+
bool isShaking(); // get true if robot is shaking
232+
uint8_t getMotion(); // get tilt + shaking
230233

231234
void errorLed(const int error_code); // error routine, locks on code blinking led
232235

0 commit comments

Comments
 (0)