From d9f568472951ecce4ba8babada50121d9533e395 Mon Sep 17 00:00:00 2001
From: Pascal Koch <pascal.koch@stud.h-da.de>
Date: Wed, 18 Dec 2024 14:07:23 +0100
Subject: [PATCH] AUTOOOO!!!

---
 .vscode/launch.json |  2 +-
 src/main.c          | 18 ++++++++++++------
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/.vscode/launch.json b/.vscode/launch.json
index b1891bdc..6ff7a775 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -9,7 +9,7 @@
             "cwd": "${workspaceFolder}",
             "MIMode": "gdb",
             "miDebuggerPath": "gdb-multiarch",
-            "miDebuggerServerAddress": "localhost:3333",
+            "miDebuggerServerAddress": "10.42.0.1:3333",
             "preLaunchTask": "build",
             "internalConsoleOptions": "neverOpen",
             "postRemoteConnectCommands": [
diff --git a/src/main.c b/src/main.c
index a20d00be..0e6c2cd9 100644
--- a/src/main.c
+++ b/src/main.c
@@ -3,6 +3,7 @@
 #include <stdio.h>
 #include <unistd.h>
 #include <hardware/pwm.h>
+#include <math.h>
 
 double rollingperc[4] = {0, 0, 0, 0};
 int pos = 0;
@@ -155,14 +156,14 @@ void callback(uint gpio, uint32_t events)
         {
             distance = 0;
         }
-        if (distance > 20)
+        if (distance > 40)
         {
-            distance = 20;
+            distance = 40;
         }
 
-        distance = 20 - distance;
+        distance = 40 - distance;
 
-        volatile int percentage = (distance / 10) * 100;
+        volatile int percentage = (distance / 20) * 100;
 
         rollingperc[pos] = percentage;
         pos++;
@@ -173,8 +174,13 @@ void callback(uint gpio, uint32_t events)
 
         int avg = (rollingperc[0] + rollingperc[1] + rollingperc[2] + rollingperc[3]) / 4;
         // if zwischen 90, 110, stop
-        double speed = 0.9 * ((avg - 100) * (avg - 100)) + 2000;
-        speed = speed + ((1.8 * avg) - 180);
+
+        double speed = 0.9 * ((avg - 100) * (avg - 100)) + 1500; // quadratisch
+        speed = speed + 10 * ((1.8 * avg) - 180);
+
+        // double speed = abs(70 * avg) + 2000; // linear
+        // speed += 70;
+
         set_speed(speed);
         if (avg > 90 && avg < 110)
         {
-- 
GitLab