Czujniki flex oferują prosty i intuicyjny sposób wykrywania zginania i ruchu człowieka, wykorzystując podstawowe zasady elektroniczne. Ten artykuł wyjaśnia, jak działają czujniki flex, jak je podłączyć do Arduino oraz jak projektować niezawodne układy wokół nich. Od szczegółów konstrukcji po kalibrację i rzeczywiste projekty – zapewnia praktyczną podstawę dla każdego.

Czym jest czujnik flex?
Czujnik flex to niedrogie urządzenie rezystancyjne, które mierzy zgięcie lub zginanie. Jego opór elektryczny jest najmniejszy, gdy czujnik jest prosty, a rośnie stopniowo wraz z wygięciem, przy czym najwyższy opór zwykle występuje w okolicach 90°, w zależności od konstrukcji i długości czujnika.
Rozmieszczenie pinów czujnika flex

Standardowy czujnik flex ma dwa zaciski, powszechnie oznaczane jako P1 i P2. Pod względem elektrycznym czujnik zachowuje się jak podstawowy rezystor i nie ma polaryzacji, co oznacza, że oba piny są wymienne.
Oba zaciski można podłączyć do 5V lub GND, o ile dzielnik napięcia jest prawidłowo podłączony. Ta niepolaryzowana konstrukcja sprawia, że czujniki elastyczne są szczególnie dostępne i łatwe do integracji z układami mikrokontrolera.
Zasada działania czujnika elastycznego
Czujnik flex działa elektrycznie jako rezystor zmienny, którego opór zmienia się w odpowiedzi na zgięcie. Gdy czujnik jest płaski, prąd elektryczny przepływa przez warstwę przewodzącą z minimalnym oporem. W miarę jak czujnik się wygina, efektywna rezystancja rośnie w przewidywalny, ale nieliniowy sposób.
Typowe czujniki flex dostępne są w długościach takich jak 2,2" i 4,5", a wartości oporu różnią się w zależności od producenta. Powszechnym wzorcem zachowań jest następujący:
• Pozycja płaska: niska rezystancja (często około 10 kΩ)
• Pozycja zgięcia: wyższy opór (zwykle 20 kΩ lub więcej, w zależności od kąta zgięcia)
Mikrokontrolery takie jak Arduino nie potrafią mierzyć rezystancji bezpośrednio. Zamiast tego czujnik flex jest używany jako część obwodu dzielnika napięcia, gdzie jego zmieniająca się rezystancja powoduje odpowiadającą zmianę napięcia. Napięcie to jest następnie odczytywane przez przetwornik analogowo-cyfrowy (ADC) Arduino, który konwertuje sygnał analogowy na wartość cyfrową (0–1023 dla 10-bitowego ADC przy napięciu 5 V). Monitorując tę zmianę napięcia, mikrokontroler może wykrywać intensywność zgięcia i przekładać ją na użyteczne dane do logiki sterowania, wizualizacji lub interakcji.
Konstrukcja czujników elastycznych

Czujniki elastyczne są konstruowane z cienkiego, elastycznego podłoża pokrytego specjalnie opracowanym przewodzącym tuszem, który stanowi element czujnikowy. Ta warstwa przewodząca została zaprojektowana tak, aby bezpiecznie się odkształcać podczas zginania, przy jednoczesnym zachowaniu ciągłości elektrycznej. Dodana jest ochronna warstwa zewnętrzna, aby zwiększyć trwałość i osłonić sensor przed wilgocią, ścieraniem i powtarzającymi się obciążeniami mechanicznymi.
Gdy czujnik się wygina, przewodząca warstwa tuszu doświadcza naprężeń mechanicznych. To odkształcenie powoduje mikroskopijne zmiany w przewodzących ścieżkach, zwiększając opór wraz z napiętym zgięciem. Ogólnie:
• Większy promień zgięcia (łagodna krzywa): mniejsza zmiana oporu
• Mniejszy promień zgięcia (ostrzejsza krzywa): większa zmiana oporu
Ponieważ mechanizm detekcji zależy od odkształcenia fizycznego, czujniki elastyczne są wrażliwe na to, jak i gdzie są wyginane. Równomierne zgięcie wzdłuż długości czujnika daje bardziej spójne efekty niż ostre zagniecenia czy lokalne punkty naprężeń, które mogą trwale uszkodzić warstwę przewodzącą i zmienić zachowanie czujnika.
Układ czujnika Arduino Flex

Aby odczytać czujnik flex za pomocą Arduino, czujnik ten jest zazwyczaj umieszczony w obwodzie dzielnika napięcia. Ponieważ Arduino nie może mierzyć rezystancji bezpośrednio, ten układ przekształca zmiany rezystancji w proporcjonalne napięcie, które można odczytać za pomocą analogowego pinu wejściowego.
W tej konfiguracji:
• Czujnik flex działa jak rezystor zmienny
• Stały rezystor (zwykle 10 kΩ lub 15 kΩ) wyznacza zakres pomiaru
• Napięcie w środku dzielnika zmienia się wraz z wygięciem czujnika
Wraz ze wzrostem oporu czujnika flex wraz z zgięciem, napięcie wyjściowe dzielnika również zmienia się w przewidywalny sposób. Konwerter analogowo-cyfrowy (ADC) Arduino próbkuje to napięcie i przekształca je na wartość cyfrową między 0 a 1023 (dla 10-bitowego ADC z odniesieniem 5 V).
Ten układ stanowi podstawę elektryczną dla wszystkich zastosowań czujników flex opartych na Arduino i jest wspomniany w praktycznej implementacji opisanej w Sekcji 7.
Projekty, które można zbudować z czujnikiem flex
Gdy zgięcie można wiarygodnie zmierzyć, czujniki elastyczne otwierają drzwi do szerokiego zakresu kreatywnych i praktycznych projektów. Ich proste analogowe wyjście sprawia, że łatwo integrują je zarówno w projektach dla początkujących, jak i zaawansowanych.

• Stery do gry: Czujniki flex mogą działać jako analogowe spusty, suwaki lub sterowanie gestami, dodając naturalną, beznaciską interakcję do niestandardowych kontrolerów.

• Kontrolery muzyczne: W cyfrowych systemach muzycznych czujniki flex mogą modulować wysokość, filtry, głośność lub efekty, tworząc ekspresyjne, nastawione na wykonanie kontrolery.

• Rękawice danych: Umieszczając czujniki wzdłuż palców, można śledzić zginanie palców i podstawowe ruchy rąk do eksperymentów w rzeczywistości wirtualnej, animacji lub w języku migowym.

• Sterowanie serwomechanizmem: Czujniki elastyczne są powszechnie używane do płynnego sterowania serwami, umożliwiając robotyczne ramiona, chwytaki lub animatroniki naśladowanie ruchów ludzkiej ręki w czasie rzeczywistym.

• Systemy Raspberry Pi: Chociaż Raspberry Pi nie posiada natywnych analogowych wejść, czujniki flex mogą być nadal używane z zewnętrznymi ADC do projektów sterowania i monitorowania ruchu opartego na ruchu.
Interfejs czujnika Flex z Arduino

Montaż sprzętu
Krok 1: Zbierz komponenty
Przygotuj płytkę Arduino Uno (lub kompatybilną płytę), czujnik flex, rezystor 10 kΩ lub 15 kΩ, płytkę przezwigniającą, przewody zworkowe oraz kabel USB.
Krok 2: Zamontuj czujnik
Włóż zaciski czujników flex do osobnych rzędów płyt przeszywowych, aby uniknąć zwarć. Utrzymuj sensor płasko i wolny od obciążeń mechanicznych podczas testów.
Krok 3: Zbuduj dzielnik napięcia
Korzystając z układu opisanego w Sekcji 5, podłącz elementy w następujący sposób:
• Zacisk czujnika flex 1 → 5V
• Zacisk czujnika flex 2 → A0 oraz jeden koniec rezystora stałego
• Drugi koniec rezystora → GND
To rozwiązanie przekształca zmiany rezystancji w mierzalne napięcie przy A0.
Krok 4: Zweryfikowaj połączenia
Upewnij się, że wszystkie przewody rozruchowe są zabezpieczone. Luźne przewody są częstym źródłem szumów lub niestabilnych odczytów.
Konfiguracja oprogramowania
Krok 5: Konfiguruj IDE Arduino
Podłącz Arduino, wybierz właściwą płytkę i port COM, a następnie otwórz monitor szeregowy przy 9600 baud.
Krok 6: Odczytaj surowe wartości ADC
Użyj analogRead(A0), aby potwierdzić, że sensor reaguje płynnie podczas zginania. Wartości powinny się regularnie zmieniać przed dalszą obróbką.
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
Krok 7: Przelicz napięcie na rezystancję
Dla lepszej kalibracji i spójności oblicz rezystancję czujnika flex za pomocą równania dzielnika napięcia:
Rflex=Rdiv×(VCC/Vflex-1)
图片
Jeśli wymagany jest przybliżony kąt zgięcia, należy odwzorować zmierzony zakres rezystancji na stopnie:
kąt pływający = mapa (rFlex, 25000, 125000, 0, 90);
Zamień te wartości na własne skalibrowane minimalne i maksymalne pomiary oporu dla dokładności.
Ograniczenia czujników flex
• Nie precyzyjne czujniki kąta; Przeznaczone do wykrywania względnego zgięcia, a nie dokładnego pomiaru kąta
• Nieliniowa odpowiedź rezystancyjna, co zmniejsza dokładność obliczania kąta bezpośredniego
• Różnice jednostkowe, nawet między czujnikami tego samego modelu
• Dryf oporu w czasie spowodowany zmęczeniem materiału i powtarzającym się zginaniem
• Efekty histerezy, gdzie opór różni się między ruchami zginającymi a nieuginającymi
• Ograniczona długoterminowa stabilność w zastosowaniach przy stałych lub dużych obciążeniach mechanicznych
• Najlepiej nadaje się do intuicyjnej kontroli i wykrywania gestów, a nie do zadań pomiarowych o wysokiej dokładności
• Zastosowania wymagające precyzyjnych lub stabilnych odczytów mogą wymagać alternatywnych czujników, takich jak enkodery lub IMU
Czujnik flex vs. alternatywne metody wykrywania zgięć
| Typ czujnika | Zasada | Dokładność i stabilność | Elastyczność | Złożoność | Typowe zastosowania |
|---|---|---|---|---|---|
| Czujnik elastyczny | Zmiany oporu wraz z zginaniem | Niskiej do umiarkowanej celności; nieliniowe i mogą dryfować w czasie | Wysoce elastyczny | Bardzo niski; prosty analog czyta | Urządzenia noszone, rękawice z danymi, kontrola gestami, intuicyjne interfejsy ludzkie |
| Potencjometr | Zmienna rezystancja przez obrót | Wysoka precyzja i dobra powtarzalność | Nieelastyczny; wymaga mechanicznego sprzężenia | Niskie do umiarkowane | Stawy obrotowe, pokrętła, mechaniczny pomiar kąta |
| IMU (Akcelerometr + Żyroskop) | Mierzy przyspieszenie i szybkość kątową | Umiarkowane do wysokiego przy przetwarzaniu; może dryfować bez filtrowania | Moduł nieelastyczny | Wysokie; wymaga fuzji i kalibracji czujników | Śledzenie ruchu, robotyka, wykrywanie orientacji |
| Enkoder optyczny | Detekcja pozycji oparta na świetle | Bardzo wysoka dokładność i długoterminowa stabilność | Nieelastyczny | Umiarkowany | Sprzężenie zwrotne położenia silnika, automatyzacja przemysłowa |
| Magnetyczny enkoder | Pomiar pola magnetycznego dla pozycji | Bardzo wysoka dokładność i wytrzymałość w noszeniu | Nieelastyczny | Umiarkowany | Sterowanie silnikami, precyzyjne pomiary obrotowe |
Zakończenie
Czujniki flex najlepiej sprawdzają się w intuicyjnych, sterowanych przez człowieka danych wejściowych, a nie do precyzyjnych pomiarów. Rozumiejąc ich konstrukcję, zachowanie elektryczne i ograniczenia, możesz skutecznie zintegrować je z Arduino i projektami wbudowanymi. Dzięki odpowiedniemu montażowi, wyborowi rezystora i kalibracji, czujniki flex umożliwiają responsywne urządzenia noszone, kreatywne kontrolery i systemy interaktywne przy minimalnej złożoności sprzętowej.
Najczęściej zadawane pytania [FAQ]
Jak długo czujniki flex wytrzymują przy powtarzającym się zginaniu?
Żywotność czujnika flex zależy od promienia zgięcia, częstotliwości i jakości montażu. Po wygięciu w zalecanych granicach i prawidłowym montażu większość czujników flex może wytrzymać dziesiątki tysięcy cykli. Ostre zagniecenia, nadmierne zgięcie lub słabe odprężenia znacząco obniżają trwałość.
Czy czujnik flex może być używany z mikrokontrolerami 3,3V zamiast Arduino?
Tak. Czujniki flex współpracują z systemami 3,3V, takimi jak ESP32, ESP8266 i STM32. Może być konieczne dostosowanie stałej wartości rezystora i ponowna kalibracja odczytów, aby uwzględnić niższe napięcie referencyjne i charakterystykę ADC.
Czy czujniki flex wymagają filtrowania sygnału, aby uzyskać stabilne odczyty?
W wielu przypadkach tak. Proste techniki programowe, takie jak średnie kroczące czy filtry dolnoprzepustowe, pomagają zmniejszyć hałas spowodowany drganiami mechanicznymi lub drobnymi ruchami ręki. Filtrowanie poprawia stabilność, zwłaszcza w aplikacjach noszonych lub opartych na gestach.
Czy można używać wielu czujników flex jednocześnie na jednym Arduino?
Zdecydowanie. Każdy czujnik elastyczny wymaga własnego dzielnika napięcia oraz analogowego pinu wejściowego. Dopóki dostępnych jest wystarczająca liczba analogowych pinów i prawidłowa kalibracja jest wykonywana dla każdego czujnika, wiele czujników flex można odczytać jednocześnie bez problemu.
Czy czujniki elastyczne są bezpieczne dla projektów noszonych i biomedycznych?
Czujniki flex są zazwyczaj bezpieczne do prototypowania i nieinwazyjnych projektów noszonych. Jednak nie są to komponenty medycznej jakości. W zastosowaniach klinicznych lub krytycznych dla bezpieczeństwa biomedycznych należy zamiast tego stosować certyfikowane czujniki zaprojektowane dla środowisk regulowanych.