Serwisy partnerskie:
Close icon
Serwisy partnerskie

Dron sterowany ruchami twarzy

Wszyscy pewnie widzieliśmy drona, a niektórzy z nas mogli nawet go obsługiwać. Większość dronów dostępnych na rynku jest obsługiwana ręcznie za pomocą pilota RC lub za pomocą telefonu przez połączenie Wi-Fi. Obsługa drona w ten sposób może być nieco kłopotliwa, zwłaszcza gdy istnieje wiele elementów sterujących i przycisków.
Article Image

Aby doświadczenie latania dronem było jeszcze przyjemniejsze, można zbudować inteligentny system sterowania dronem, który może być obsługiwany za pomocą gestów naszej twarzy. Jeśli chcemy, aby dron robił zdjęcia konkretnej twarzy i śledził ją, to możemy użyć tego systemu.

W poniższym projekcie użyto drona DJI Tello, który jest zaprogramowany i sterowany za pomocą Pythona i jego SDK. Tak więc komponenty, których tutaj potrzebujesz to tylko dron Tello i komputer PC lub laptop. To wszystko.

Przygotowania wstępne

Ponieważ użyłem systemu operacyjnego Linux, polecenia i instrukcje konfiguracji są oparte na systemie Linux. Możesz uruchomić Linuksa na Windowsie używając VirtualBox, open-source'owego hypervisora, który obsługuje dużą liczbę systemów operacyjnych gościa.

Przede wszystkim należy skonfigurować środowisko Pythona w systemie operacyjnym. Następnie zainstaluj moduły OpenCV, dlib, NumPy i rozpoznawania twarzy Pythona za pomocą następujących poleceń:

sudo pip3 install python-opencv
sudo pip3 install Face_recoginition
sudo pip3 install numpy

Po zainstalowaniu powyższych modułów zainstaluj moduły Pythona, które umożliwiają połączenie z dronem Tello w celu sterowania nim. W tym celu dostępne są różne moduły Pythona, ale tutaj użyte zostały Tello Python do sterowania dronem Tello.

Uwaga: Przed stworzeniem systemu sterowania dronem, sprawdź kilka funkcji i komend, których będziemy używać do sterowania dronem.

Tello Python może łączyć się z dronem Tello, umożliwiając wykonywanie różnych funkcji, takich jak:

  • Wystrzelenie drona za pomocą drone.takeoff()
  • Przesunięcie drona do przodu na określoną odległość (w cm) za pomocą drone.forward(cm)
  • Obrócenie drona o 90 stopni w kierunku zgodnym z ruchem wskazówek zegara za pomocą drone.cw(90)
  • Przerzucanie drona do góry, do tyłu, w lewo lub w prawo za pomocą drone.flip('l')
  • Tworzenie strumienia na żywo z kamery drona za pomocą drone.streamon()
  • Lądowanie drona za pomocą drone.land()

Aby kontrolować wysokość oraz ruch drona w lewo lub prawo, użyj gestów twarzy, ale do startu użyj funkcji automatycznego startu podczas uruchamiania. Aby wylądować dronem i zatrzymać działanie kodu, użyj klawisza klawiatury 'Q'.

Odwołaj się do tego samego kodu do rozpoznawania twarzy, jak podano w kilku innych projektach, np. „Zamek samochodowy w oparciu o rozpoznawanie twarzy”, „Inteligentny robot”, „Smart Door” i wiele innych. Implementując ten kod, możesz sterować dronem za pomocą ruchów twarzy.

Kodowanie

Oprócz włączenia tego samego kodu do rozpoznawania twarzy, zaimportuj biblioteki i moduły drona Tello (wspomniane w sekcji Przygotowania wstępne). Następnie należy utworzyć dwie zmienne, które będą przechowywały współrzędne położenia twarzy, co ułatwi obliczanie ruchów twarzy i nawigację drona. Inicjalizujemy drone.streamon() w kodzie wraz z drone.takeoff().

W pętli while kodu rozpoznawania twarzy dodaj kolejny kod, który analizuje kierunki ruchów twarzy. Sprawdź aktualne położenie twarzy i za pomocą warunku if porównaj obecne położenie twarzy z poprzednim położeniem twarzy. Jeśli nie są one zgodne, oznacza to, że twarz przesunęła się w nowe miejsce. Jeśli nowa lokalizacja ma wartość większą lub mniejszą od poprzedniej, użyj jej do określenia kierunków ruchu twarzy.

Do przesunięcia drona użyj ruchów twarzy w górę, w dół, w lewo lub w prawo. Korzystając z wartości pozycji lewego punktu i górnego punktu, można określić i porównać pozycję twarzy i kierunek ruchu w celu sterowania dronem w tym samym kierunku.

Załóżmy, że poprzednia lewa pozycja = 30 na współrzędnej x, a nowa lewa pozycja = 40 na współrzędnej x. Ponieważ nowa lewa pozycja jest większa niż poprzednia lewa pozycja, należy przesunąć twarz w nowym kierunku, tj. w prawo. To z kolei spowoduje przesunięcie drona w tym samym kierunku. Podobnie dron będzie się poruszał w innych kierunkach w zależności od zmiany współrzędnych.

Testowanie

Włącz drona Tello, a następnie podłącz urządzenie, na którym będziesz uruchamiał powyższy kod. W tym projekcie użyto Raspberry Pi, które jest podłączone do Tello Wi-Fi w celu uruchomienia kodu. Po kilku sekundach połączenie jest nawiązane. Po uruchomieniu kodu pojawia się filmik z twarzą. Przesuwając twarz w obrębie kadru kamery w górę, w dół, w lewo lub w prawo możemy sterować dronem.

Gratulacje! Udało Ci się zbudować drona sterowanego gestami twarzy.

Wykaz elementów
Ilość
Symbol
Nazwa/opis/gdzie kupić
Do pobrania
Download icon Dron sterowany ruchami twarzy - kod źródłowy
AUTOR
Źródło
www.electronicsforu.com
Udostępnij
UK Logo