poprawki - servo palca wskazującego jest uszkodzone
This commit is contained in:
4
.vscode/c_cpp_properties.json
vendored
4
.vscode/c_cpp_properties.json
vendored
@@ -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",
|
||||
|
||||
65
src/main.cpp
65
src/main.cpp
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user