-40% na bestsellery wydawnictwa HELION, min.: Java, C++, TensorFlow, PHP, MySQL. Sprawdź listę tytułów »

Microswitche jako proste czujniki przeszkód

Microswitche jako proste czujniki przeszkód

Artykuł ten omawia użycie krańcówek oraz microswitchy w robotyce.

Jest to stosunkowo tania i prosta metoda na zapewnienie konstrukcji podstawowego kontaktu z otoczeniem np.: przez wykrywanie przeszkód i skuteczne ich omijanie.

Microswitch w roli czujnika

Microswitch, czujnik krańcowy lub po prostu przycisk; określenia te odnoszą się do prostego czujnika, który składa się przynajmniej z 2 blaszek stanowiących bazę oraz jednej, która pod wpływem działającej siły mechanicznej styka lub rozwiera wyprowadzenia.

Przykłady microswitchy i styczników.

Przykłady microswitchy.

Schematycznie microswitch można przedstawić następująco:

microswitche

Zasada działania microswitcha.

Takie przyciski najłatwiej skojarzyć z klawiaturą w telefonie, komputerze, zamkiem cyfrowym lub z myszką, którą najpewniej masz pod ręką. W ogólności microswitche są tam, gdzie do układu cyfrowego należy wprowadzić jakieś informacje.

W jaki więc sposób użyć tego drobnego czujnika w robotyce? Często ludzie tworząc wynalazki sięgają do wzorców z przyrody (tzw. biomimetyzm). W tym przypadku podobne „czujniki” istniały dawno przed wynalezieniem microswitcha, a są nimi zwierzęce wąsy (wibrysy - receptory czuciowe wrażliwe na dotyk). Podobnie można wyposażyć robota w wąsy, które pod wpływem nacisku zwierałyby styki, dostarczając informacji o zderzeniu się robota z przeszkodą, jak na poniższej ilustracji:

Zastosowanie czujników krańcowych w robocie mobilnym.

Zastosowanie czujników krańcowych w robocie mobilnym.

Innym zastosowaniem (bardzo popularnym) jest umieszczenie czujników krańcowych w każdym z odnóży robota kroczącego. Robot może rozróżnić czy stopa (efektor) aktualnie znajduje się na podłożu czy wisi w powietrzu. Dzięki takim informacjom robot podejmuje decyzje, czy należy dalej sięgać w dół, a jeżeli nie jest to możliwe (odnóże robota osiągnęło tzw. punkt nieosobliwości) to znaczy, że w terenie jest jakaś wyrwa i trzeba ją obejść.

Mechanika takiej stopy wygląda w następujący sposób:

stopa1

Zastosowanie czujników krańcowych w robocie kroczącym.

Podłączenie

Przełączniki są łatwe w obsłudze, od strony technicznej wymagają jedynie rezystorów oraz jednego kondensatora. Przykładowa realizacja czujnika na bazie microswitcha przedstawiona jest na poniższym schemacie wykonanym w programie EAGLE, którego kurs został wcześniej opublikowany.

Połączenie stycznika z pull-up w układzie z mikrokontrolerem.

Połączenie microswitcha z pull-upem w układzie z mikrokontrolerem.

Ktoś mógłby zapytać do czego jest rezystor połączony z przyciskiem. Jego użycie nie jest przypadkowe, a nawet konieczne. W stanie nieaktywnym, gdyby przełącznik był rozwarty, wejście mikrokontrolera zbierałoby szumy i stan na nim byłby przypadkowy.

Poniżej zamieszczam program w języku C, który realizuje obsługę przycisku. Po wciśnięciu microswitcha (podpiętego do PB0 bez rezystora, gdyż zastosowano programowy Pull-up), stan na pinie przechodzi na niski, co zostaje sprawdzone w nieskończonej pętli.Gdy warunek zostaje spełniony zapalana jest dioda (podpięta do PB1 anodą, a katodą przez rezystor do masy), w przeciwnym razie dioda zostaje wygaszona.

Załączam także program napisany w Bascom'ie.

Drgania styków i ich eliminacja

Microswitche i krańcówki są elementem mechanicznym, zatem warunki fizyczne silnie na nie oddziałują np.: śniedź, zużycie mechaniczne, wilgoć, sprężystość metalu, odkształcenia. Wszystko to sprawia, że podczas zmian stanu przełącznika powstają niechciane zakłócenia (drgania styków), które zamiast ładnego przebiegu prostokątnego tworzą przebieg widoczny poniżej:

Uproszczony przebieg zmian stanów na przycisku z uwzględnienie „drgań styków”.

Uproszczony przebieg zmian stanów na przycisku z uwzględnienie „drgań styków”.

W praktyce efekt ten zaobserwować najlepiej na prostym przykładzie. Wyobraź sobie program, który ma zliczać wciśnięcia przycisku (czujnika). Każde wciśnięcie, ma zwiększyć wartość zmiennej licznikowej o 1.  Jeśli układ nie będzie zabezpieczony przed drganiami styków, po jednokrotnym "kliknięciu" przyciskiem zmienna zostanie zwiększona, nie raz, a kilka. Dlaczego? Spójrz na powyższy wykres. Mikrokontroler sprawdza stan swoich wejść baaaardzo szybko. Bez problemu będzie mógł policzyć zakłócenia jako osobne wciśnięcia przycisku.

Jest to efekt niepożądany, możliwa jest jego eliminacja w dwojaki sposób:

  • sprzętowa,
  • programowa.

Sprzętowa eliminacja polega na wstawieniu pomiędzy nóżki krańcówki rezystora około 100 Ohm oraz kondensator o pojemności około 100nF. Zakłócenia powstałe podczas drgania styków charakteryzują się dużą częstotliwością, co wymaga użycia kondensatora o niewielkiej pojemności. Na schemacie poniżej przedstawiono sprzętową eliminację drgań styków:

Podstawowy sposób na sprzętową niwelację drgań styków.

Podstawowy sposób na sprzętową niwelację drgań styków.

Powyższy schemat jest jedną z możliwych implementacji filtru RC.

Programowa eliminacja drgań polega na sprawdzeniu stanu wejścia i odczekaniu, krótkiego czasu (20- 80ms) aż drgania ustaną. Realizację w dowolnym języku należy wykonać zgodnie z poniższym algorytmem:

Podsumowanie

Nawet proste i tanie elementy mogą być wykorzystane w roli czujników. Podłączenie dwóch krańcówek z odpowiednimi "wąsami" wystarczy, do stworzenia prostego robota, który będzie omijał przeszkody. Nie można zapomnieć, że microswitche są też idealnym interfejsem do komunikacji z robotem (wybór ustawień, start, stop). Co najważniejsze, w obu przypadkach trzeba być świadomym występowania drgań styków, ponieważ mogą one prowadzić do nieprzewidywalnych zachowań.

Przykładowy robot z dwiema krańcówkami w roli czujników (kliknij, aby przeczytać opis):

czujniki, krańcowka, microswitch

Trwa ładowanie komentarzy...