Compare commits

..

38 Commits

Author SHA1 Message Date
SebasKoedam
bead6a5a13 ```text
feat: Update DeviceScanner to include ESP UUID characteristic

The DeviceScanner class in the Fitbot app is updated to include the ESP UUID characteristic for Bluetooth communication. This change adds the UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8" to the CORRECT_CHARACTERISTIC_UUID constant. The purpose of this change is to enable communication with ESP32 devices.
2024-05-31 11:14:22 +02:00
SebasKoedam
49f97b57dd test is able to recieve data once 2024-05-21 15:51:04 +02:00
SebasKoedam
0153b70578 Merge branch 'main' of ssh://gitlab.fdmci.hva.nl/propedeuse-hbo-ict/onderwijs/2023-2024/out-a-se-ti/blok-4/muupooviixee66 into 53-als-gebruiker-wil-ik-dat-mijn-positie-wordt-gemeten-zodat-dit-gebruikt-kan-worden-voor-bepaalde 2024-05-21 12:56:12 +02:00
SebasKoedam
39f3d4bb1d feat: Add Arduino code for position tracking
The code changes include adding a new Arduino sketch for position tracking. The sketch is located at `code/arduino/Position-tracking/Position-tracking.ino`. Additionally, a new class `PositionSensor` is added with its corresponding header and implementation files. This class handles the position sensor functionality and includes methods for initialization and measurement.

The commit message suggests that the changes are a new feature addition related to position tracking in the Arduino code.
2024-05-21 12:55:14 +02:00
Niels Gras
ba0ae4c6b7 fixed build errors 2024-05-21 12:43:12 +02:00
59d7c4f1ec Merge branch 'main' of https://gitlab.fdmci.hva.nl/propedeuse-hbo-ict/onderwijs/2023-2024/out-a-se-ti/blok-4/muupooviixee66 2024-05-21 12:31:15 +02:00
SebasKoedam
a4907f00c8 added new research 2024-05-21 11:29:05 +02:00
SebasKoedam
67045ed342 Merge branch '53-als-gebruiker-wil-ik-dat-mijn-bewegingen-op-het-wii-fit-board-worden-gemeten-zodat-dit-gebruikt' 2024-05-21 11:25:19 +02:00
SebasKoedam
29c5e99017 chore: Add skill development plan documentation 2024-05-21 10:21:50 +02:00
SebasKoedam
a901c0f205 feat: Remove unused code and update Arduino board configuration 2024-05-20 15:31:25 +02:00
SebasKoedam
14f46775dd feat: Update FitBot architecture diagrams 2024-05-20 15:19:23 +02:00
SebasKoedam
536c8c75af feat: Update FitBot architecture diagrams 2024-05-20 14:27:30 +02:00
180817d073 Set correct name 2024-05-20 12:34:24 +02:00
4f57b87265 Added source 2024-05-20 12:33:51 +02:00
90487db6f0 Merge branch 'main' of https://gitlab.fdmci.hva.nl/propedeuse-hbo-ict/onderwijs/2023-2024/out-a-se-ti/blok-4/muupooviixee66 2024-05-20 12:31:12 +02:00
7b1a1f3f2b personaldocs 2024-05-20 12:31:08 +02:00
83a471ab06 Basic syntax diagram 2024-05-17 16:03:41 +02:00
72ca6bc77b Fix typos in sensors.md 2024-05-17 15:59:39 +02:00
Luca Warmenhoven
1fea68d90a Merge remote-tracking branch 'origin/main' 2024-05-17 15:28:49 +02:00
Luca Warmenhoven
368067eb8b Updated manifest 2024-05-17 15:28:43 +02:00
Luca Warmenhoven
6e8a66e327 Merge 2024-05-17 15:03:54 +02:00
Luca Warmenhoven
fb63b1364a Merge remote-tracking branch 'refs/remotes/origin/35-als-gebruiker-wil-ik-live-mijn-bewegingen-doen-zodat-ik-kan-inzien-of-ik-het-goed-doe' 2024-05-17 15:03:20 +02:00
Niels Gras
aa33bf2f12 Merge branch '54-als-gebruiker-wil-ik-een-scherm-waar-ik-mijn-score-kan-zien-na-de-oefeningen-zodat-ik-een' into 'main'
Resolve "Als gebruiker wil ik een scherm waar ik mijn score kan zien na de oefeningen zodat ik een inzicht heb van wat ik heb gedaan"

Closes #54

See merge request propedeuse-hbo-ict/onderwijs/2023-2024/out-a-se-ti/blok-4/muupooviixee66!5
2024-05-17 13:34:08 +02:00
Niels Gras
2fdc8a7189 Merge branch 'main' of ssh://gitlab.fdmci.hva.nl/propedeuse-hbo-ict/onderwijs/2023-2024/out-a-se-ti/blok-4/muupooviixee66 into 54-als-gebruiker-wil-ik-een-scherm-waar-ik-mijn-score-kan-zien-na-de-oefeningen-zodat-ik-een 2024-05-17 13:33:32 +02:00
Niels Gras
6b40c5c079 Merge branch 'main' of ssh://gitlab.fdmci.hva.nl/propedeuse-hbo-ict/onderwijs/2023-2024/out-a-se-ti/blok-4/muupooviixee66 2024-05-17 13:32:17 +02:00
Niels Gras
6720b2af3d Added new drawable and layout files for Fitbot app 2024-05-17 13:31:59 +02:00
Niels Gras
f9e340a500 Merge branch 'main' of ssh://gitlab.fdmci.hva.nl/propedeuse-hbo-ict/onderwijs/2023-2024/out-a-se-ti/blok-4/muupooviixee66 into 54-als-gebruiker-wil-ik-een-scherm-waar-ik-mijn-score-kan-zien-na-de-oefeningen-zodat-ik-een 2024-05-17 13:30:47 +02:00
SebasKoedam
7dc0c7bc72 feat: Update FitBot architecture diagrams
The FitBot architecture diagrams have been updated to include a new version of the architecture diagram and a deployment diagram. These diagrams provide a visual representation of the infrastructure of FitBot.
2024-05-17 12:44:53 +02:00
SebasKoedam
031d766205 added docs voor expert 2 2024-05-17 12:35:55 +02:00
Niels
866484c85b fixed color 2024-05-16 23:32:48 +02:00
Niels
87e8b725e4 Added curves on endscreen 2024-05-16 23:24:09 +02:00
SebasKoedam
54cf012288 i tried :(((((((((((((((((((((((((((((((((((( 2024-05-16 14:30:57 +02:00
SebasKoedam
01498b5643 Code is able to discover bluetooth devices but cant connect to the balance board 2024-05-16 11:30:10 +02:00
Niels Gras
5cab887429 Add AndroidStyles.md file and update activity_end_screen.xml button ID 2024-05-15 16:09:14 +02:00
Niels Gras
5dbbacd140 Update button ID in activity_end_screen.xml 2024-05-15 16:09:05 +02:00
Niels Gras
0f2f174ea9 Add AndroidStyles.md file for documenting Android styles and themes 2024-05-15 15:33:56 +02:00
Niels Gras
f06287d562 Added new XML files for vcs and modules configuration 2024-05-15 14:54:16 +02:00
Niels Gras
c8d90c0992 Added new XML file for rectangle drawable and renamed activity_completion_screen.xml to activity_end_screen.xml 2024-05-15 14:54:06 +02:00
43 changed files with 1668 additions and 346 deletions

9
.gitignore vendored
View File

@@ -1 +1,8 @@
.DS_Store
.DS_Store
/.idea/.gitignore
/.idea/dictionaries/lucawarm.xml
/.idea/material_theme_project_new.xml
/docs/documentation/assets/math-expression-location-calculation.png
/.idea/modules.xml
/.idea/muupooviixee66.iml
/.idea/vcs.xml

8
.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/muupooviixee66-3.iml" filepath="$PROJECT_DIR$/.idea/muupooviixee66-3.iml" />
</modules>
</component>
</project>

9
.idea/muupooviixee66-3.iml generated Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

6
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

47
.idea/workspace.xml generated
View File

@@ -14,6 +14,7 @@
</configurations>
</component>
<component name="ChangeListManager">
<list default="true" id="00599d5b-7eb5-44da-ad7f-98bf42384c16" name="Changes" comment="Final update onderzoek-formulier.md" />
<list default="true" id="00599d5b-7eb5-44da-ad7f-98bf42384c16" name="Changes" comment="Updated onderzoek-voorbeeld.md &amp; motion-tracking-system-analysis.md">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/docs/documentation/research-questions/motion-tracking-system-analysis.md" beforeDir="false" afterPath="$PROJECT_DIR$/docs/documentation/research-questions/motion-tracking-system-analysis.md" afterDir="false" />
@@ -26,6 +27,7 @@
<component name="ClangdSettings">
<option name="formatViaClangd" value="false" />
</component>
<component name="ExecutionTargetManager" SELECTED_TARGET="device_and_snapshot_combo_box_target[C:\Users\Niels\.android\avd\Pepper_1.9_API_29.avd]" />
<component name="ExternalProjectsData">
<projectState path="$PROJECT_DIR$">
<ProjectState />
@@ -73,10 +75,6 @@
<component name="MarkdownSettingsMigration">
<option name="stateVersion" value="1" />
</component>
<component name="ProjectColorInfo">{
&quot;customColor&quot;: &quot;&quot;,
&quot;associatedIndex&quot;: 7
}</component>
<component name="ProjectId" id="2fE3N2CwEPDo9wBtexBLxU20tCJ" />
<component name="ProjectLevelVcsManager">
<ConfirmationsSetting value="2" id="Add" />
@@ -85,6 +83,13 @@
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="RunOnceActivity.cidr.known.project.marker" value="true" />
<property name="cidr.known.project.marker" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/code/src/Fitbot" />
</component>
<component name="PropertiesComponent">{
&quot;keyToString&quot;: {
&quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
@@ -101,6 +106,13 @@
&quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
}
}</component>
<component name="PropertiesComponent">
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="RunOnceActivity.cidr.known.project.marker" value="true" />
<property name="cidr.known.project.marker" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/code/src/Fitbot" />
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/code/src/app/src/main/java/com/fitbot" />
@@ -115,16 +127,40 @@
<option name="PM_INSTALL_OPTIONS" value="" />
<option name="ALL_USERS" value="false" />
<option name="ALWAYS_INSTALL_WITH_PM" value="false" />
<option name="CLEAR_APP_STORAGE" value="false" />
<option name="DYNAMIC_FEATURES_DISABLED_LIST" value="" />
<option name="ACTIVITY_EXTRA_FLAGS" value="" />
<option name="MODE" value="default_activity" />
<option name="CLEAR_LOGCAT" value="false" />
<option name="SHOW_LOGCAT_AUTOMATICALLY" value="false" />
<option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
<option name="FORCE_STOP_RUNNING_APP" value="true" />
<option name="INSPECTION_WITHOUT_ACTIVITY_RESTART" value="false" />
<option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
<option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
<option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" />
<option name="DEBUGGER_TYPE" value="Java" />
<Auto>
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
<option name="SHOW_STATIC_VARS" value="true" />
<option name="WORKING_DIR" value="" />
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
</Auto>
<Hybrid>
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
<option name="SHOW_STATIC_VARS" value="true" />
<option name="WORKING_DIR" value="" />
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
</Hybrid>
<Java />
<Native>
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
<option name="SHOW_STATIC_VARS" value="true" />
<option name="WORKING_DIR" value="" />
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
</Native>
<Profilers>
<option name="ADVANCED_PROFILING_ENABLED" value="false" />
<option name="STARTUP_PROFILING_ENABLED" value="false" />
@@ -275,6 +311,7 @@
</entry>
</map>
</option>
<option name="oldMeFiltersMigrated" value="true" />
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="Changes" />

5
.vscode/arduino.json vendored Normal file
View File

@@ -0,0 +1,5 @@
{
"port": "COM3",
"board": "esp32:esp32:esp32s3",
"sketch": "code\\arduino\\Position-tracking\\Position-tracking.ino"
}

592
.vscode/c_cpp_properties.json vendored Normal file
View File

@@ -0,0 +1,592 @@
{
"version": 4,
"configurations": [
{
"name": "Arduino",
"compilerPath": "C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\bin\\xtensa-esp32s3-elf-g++",
"compilerArgs": [
"-mlongcalls",
"-ffunction-sections",
"-fdata-sections",
"-Wno-error=unused-function",
"-Wno-error=unused-variable",
"-Wno-error=deprecated-declarations",
"-Wno-unused-parameter",
"-Wno-sign-compare",
"-freorder-blocks",
"-Wwrite-strings",
"-fstack-protector",
"-fstrict-volatile-bitfields",
"-Wno-error=unused-but-set-variable",
"-fno-jump-tables",
"-fno-tree-switch-conversion",
"-std=gnu++11",
"-fexceptions",
"-fno-rtti"
],
"intelliSenseMode": "gcc-x64",
"includePath": [
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\newlib\\platform_include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\freertos\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\freertos\\include\\esp_additions\\freertos",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\freertos\\port\\xtensa\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\freertos\\include\\esp_additions",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_hw_support\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_hw_support\\include\\soc",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_hw_support\\include\\soc\\esp32s3",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_hw_support\\port\\esp32s3",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_hw_support\\port\\esp32s3\\private_include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\heap\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\log\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\lwip\\include\\apps",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\lwip\\include\\apps\\sntp",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\lwip\\lwip\\src\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\lwip\\port\\esp32\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\lwip\\port\\esp32\\include\\arch",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\soc\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\soc\\esp32s3",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\soc\\esp32s3\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\hal\\esp32s3\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\hal\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\hal\\platform_port\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_rom\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_rom\\include\\esp32s3",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_rom\\esp32s3",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_common\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_system\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_system\\port\\soc",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_system\\port\\public_compat",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\xtensa\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\xtensa\\esp32s3\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\driver\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\driver\\esp32s3\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_pm\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_ringbuf\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\efuse\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\efuse\\esp32s3\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\vfs\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_wifi\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_event\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_netif\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_eth\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\tcpip_adapter\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_phy\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_phy\\esp32s3\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_ipc\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\app_trace\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_timer\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\mbedtls\\port\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\mbedtls\\mbedtls\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\mbedtls\\esp_crt_bundle\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\app_update\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\spi_flash\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bootloader_support\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\nvs_flash\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\pthread\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_gdbstub\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_gdbstub\\xtensa",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_gdbstub\\esp32s3",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espcoredump\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espcoredump\\include\\port\\xtensa",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\wpa_supplicant\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\wpa_supplicant\\port\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\wpa_supplicant\\esp_supplicant\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\ieee802154\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\console",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\asio\\asio\\asio\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\asio\\port\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\common\\osi\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\include\\esp32c3\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\common\\api\\include\\api",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\common\\btc\\profile\\esp\\blufi\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\common\\btc\\profile\\esp\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\host\\bluedroid\\api\\include\\api",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_common\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_common\\tinycrypt\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_core",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_core\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_core\\storage",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\btc\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_models\\common\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_models\\client\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_models\\server\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\api\\core\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\api\\models\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\api",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\cbor\\port\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\unity\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\unity\\unity\\src",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\cmock\\CMock\\src",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\coap\\port\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\coap\\libcoap\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\nghttp\\port\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\nghttp\\nghttp2\\lib\\includes",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-tls",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-tls\\esp-tls-crypto",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_adc_cal\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_hid\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\tcp_transport\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_http_client\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_http_server\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_https_ota\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_https_server\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_lcd\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_lcd\\interface",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\protobuf-c\\protobuf-c",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\protocomm\\include\\common",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\protocomm\\include\\security",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\protocomm\\include\\transports",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\mdns\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_local_ctrl\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\sdmmc\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_serial_slave_link\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_websocket_client\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\expat\\expat\\expat\\lib",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\expat\\port\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\wear_levelling\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\fatfs\\diskio",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\fatfs\\vfs",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\fatfs\\src",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\freemodbus\\freemodbus\\common\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\idf_test\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\idf_test\\include\\esp32s3",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\jsmn\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\json\\cJSON",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\libsodium\\libsodium\\src\\libsodium\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\libsodium\\port_include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\mqtt\\esp-mqtt\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\openssl\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\perfmon\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\spiffs\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\usb\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\ulp\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\wifi_provisioning\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\rmaker_common\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_diagnostics\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\rtc_store\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_insights\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\json_parser\\upstream\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\json_parser\\upstream",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\json_generator\\upstream",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_schedule\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp_secure_cert_mgr\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_rainmaker\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\gpio_button\\button\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\qrcode\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\ws2812_led",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\freertos\\include\\freertos",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\arduino_tinyusb\\tinyusb\\src",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\arduino_tinyusb\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp_littlefs\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-dl\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\tool",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\typedef",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\image",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\math",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\nn",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\layer",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\detect",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\model_zoo",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp32-camera\\driver\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\esp32-camera\\conversions\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\dotprod\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\support\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\support\\mem\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\hann\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\blackman\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\blackman_harris\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\blackman_nuttall\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\nuttall\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\flat_top\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\iir\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\fir\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\add\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\sub\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\mul\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\addc\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\mulc\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\sqrt\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\matrix\\mul\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\matrix\\add\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\matrix\\addc\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\matrix\\mulc\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\matrix\\sub\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\matrix\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\fft\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\dct\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\conv\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\common\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\matrix\\mul\\test\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\kalman\\ekf\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\kalman\\ekf_imu13states\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\include\\fb_gfx\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\tools\\sdk\\esp32s3\\qio_qspi\\include",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\cores\\esp32",
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\variants\\esp32s3",
"c:\\users\\sebas\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\xtensa-esp32s3-elf\\include\\c++\\8.4.0",
"c:\\users\\sebas\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\xtensa-esp32s3-elf\\include\\c++\\8.4.0\\xtensa-esp32s3-elf",
"c:\\users\\sebas\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\xtensa-esp32s3-elf\\include\\c++\\8.4.0\\backward",
"c:\\users\\sebas\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\lib\\gcc\\xtensa-esp32s3-elf\\8.4.0\\include",
"c:\\users\\sebas\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\lib\\gcc\\xtensa-esp32s3-elf\\8.4.0\\include-fixed",
"c:\\users\\sebas\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\xtensa-esp32s3-elf\\sys-include",
"c:\\users\\sebas\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\xtensa-esp32s3-elf\\include"
],
"forcedInclude": [
"C:\\Users\\sebas\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.16\\cores\\esp32\\Arduino.h"
],
"cStandard": "c11",
"cppStandard": "c++11",
"defines": [
"HAVE_CONFIG_H",
"MBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"",
"UNITY_INCLUDE_CONFIG_H",
"WITH_POSIX",
"_GNU_SOURCE",
"IDF_VER=\"v4.4.7-dirty\"",
"ESP_PLATFORM",
"_POSIX_READER_WRITER_LOCKS",
"F_CPU=240000000L",
"ARDUINO=10607",
"ARDUINO_ESP32S3_DEV",
"ARDUINO_ARCH_ESP32",
"ARDUINO_BOARD=\"ESP32S3_DEV\"",
"ARDUINO_VARIANT=\"esp32s3\"",
"ARDUINO_PARTITION_default",
"ESP32",
"CORE_DEBUG_LEVEL=0",
"ARDUINO_RUNNING_CORE=1",
"ARDUINO_EVENT_RUNNING_CORE=1",
"ARDUINO_USB_MODE=1",
"ARDUINO_USB_CDC_ON_BOOT=0",
"ARDUINO_USB_MSC_ON_BOOT=0",
"ARDUINO_USB_DFU_ON_BOOT=0",
"__DBL_MIN_EXP__=(-1021)",
"__FLT32X_MAX_EXP__=1024",
"__cpp_attributes=200809",
"__UINT_LEAST16_MAX__=0xffff",
"__ATOMIC_ACQUIRE=2",
"__FLT_MIN__=1.1754943508222875e-38F",
"__GCC_IEC_559_COMPLEX=0",
"__cpp_aggregate_nsdmi=201304",
"__UINT_LEAST8_TYPE__=unsigned char",
"__INTMAX_C(c)=c ## LL",
"__CHAR_BIT__=8",
"__UINT8_MAX__=0xff",
"__WINT_MAX__=0xffffffffU",
"__FLT32_MIN_EXP__=(-125)",
"__cpp_static_assert=200410",
"__ORDER_LITTLE_ENDIAN__=1234",
"__SIZE_MAX__=0xffffffffU",
"__WCHAR_MAX__=0xffff",
"__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1",
"__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1",
"__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1",
"__DBL_DENORM_MIN__=double(4.9406564584124654e-324L)",
"__GCC_ATOMIC_CHAR_LOCK_FREE=2",
"__GCC_IEC_559=0",
"__FLT32X_DECIMAL_DIG__=17",
"__FLT_EVAL_METHOD__=0",
"__cpp_binary_literals=201304",
"__FLT64_DECIMAL_DIG__=17",
"__GCC_ATOMIC_CHAR32_T_LOCK_FREE=2",
"__cpp_variadic_templates=200704",
"__UINT_FAST64_MAX__=0xffffffffffffffffULL",
"__SIG_ATOMIC_TYPE__=int",
"__DBL_MIN_10_EXP__=(-307)",
"__FINITE_MATH_ONLY__=0",
"__cpp_variable_templates=201304",
"__GNUC_PATCHLEVEL__=0",
"__FLT32_HAS_DENORM__=1",
"__UINT_FAST8_MAX__=0xffffffffU",
"__has_include(STR)=__has_include__(STR)",
"__DEC64_MAX_EXP__=385",
"__INT8_C(c)=c",
"__INT_LEAST8_WIDTH__=8",
"__UINT_LEAST64_MAX__=0xffffffffffffffffULL",
"__SHRT_MAX__=0x7fff",
"__LDBL_MAX__=1.7976931348623157e+308L",
"__UINT_LEAST8_MAX__=0xff",
"__GCC_ATOMIC_BOOL_LOCK_FREE=2",
"__UINTMAX_TYPE__=long long unsigned int",
"__DEC32_EPSILON__=1E-6DF",
"__FLT_EVAL_METHOD_TS_18661_3__=0",
"__CHAR_UNSIGNED__=1",
"__UINT32_MAX__=0xffffffffU",
"__GXX_EXPERIMENTAL_CXX0X__=1",
"__LDBL_MAX_EXP__=1024",
"__WINT_MIN__=0U",
"__INT_LEAST16_WIDTH__=16",
"__SCHAR_MAX__=0x7f",
"__WCHAR_MIN__=0",
"__INT64_C(c)=c ## LL",
"__DBL_DIG__=15",
"__GCC_ATOMIC_POINTER_LOCK_FREE=2",
"__SIZEOF_INT__=4",
"__SIZEOF_POINTER__=4",
"__GCC_ATOMIC_CHAR16_T_LOCK_FREE=2",
"__USER_LABEL_PREFIX__",
"__STDC_HOSTED__=1",
"__LDBL_HAS_INFINITY__=1",
"__XTENSA_EL__=1",
"__FLT32_DIG__=6",
"__FLT_EPSILON__=1.1920928955078125e-7F",
"__GXX_WEAK__=1",
"__SHRT_WIDTH__=16",
"__LDBL_MIN__=2.2250738585072014e-308L",
"__DEC32_MAX__=9.999999E96DF",
"__cpp_threadsafe_static_init=200806",
"__FLT32X_HAS_INFINITY__=1",
"__INT32_MAX__=0x7fffffff",
"__INT_WIDTH__=32",
"__SIZEOF_LONG__=4",
"__UINT16_C(c)=c",
"__PTRDIFF_WIDTH__=32",
"__DECIMAL_DIG__=17",
"__FLT64_EPSILON__=2.2204460492503131e-16F64",
"__INTMAX_WIDTH__=64",
"__FLT64_MIN_EXP__=(-1021)",
"__has_include_next(STR)=__has_include_next__(STR)",
"__LDBL_HAS_QUIET_NAN__=1",
"__FLT64_MANT_DIG__=53",
"__GNUC__=8",
"__GXX_RTTI=1",
"__cpp_delegating_constructors=200604",
"__FLT_HAS_DENORM__=1",
"__SIZEOF_LONG_DOUBLE__=8",
"__BIGGEST_ALIGNMENT__=16",
"__STDC_UTF_16__=1",
"__FLT64_MAX_10_EXP__=308",
"__FLT32_HAS_INFINITY__=1",
"__DBL_MAX__=double(1.7976931348623157e+308L)",
"__cpp_raw_strings=200710",
"__INT_FAST32_MAX__=0x7fffffff",
"__DBL_HAS_INFINITY__=1",
"__DEC32_MIN_EXP__=(-94)",
"__INTPTR_WIDTH__=32",
"__FLT32X_HAS_DENORM__=1",
"__INT_FAST16_TYPE__=int",
"__LDBL_HAS_DENORM__=1",
"__cplusplus=201402L",
"__cpp_ref_qualifiers=200710",
"__DEC128_MAX__=9.999999999999999999999999999999999E6144DL",
"__INT_LEAST32_MAX__=0x7fffffff",
"__DEC32_MIN__=1E-95DF",
"__DEPRECATED=1",
"__cpp_rvalue_references=200610",
"__DBL_MAX_EXP__=1024",
"__WCHAR_WIDTH__=16",
"__FLT32_MAX__=3.4028234663852886e+38F32",
"__DEC128_EPSILON__=1E-33DL",
"__PTRDIFF_MAX__=0x7fffffff",
"__FLT32_HAS_QUIET_NAN__=1",
"__GNUG__=8",
"__LONG_LONG_MAX__=0x7fffffffffffffffLL",
"__SIZEOF_SIZE_T__=4",
"__cpp_rvalue_reference=200610",
"__cpp_nsdmi=200809",
"__SIZEOF_WINT_T__=4",
"__LONG_LONG_WIDTH__=64",
"__cpp_initializer_lists=200806",
"__FLT32_MAX_EXP__=128",
"__cpp_hex_float=201603",
"__GXX_ABI_VERSION=1013",
"__FLT_MIN_EXP__=(-125)",
"__cpp_lambdas=200907",
"__INT_FAST64_TYPE__=long long int",
"__FP_FAST_FMAF=1",
"__FLT64_DENORM_MIN__=4.9406564584124654e-324F64",
"__DBL_MIN__=double(2.2250738585072014e-308L)",
"__FLT32X_EPSILON__=2.2204460492503131e-16F32x",
"__FLT64_MIN_10_EXP__=(-307)",
"__DEC128_MIN__=1E-6143DL",
"__REGISTER_PREFIX__",
"__UINT16_MAX__=0xffff",
"__DBL_HAS_DENORM__=1",
"__FLT32_MIN__=1.1754943508222875e-38F32",
"__UINT8_TYPE__=unsigned char",
"__NO_INLINE__=1",
"__FLT_MANT_DIG__=24",
"__LDBL_DECIMAL_DIG__=17",
"__VERSION__=\"8.4.0\"",
"__UINT64_C(c)=c ## ULL",
"__cpp_unicode_characters=200704",
"__cpp_decltype_auto=201304",
"__GCC_ATOMIC_INT_LOCK_FREE=2",
"__FLT32_MANT_DIG__=24",
"__FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__",
"__SCHAR_WIDTH__=8",
"__INT32_C(c)=c",
"__DEC64_EPSILON__=1E-15DD",
"__ORDER_PDP_ENDIAN__=3412",
"__DEC128_MIN_EXP__=(-6142)",
"__FLT32_MAX_10_EXP__=38",
"__INT_FAST32_TYPE__=int",
"__UINT_LEAST16_TYPE__=short unsigned int",
"__INT16_MAX__=0x7fff",
"__cpp_rtti=199711",
"__SIZE_TYPE__=unsigned int",
"__UINT64_MAX__=0xffffffffffffffffULL",
"__INT8_TYPE__=signed char",
"__cpp_digit_separators=201309",
"__ELF__=1",
"__xtensa__=1",
"__FLT_RADIX__=2",
"__INT_LEAST16_TYPE__=short int",
"__LDBL_EPSILON__=2.2204460492503131e-16L",
"__UINTMAX_C(c)=c ## ULL",
"__SIG_ATOMIC_MAX__=0x7fffffff",
"__GCC_ATOMIC_WCHAR_T_LOCK_FREE=2",
"__SIZEOF_PTRDIFF_T__=4",
"__FLT32X_MANT_DIG__=53",
"__FLT32X_MIN_EXP__=(-1021)",
"__DEC32_SUBNORMAL_MIN__=0.000001E-95DF",
"__INT_FAST16_MAX__=0x7fffffff",
"__FLT64_DIG__=15",
"__UINT_FAST32_MAX__=0xffffffffU",
"__UINT_LEAST64_TYPE__=long long unsigned int",
"__FLT_HAS_QUIET_NAN__=1",
"__FLT_MAX_10_EXP__=38",
"__LONG_MAX__=0x7fffffffL",
"__DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL",
"__FLT_HAS_INFINITY__=1",
"__cpp_unicode_literals=200710",
"__UINT_FAST16_TYPE__=unsigned int",
"__DEC64_MAX__=9.999999999999999E384DD",
"__INT_FAST32_WIDTH__=32",
"__CHAR16_TYPE__=short unsigned int",
"__PRAGMA_REDEFINE_EXTNAME=1",
"__SIZE_WIDTH__=32",
"__INT_LEAST16_MAX__=0x7fff",
"__DEC64_MANT_DIG__=16",
"__INT64_MAX__=0x7fffffffffffffffLL",
"__UINT_LEAST32_MAX__=0xffffffffU",
"__FLT32_DENORM_MIN__=1.4012984643248171e-45F32",
"__GCC_ATOMIC_LONG_LOCK_FREE=2",
"__SIG_ATOMIC_WIDTH__=32",
"__INT_LEAST64_TYPE__=long long int",
"__INT16_TYPE__=short int",
"__INT_LEAST8_TYPE__=signed char",
"__DEC32_MAX_EXP__=97",
"__INT_FAST8_MAX__=0x7fffffff",
"__INTPTR_MAX__=0x7fffffff",
"__cpp_sized_deallocation=201309",
"__cpp_range_based_for=200907",
"__FLT64_HAS_QUIET_NAN__=1",
"__FLT32_MIN_10_EXP__=(-37)",
"__EXCEPTIONS=1",
"__LDBL_MANT_DIG__=53",
"__DBL_HAS_QUIET_NAN__=1",
"__FLT64_HAS_INFINITY__=1",
"__SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)",
"__cpp_return_type_deduction=201304",
"__INTPTR_TYPE__=int",
"__UINT16_TYPE__=short unsigned int",
"__WCHAR_TYPE__=short unsigned int",
"__SIZEOF_FLOAT__=4",
"__UINTPTR_MAX__=0xffffffffU",
"__INT_FAST64_WIDTH__=64",
"__DEC64_MIN_EXP__=(-382)",
"__cpp_decltype=200707",
"__FLT32_DECIMAL_DIG__=9",
"__INT_FAST64_MAX__=0x7fffffffffffffffLL",
"__GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1",
"__FLT_DIG__=6",
"__UINT_FAST64_TYPE__=long long unsigned int",
"__INT_MAX__=0x7fffffff",
"__INT64_TYPE__=long long int",
"__FLT_MAX_EXP__=128",
"__DBL_MANT_DIG__=53",
"__cpp_inheriting_constructors=201511",
"__INT_LEAST64_MAX__=0x7fffffffffffffffLL",
"__FP_FAST_FMAF32=1",
"__DEC64_MIN__=1E-383DD",
"__WINT_TYPE__=unsigned int",
"__UINT_LEAST32_TYPE__=unsigned int",
"__SIZEOF_SHORT__=2",
"__LDBL_MIN_EXP__=(-1021)",
"__FLT64_MAX__=1.7976931348623157e+308F64",
"__WINT_WIDTH__=32",
"__INT_LEAST8_MAX__=0x7f",
"__FLT32X_MAX_10_EXP__=308",
"__WCHAR_UNSIGNED__=1",
"__LDBL_MAX_10_EXP__=308",
"__ATOMIC_RELAXED=0",
"__DBL_EPSILON__=double(2.2204460492503131e-16L)",
"__XTENSA_WINDOWED_ABI__=1",
"__UINT8_C(c)=c",
"__FLT64_MAX_EXP__=1024",
"__INT_LEAST32_TYPE__=int",
"__SIZEOF_WCHAR_T__=2",
"__INT_FAST8_TYPE__=int",
"__GNUC_STDC_INLINE__=1",
"__FLT64_HAS_DENORM__=1",
"__FLT32_EPSILON__=1.1920928955078125e-7F32",
"__DBL_DECIMAL_DIG__=17",
"__STDC_UTF_32__=1",
"__INT_FAST8_WIDTH__=32",
"__DEC_EVAL_METHOD__=2",
"__FLT32X_MAX__=1.7976931348623157e+308F32x",
"__XTENSA__=1",
"__ORDER_BIG_ENDIAN__=4321",
"__cpp_runtime_arrays=198712",
"__UINT64_TYPE__=long long unsigned int",
"__UINT32_C(c)=c ## U",
"__INTMAX_MAX__=0x7fffffffffffffffLL",
"__cpp_alias_templates=200704",
"__BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__",
"__FLT_DENORM_MIN__=1.4012984643248171e-45F",
"__INT8_MAX__=0x7f",
"__LONG_WIDTH__=32",
"__UINT_FAST32_TYPE__=unsigned int",
"__CHAR32_TYPE__=unsigned int",
"__FLT_MAX__=3.4028234663852886e+38F",
"__cpp_constexpr=201304",
"__INT32_TYPE__=int",
"__SIZEOF_DOUBLE__=8",
"__cpp_exceptions=199711",
"__FLT_MIN_10_EXP__=(-37)",
"__FLT64_MIN__=2.2250738585072014e-308F64",
"__INT_LEAST32_WIDTH__=32",
"__INTMAX_TYPE__=long long int",
"__DEC128_MAX_EXP__=6145",
"__FLT32X_HAS_QUIET_NAN__=1",
"__ATOMIC_CONSUME=1",
"__GNUC_MINOR__=4",
"__INT_FAST16_WIDTH__=32",
"__UINTMAX_MAX__=0xffffffffffffffffULL",
"__DEC32_MANT_DIG__=7",
"__FLT32X_DENORM_MIN__=4.9406564584124654e-324F32x",
"__DBL_MAX_10_EXP__=308",
"__LDBL_DENORM_MIN__=4.9406564584124654e-324L",
"__INT16_C(c)=c",
"__cpp_generic_lambdas=201304",
"__STDC__=1",
"__FLT32X_DIG__=15",
"__PTRDIFF_TYPE__=int",
"__ATOMIC_SEQ_CST=5",
"__UINT32_TYPE__=unsigned int",
"__FLT32X_MIN_10_EXP__=(-307)",
"__UINTPTR_TYPE__=unsigned int",
"__DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD",
"__DEC128_MANT_DIG__=34",
"__LDBL_MIN_10_EXP__=(-307)",
"__SIZEOF_LONG_LONG__=8",
"__cpp_user_defined_literals=200809",
"__GCC_ATOMIC_LLONG_LOCK_FREE=1",
"__FLT32X_MIN__=2.2250738585072014e-308F32x",
"__LDBL_DIG__=15",
"__FLT_DECIMAL_DIG__=9",
"__UINT_FAST16_MAX__=0xffffffffU",
"__GCC_ATOMIC_SHORT_LOCK_FREE=2",
"__INT_LEAST64_WIDTH__=64",
"__UINT_FAST8_TYPE__=unsigned int",
"__cpp_init_captures=201304",
"__ATOMIC_ACQ_REL=4",
"__ATOMIC_RELEASE=3",
"USBCON"
]
}
]
}

View File

@@ -0,0 +1,12 @@
#include "PositionSensor.h"
PositionSensor sensor(15); // Sensor Pin
void setup() {
sensor.begin();
}
void loop() {
sensor.Measure();
delay(1000);
}

View File

@@ -0,0 +1,13 @@
#include "PositionSensor.h"
PositionSensor::PositionSensor(int pin) : _pin(pin) {}
void PositionSensor::begin() {
Serial.begin(115200);
pinMode(_pin, INPUT);
}
void PositionSensor::Measure() {
int value = analogRead(_pin);
Serial.println(value);
}

View File

@@ -0,0 +1,15 @@
#ifndef PositionSensor_h
#define PositionSensor_h
#include "Arduino.h"
class PositionSensor {
public:
PositionSensor(int pin);
void begin();
void Measure();
private:
int _pin;
};
#endif

View File

@@ -0,0 +1,46 @@
#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEServer.h>
#define SERVICE_UUID "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"
#define LDR 15
BLECharacteristic *pCharacteristic;
void setup() {
Serial.begin(115200);
pinMode(LDR, INPUT);
Serial.println("Starting BLE work!");
BLEDevice::init("ESP32-Pepper");
BLEServer *pServer = BLEDevice::createServer();
BLEService *pService = pServer->createService(SERVICE_UUID);
pCharacteristic = pService->createCharacteristic(
CHARACTERISTIC_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE
);
pCharacteristic->setValue("Hello World");
pService->start();
BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
pAdvertising->addServiceUUID(SERVICE_UUID);
pAdvertising->setScanResponse(true);
pAdvertising->setMinPreferred(0x06);
pAdvertising->setMinPreferred(0x12);
BLEDevice::startAdvertising();
Serial.println("Waiting a client connection to notify...");
}
void loop() {
int ldrValue = analogRead(LDR);
Serial.println(ldrValue);
char ldrValueChar[50];
sprintf(ldrValueChar, "%d", ldrValue);
pCharacteristic->setValue(ldrValueChar);
delay(2000);
}

View File

@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<targetSelectedWithDropDown>
<Target>
<type value="QUICK_BOOT_TARGET" />
<deviceKey>
<Key>
<type value="VIRTUAL_DEVICE_PATH" />
<value value="C:\Users\sebas\.android\avd\Pepper_1.9_API_29.avd" />
</Key>
</deviceKey>
</Target>
</targetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2024-04-26T10:10:48.222593700Z" />
</component>
</project>

View File

@@ -4,9 +4,18 @@
<option name="filePathToZoomLevelMap">
<map>
<entry key="../../../../../../../../layout/custom_preview.xml" value="0.35989583333333336" />
<entry key="..\:/Users/31687/muupooviixee66-1/code/src/Fitbot/app/src/main/res/drawable/button_background.xml" value="0.128" />
<entry key="..\:/Users/31687/muupooviixee66-1/code/src/Fitbot/app/src/main/res/drawable/rectangle.xml" value="0.128" />
<entry key="..\:/Users/31687/muupooviixee66-1/code/src/Fitbot/app/src/main/res/layout/activity_bicepvideo.xml" value="0.2015625" />
<entry key="..\:/Users/31687/muupooviixee66-1/code/src/Fitbot/app/src/main/res/layout/activity_end_screen.xml" value="0.18" />
<entry key="..\:/Users/31687/muupooviixee66-1/code/src/Fitbot/app/src/main/res/layout/activity_main.xml" value="0.2015625" />
<entry key="..\:/Users/31687/muupooviixee66-1/code/src/Fitbot/app/src/main/res/layout/activity_main_screen.xml" value="0.358695652173913" />
<entry key="..\:/Users/Niels/muupooviixee66-3/code/src/Fitbot/app/src/main/res/drawable/rectangle.xml" value="0.1665" />
<entry key="..\:/Users/Niels/muupooviixee66-3/code/src/Fitbot/app/src/main/res/layout/activity_end_screen.xml" value="0.165" />
<entry key="..\:/Users/Niels/muupooviixee66-3/code/src/Fitbot/app/src/main/res/layout/activity_endscreen.xml" value="0.1" />
<entry key="..\:/Users/Niels/muupooviixee66-3/code/src/Fitbot/app/src/main/res/layout/activity_fitness.xml" value="0.1234375" />
<entry key="..\:/Users/Niels/muupooviixee66-3/code/src/Fitbot/app/src/main/res/layout/activity_main.xml" value="0.1" />
<entry key="..\:/Users/Niels/muupooviixee66-3/code/src/Fitbot/app/src/main/res/layout/header.xml" value="0.1234375" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" value="0.25" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/drawable/darkred_button_gradient.xml" value="0.346" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/drawable/ic_baseline_home_48.xml" value="0.25" />

View File

@@ -34,6 +34,7 @@ dependencies {
implementation 'com.android.support.constraint:constraint-layout:2.0.4'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:support-v4:+'
implementation 'org.joml:joml:1.10.5'
implementation 'com.google.code.gson:gson:2.8.6'
testImplementation 'junit:junit:4.13.2'

View File

@@ -7,6 +7,12 @@
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"/>
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-feature android:name="android.hardware.bluetooth" android:required="true" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:allowBackup="true"
@@ -15,12 +21,16 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Fitbot" >
<activity
android:name=".EndScreenActivity"
android:exported="false" />
<activity
android:name=".ui.activities.FitnessActivity"
android:exported="true" />
<activity
android:name=".ui.activities.MainActivity"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

View File

@@ -0,0 +1,24 @@
package com.example.fitbot;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Button;
import com.example.fitbot.ui.activities.MainActivity;
public class EndScreenActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_end_screen);
Button homeButton = findViewById(R.id.homeButton);
homeButton.setOnClickListener(v -> {
Intent intent = new Intent(EndScreenActivity.this, MainActivity.class);
startActivity(intent);
finish();
});
}
}

View File

@@ -0,0 +1,139 @@
package com.example.fitbot.bluetooth;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCallback;
import android.bluetooth.BluetoothGattCharacteristic;
import android.bluetooth.BluetoothGattService;
import android.bluetooth.BluetoothProfile;
import android.bluetooth.le.BluetoothLeScanner;
import android.bluetooth.le.ScanCallback;
import android.bluetooth.le.ScanResult;
import android.content.Context;
import android.os.Handler;
import android.util.Log;
import java.nio.charset.StandardCharsets;
import java.util.UUID;
public class DeviceScanner {
private Context context;
private static final UUID CORRECT_CHARACTERISTIC_UUID = UUID.fromString("beb5483e-36e1-4688-b7f5-ea07361b26a8"); // ESP UUID characteristic
private BluetoothAdapter bluetoothAdapter;
private BluetoothLeScanner bluetoothLeScanner;
private boolean scanning;
private Handler handler = new Handler();
// Stops scanning after 10 seconds.
private static final long SCAN_PERIOD = 10000;
public DeviceScanner(Context context) {
this.context = context;
bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
bluetoothLeScanner = bluetoothAdapter.getBluetoothLeScanner();
}
public void scanLeDevice() {
if (!scanning) {
handler.postDelayed(new Runnable() {
@Override
public void run() {
scanning = false;
bluetoothLeScanner.stopScan(leScanCallback);
Log.i("DeviceScanner", "Stopped scanning after scan period");
}
}, SCAN_PERIOD);
scanning = true;
bluetoothLeScanner.startScan(leScanCallback);
Log.i("DeviceScanner", "Started scanning");
} else {
scanning = false;
bluetoothLeScanner.stopScan(leScanCallback);
Log.i("DeviceScanner", "Stopped scanning");
}
}
// Stops scanning for devices.
public void stopScan() {
if (scanning) {
scanning = false;
bluetoothLeScanner.stopScan(leScanCallback);
Log.i("DeviceScanner", "Stopped scanning");
}
}
// Device scan callback to find the ESP32
private ScanCallback leScanCallback =
new ScanCallback() {
@Override
public void onScanResult(int callbackType, ScanResult result) {
super.onScanResult(callbackType, result);
BluetoothDevice device = result.getDevice();
if (device.getName() != null && device.getName().equals("ESP32-Pepper")) {
Log.i("DeviceScanner", "Device found: " + device.getName() + " (" + device.getAddress() + ")");
connectToDevice(device);
}
};
};
// GATT callback to connect to the ESP32 and read the characteristic
private final BluetoothGattCallback gattCallback = new BluetoothGattCallback() {
@Override
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
if (newState == BluetoothProfile.STATE_CONNECTED) {
Log.i("DeviceScanner", "Connected to GATT server");
gatt.discoverServices();
} else if (newState == BluetoothProfile.STATE_DISCONNECTED) {
Log.i("DeviceScanner", "Disconnected from GATT server");
}
}
// Discover services and characteristics
@Override
public void onServicesDiscovered(BluetoothGatt gatt, int status) {
if (status == BluetoothGatt.GATT_SUCCESS) {
for (BluetoothGattService service : gatt.getServices()) {
for (BluetoothGattCharacteristic characteristic : service.getCharacteristics()) {
if (isCorrectCharacteristic(characteristic)) {
gatt.setCharacteristicNotification(characteristic, true);
gatt.readCharacteristic(characteristic);
}
}
}
}
}
// Read the characteristic
@Override
public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
if (status == BluetoothGatt.GATT_SUCCESS) {
Log.i("DeviceScanner", "Characteristic read: " + new String(characteristic.getValue(), StandardCharsets.UTF_8));
}
}
// Characteristic changed
@Override
public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) {
Log.i("DeviceScanner", "Characteristic changed: " + new String(characteristic.getValue(), StandardCharsets.UTF_8));
}
};
// Connect to the ESP32
public void connectToDevice(BluetoothDevice device) {
BluetoothGatt gatt = device.connectGatt(context, false, gattCallback);
}
// Check if the characteristic has the correct UUID
private boolean isCorrectCharacteristic(BluetoothGattCharacteristic characteristic) {
// Log the UUID of the characteristic
Log.i("DeviceScanner", String.valueOf(characteristic.getUuid()));
// Check if the characteristic has the correct UUID
if (characteristic.getUuid().equals(CORRECT_CHARACTERISTIC_UUID)) {
Log.i("DeviceScanner", "Correct characteristic found");
return true;
}
return false;
}
}

View File

@@ -2,8 +2,11 @@ package com.example.fitbot.ui.activities;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.bluetooth.BluetoothAdapter;
import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
@@ -11,8 +14,14 @@ import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.widget.Button;
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;
import com.example.fitbot.R;
import com.example.fitbot.bluetooth.DeviceScanner;
public class MainActivity extends AppCompatActivity {
@@ -22,12 +31,26 @@ public class MainActivity extends AppCompatActivity {
Toolbar toolbar;
Button startButton;
private DeviceScanner deviceScanner;
@SuppressLint("WrongViewCast")
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main );
// Check if we have the necessary permissions, if not, request them
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);
}
deviceScanner = new DeviceScanner(this);
deviceScanner.scanLeDevice();
setUpUi();
}
private void setUpUi() {
/*---Hooks---*/
drawerLayout = findViewById(R.id.drawer_layout);
navigationView = findViewById(R.id.nav_view);

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#F0E4E4" />
<corners android:radius="15dp" />
</shape>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/listview_background_shape">
<stroke android:width="2dp" android:color="#ff207d94" />
<padding android:left="2dp"
android:top="2dp"
android:right="2dp"
android:bottom="2dp" />
<corners android:radius="45dp" />
<solid android:color="#F0F0F0" />
</shape>

View File

@@ -0,0 +1,79 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/red"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".EndScreenActivity">
<View
android:id="@+id/myRectangleView"
android:layout_width="720dp"
android:layout_height="270dp"
android:layout_marginStart="320dp"
android:layout_marginTop="25dp"
android:layout_marginEnd="320dp"
android:layout_marginBottom="25dp"
android:background="@drawable/rectangle"
app:layout_constraintBottom_toTopOf="@+id/homeButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/homeButton"
style="@style/ButtonStyle"
android:layout_width="278dp"
android:layout_height="117dp"
android:layout_marginStart="501dp"
android:layout_marginTop="25dp"
android:layout_marginEnd="501dp"
android:layout_marginBottom="50dp"
android:text="Home"
app:layout_constraintBottom_toTopOf="@+id/continueButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/myRectangleView" />
<Button
android:id="@+id/continueButton"
style="@style/ButtonStyle"
android:layout_width="280dp"
android:layout_height="120dp"
android:layout_marginStart="500dp"
android:layout_marginTop="25dp"
android:layout_marginEnd="500dp"
android:layout_marginBottom="140dp"
android:text="Continue"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/homeButton" />
<TextView
android:id="@+id/gefeliciteerdText"
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_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/myRectangleView" />
<TextView
android:id="@+id/workoutText"
style="@style/TextStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="u heeft de work out voltooid"
app:layout_constraintBottom_toBottomOf="@+id/myRectangleView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/myRectangleView" />
</android.support.constraint.ConstraintLayout>

View File

@@ -9,4 +9,6 @@
<string name="start">Start</string>
<string name="help">Help</string>
<string name="todo">TODO</string>
<color name="red">#f22b1d</color>
</resources>

View File

@@ -5,5 +5,24 @@
<item name="android:statusBarColor">#00000000</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="ButtonStyle">
<item name="android:textSize">24sp</item>
<item name="android:textColor">#000000</item>
<item name="android:background">@drawable/button_background</item>
<item name= "android:textStyle">bold</item>
<item name="android:padding">16dp</item>
<item name="android:layout_margin">8dp</item>
</style>
<style name="TextStyle">
<item name="android:textSize">36sp</item>
<item name="android:textColor">#000000</item>
<item name= "android:textStyle">bold</item>
</style>
</resources>

View File

@@ -7,4 +7,7 @@
<item name="colorAccent">@color/teal_200</item>
<!-- Customize your theme here. -->
</style>
<!-- Style for general buttons -->
<!-- Add button styles here, if needed -->
</resources>

View File

@@ -0,0 +1,35 @@
# Creating Styles in android
Styles and themes on Android make it possible for you to separate the details of our app design from the UI structure and behavior, identical to stylesheets in web design. We will use this in our project to maintain a consistent style, so that we won't have to hardcode it to each element. A style is a set of attributes that determine the appearance of a single View. A style can define features like font color, font size, background color, and a lot more.
To make a style you want to navigate to res/values/styles.xml in this file you can make styles. Fot this example we will make a buttonstyle that we can implement across multiple buttons. To make a style you need to add this code to your style.xml file
```xml
<resources>
<style name="ButtonStyle">
</style>
</resources>
```
After that, you may add your styling items in the code.
```xml
<style name="ButtonStyle">
<item name="android:textSize">24sp</item>
<item name="android:textColor">#000000</item>
<item name="android:background">#F0F0F0</item>
<item name= "android:textStyle">bold</item>
<item name="android:padding">16dp</item>
<item name="android:layout_margin">8dp</item>
</style>
```
If you have done this, return to your activity.xml file and add the style element to your object. You will need to connect your style to the element.
```xml
<Button
android:id="@+id/homeButton"
style="@style/ButtonStyle"/>
```
You can now add this to multiple buttons to keep the same style and avoid copying and pasting the same feature

View File

@@ -15,8 +15,9 @@ public class MyClass {
Then in a class you can have Methods or Atributes where the actual code is.
```mermaid
flowchart
a[Access Modifiers] --> b[class] --> c[Class name]
flowchart LR
0[~] --> a([Access Modifiers]) --> b([class]) --> c([Class name])
0 --> b
```
## Constructor
@@ -29,8 +30,11 @@ A method is a block of code which only runs when it is called. You can pass data
Methods are build like this
```mermaid
flowchart
A[Access Modifiers] --> B[Method Modifier] --> C[Return Type] --> D[Method Name] --> E[Parameters] --> F[Method Body]
flowchart LR
0([~]) --> A([Access Modifiers]) --> B([Method Modifier]) --> C([Return Type]) --> D([Method Name]) --> E([Parameters]) --> F([Method Body])
A --> C
0 --> C
D --> F
```
@@ -106,4 +110,5 @@ public class MyClass {
## Sources
* https://www.w3schools.com/java/java_modifiers.asp
* https://www.w3schools.com/java/java_modifiers.asp explanation of modifiers
* https://en.wikipedia.org/wiki/Syntax_diagram For syntax diagram

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

View File

@@ -8,7 +8,7 @@
#define PIN_IMU_INT_2 D6
```
## What does the pcb do
The pcb on itself is a espd1mini with no sensors or battery. You need to manual solder a battery and sensor of your choice to the pcb.
The pcb on itself is a ESP8266 with no sensors or battery. You need to manual solder a battery and sensor of your choice to the pcb.
## Original usage
These pcb's where originally designed for virtual reality fullbody tracking. They are basicly movement trackers that can be used to track the movement of the body. We can also use this really well for our project.

View File

@@ -3,11 +3,11 @@
Which sensor are we gonna use for this project and why?
### What do we wanna measure?
### What do we want to measure?
We wanna measure the movement of the people doing our exercises. We want to know how many times they have done the exercise and how many times they have done it correctly.
### What sensor are we gonna use?
### What sensor are we going to use?
To measure these movements we are gonna use gyroscopes. With gyroscopes we can measure the rotation of the body. With some math we can also measure the speed of the rotation. So we know how fast the person is doing the exercise.
### Which gyroscopes are there?

View File

@@ -2,25 +2,34 @@
## Introduction
For this project we want to design an embedded system that can track a users position. We want to track their current position on the ground and see how they are shifting their weight. This system will be used to track their position to determine if a user is doing the exercises correctly.
For this project we want to design an embedded system that can track a users position. We want to track their current position on the ground. This system will be used to track their position to determine if a user is doing the exercises correctly.
## Objectives
- Design an embedded system that can track user position.
- Develop an algorithm to process the data from the Wii Fit Board and determine the user's position.
- Develop an algorithm to process the data from the sensor and determine the user's position.
- Sync the code to the current task for the user.
## Research and Analysis
### Choosing the Wii Fit Board
### Choosing the sensor
For this project we have chosen the Wii Fit Board as our primary sensor. The Wii Fit Board is a balance board that can measure a user's weight and center of balance. It is a low-cost sensor that is easy to interface with a microcontroller. The Wii Fit Board communicates over Bluetooth, which makes it easy to connect to a microcontroller with Bluetooth capabilities.
For this project we have chosen LDR's as our primary sensor. The LDR's will be placed on the ground in a board and the user will stand on top of the board. The LDR's will be used to track the user's position. The LDR's will be connected to the esp32s3 microcontroller and the data will be processed to determine the user's position.
We have chosen this sensor since it's one of the easiest and cheapest solutions to our problem. Other sensors like pressure sensors, accelerometers, and Wii Balance Board are either too expensive, not the most optimal for the task, or hard to integrate with other systems.
### Alternative Solutions
There are other sensors that can be used for position tracking, such as pressure sensors or accelerometers. However, these sensors are more expensive and may require additional processing to determine the user's position. The Wii Fit Board provides a simple and cost-effective solution for position tracking.
There are other sensors that can be used for position tracking, such as pressure sensors, Wii Balance Board or accelerometers. However, these sensors are either too expensive, not the most optimal for the task or hard to integrate with other systems.
Example of other sensors that can be used for position tracking:
Wii Balance Board:
- Description: The Wii Balance Board is a balance board that can measure a user's weight and center of balance.
- Pros: Low-cost.
- Cons: Very hard to intergrate with other systems.
- Cost: ~ 20 euros (https://www.amazon.nl/Nintendo-Wii-Balance-Board-Wii/dp/B0013E9HP6)
Pressure sensors:
- Description: Pressure sensors can be used to measure the force applied by the user on the ground. By measuring the pressure distribution, the user's position can be determined.
- Pros: High accuracy, can measure force applied by the user.
@@ -42,36 +51,31 @@ To be added
### Hardware
The hardware of the system will consist of the following components:
- Wii Fit Board: The primary sensor for position tracking.
- Pepper: The controller that will process the data from the Wii Fit Board.
- LDR: The sensor that will be used to track the user's position based on the light intensity.
- ESP32S3: The microcontroller that will process the data from the LDR.
- Pepper: The controller that will recieve the processed data from the ESP32S3 and will sync the data to the current task for the user.
#### Connection diagram
To be added
### Software
The software of the system will consist of the following:
- Wiiboard-simple: A library that will be used to transfer data from the Wii Fit Board to pepper.
- Position Tracking Algorithm: An algorithm that will process the sensor data and determine the user's position.
To be added
### Integration
The Wii Fit Board will be connected to Pepper using the Wiiboard-simple library. The library will be used to read the sensor data from the Wii Fit Board and transfer it to Pepper. The position tracking algorithm will process the sensor data and determine the user's position.
Challenge:
- Connecting to the wii fit board. It is not possible to connect directly to the Wii Fit Board, it is necessary to use a library that can interpret the data sent by the Wii Fit Board.
- The Wii Fit Balance Board sends data in a specific format. To interpret this data, it's necessary to understand the format and how to convert it to a usable format.
- The Wii Fit Balance Board uses Bluetooth 2.0 to communicate. Pepper uses Bluetooth 4.0 this means that there might be compatibility issues/latancy issues.
To be added
## Implementation
### Prototyping
To start the implementation of the system, we will create a prototype that will read the sensor data from the Wii Fit Board and send it to your computer. Once we have the data, we will develop the position tracking algorithm to determine the user's position. After that, the algorithm will be integrated with pepper.
To be added
### Testing and Validation
Tests:
- Test the prototype to ensure that it can read the sensor data from the Wii Fit Board.
- Test the position tracking algorithm to ensure that it can determine the user's position accurately.
- Test the integrated system to ensure that it can track the user's position in real-time.
To be added
## Conclusion
@@ -79,10 +83,7 @@ To be added
## References
[Wiiboard lib](https://code.google.com/archive/p/wiiboard-simple/wikis/Documentation.wiki)
https://advanti-lab.sb.dfki.de/?page_id=64
https://github.com/paulburton/fitscales
https://github.com/micromu/WiiRemoteJ
[Bluetooth Discovery](https://developer.android.com/develop/connectivity/bluetooth/find-bluetooth-devices)
## Appendices

View File

@@ -0,0 +1,62 @@
# SKill ontwikkelplan (Persoonlijk leiderschap)
## Inhoudsopgave
- [Inleiding](#inleiding)
- [Reflectie](#reflectie)
* [Blok 1](#blok-1)
* [Blok 2](#blok-2)
* [Blok 3](#blok-3)
- [Conclusie](#conclusie)
## Inleiding
In dit document zal ik een skill ontwikkelplan schrijven voor mijn persoonlijk leiderschap. Dit plan zal bestaan uit een reflectie van de afgelopen blokken, mijn sterke en zwakke punten en mijn smart leerdoelen voor de komende blokken.
## Reflectie
### Blok 1
In het eerste blok heb ik op veel verschillende vlakken geleerd wat mijn sterke en zwakke punten zijn. Groot en deels van de eerste periode in blok 1 heb ik gespendeerd aan mezelf leren kennen binnen de opleiding. Het werken binnen een nieuwe omgeving en met nieuwe mensen was voor mij goed te doen. Ik heb de leeromgeving snel leren kennen en heb geen moeite gehad met het communiceren met mijn medestudenten en docenten.
Als ik een aantal sterke en zwakke punten moet noemen van blok 1 dan zijn dat:
Sterke punten:
- Goed kunnen communiceren
- Snel kunnen schakelen tussen verschillende taken
- Snelle ontwikkeling in nieuwe omgevingen
- Documenteren van het werk
- Voorbereiden van presentaties
- Het beste uit mezelf halen
Zwakke punten:
- Meer gebruik maken van coding conventions
- Het noteren en verwerken van feedback
Ik heb in blok 1 enorm veel kunnen leren en heb echt het meeste uit mezelf kunnen halen. Ik ben erg tevreden met de resultaten die ik heb behaald en ben blij met de manier waarop ik mezelf heb kunnen ontwikkelen.
### Blok 2
Niet alles op mij nemen en meer vertrouwen hebben in anderen
### Blok 3
eerder aan de bel trekken wanneer het team niet goed functioneert
## Sterke en zwakke punten (Profesional skills)
## Smart leerdoelen
## Conclusie
## Profesional skills
https://www.hva.nl/binaries/content/assets/serviceplein-a-z/media-creatie-en-informatie/hbo-ict/competenties/professional-skills-hbo-ict-2023-2024.pdf
De vier profecional skills:
- Toekomstgericht organiseren
- Onderzoekend probleemoplossen
- Persoonlijk leiderschap
- Doelgericht interacteren

View File

@@ -214,17 +214,18 @@ Done
To do
-
- Wii balance board research
- Wii balance board relasation
Done
-
- Wii balance board research
**16 May**
To do
-
- Wii balance board realisation
Done
@@ -234,17 +235,30 @@ Done
To do
-
- Expert review
- Update from the last review
- Add database
- Add new OOP
- Add new infrastructure apllication acrhitecture diagram
- Add k4 and k5
- Wii balance board realisation
Done
-
- Expert review
- Update from the last review
- Add database
- Add new OOP
- Add new infrastructure apllication acrhitecture diagram
- Add k4 and k5
- Wii balance board realisation = LDR sensor
**18 May**
To do
-
- LDR sensor
- Ethics research
Done

View File

@@ -1,165 +1,234 @@
# Expert 2 Sprint 2
# User Testing
---
## Table of Contents
## K1: Je hebt object georiënteerde software gemaakt die samenwerkt met een database.
Voor het maken van object georiënteerde software die samenwerkt met een database maak ik gebruik van Java, NodeJs, phpMyAdmin en MariaDB.
### Database
## Introduction
De database voor FitBot (ons project) zal dienen als opslag van de oefeningen die wij willen gebruiken. De database zelf zal niet uitgebreid zijn sinds wij inprincipe geen data op te hoefen slaan. De uitdaging van de database zal liggen bij het verbinden van de app en de database.
This is a user test document for the occupation page. The occupation page allows users to view the occupation of the silent booth.
#### Apache en phpMyAdmin
Apache is een webserver die wordt gebruikt om websites te hosten. phpMyAdmin is een webapplicatie die wordt gebruikt om databases te beheren. Wij maken gebruik van Apache en phpMyAdmin om de database visueel te kunnen beheren. Apache dient als de server waar phpMyAdmin op draait, deze configuratie dient alleen voor het gemak van ons team.
##### MariaDB
MariaDB is een open-source database die vrij gemakelijk is om op te zetten. MariaDB dient als onze database om de oefeningen in op te slaan.
##### NodeJs
NodeJs wordt gebruikt om server-side scripting te doen. Wij maken gebruik van NodeJs om de app te verbinden met de database en om de oefeningen op te halen.
NodeJs is geinstalleerd op de Pi maar moet nog wel verder worden opgezet.
#### ERD
Een ERD (Entity Relationship Diagram) is een diagram dat de relaties tussen de entiteiten in een database weergeeft.
Meer informatie over de ERD is te vinden in de [ERD](../../../documentation/database/ERD.md) documentatie.
#### EERD
Een EERD (Entity Enhanced Relationship Diagram) is een diagram dat de relaties tussen de entiteiten in een database weergeeft. Het verschil tussen een ERD en een EERD is dat een EERD meer informatie bevat over de entiteiten en de relaties tussen de entiteiten zoals primary keys, foreign keys, enz.
Meer informatie over de ERD is te vinden in de [EERD](../../../documentation/database/EERD.md) documentatie.
### OOP
Object Oriented Programming is een programmeermethode dat gebruik maakt van objecten en classes. Het doel van OOP is om de code beter te structureren en te hergebruiken. Omdat wij gebruik maken van java voor het maken van de software, is het makkelijk om gebruik te maken van OOP. Java is een object georiënteerde programmeertaal en maakt het makkelijk om gebruik te maken van OOP sinds het een van de belangrijkste concepten is van Java.
#### Inheritance
Inheritance is een princiepe waarbij een nieuwe class wordt gemaakt met behulp van eigenschappen van een bestaande class. De nieuwe class wordt afgeleid van de bestaande class.
Voorbeeld: Een olifant is een dier. Een olifant heeft alle eigenschappen van een dier, zoals ademhalen, eten, slapen, enz. Een olifant heeft ook enkele specifieke eigenschappen, zoals grootte, gewicht, slurf, enz.
Use case:
```java
public class MainActivity extends RobotActivity implements RobotLifecycleCallbacks {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Register the RobotLifecycleCallbacks to this Activity.
QiSDK.register(this, this);
}
@Override
protected void onDestroy() {
// Unregister the RobotLifecycleCallbacks for this Activity.
QiSDK.unregister(this, this);
super.onDestroy();
}
@Override
public void onRobotFocusGained(QiContext qiContext) {
// The robot focus is gained.
}
@Override
public void onRobotFocusLost() {
// The robot focus is lost.
}
@Override
public void onRobotFocusRefused(String reason) {
// The robot focus is refused.
}
}
```
De MainActivity class erft van RobotActivity, dit zorgt ervoor dat MainActivity properties en methods kan gebruiken van RobotActivity.
#### Abstraction
Abstraction is een princiepe om de complexiteit van een object te verbergen en alleen de nodige kenmerken weer te geven.
Voorbeeld: Een auto bestaat uit verschillende onderdelen, zoals motor, versnellingsbak, wielen, enz. Maar we hoeven niet te weten hoe deze onderdelen werken om een auto te besturen. We moeten alleen weten hoe we de auto moeten besturen, zoals hoe we gas moeten geven, remmen, sturen, enz.
Use case:
```java
@Override
protected void onCreate (Bundle savedInstanceState) {
setUpUi();
}
private void setUpUi() {
/*---Hooks---*/
drawerLayout = findViewById(R.id.drawer_layout);
navigationView = findViewById(R.id.nav_view);
/*---Navigation Drawer Menu---*/
navigationView.bringToFront();
ActionBarDrawerToggle toggle=new
ActionBarDrawerToggle(this,drawerLayout,toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawerLayout.addDrawerListener(toggle);
toggle.syncState();
}
```
In de method `onCreate` wordt de method `setUpUi` aangeroepen. De gebruiker hoeft niet te weten hoe de method `setUpUi` werkt, maar kan deze gewoon gebruiken.
#### Encapsulation
Encapsulation is een princiepe om de interne gegevens van een object te verbergen en alleen toegang te geven via methods.
Voorbeeld: Een bank heeft verschillende methods om geld te storten, geld op te nemen, saldo te controleren, enz. We kunnen niet rechtstreeks toegang krijgen tot de interne gegevens van de bank, zoals de balans, de rekeningnummers, enz. We moeten de methods van de bank gebruiken om deze gegevens te krijgen.
Use case:
```java
To be added
```
Op dit moment is er nog geen gebruik gemaakt van encapsulation.
#### Polymorphism
Polymorfism is een princiepe waarmee een class verschillende vormen kan hebben. Het kan worden bereikt door methods te hebben met dezelfde naam, maar met verschillende parameters.
Voorbeeld: Een dier kan verschillende geluiden maken, zoals een hond kan blaffen, een kat kan miauwen, enz. Maar we kunnen een algemene method maken die `makeSound` heet en deze method in de dierclass implementeren. De hondclass kan deze method overschrijven en blaffen implementeren, en de katclass kan deze method overschrijven en miauwen implementeren.
Use case:
```java
To be added
```
Op dit moment is er nog geen gebruik gemaakt van polymorphism.
---
## ISO
## K2: Je hebt de wensen en behoeften van gebruikers verwerkt in een goed doordacht prototype.
For testing user experience, the ISO (International Standard Organization) definition of quality in use is used.
De wensen en behoeften van de gebruikers zijn op dit moment nog niet verwerkt in een prototype. Dit is omdat er nog niet genoeg informatie hebben over de wensen en behoeften van de gebruikers. In sprint 2 zal er een prototype worden gemaakt waarin de wensen en behoeften van de gebruikers zijn verwerkt.
“Quality in use is the degree to which a product or system can be used by specific users to meet their needs to achieve specific goals with effectiveness, efficiency, freedom from risk and satisfaction in specific contexts of use.”
De manier waarop ik de wensen en behoeften van de gebruikers wil gaan verwerken in het prototype is door middel van Test/Learning cards. Dit is een manier om de gebruikerservaring te testen en te verbeteren.
---
### Effectiveness
### ISO
#### Test Card
Voor het testen van de gebruikerservaring wordt de ISO (International Standard Organization) definitie van kwaliteit in gebruik gebruikt.
Hypothesis: I think the page is very effective because it is easy to use and the user can easily find the information they are looking for.
Test: Ask the user to find the last use of the a silent booth.
Metrics: How long does it take for the user to find the information?
Criteria: The user should be able to find the information within 10 seconds.
“Qualiteit in gebruik is de mate waarin een product of systeem door specifieke gebruikers kan worden gebruikt om aan hun behoeften te voldoen om specifieke doelen te bereiken met effectiviteit, efficiëntie, vrijheid van risico en tevredenheid in specifieke gebruiksomstandigheden.”
#### Results
#### Effectiviteit
Harrald: The user was able to find the information within 10 seconds.
Olivier: The user was able to find the information within 10 seconds.
Sietse: The user was able to find the information within 10 seconds.
Dano: The user was able to find the information within 10 seconds.
Bram: The user was able to find the information within 10 seconds.
Effectiviteit is de mate waarin gebruikers specifieke doelen kunnen bereiken met nauwkeurigheid en volledigheid.
#### Learning Card
##### Test Card
Hypothesis: I think the page is very effective because it is easy to use and the user can easily find the information they are looking for.
Observation: The user was able to find the information within 10 seconds.
Learning point & insight: The page is effective.
Advice: None
In de test card wordt de test beschreven die wordt uitgevoerd. De test card bestaat uit de volgende onderdelen:
Hypothese:
Test:
Meetmethode:
Criteria:
##### Resulaat
In `Resultaat` worden de resultaten van de test beschreven. De resultaten worden beschreven aan de hand van de hypothese, test, meetmethode en criteria.
##### Learning Card
In de learning card wordt beschreven wat er is geleerd van de test. De learning card bestaat uit de volgende onderdelen:
Hypothese:
Observatie:
Leerpunt en inzicht:
Advies:
---
### Efficiency
#### Test Card
Hypothesis: I think the efficiency of the page can be improved beacuse there is a lot of text on the page.
Test: Ask the user to find a cretain time and day on the heatmap of the silent booth.
Metrics: How long does it take for the user to understand the heatmap? How many clicks does the user need to understand the heatmap?
Criteria: The user should be able to understand the heatmap within 30 seconds and with a maximum of 3 clicks.
#### Results
Harrald: The user was able to understand the heatmap within 30 seconds and 3 clicks.
Olivier: The user was able to understand the heatmap within 30 seconds and 3 clicks.
Sietse: The user was not able to understand the heatmap within 30 seconds and 3 clicks.
Dano: The user was able to understand the heatmap within 30 seconds and 3 clicks.
Bram: The user was not able to understand the heatmap within 30 seconds and 3 clicks.
#### Learning Card
Hypothesis: I think the efficiency of the page can be improved beacuse there is a lot of text on the page.
Observation: Some users could not find the history. Most user found the legenda confusing.
Learning point & insight: Imrpove the legenda and make the history more visible.
Advice: Make the history a button and make the legenda more clear. Less text should be needed to understand the heatmap.
De effectiviteit en tevredenheid worden op gelijke manieren getest. Zodra de test is uitgevoerd en de resultaten zijn geanalyseerd, wordt er een learning card gemaakt. In de learning card wordt beschreven wat er is geleerd van de test en wat er kan worden verbeterd. Na alle resultaten te hebben geanalyseerd, wordt er een prototype gemaakt waarin de wensen en behoeften van de gebruikers zijn verwerkt.
---
### Satisfaction
## K3: Je hebt een infrastructuur ontworpen en gebouwd volgens zelf-gedefinieerde vereisten.
#### Test Card
De infrastructuur voor FitBot (ons project) bestaat uit een database, een server en een app. De database wordt gebruikt om de oefeningen in op te slaan, de server wordt gebruikt om de app te verbinden met de database en de app wordt gebruikt om de oefeningen op te halen.
Hypothesis: I think the satisfaction of the page can be improved because the page is not very attractive.
Test: Ask the user to give their opinion on the page (this will be done in a form).
Metrics: What is the user's opinion on the page?
Criteria: The user should give a opinion on the page.
### Diagrams
#### Participants
De infrastructuur van FitBot is weergegeven in de volgende diagrammen:
- Harrald
- Olivier
- Sietse
- Dano
- Bram
Architecture diagram
#### Questions and Results
![Architecture diagram](../../../documentation/diagrams/assets/appDiagram.png)
1. **What is your first impression of the page?**
Architecture diagram v2
Harrald: Duidelijk en overzichtelijk.
![Architecture diagram](../../../documentation/diagrams/assets/appDiagramV2.png)
Olivier: Simpel.
Deployment diagram
Sietse: Ziet er prima uit, goed overzichtelijk.
![Deployment diagram](../../../documentation/diagrams/assets/appDiagramV3.png)
Dano: Ziet er strak uit, minimalisties design en duidelijk waar het over ging.
## K4: Je ontwerpt een embedded systeem op basis van gegeven hardware.
Bram: Eerste pagina was relatief duidelijk, alleen de history pagina was ietwat lastig te overzien en te veel gevuld met tekst met uitleg in plaats van voorbeelden, verder goed uitgewerkt.
Voor het embed systeem van FibBot is de volgende research gedaan om de positie van een gebruiker te kunnen tracken:
2. **Is the information on the page clear?**
Harrald: Prima.
Olivier: Ja, last update zou last use moeten zijn.
Sietse: Ja.
Dano: Ja, er staat kort en bondig waar het over gaat.
Bram: Na wat moeite met het overzicht was het goed beschikbaar.
3. **Is the history easy to find?**
Harrald: Ja.
Olivier: Ja heel duidelijk.
Sietse: Ja behalve dat je niet super snel ziet dat het een knop is.
Dano: Ja, fijn dat er een feedback kwam toen de muis er overheen ging
Bram: Jazeker, alleen inplaats van een knop er voor zou ik op het vakje zelf klikken in plaats van het tekstje.
4. **Is the history easy to understand?**
Harrald: Even wennen, uitlijning kan duidelijker en tijden niet schuin.
Olivier: Ja alleen wel veel kleur door elkaar.
Sietse: Na een uitleg wel, maar wat de waardes zelf betekenen is een beetje onduidelijk.
Dano: Het kan beter, beetje onduidelijk waar de tijd bij hoordt.
Bram: Net iets te lastig, persoonlijk.
5. **Do you miss any features on the page?**
Harrald: Nee.
Olivier: Nee.
Sietse: Het is moeilijk te zien wat booth 1 of 2 is.
Dano: Nee.
Bram: Niet dat ik zou weten.
#### Learning Card
Hypothesis: I think the satisfaction of the page can be improved because the page is not very attractive.
Observation: All users gave a positive opinion on the page.
Learning point & insight: The page is attractive because it is clear and easy to use. The heatmap can be improved.
Advice: Improve the heatmap and make the history a button.
[Wii Board](../../../documentation/research-questions/position-tracking-research.md)
---
## Conclusion
## K5: Je kan software schrijven voor een intelligente controller voorzien van actuatoren en sensoren.
The occupation page is effective, efficient and satisfying. The page is easy to use and the user can easily find the information they are looking for. The efficiency of the page can be improved by making the legenda more clear and the history more visible. The satisfaction of the page can be improved by improving the heatmap and making the history a button.
Voor het schrijven van software voor een intelligente controller voorzien van actuatoren en sensoren ben ik begonnen met het schrijven van software voor het Wii Balance Board. Het Wii Balance Board is een controller die wordt gebruikt om de positie van een gebruiker te tracken. De software die ik aan het schrijven ben verbind de android app met een Wii Balance Board en trackt de positie van de gebruiker.
Op dit moment kan het device nog niet worden verbonden met de app. Het is mogelijk om het board te discoveren maar de verbinding kan nog niet gemaakt worden.

View File

@@ -6,91 +6,51 @@
- [Probleemstelling](#probleemstelling)
- [Onderzoeksvraag](#onderzoeksvraag)
* [Deelvragen](#deelvragen)
+ [Vraag 1](#vraag-1)
+ [Vraag 2](#vraag-2)
+ [Vraag 3](#vraag-3)
+ [Vraag 4](#vraag-4)
+ [Hoe ervaren ouderen het om geholpen te worden door robots bij fitness?](#hoe-ervaren-ouderen-het-om-geholpen-te-worden-door-robots-bij-fitness)
+ [Wat kunnen nadelen zijn van het inzetten van robots in de ouderenzorg wat fitness betreft?](#wat-kunnen-nadelen-zijn-van-het-inzetten-van-robots-in-de-ouderenzorg-wat-fitness-betreft)
+ [Wat kunnen voordelen zijn van het inzetten van robots in de ouderenzorg wat fitness betreft?](#wat-kunnen-voordelen-zijn-van-het-inzetten-van-robots-in-de-ouderenzorg-wat-fitness-betreft)
+ [Wat is het limiet van de inzet van robots in de zorg voor ouderen wat fitness betreft?](#wat-is-het-limiet-van-de-inzet-van-robots-in-de-zorg-voor-ouderen-wat-fitness-betreft)
- [Conclusie](#conclusie)
- [Bronnen](#bronnen)
## Inleiding
In dit onderzoek wordt er gekeken naar de ethische kant van het inzetten van robots in de ouderenzorg om ouderen te helpen met fitness. Hierbij wordt er gekeken naar de ervaing van ouderen, de voor en nadelen van het inzetten van robots en het limiet van de inzet van robots in de zorg voor ouderen wat fitness betreft.
Ouderzorg is in deze tijd een belangrijk onderwerp. Door de vergrijzing van de bevolking neemt de vraag naar zorg toe. Tegelijkertijd is er een tekort aan zorgpersoneel. De zorg die ouderen nodig hebben kan variëren van lichte zorg tot zware zorg. Een manier om ouderen te helpen met zorg is het inzetten van robots. Robots kunnen ouderen helpen met verschillende taken, zoals bijvoorbeeld helpen met fitness. De hulp bij het fitnessen kan ervoor zorgen dat ouderen langer fit blijven en langer zelfstandig kunnen blijven wonen.
## Probleemstelling
Het inzetten van robots in de ouderenzorg om ouderen te helpen met fitness kan een oplossing zijn voor het tekort aan personeel in de zorg. Echter kan het ook een negatieve impact hebben op de ouderen. In dit onderzoek wordt er gekeken naar de ethische kant van het inzetten van robots in de ouderenzorg om ouderen te helpen met fitness.
Het inzetten van robots in de ouderenzorg kan echter ook ethische vragen oproepen. Hoe ervaren ouderen het om geholpen te worden door robots? Wat zijn de nadelen van het inzetten van robots in de ouderenzorg? Wat zijn de voordelen? En wat is het limiet van de inzet van robots in de zorg voor ouderen? In dit onderzoek wordt gekeken naar de ethische aspecten van het inzetten van robots in de ouderenzorg om ouderen te helpen met fitness.
## Onderzoeksvraag
Hoofdvraag: In hoeverre is het etisch verantwoord om robots in te zetten in de ouderenzorg om ouderen te helpen met fitness?
### Hoofdvraag
In hoeverre is het etisch verantwoord om robots in te zetten in de ouderenzorg om ouderen te helpen met fitness?
### Deelvragen
Deelvragen:
1. Hoe ervaren ouderen het om geholpen te worden door robots bij fitness?
2. Wat kunnen nadelen zijn van het inzetten van robots in de ouderenzorg wat fitness betreft?
3. Wat kunnen voordelen zijn van het inzetten van robots in de ouderenzorg wat fitness betreft?
4. Wat is het limiet van de inzet van robots in de zorg voor ouderen wat fitness betreft?
1. Hoe ervaren ouderen het om geholpen te worden door robots bij fitness?
2. Wat kunnen nadelen zijn van het inzetten van robots in de ouderenzorg wat fitness betreft?
3. Wat kunnen voordelen zijn van het inzetten van robots in de ouderenzorg wat fitness betreft?
4. Wat is het limiet van de inzet van robots in de zorg voor ouderen wat fitness betreft?
#### Vraag 1
Hoe ervaren ouderen het om geholpen te worden door robots bij fitness?
#### Hoe ervaren ouderen het om geholpen te worden door robots bij fitness?
De ervaring van ouderen die geholpen worden door robots bij fitness is een belanrijk aspect van het inzetten bij robots in de ouderenzorg wat fitness betreft. Het is belangrijk dat ouderen zich op hun gemak voelen bij het gebruik van robots. Uit onderzoek blijkt dat ouderen in het algemeen positief staan tegenover het gebruik van robots in de ouderenzorg. `The interviews provide a number of conclusions, such as: the elderly had positive attitudes toward humanoid robots and electronic devices whose shapes resembled things they knew (humans, animals, smartphones, healthcare equipment)` en `The 16 older adults in our study were generally accepting of robots for partner dance-based exercise, tending to perceive it as useful, easy to use, and enjoyable. Notably, participants perceived the robot as being easier to use after dancing with it. These results suggest that older adults are open to partner dancing with a robot to improve their health.`.
Niet alle ouderen zijn even positief over het gebruik van robots in de ouderenzorg. Sommige ouderen vinden het gebruik van robots in de ouderenzorg niet prettig. `However, some participants were not positive about the robot in terms of exercise and health, finding the activity to be too easy, boring, or lacking in physical exertion.`. Hier uit blijkt wel dat het mogelijk zou kunnen zijn voor deze ouderen om gebruik te maken van robots in de ouderenzorg, maar dat er nog wel verbeteringen nodig zijn. Een aantal verbeteringen die genoemd worden zijn `Participants suggested that a robot could actively encourage them to exercise and teach them dances.` en `Future robots for partner dance-based exercise could potentially be more engaging by increasing the complexity and variety of dances.`. Ook wordt er aangegeven dat er voorkeur is naar een robot die `voice-activated, a motion-activated and touch responsive robot with nice voices/sounds.`.
Bronnen:
Designing Robots for Elderly from the Perspective of Potential End-Users: A Sociological Approach (Vraag 1):
https://lib.hva.nl/discovery/fulldisplay?docid=cdi_pubmedcentral_primary_oai_pubmedcentral_nih_gov_8948980&context=PC&vid=31UKB_UAM2_INST:HVA&lang=nl&search_scope=DN_and_CI_and_EXT&adaptor=Primo%20Central&tab=Everything&query=any,contains,fitness%20robots%20elderly&offset=0
Older adults' acceptance of a robot for partner dance-based exercise (Vraag 1):
https://lib.hva.nl/discovery/fulldisplay?docid=cdi_gale_healthsolutions_A510237592&context=PC&vid=31UKB_UAM2_INST:HVA&lang=nl&search_scope=DN_and_CI_and_EXT&adaptor=Primo%20Central&tab=Everything&query=any,contains,fitness%20robots%20elderly&offset=0
#### Vraag 2
Wat kunnen nadelen zijn van het inzetten van robots in de ouderenzorg wat fitness betreft?
#### Wat kunnen nadelen zijn van het inzetten van robots in de ouderenzorg wat fitness betreft?
Bronnen:
A Socially Assistive Robot for Elderly Exercise Promotion (Vraag 2-3):
https://lib.hva.nl/discovery/fulldisplay?docid=cdi_proquest_journals_2455606148&context=PC&vid=31UKB_UAM2_INST:HVA&lang=nl&search_scope=DN_and_CI_and_EXT&adaptor=Primo%20Central&tab=Everything&query=any,contains,fitness%20robots%20elderly&offset=0
#### Vraag 3
Wat kunnen voordelen zijn van het inzetten van robots in de ouderenzorg wat fitness betreft?
#### Wat kunnen voordelen zijn van het inzetten van robots in de ouderenzorg wat fitness betreft?
Bronnen:
A Socially Assistive Robot for Elderly Exercise Promotion (Vraag 2-3):
https://lib.hva.nl/discovery/fulldisplay?docid=cdi_proquest_journals_2455606148&context=PC&vid=31UKB_UAM2_INST:HVA&lang=nl&search_scope=DN_and_CI_and_EXT&adaptor=Primo%20Central&tab=Everything&query=any,contains,fitness%20robots%20elderly&offset=0
#### Vraag 4
Wat is het limiet van de inzet van robots in de zorg voor ouderen wat fitness betreft?
#### Wat is het limiet van de inzet van robots in de zorg voor ouderen wat fitness betreft?
Bronnen:
Robot-assisted movement training for the stroke-impaired arm: Does it matter what the robot does (Vraag 4)?
https://lib.hva.nl/discovery/fulldisplay?docid=cdi_proquest_miscellaneous_68177256&context=PC&vid=31UKB_UAM2_INST:HVA&lang=nl&search_scope=DN_and_CI_and_EXT&adaptor=Primo%20Central&tab=Everything&query=any,contains,limit%20robot%20fitness&offset=0
The Image Processing Using Soft Robot Technology in Fitness Motion Detection under the Internet of Things (Vraag 4):
https://lib.hva.nl/discovery/fulldisplay?docid=cdi_proquest_journals_2734392799&context=PC&vid=31UKB_UAM2_INST:HVA&lang=nl
## Conclusie

View File

@@ -0,0 +1,18 @@
# Hoofd en deelvragen met bronnen
## Hoofdvraag
Hoe beïnvloedt de opkomst van robots in de ouderenzorg de kwaliteit van leven en menselijke interactie van ouderen
## Deelvragen
1. Wat zijn de voor en nadelen van robots in de ouderenzorg?
2. Wat zijn de verschillen in communicatie tussen mens en robot?
3. Hoe voelen ouderen zich bij de vervanging van menselijke communicatie met robots?
## Bronnen
* [Socially Assistive Robots in Elderly Care: A Systematic Review into Effects and Effectiveness](https://www.sciencedirect.com/science/article/abs/pii/S1525861010003476)
* [Socially Assistive Robots in Elderly Care: A Mixed-Method Systematic Literature Review](https://www.tandfonline.com/doi/abs/10.1080/10447318.2013.873278)
* [Scoping review on the use of socially assistive robot technology in elderly care](https://bmjopen.bmj.com/content/8/2/e018815.abstract)
* [A critique of robotics in health care](https://link.springer.com/article/10.1007/s00146-021-01206-z)
* [The use of care robots in aged care: A systematic review of argument-based ethics literature](https://www.sciencedirect.com/science/article/pii/S0167494317302790)
* [Significant challenges when introducing care robots in Swedish elder care](https://www.tandfonline.com/doi/abs/10.1080/17483107.2020.1773549)
* [Ethical challenges in the use of social service robots for elderly people](https://link.springer.com/article/10.1007/s00391-016-1066-5)