Spisu treści:
- Krok 1: Lista części
- Krok 2: Połączenie części elektronicznych
- Krok 3: Mega kod Arduino
- Krok 4: Testowanie automatycznego chwytania
- Krok 5: Automatyczne chwytanie aktywowane głosem
Wideo: Automatyczne chwytanie za pomocą czujnika laserowego i poleceń głosowych: 5 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
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
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:
- Moduł czujnika monitora prądu CJMCU-219 x1
-
WS2812 Płytka rozwojowa sterownika LED RGB x1
Krok 2: Połączenie 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
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
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
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:
Automatyczne oświetlenie uliczne za pomocą czujnika ultradźwiękowego: 3 kroki
Automatyczne światła uliczne za pomocą czujnika ultradźwiękowego: Czy kiedykolwiek myślałeś, że światła uliczne automatycznie włączają się w nocy i wyłączają się automatycznie rano? Czy jest jakaś osoba, która przychodzi do włączania/wyłączania tych świateł? Istnieje kilka sposobów na włączenie świateł ulicznych, ale kolejne c
Zaprogramuj dowolną płytę/moduł ESP8266 za pomocą poleceń AT Firmware: 5 kroków
Zaprogramuj dowolną płytkę/moduł ESP8266 z oprogramowaniem układowym poleceń AT: Każdy moduł i płytkę ESP8266 można zaprogramować na wiele sposobów: polecenia Arduino, Python, Lua, AT, prawdopodobnie o wiele więcej … Pierwsze trzy z nich są najlepsze do samodzielnej pracy, oprogramowanie układowe AT służy do używania ESP8266 jako modułu lub do szybkiego testowania z TTL RS232 c
Samouczek: Jak zbudować moduł czujnika zasięgu laserowego VL53L0X za pomocą Arduino UNO: 3 kroki
Samouczek: Jak zbudować moduł czujnika odległości lasera VL53L0X za pomocą Arduino UNO: Opisy: Ten samouczek pokaże wszystkim, jak zbudować detektor odległości za pomocą modułu czujnika odległości lasera VL53L0X i Arduino UNO i będzie działać tak jak ty chcieć. Postępuj zgodnie z instrukcjami, a zrozumiesz tego korepetytora
Jak zrobić niestandardową płytkę drukowaną za pomocą grawera laserowego o małej mocy: 8 kroków (ze zdjęciami)
Jak zrobić niestandardową płytkę drukowaną za pomocą grawera laserowego o małej mocy: Jeśli chodzi o wykonanie domowej roboty płytki drukowanej, w Internecie można znaleźć kilka metod: od najbardziej prymitywnych, przy użyciu tylko długopisu, po bardziej wyrafinowane przy użyciu drukarek 3D i innego sprzętu. I ten samouczek dotyczy tego ostatniego przypadku!W tym projekcie mam
Sterowanie urządzeniami za pomocą poleceń głosowych za pomocą NodeMCU: 7 kroków (ze zdjęciami)
Kontrolowanie urządzeń za pomocą poleceń głosowych za pomocą NodeMCU: Chcę tylko przywitać się ze wszystkimi, to mój pierwszy raz, kiedy piszę instruktażowy projekt. Angielski nie jest moim językiem ojczystym, więc postaram się opisać jak najkrócej i jak najdokładniej. Sterowanie urządzeniami za pomocą poleceń głosowych nie jest niczym dziwnym