LinkedIn YouTube Facebook
Szukaj

Wstecz
SoM / SBC

Zdalne sterowanie robotem z wykorzystaniem czujników ugięcia

W artykule przedstawiono projekt rękawicy rezystancyjnej, do konstrukcji której wykorzystano Arduino Nano, czujniki ugięcia Flex Sensor oraz zewnętrzne źródło zasilania. Przy dodaniu układu do komunikacji radiowej rękawica może posłużyć np. do zdalnego sterowania kierunkiem jazdy, przyspieszaniem oraz hamowaniem pojazdu.

Wykorzystanie czujników ugięcia jest jedną z metod budowania interfejsu pomiędzy człowiekiem i sterowanymi urządzeniami. Innym przykładem może być wykorzystanie sygnałów elektromiograficznych pochodzących z mięśni człowieka. Sygnały EMG pozwalają na sterowanie z wykorzystaniem napięcia powierzchniowego aktywnego mięśnia. Jednak metoda ta wymaga użycia kosztownego sprzętu. Wykorzystanie czujników Flex Sensor jest alternatywą dla miłośników robotyki.

 

Zasada działania czujnika ugięcia

Zasada działania czujnika ugięcia opiera się na wykorzystaniu zmiennej rezystancji. Podczas zginania czujnik zwiększa swoją rezystancję, aby dla kąta ugięcia o wartości 90° otrzymać wartość maksymalną (rysunek 1). Wartość rezystancji czujnika Flex Sensor wynosi 25 k?. Podczas zginania wartość ta zmienia się w granicach od 45 k? do 125 k?.

Rys. 1. Ilustracja działania czujnika FlexSensor

Wykonanie projektu

Projekt opiera się na wykonaniu konstrukcji z wykorzystaniem rękawicy. Czujniki ugięcia zostały zamocowane odpowiednio na rękawicy w miejscach ugięcia palca. Aby zoptymalizować ilość kabli i złączy, wykonano płytkę drukowaną, na której zostały zamieszczone niezbędne ścieżki i elementy. Płytka została wykonana metodą tradycyjną. Schemat elektryczny układu, pokazany na rysunku 2, narysowano z wykorzystaniem programu Eagle. Na jego podstawie zaprojektowano połączenia (ścieżki) pomiędzy sensorami, rezystorami, odpowiednimi wejściami płytki Arduino (wejściami analogowymi, napięciem oraz GND) oraz odpowiednie piny pod płytkę Arduino Nano. Efekt tej pracy pokazano na rysunku 3. Następnie laminat wraz z naniesionym rysunkiem połączeń został wytrawiony w chlorku żelaza.

 

Rys. 2. Schemat elektryczny części zmontowanej na płytce drukowanej

Rys. 3. Rozmieszczenie ścieżek na płytce drukowanej

 

W kolejnym etapie montażu płytki w odpowiednich miejscach umieszczono rezystory oraz złącza. Na płytce zostały zamontowane odpowiednie gniazda dla Arduino Nano, gniazda do zewnętrznego źródła zasilania oraz złącze do połączenia z czujnikami ugięcia.

Po zmontowaniu płytki dołączono wszystkie pozostałe elementy – fotografia 4.

 

Fot. 4. Połączenie elementów na rękawicy

 

Odczyt analogowych wartości z czujników

Do sterowania podstawowymi parametrami pojazdu, należy wykorzystać wartości z dołączonych do wejść analogowych czujników Flex Sensor. Na listingu 1 znajduje się kod źródłowy (Arduino) umożliwiający odczytywanie odpowiednich wartości przez mikrokontroler ATmega. Odczytane wartości są wysyłane przez port szeregowy, np. do komputera osobistego.

 

List. 1. Program odczytujący wartości z czujników nacisku

void setup() {

  Serial.begin(9600); 
  //nawiązanie komunikacji pomiędzy mikrokontrolerem a komputerem
}

void loop() {

  int sensorValue0 = analogRead(A0);
  int sensorValue1 = analogRead(A1);
  int sensorValue2 = analogRead(A2);
  int sensorValue3 = analogRead(A3);
  //odczyt wartości z portów analogowych

  Serial.print("Czujnik 1 = " );
  Serial.print(sensorValue0);
  Serial.print("\t  = ");
  Serial.print("Czujnik 2 = " );
  Serial.print(sensorValue1);
  Serial.print("\t  = ");
  Serial.print("Czujnik 3 = " );
  Serial.print(sensorValue2);
  Serial.print("\t  = ");
  Serial.print("Czujnik 4 = " );
  Serial.println(sensorValue3);
 //przesłanie informacji za pośrednictwem portu szeregowego

  delay(100);
 //opóźnienie odczytu
}

Koncepcja działania rękawicy rezystancyjnej

Głównym celem projektu jest wykonanie układu sterowania, który mógłby zostać wykorzystany do zdalnego kierowania pojazdem. Pozwoli to na zaprezentowanie możliwości czujnika w przypadku podłączenia układu do wybranego obiektu sterowanego. Układ realizowany został według schematu pokazanego na rysunku 5.

 

Rys. 5. Schemat blokowy urządzenia

 

Z czterech czujników ugięcia odczytywane są wartości, które mogą służyć do sterowania pojazdem w zakresie przyspieszania, hamowania, skrętu w prawo, skrętu w lewo. Odpowiednio zaprogramowany mikrokontroler Arduino A pozwola na realizację przetwarzania pobranych sygnałów w czasie rzeczywistym i na przesłanie wyników do komputera połączonego z radio-modemem A. Otrzymane wartości drogą radiową mogą być przesłane do radio-modemu B zamontowanego w pojeździe. Dzięki wykorzystaniu drugiego, odpowiednio oprogramowanego mikrokontrolera Arduino B możliwe będzie sterowanie wybranymi układami wykonawczymi: układem kierowniczym, hamulcowym i napędowym.

Rękawica może być wykorzystywana do zdalnego sterowania, np. pojazdami. Odpowiednie oprogramowanie pozwoli na szersze zastosowanie. Układ można użyć jako pilota lub kontrolera stosowanego w grach.

Fot. 6. Widok rękawicy gotowej do pracy