Merge remote-tracking branch 'origin/main'

This commit is contained in:
Luca Warmenhoven
2024-06-03 14:55:27 +02:00
7 changed files with 298 additions and 5 deletions

View File

@@ -8,6 +8,7 @@ public class Exercise {
public final GesturePath leftPath; public final GesturePath leftPath;
public final GesturePath rightPath; public final GesturePath rightPath;
public final String name; public final String name;
public final String shortDescription;
public final String description; public final String description;
public final String imageUrl; public final String imageUrl;
public final String videoUrl; public final String videoUrl;
@@ -24,9 +25,10 @@ public class Exercise {
* @param imageUrl The URL of the image. * @param imageUrl The URL of the image.
* @param videoUrl The URL of the video. * @param videoUrl The URL of the video.
*/ */
public Exercise(EMuscleGroup muscleGroup, String name, String description, String imageUrl, String videoUrl, GesturePath leftPath, GesturePath rightPath, float exerciseTimeInSeconds) { public Exercise(EMuscleGroup muscleGroup, String name,String shortDescription, String description, String imageUrl, String videoUrl, GesturePath leftPath, GesturePath rightPath, float exerciseTimeInSeconds) {
this.name = name; this.name = name;
this.muscleGroup = muscleGroup; this.muscleGroup = muscleGroup;
this.shortDescription = shortDescription;
this.description = description; this.description = description;
this.leftPath = leftPath; this.leftPath = leftPath;
this.rightPath = rightPath; this.rightPath = rightPath;

View File

@@ -21,10 +21,10 @@ public class ExerciseManager {
private static final String PROPERTY_EXERCISE_DURATION = "duration"; private static final String PROPERTY_EXERCISE_DURATION = "duration";
private static final String PROPERTY_EXERCISE_ID = "exerciseId"; private static final String PROPERTY_EXERCISE_ID = "exerciseId";
private static final String PROPERTY_MUSCLE_GROUP = "muscleGroup"; private static final String PROPERTY_MUSCLE_GROUP = "muscleGroup";
private static final String PROPERTY_SHORT_DESC = "shortDescription";
private static final String PROPERTY_IMAGE_URL = "imageUrl"; private static final String PROPERTY_IMAGE_URL = "imageUrl";
private static final String PROPERTY_VIDEO_URL = "videoUrl"; private static final String PROPERTY_VIDEO_URL = "videoUrl";
private static final String PROPERTY_DESC = "description"; private static final String PROPERTY_DESC = "description";
private static final String PROPERTY_SHORT_DESC = "shortDescription";
private static final String PROPERTY_PATH = "path"; private static final String PROPERTY_PATH = "path";
private static final String PROPERTY_NAME = "name"; private static final String PROPERTY_NAME = "name";
@@ -34,7 +34,7 @@ public class ExerciseManager {
public static final int SENSOR_COUNT = 2; public static final int SENSOR_COUNT = 2;
private static final String[] REQUIRED_PROPERTIES = { private static final String[] REQUIRED_PROPERTIES = {
PROPERTY_MUSCLE_GROUP, PROPERTY_DESC, PROPERTY_IMAGE_URL, PROPERTY_MUSCLE_GROUP, PROPERTY_DESC,PROPERTY_SHORT_DESC, PROPERTY_IMAGE_URL,
PROPERTY_VIDEO_URL, PROPERTY_NAME, PROPERTY_PATH, PROPERTY_VIDEO_URL, PROPERTY_NAME, PROPERTY_PATH,
PROPERTY_EXERCISE_DURATION, PROPERTY_EXERCISE_ID, PROPERTY_EXERCISE_DURATION, PROPERTY_EXERCISE_ID,
PROPERTY_SHORT_DESC PROPERTY_SHORT_DESC
@@ -112,6 +112,7 @@ public class ExerciseManager {
EMuscleGroup.parse(content.get(PROPERTY_MUSCLE_GROUP).getAsString()), EMuscleGroup.parse(content.get(PROPERTY_MUSCLE_GROUP).getAsString()),
content.get(PROPERTY_NAME).getAsString(), content.get(PROPERTY_NAME).getAsString(),
content.get(PROPERTY_DESC).getAsString(), content.get(PROPERTY_DESC).getAsString(),
content.get(PROPERTY_SHORT_DESC).getAsString(),
content.get(PROPERTY_IMAGE_URL).getAsString(), content.get(PROPERTY_IMAGE_URL).getAsString(),
content.get(PROPERTY_VIDEO_URL).getAsString(), content.get(PROPERTY_VIDEO_URL).getAsString(),
GesturePath.fromString(leftRightData[0]), GesturePath.fromString(leftRightData[0]),

View File

@@ -33,7 +33,12 @@ public class FitnessActivity extends RobotActivity implements RobotLifecycleCall
private ExerciseStatusElement exerciseStatusElement; private ExerciseStatusElement exerciseStatusElement;
private InputProcessor motionProcessor; private InputProcessor motionProcessor;
private Exercise currentExercise; private Exercise currentExercise;
// Exercise status element data
private TextView exerciseMuscleGroupTextView;
private TextView exerciseNameTextView; private TextView exerciseNameTextView;
private TextView exerciseShortDescriptionTextView;
private TextView exerciseDescriptionTextView;
// Some nice little messages for the user // Some nice little messages for the user
private static final String[] EXERCISE_NOT_FOUND_MESSAGES = new String[]{ private static final String[] EXERCISE_NOT_FOUND_MESSAGES = new String[]{
@@ -58,7 +63,11 @@ public class FitnessActivity extends RobotActivity implements RobotLifecycleCall
// Remove the ugly ass bar on top of the view // Remove the ugly ass bar on top of the view
setSpeechBarDisplayStrategy(SpeechBarDisplayStrategy.IMMERSIVE); setSpeechBarDisplayStrategy(SpeechBarDisplayStrategy.IMMERSIVE);
// Fill empty objects with exercise data
this.exerciseNameTextView = findViewById(R.id.textViewFitnessTitle); this.exerciseNameTextView = findViewById(R.id.textViewFitnessTitle);
this.exerciseDescriptionTextView = findViewById(R.id.textViewDialogDescription);
this.exerciseShortDescriptionTextView = findViewById(R.id.textViewFitnessShortDescription);
// Find the VideoView by its ID // Find the VideoView by its ID
VideoView videoView = findViewById(R.id.videoView); VideoView videoView = findViewById(R.id.videoView);
@@ -128,6 +137,8 @@ public class FitnessActivity extends RobotActivity implements RobotLifecycleCall
onFailedFetch.handle(null); onFailedFetch.handle(null);
} else { } else {
exerciseNameTextView.setText(exercise.name); exerciseNameTextView.setText(exercise.name);
exerciseShortDescriptionTextView.setText(exercise.shortDescription);
exerciseDescriptionTextView.setText(exercise.description);
onSuccessfulFetch.handle(exercise); onSuccessfulFetch.handle(exercise);
} }
})).start(); })).start();

View File

@@ -84,7 +84,7 @@
android:layout_gravity="center_horizontal"> android:layout_gravity="center_horizontal">
<TextView <TextView
android:id="@+id/textViewFitnessDescription" android:id="@+id/textViewFitnessShortDescription"
style="@style/TextStyle" style="@style/TextStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"

View File

@@ -33,7 +33,7 @@
</RelativeLayout> </RelativeLayout>
<TextView <TextView
android:id="@+id/textViewDialog" android:id="@+id/textViewDialogDescription"
style="@style/TextStyle" style="@style/TextStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@@ -0,0 +1,275 @@
<?xml version="1.0" encoding="UTF-8"?>
<Animation xmlns:editor="http://www.ald.softbankrobotics.com/animation/editor" typeVersion="2.0" editor:fps="25">
<ActuatorCurve fps="25" actuator="HeadYaw" mute="false" unit="degree">
<Key value="-0.439454377" frame="101">
<Tangent side="right" abscissaParam="32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-0.439454377" frame="199">
<Tangent side="left" abscissaParam="-32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-0.439454377" frame="299">
<Tangent side="left" abscissaParam="-33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-0.439454377" frame="401">
<Tangent side="left" abscissaParam="-34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="HeadPitch" mute="false" unit="degree">
<Key value="-12.1289139" frame="101">
<Tangent side="right" abscissaParam="32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-12.1289139" frame="199">
<Tangent side="left" abscissaParam="-32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-12.1289139" frame="299">
<Tangent side="left" abscissaParam="-33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-12.1289139" frame="401">
<Tangent side="left" abscissaParam="-34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="LShoulderPitch" mute="false" unit="degree">
<Key value="-119.500008" frame="101">
<Tangent side="right" abscissaParam="32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="119.500008" frame="199">
<Tangent side="left" abscissaParam="-32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="119.500008" frame="299">
<Tangent side="left" abscissaParam="-33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="119.500008" frame="401">
<Tangent side="left" abscissaParam="-34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="LShoulderRoll" mute="false" unit="degree">
<Key value="6.67969275" frame="101">
<Tangent side="right" abscissaParam="32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="6.67969275" frame="199">
<Tangent side="left" abscissaParam="-32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="6.67969275" frame="299">
<Tangent side="left" abscissaParam="-33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="6.67969275" frame="401">
<Tangent side="left" abscissaParam="-34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="LElbowYaw" mute="false" unit="degree">
<Key value="-69.7851486" frame="101">
<Tangent side="right" abscissaParam="32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-69.7851486" frame="199">
<Tangent side="left" abscissaParam="-32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-69.7851486" frame="299">
<Tangent side="left" abscissaParam="-33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-69.7851486" frame="401">
<Tangent side="left" abscissaParam="-34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="LElbowRoll" mute="false" unit="degree">
<Key value="-29.7070332" frame="101">
<Tangent side="right" abscissaParam="32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-29.7070332" frame="199">
<Tangent side="left" abscissaParam="-32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-29.7070332" frame="299">
<Tangent side="left" abscissaParam="-33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-29.7070332" frame="401">
<Tangent side="left" abscissaParam="-34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="LWristYaw" mute="false" unit="degree">
<Key value="-1.76023543" frame="101">
<Tangent side="right" abscissaParam="32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-1.76023543" frame="199">
<Tangent side="left" abscissaParam="-32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-1.76023543" frame="299">
<Tangent side="left" abscissaParam="-33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-1.76023543" frame="401">
<Tangent side="left" abscissaParam="-34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="LHand" mute="false" unit="dimensionless">
<Key value="0.589630966" frame="101">
<Tangent side="right" abscissaParam="32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="0.589630966" frame="199">
<Tangent side="left" abscissaParam="-32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="0.589630966" frame="299">
<Tangent side="left" abscissaParam="-33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="0.589630966" frame="401">
<Tangent side="left" abscissaParam="-34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="HipRoll" mute="false" unit="degree">
<Key value="-0.26367262" frame="101">
<Tangent side="right" abscissaParam="32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-0.26367262" frame="199">
<Tangent side="left" abscissaParam="-32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-0.26367262" frame="299">
<Tangent side="left" abscissaParam="-33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-0.26367262" frame="401">
<Tangent side="left" abscissaParam="-34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="HipPitch" mute="false" unit="degree">
<Key value="-1.49414492" frame="101">
<Tangent side="right" abscissaParam="32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-1.49414492" frame="199">
<Tangent side="left" abscissaParam="-32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-1.49414492" frame="299">
<Tangent side="left" abscissaParam="-33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-1.49414492" frame="401">
<Tangent side="left" abscissaParam="-34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="KneePitch" mute="false" unit="degree">
<Key value="0" frame="101">
<Tangent side="right" abscissaParam="32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="0" frame="199">
<Tangent side="left" abscissaParam="-32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="0" frame="299">
<Tangent side="left" abscissaParam="-33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="0" frame="401">
<Tangent side="left" abscissaParam="-34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="RShoulderPitch" mute="false" unit="degree">
<Key value="119.500008" frame="101">
<Tangent side="right" abscissaParam="32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-119.500008" frame="199">
<Tangent side="left" abscissaParam="-32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="112.970039" frame="299">
<Tangent side="left" abscissaParam="-33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="112.970039" frame="401">
<Tangent side="left" abscissaParam="-34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="RShoulderRoll" mute="false" unit="degree">
<Key value="-0.5" frame="101">
<Tangent side="right" abscissaParam="32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-0.5" frame="199">
<Tangent side="left" abscissaParam="-32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-0.5" frame="299">
<Tangent side="left" abscissaParam="-33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-0.5" frame="401">
<Tangent side="left" abscissaParam="-34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="RElbowYaw" mute="false" unit="degree">
<Key value="70.2246094" frame="101">
<Tangent side="right" abscissaParam="32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="70.2246094" frame="199">
<Tangent side="left" abscissaParam="-32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="70.2246094" frame="299">
<Tangent side="left" abscissaParam="-33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="70.2246094" frame="401">
<Tangent side="left" abscissaParam="-34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="RElbowRoll" mute="false" unit="degree">
<Key value="29.7070332" frame="101">
<Tangent side="right" abscissaParam="32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="29.7070332" frame="199">
<Tangent side="left" abscissaParam="-32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="29.7070332" frame="299">
<Tangent side="left" abscissaParam="-33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="29.7070332" frame="401">
<Tangent side="left" abscissaParam="-34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="RWristYaw" mute="false" unit="degree">
<Key value="1.57964516" frame="101">
<Tangent side="right" abscissaParam="32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="1.57964516" frame="199">
<Tangent side="left" abscissaParam="-32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="1.57964516" frame="299">
<Tangent side="left" abscissaParam="-33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="1.57964516" frame="401">
<Tangent side="left" abscissaParam="-34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="RHand" mute="false" unit="dimensionless">
<Key value="0.588752136" frame="101">
<Tangent side="right" abscissaParam="32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="0.588752136" frame="199">
<Tangent side="left" abscissaParam="-32.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="0.588752136" frame="299">
<Tangent side="left" abscissaParam="-33.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="0.588752136" frame="401">
<Tangent side="left" abscissaParam="-34" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
</Animation>

View File

@@ -20,5 +20,9 @@ We chose this pcb because its really small and it has a socket for a sensor and
We are going to rotational data from the sensor and use that to give feedback to the user based on how well they did the exercise. We are going to rotational data from the sensor and use that to give feedback to the user based on how well they did the exercise.
![alt text](../assets/pcbImage.png) ![alt text](../assets/pcbImage.png)
## How can i program this ESP?
To program this you need to use the Arduino IDE. You need to install the ESP8266 board in the board manager. You need to go to File -> prefrences -> additional board manager url's. Then you need to add this link `https://arduino.esp8266.com/stable/package_esp8266com_index.json`. Then you can find the LOLIN(WEMOS) D1 mini lite. Thats the board you need to select. When compiling you will see a lot of warnings but you can ignore them.
### Sources ### Sources
* https://github.com/Sorakage033/SlimeVR-CheeseCake * https://github.com/Sorakage033/SlimeVR-CheeseCake