Jak mogę wykryć krawędź stołu?

11

Jestem nowy w robieniu robotów i właśnie mam swoje pierwsze arduino do zabawy.

Chcę stworzyć robota, który będzie błąkał się po stole i będzie trwał dłużej. Myślę, że gdybym mógł, uniknęłbym upadku ze stołu.

Jaki będzie najlepszy sposób, aby wykrył krawędź stołu, abym mógł zatrzymać się i obrócić? To musi być coś niezawodnego i najlepiej taniego.

Będzie również lepiej, jeśli nie będę musiał dodawać dodatkowych elementów do stołu, aby móc używać go na dowolnej powierzchni (moim pierwszym pomysłem było narysowanie linii ścieżki na stole i wykonanie robota śledzącego linie, ale nie bardzo podoba się ten pomysł).

Tomasz
źródło

Odpowiedzi:

15

Rozwiązaniem tego problemu Roomba było dodanie czujników klifu , które tak naprawdę są czujnikami zbliżeniowymi skierowanymi w dół :

Czujnik zbliżeniowy na podczerwień Sharp GP2Y0A21YK.  Czujnik ma wyjście analogowe, które waha się od 3,1 V przy 10 cm do 0,4 V przy 80 cm.

Chociaż wydaje się, że ta technika ma problemy z niektórymi powierzchniami, takimi jak ciemne podłogi z płytek , wydaje się, że nie będzie to stanowić problemu dla Twojej aplikacji.

Możesz nawet wykonać go samodzielnie za pomocą diody IR LED i fotodiody IR, na przykład tego kompatybilnego z Arduino czujnika podczerwieni dla majsterkowiczów .

Być może uda ci się zdobyć kilka pomysłów od Tiny Wanderer - robota stołowego na instruktażach .

Mark Booth
źródło
7

Łatwe i tanie podejście polega na użyciu czujnika dotykowego, takiego jak wąsy. Kontroler po prostu monitoruje, czy wąs ma kontakt z ziemią, a jeśli go nie ma, zatrzymuje się i odsuwa od wiskera.

Inną dość tanią metodą jest użycie zestawu dalmierzy IR skierowanych w stronę ziemi. Sterownik monitoruje następnie wartości zwrócone od strażników i jeśli którakolwiek z nich przekroczy określony próg, wówczas robot zatrzymuje się i odsuwa od tego czujnika.

DaemonMaker
źródło
Problem z dotykiem polega na tym, że czujnik może ulec uszkodzeniu w wyniku uderzenia o przedmiot na podłodze. Niezawodność czujnika jest ważną częścią robotyki.
Jay Beavers
3

Istnieje wiele różnych podejść do rozwiązania tego problemu:

  • Czujniki odległości
  • Czujnik dotyku
  • Tagi RFID wokół krawędzi stołu (lub magnesów)
  • Aparat (użycie przetwarzania obrazu byłoby trudniejsze, a arduino prawdopodobnie nie byłby do tego wystarczająco silny)

Za pomocą czujnika odległości musisz sprawdzić, czy jest to sygnał cyfrowy czy analogowy dostarczany przez czujnik. Na potrzeby swojego „czujnika klifu” prawdopodobnie nie miałbyś nic przeciwko technologii cyfrowej, ponieważ byłbyś w stanie użyć czujnika jako przełącznika do wykrywania, gdy odległość przekracza minimalną odległość.

Jeśli interesują Cię czujniki analogowe zapewniające więcej informacji (np. Odległość od ściany) niż tylko przełącznik, musisz sprawdzić, jaki jest zasięg urządzenia. Ostry czujnik pokazany w powyższej odpowiedzi dostarczy ci napięcie, które będziesz musiał przeliczyć na odległość (ma odwrotny związek z odległością). Będziesz potrzebował 3 czujników do pokrycia tego samego zakresu odległości, co czujnik ultradźwiękowy (np. SRF08 Ultradźwiękowy dalmierz). Czujnik pomiaru odległości Sharp GP2D120 4-30 cm dla krótkiego zasięgu, czujnik pomiaru odległości Sharp GP2Y0A02YK 20-150 cm dla średniego zasięgu oraz czujnik odległości pomiaru Sharp GP2Y0A710K0F 100-550 cm dla czujnika dalekiego zasięgu. Miałem problemy ze sporadycznym spadaniem czujnika ultradźwiękowego do zera, więc musisz zaprogramować instrukcję catch, jeśli ta rezygnacja jest niedopuszczalna w Twojej aplikacji. Ultradźwiękowy dalmierz SRF08 był znacznie łatwiejszy w obsłudze, ponieważ został dostrojony przez producenta.

Tom Bamber
źródło