poprawki - servo palca wskazującego jest uszkodzone

This commit is contained in:
2026-05-10 11:53:34 +02:00
parent 0bcc716d3b
commit 2f1377a896
2 changed files with 34 additions and 37 deletions

View File

@@ -10,7 +10,6 @@
"includePath": [
"/Users/lklich/Programowanie/robotic_hand/include",
"/Users/lklich/Programowanie/robotic_hand/src",
"/Users/lklich/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src",
"/Users/lklich/Programowanie/robotic_hand/.pio/libdeps/esp32-c3-devkitm-1/ESP32Servo/src",
"/Users/lklich/Programowanie/robotic_hand/.pio/libdeps/esp32-c3-devkitm-1/Adafruit PWM Servo Driver Library",
"/Users/lklich/Programowanie/robotic_hand/.pio/libdeps/esp32-c3-devkitm-1/Adafruit BusIO",
@@ -235,6 +234,7 @@
"/Users/lklich/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src",
"/Users/lklich/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src",
"/Users/lklich/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src",
"/Users/lklich/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src",
"/Users/lklich/.platformio/packages/framework-arduinoespressif32/libraries/USB/src",
"/Users/lklich/.platformio/packages/framework-arduinoespressif32/libraries/Update/src",
"/Users/lklich/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src",
@@ -248,7 +248,6 @@
"path": [
"/Users/lklich/Programowanie/robotic_hand/include",
"/Users/lklich/Programowanie/robotic_hand/src",
"/Users/lklich/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src",
"/Users/lklich/Programowanie/robotic_hand/.pio/libdeps/esp32-c3-devkitm-1/ESP32Servo/src",
"/Users/lklich/Programowanie/robotic_hand/.pio/libdeps/esp32-c3-devkitm-1/Adafruit PWM Servo Driver Library",
"/Users/lklich/Programowanie/robotic_hand/.pio/libdeps/esp32-c3-devkitm-1/Adafruit BusIO",
@@ -473,6 +472,7 @@
"/Users/lklich/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src",
"/Users/lklich/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src",
"/Users/lklich/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src",
"/Users/lklich/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src",
"/Users/lklich/.platformio/packages/framework-arduinoespressif32/libraries/USB/src",
"/Users/lklich/.platformio/packages/framework-arduinoespressif32/libraries/Update/src",
"/Users/lklich/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src",

View File

@@ -9,10 +9,11 @@
#include <Adafruit_PWMServoDriver.h>
#define WDT_TIMEOUT 60 // Czas watchdoga do restartu
// Konfiguracja serw (to trzeba skalibrować)
#define SERVOMIN 150 // Minimalna długość impulsu (0 stopni)
#define SERVOMAX 550 // Maksymalna długość impulsu (180 stopni)
#define NUM_FINGERS 5
#define SERVOMIN 150 // Minimalna długość impulsu (0 stopni)
#define SERVOMAX 550 // Maksymalna długość impulsu (180 stopni)
#define NUM_FINGERS 5 // Ilosc palcow
#define SPEED 3 // opoźnienie szybkości
#define PAUSE 200 // przerwa pomiędzy gestami
// Aktualne pozycje serw (do płynnych przejść)
int currentPositions[NUM_FINGERS] = {0, 0, 0, 0, 0};
@@ -28,29 +29,24 @@ struct Gesture {
// --- DEFINICJA GESTÓW ---
// Kolejność: Kciuk, Wskazujący, Środkowy, Serdeczny, Mały
Gesture gestureList[] = {
{"OTWARTA", {0, 0, 0, 0, 0}}, // Wszystkie wyprostowane
{"PIESC", {170, 170, 170, 170, 170}},// Wszystkie zgięte
{"V-SIGN", {170, 0, 0, 170, 170}}, // Pokój / Zwycięstwo
{"OK", {150, 150, 0, 0, 0}}, // Kciuk i wskazujący złączone
{"PALEC", {170, 0, 170, 170, 170}}, // Wskazywanie palcem
{"ZAMKNIETA", {0, 0, 0, 0, 0}}, // Wszystkie zgięte
{"OTWARTA", {170, 80, 120, 110, 140}}, // Wszystkie wyprostowane
{"ZAMKNIETA", {0, 0, 0, 0, 0}}, // Wszystkie zgięte
{"OTWARTA", {170, 80, 120, 110, 140}}, // Wszystkie wyprostowane
{"ZAMKNIETA", {0, 0, 0, 0, 0}}, // Wszystkie zgięte
{"OTWARTA", {170, 80, 120, 110, 140}}, // Wszystkie wyprostowane
{"ZAMKNIETA", {0, 0, 0, 0, 0}}, // Wszystkie zgięte
{"OTWARTA", {170, 80, 120, 110, 140}}, // Wszystkie wyprostowane
{"ZAMKNIETA", {0, 0, 0, 0, 0}}, // Wszystkie zgięte
// --- NOWE GESTY ---
{"KCIUK_GORA", {0, 170, 170, 170, 170}}, // Lajk (Kciuk wyprostowany, reszta pięść)
{"ROCK_ON", {0, 0, 170, 170, 0}}, // "Rogi" (Kciuk, wskazujący i mały wyprostowane)
{"SPIDERMAN", {0, 0, 170, 170, 0}}, // Podobnie jak rock, ale kciuk szeroko
{"SHAKA", {0, 170, 170, 170, 0}}, // Gest surferów (Kciuk i mały wyprostowane)
{"PUNKT", {170, 0, 0, 170, 170}}, // Wskazujący i środkowy (jak pistolet)
// --- LICZBY ---
{"LICZBA_1", {170, 0, 170, 170, 170}}, // Tylko wskazujący
{"LICZBA_2", {170, 0, 0, 170, 170}}, // Wskazujący i środkowy
{"LICZBA_3", {170, 0, 0, 0, 170}}, // Trzy środkowe palce
{"LICZBA_4", {170, 0, 0, 0, 0}}, // Bez kciuka
// --- INNE ---
{"CZEŚĆ", {40, 40, 40, 40, 40}}, // Lekko ugięte (naturalna dłoń)
{"CHWYT_PRECYZ", {120, 120, 170, 170, 170}} // Pęseta (Kciuk i wskazujący do połowy)
// // --- LICZBY ---
{"JEDEN", {0, 80, 0, 0, 0}},
{"DWA", {0, 80, 120, 0, 0}}, // Wszystkie wyprostowane
{"TRZY", {0, 80, 120, 110, 0}}, // Wszystkie wyprostowane
{"CZTERY", {0, 80, 120, 110, 140}}, // Wszystkie wyprostowane
{"PIEC", {170, 80, 120, 110, 140}}, // Wszystkie wyprostowane
};
int totalGestures = sizeof(gestureList) / sizeof(Gesture);
//////// PROTOTYPY /////////////////
@@ -94,12 +90,15 @@ void setup() {
ESP_LOGI(TAG_MAIN, "Added main task to Watchdog");
}
// Ustawienie pozycji startowej (otwarta dłoń)
for(int i=0; i<NUM_FINGERS; i++) {
currentPositions[i] = 0;
pwm.setPWM(i, 0, angleToPWM(0));
// Na początek 90 stopni zeby nie uderzalo przy wlaczeniu
currentPositions[i] = 110;
}
delay(1000);
// Teraz powolne zerowanie
moveToGesture(gestureList[0], 30);
delay(500);
ESP_LOGI(TAG_MAIN, "System ready");
}
@@ -126,7 +125,7 @@ void moveToGesture(Gesture g, int speed) {
}
pwm.setPWM(i, 0, angleToPWM(currentPositions[i]));
}
delay(speed); // Kontrola prędkości (im mniejsza wartość, tym szybciej)
delay(speed);
}
}
@@ -134,10 +133,8 @@ void loop() {
Watchdog::feed();
for (int i = 0; i < totalGestures; i++) {
moveToGesture(gestureList[i], 10); // Prędkość 10ms na stopień
delay(1000); // 1 sekunda przed kolejnym gestem
moveToGesture(gestureList[i], SPEED);
delay(PAUSE);
Watchdog::feed();
}
}