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