diff --git a/code/arduino/Movement-sensor-code/Connectivity.cpp b/code/arduino/Movement-sensor-code/Connectivity.cpp index a1c30c4..367e114 100644 --- a/code/arduino/Movement-sensor-code/Connectivity.cpp +++ b/code/arduino/Movement-sensor-code/Connectivity.cpp @@ -4,7 +4,7 @@ void Connectivity::connectWiFi(char* ssid, char* pass){ WiFi.mode(WIFI_STA); WiFi.begin(ssid, pass); while (WiFi.status() != WL_CONNECTED) { - Serial.println("connecting to wifi"); + // Serial.println("connecting to wifi"); delay(1000); } Serial.println(WiFi.localIP()); diff --git a/code/arduino/Movement-sensor-code/Movement-sensor-code.ino b/code/arduino/Movement-sensor-code/Movement-sensor-code.ino index be47405..35b30bb 100644 --- a/code/arduino/Movement-sensor-code/Movement-sensor-code.ino +++ b/code/arduino/Movement-sensor-code/Movement-sensor-code.ino @@ -3,35 +3,38 @@ // SensorManager::Rotation offset; void setup() { - Serial.begin(9600); - Serial.println("startup"); + // Serial.begin(9600); + // Serial.println("startup"); //connect to internet and start sensor connectivity.connectWiFi(ssid, pass); sensorManager.sensorSetup(); - } +unsigned long lastTime = 0; // will store the last time the code was run + void loop() { SensorManager::eulerAngles eulerRotation = sensorManager.getEulerAngles(); SensorManager::acceleration rotationAcceleration = sensorManager.getAcelleration(); - unsigned long lastTime = 0; // will store the last time the code was run - - Serial.print(eulerRotation.roll); - Serial.print(" "); - Serial.print(eulerRotation.yaw); - Serial.print(" "); - Serial.print(eulerRotation.pitch); - Serial.println(); unsigned long currentTime = millis(); if (currentTime - lastTime >= 100) { // 100 ms has passed - String message = "{\"deviceId\": 1, \"rotationX\":\"" + String(eulerRotation.roll) + "\",\"rotationY\":\"" + String(eulerRotation.pitch) + "\",\"rotationZ\":\"" + String(eulerRotation.yaw) + "\",\"accelerationX\":\"" + String(rotationAcceleration.x) + "\",\"accelerationY\":\"" + String(rotationAcceleration.y) + "\",\"accelerationZ\":\"" + String(rotationAcceleration.z) + "\",\"type\":\"data\"}"; - Serial.println(connectivity.httpPost("192.168.137.146", "/", 3445, message.c_str(), message.length(), "json")); - Serial.println(message); + memset(buffer, 0, BUFFER_SIZE); + sprintf( + buffer, + "{\"deviceId\": %d, \"rotationX\": %f, \"rotationY\": %f, \"rotationZ\": %f, \"accelerationX\": %f, \"accelerationY\": %f, \"accelerationZ\": %f, \"type\": %s}", + DEVICE_ID, + eulerRotation.roll, + eulerRotation.pitch, + eulerRotation.yaw, + rotationAcceleration.x, + rotationAcceleration.y, + rotationAcceleration.z, + "data"); + // %d = int, %f = floatation, %s = string + connectivity.httpPost("192.168.137.45", "/", 3445, buffer, strlen(buffer), "application/json"); lastTime = currentTime; -} + } } //acceleration.X //acceleration.Y //acceleration.Z - diff --git a/code/arduino/Movement-sensor-code/SensorManager.cpp b/code/arduino/Movement-sensor-code/SensorManager.cpp index 075e5ce..77836e4 100644 --- a/code/arduino/Movement-sensor-code/SensorManager.cpp +++ b/code/arduino/Movement-sensor-code/SensorManager.cpp @@ -9,15 +9,15 @@ void SensorManager::sensorSetup() { //wait for the sensor to start before continue if (myIMU.begin() == false) { delay(1000); - Serial.println("."); + // Serial.println("."); } //start sensorfunction and start autocalibration //once calibration is enabled it attempts to every 5 min - Wire.setClock(400000); myIMU.enableGyroIntegratedRotationVector(100); //send data every 100ms myIMU.enableAccelerometer(100); //Send data update every 100ms Serial.println(F("magnetometer rotation enabled")); + myIMU.enableStepCounter(500); //Send data update every 500ms } //get sensordata SensorManager::RotationQuintillions SensorManager::getQuintillions() { @@ -39,7 +39,7 @@ SensorManager::RotationQuintillions SensorManager::getQuintillions() { return rotation; } } -//calculate Quintillions to Euler angles from -1π to +1π +//calculate Quintillions to Euler angles from -1π to +1π SensorManager::eulerAngles SensorManager::getEulerAngles() { SensorManager::RotationQuintillions rotation = getQuintillions(); float roll = atan2(2.0f * (rotation.w * rotation.i + rotation.j * rotation.k), 1.0f - 2.0f * (rotation.i * rotation.i + rotation.j * rotation.j)); @@ -48,11 +48,24 @@ SensorManager::eulerAngles SensorManager::getEulerAngles() { eulerAngles EulerAngles = { roll, pitch, yaw }; return EulerAngles; } -SensorManager::acceleration SensorManager::getAcelleration(){ - float x = myIMU.getAccelX(); - float y = myIMU.getAccelY(); - float z = myIMU.getAccelZ(); - acceleration Acceleration = { x, y, z }; +SensorManager::acceleration SensorManager::getAcelleration() { + float x = myIMU.getAccelX(); + float y = myIMU.getAccelY(); + float z = myIMU.getAccelZ(); + acceleration Acceleration = { x, y, z }; - return Acceleration; + return Acceleration; +} + +bool SensorManager::sensorTap() { + int taps = 0; + if (myIMU.dataAvailable() == true) { + int taps = myIMU.getStepCount(); + } + if (taps) { + return true; + } + else { + return false; + } } \ No newline at end of file diff --git a/code/arduino/Movement-sensor-code/SensorManager.h b/code/arduino/Movement-sensor-code/SensorManager.h index 6a8a796..aaf4d71 100644 --- a/code/arduino/Movement-sensor-code/SensorManager.h +++ b/code/arduino/Movement-sensor-code/SensorManager.h @@ -21,7 +21,7 @@ public: eulerAngles getEulerAngles(); acceleration getAcelleration(); - + bool sensorTap(); private: struct RotationQuintillions { float i; diff --git a/code/arduino/Movement-sensor-code/headerFIle.h b/code/arduino/Movement-sensor-code/headerFIle.h index b7b8220..b065b3e 100644 --- a/code/arduino/Movement-sensor-code/headerFIle.h +++ b/code/arduino/Movement-sensor-code/headerFIle.h @@ -8,6 +8,8 @@ Connectivity connectivity; WebSocketsClient webSocket; #define USE_SERIAL Serial - #define ssid "1235678i" #define pass "12345678" +#define BUFFER_SIZE 1024 +#define DEVICE_ID 1 +char *buffer = (char *)malloc(sizeof(char) * BUFFER_SIZE); diff --git a/code/src/Fitbot/.idea/misc.xml b/code/src/Fitbot/.idea/misc.xml index c120dfd..4496bac 100644 --- a/code/src/Fitbot/.idea/misc.xml +++ b/code/src/Fitbot/.idea/misc.xml @@ -16,6 +16,7 @@ + diff --git a/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/FitnessActivity.java b/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/FitnessActivity.java index e302337..89a857f 100644 --- a/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/FitnessActivity.java +++ b/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/FitnessActivity.java @@ -70,9 +70,11 @@ public class FitnessActivity extends RobotActivity implements RobotLifecycleCall @Override public void onRobotFocusGained(QiContext qiContext) { - personalMotionPreviewElement.provideQiContext(qiContext); // Find the VideoView by its ID - //CompletableFuture.runAsync(() -> FitnessCycle.executeMovement("bicepcurl", 10, qiContext)); +// CompletableFuture.runAsync(() -> FitnessCycle.executeMovement("bicepcurl", 10, qiContext)); + Log.i("Motion", "qiContext provided"); + personalMotionPreviewElement.provideQiContext(qiContext); + // FitnessCycle.playVideo(qiContext, videoView, this); } diff --git a/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/HelpActivity.java b/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/HelpActivity.java index def4026..3ffa2e3 100644 --- a/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/HelpActivity.java +++ b/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/HelpActivity.java @@ -4,6 +4,7 @@ import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.example.fitbot.R; +import com.example.fitbot.util.ButtonNavigation; public class HelpActivity extends AppCompatActivity { @@ -11,5 +12,8 @@ public class HelpActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_help); + + ButtonNavigation.setupButtonNavigation(this, R.id.homeButton, MainActivity.class); + } } \ No newline at end of file diff --git a/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/MainActivity.java b/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/MainActivity.java index ca30bf2..b2fa7ba 100644 --- a/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/MainActivity.java +++ b/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/MainActivity.java @@ -14,6 +14,7 @@ import android.util.Log; import android.widget.Button; import com.example.fitbot.R; +import com.example.fitbot.util.ButtonNavigation; public class MainActivity extends AppCompatActivity { @@ -48,11 +49,8 @@ public class MainActivity extends AppCompatActivity { toolbar = findViewById(R.id.toolbar); startButton = findViewById(R.id.startButton); - startButton.setOnClickListener(v -> { // Switch to fitness activity - Log.i("MainActivity", "Switching to FitnessActivity"); - Intent intent = new Intent(MainActivity.this, FitnessActivity.class); - startActivity(intent); - }); + ButtonNavigation.setupButtonNavigation(this, R.id.startButton, FitnessActivity.class); + ButtonNavigation.setupButtonNavigation(this, R.id.helpButton, HelpActivity.class); /*---Tool Bar---*/ setSupportActionBar(toolbar); // Make the toolbar act as the action bar diff --git a/code/src/Fitbot/app/src/main/res/layout/activity_end_screen.xml b/code/src/Fitbot/app/src/main/res/layout/activity_end_screen.xml index fd3a2e9..b07bcad 100644 --- a/code/src/Fitbot/app/src/main/res/layout/activity_end_screen.xml +++ b/code/src/Fitbot/app/src/main/res/layout/activity_end_screen.xml @@ -56,14 +56,12 @@ style="@style/TextStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginStart="539dp" - android:layout_marginEnd="533dp" android:text="Gefeliciteerd" - app:layout_constraintBottom_toTopOf="@+id/workoutText" + app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="@+id/myRectangleView" /> + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_bias="0.155" /> + + +