Serwisy partnerskie:
Close icon
Serwisy partnerskie

Dron sterowany ruchami twarzy

Article Image
Elmax
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.

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
Firma:
AUTOR
Źródło
www.electronicsforu.com
Udostępnij
Zobacz wszystkie quizy
Quiz weekendowy
Edukacja
1/10 Jak działa rezystor LDR?
UK Logo
Elektronika dla Wszystkich
Zapisując się na nasz newsletter możesz otrzymać GRATIS
najnowsze e-wydanie magazynu "Elektronika dla Wszystkich"