Spisu treści:

Automatyczne chwytanie za pomocą czujnika laserowego i poleceń głosowych: 5 kroków (ze zdjęciami)
Automatyczne chwytanie za pomocą czujnika laserowego i poleceń głosowych: 5 kroków (ze zdjęciami)

Wideo: Automatyczne chwytanie za pomocą czujnika laserowego i poleceń głosowych: 5 kroków (ze zdjęciami)

Wideo: Automatyczne chwytanie za pomocą czujnika laserowego i poleceń głosowych: 5 kroków (ze zdjęciami)
Wideo: babcia z torebką torebką wypada z piątego piętra z okna #ziemnioki i kartofle 2024, Listopad
Anonim
Image
Image
Lista części
Lista części

Chwytanie przedmiotów, które wydają się nam proste i naturalne, jest w rzeczywistości zadaniem złożonym. Człowiek wykorzystuje zmysł wzroku do określenia odległości od przedmiotu, który chce uchwycić. Ręka otwiera się automatycznie, gdy znajduje się w bliskiej odległości od chwytanego przedmiotu, a następnie szybko się zamyka, aby dobrze chwycić przedmiot. Użyłem tej techniki w uproszczony sposób w tym mini projekcie, ale zamiast kamery użyłem czujnika laserowego do oszacowania odległości obiektu od chwytaka i komend głosowych do sterowania.

Krok 1: Lista części

Lista części
Lista części

W tym małym projekcie będziesz potrzebować tylko kilku części wymienionych poniżej. Jako kontroler użyłem Arduino mega 2560, ale możesz też użyć UNO lub dowolnego innego Arduino. Jako czujnik odległości użyłem czujnika laserowego VL53L0X, który ma dobrą dokładność (około kilku milimetrów) i zasięg do 2 metrów. W tym projekcie można użyć do testowania dowolnego chwytaka i serwomechanizmu, ale należy go zasilać z osobnego źródła zasilania np.: zasilacz 5V lub akumulator LiPo (7,4V lub 11,1V) poprzez przetwornicę obniżającą napięcie do 5V.

Części potrzebne w tym projekcie:

  • Laserowy czujnik ToF VL53L0X x1
  • Serwo cyfrowe x1
  • Arduino mega 2560 x1
  • Metalowy chwytak robota x1
  • Deska do krojenia chleba x1
  • Dotykowy przycisk x1
  • Bluetooth HC-06
  • Rezystor 10k x1
  • Zasilanie 5V/2A

Rozszerzona wersja:

  1. Moduł czujnika monitora prądu CJMCU-219 x1
  2. WS2812 Płytka rozwojowa sterownika LED RGB x1

Krok 2: Połączenie części elektronicznych

Podłączanie części elektronicznych
Podłączanie części elektronicznych
Podłączanie części elektronicznych
Podłączanie części elektronicznych
Podłączanie części elektronicznych
Podłączanie części elektronicznych

Pierwszy rysunek pokazuje wszystkie niezbędne połączenia. Na poniższych zdjęciach można zobaczyć kolejne kroki łączenia poszczególnych modułów. Na początku przycisk był podłączony do pinu 2 Arduino, następnie serwo do pinu 3, a na końcu laserowy czujnik odległości VL53L0X za pośrednictwem magistrali I2C (SDA, SCL).

Połączenia modułów elektronicznych są następujące:

Czujnik laserowy VL53L0X -> Arduino Mega 2560

  • SDA - SDA
  • SCL - SCL
  • VCC - 5V
  • GND - GND

Serwo -> Arduino Mega 2560

Sygnał (pomarańczowy przewód) - 3

Serwo -> Zasilanie 5V/2A

  • GND (brązowy przewód) - GND
  • VCC (czerwony przewód) - 5V

Przycisk -> Arduino Mega 2560

  • Pin 1 - 3.3 lub 5V
  • Pin 2 - 2 (i przez rezystor 10k do masy)

Bluetooth (HC-06) -> Arduino Mega 2560

  • TXD - TX1 (19)
  • RXD-RX1 (18)
  • VCC - 5V
  • GND - GND

Krok 3: Mega kod Arduino

Mega kod Arduino
Mega kod Arduino

Przygotowałem następujące przykładowe programy Arduino dostępne na moim GitHubie:

  • VL53L0X_kontrola_chwytaka
  • Voice_VL53L0X_gripper_control

Pierwszy program o nazwie „VL53L0X_gripper_control” realizuje zadanie automatycznego chwytania obiektu, który został wykryty przez czujnik laserowy VL53L0X. Przed kompilacją i przesłaniem przykładowego programu upewnij się, że wybrałeś "Arduino Mega 2560" jako platformę docelową, jak pokazano powyżej (Arduino IDE -> Narzędzia -> Płytka -> Arduino Mega lub Mega 2560). Program Arduino sprawdza w pętli głównej - "void loop()" czy nadszedł nowy odczyt z czujnika laserowego (funkcja readRangeContinuousMillimeters()). Jeśli odległość odczytana z czujnika „distance_mm” jest większa niż wartość „THRESHOLD_CLOSING_DISTANCE_FAR” lub mniejsza niż „THRESHOLD_CLOSING_DISTANCE_NEAR”, serwo zaczyna się zamykać. W innych przypadkach zaczyna się otwierać. W dalszej części programu w funkcji „digitalRead(gripperOpenButtonPin)” stan przycisku jest stale kontrolowany i po jego naciśnięciu chwytak otworzy się mimo że jest zamknięty ze względu na bliskość obiektu (distance_mm to mniej niż THRESHOLD_CLOSING_DISTANCE_NEAR).

Drugi program „Voice_VL53L0X_gripper_control” umożliwia sterowanie chwytakiem za pomocą poleceń głosowych. Polecenia głosowe są przetwarzane przez aplikację BT Voice Control for Arduino z Google Play, a następnie przesyłane przez Bluetooth do Arduino. Program Arduino sprawdza w pętli głównej - "void loop()" czy nowa komenda (znak) została wysłana z aplikacji na Androida przez bluetooth. Jeśli jest jakiś znak przychodzący z portu szeregowego bluetooth, program odczytuje dane szeregowe, aż napotka koniec instrukcji głosowej "#". Następnie rozpoczyna wykonywanie funkcji „void processInput()” iw zależności od polecenia głosowego wywoływana jest określona funkcja sterująca.

Krok 4: Testowanie automatycznego chwytania

Testowanie chwytania automatycznego
Testowanie chwytania automatycznego
Testowanie chwytania automatycznego
Testowanie chwytania automatycznego

Film z "Kroku 1" pokazuje testy chwytaka robota na podstawie programu z poprzedniego rozdziału "Arduino Mega Code". Ten film pokazuje, jak automatycznie otwiera się, gdy obiekt jest blisko niego, a następnie chwyta ten obiekt, jeśli znajduje się w zasięgu chwytaka. Sprzężenie zwrotne z zastosowanego tutaj laserowego czujnika odległości jest wyraźnie widoczne w dalszej części filmu, gdy poruszam butelką do przodu i do tyłu, co powoduje szybką reakcję i zmianę sterowania chwytakiem.

Krok 5: Automatyczne chwytanie aktywowane głosem

Image
Image
Epilog Wyzwanie 9
Epilog Wyzwanie 9

W kolejnym kroku w rozwoju tego projektu dodałem do niego sterowanie głosowe. Dzięki komendzie głosowej mogę kontrolować zamykanie, otwieranie i prędkość chwytaka. Sterowanie głosowe w tym przypadku jest bardzo przydatne podczas otwierania chwytaka trzymającego przedmiot. Zastępuje przycisk i umożliwia łatwe sterowanie chwytakiem umieszczonym na robocie mobilnym.

Jeśli podoba Ci się ten projekt nie zapomnij zagłosować i napisać w komentarzu co chciałbyś zobaczyć w następnym poście jako dalsze udoskonalenie tego projektu:) Sprawdź moje inne projekty związane z robotyką, odwiedź:

  • youtube
  • moja strona internetowa

Zalecana: