Połączenie DJI Tello Edu z komputerową aplikacją Scratch
Dron DJI Tello Edu to dron świetnie nadający się do nauki latania i sterowania w trzech płaszczyznach. Waży zaledwie 80g, przy czym jest niesamowicie stabilny. Jego zalety wskazaliśmy już kiedyś w krótkim filmie. Jego największą zaletą jest jednak możliwość wykorzystania go do nauki programowania. Dron ten jest programowalny w środowisku Scratch, Swift i Python. Skupmy się jednak na środowisku Scratch.
Aplikacja, którą można pobrać z platformy Google Play pozwala rozwinąć umiejętności sterowania dronem nie tylko przez sterowanie pilotem w aplikacji (ekranem telefonu), czy też sterowaniem żyroskopowym (jeżeli telefon taki czujnik posiada) ale również przez programowanie w środowisku Scratch. Jest ono wykorzystane tak w grywalizacji (która polega na pokonywaniu misji specjalnych wykonywanych przez drona w symulatorze lotu), jak i w swobodnym programowaniu DJI Tello Edu – z wykorzystaniem szczegółowych parametrów, bloków kontroli lotu a nawet warunków logicznych opartych na wbudowanych w drona czujnikach.
Niemniej jednak, jak większość androidowych aplikacji, tak i aplikacja DJI Tello Edu posiada pewne ograniczenia w zakresie programowania. Firma postanowiła się mimo wszystko nie ograniczać i umożliwiła podłączenie drona do pełnego środowiska Scratch na komputerze, dzięki czemu możliwości programowania zostały rozszerzone nie tylko o kolejne bloki ale i pełną współpracę programowania w zakresie dron + ekran komputera (duszki, sceny, zachowania, obsługa parametrów czujnika, wskazania i ruch myszy).
Podłączenie drona do komputerowej wersji Scratch 2.0 nie jest trudne, niemniej jednak dobrze jest wykonać je krok po kroku, tak by zrobić to w ciągu krótkiej chwili a nie w czasie np. godziny lekcyjnej. Jako że „trening czyni mistrza”, warto spróbować nawiązać połączenie kilkukrotnie, dzięki czemu praktyczny czas połączenia aplikacji komputerowej z dronem zajmie nam ok. 30 sekund.
Zaczynijmy zatem:
Etap 1: Pobranie aplikacji i sterowników
- Pobierz na komputer aplikację Scratch 2.0 Edytor Offline. Jest w pełni darmowa, można ją znaleźć pod tym linkiem. (https://scratch.mit.edu/download/scratch2). Zainstaluj ją na swoim komputerze postępując według wewnętrznej instrukcji programu.Obecnie dostępna jest już nowa wersja Scratch 3.0, niestety na ten moment nie przygotowano jeszcze pod nią sterowników dla drona.
- Pobierz aplikację do uruchamiania skryptów JavaScript) NODE. Również jest darmowa. Najlepiej jest pobrać wersję rekomendowaną. Najnowsze wersje nie zawsze są stabilne (co może negatywnie wpłynąć na współpracę drona z komputerem). NODE dostępny jest pod tym linkiem: https://nodejs.org/en/ . Po pobraniu należy postępować według wewnętrznej instrukcji aplikacji, by ją zainstalować i uruchomić w środowisku windows.
- Pobierz biblioteki i sterowniki dla Tello, potrzebne do sterowania dronem w środowisku programistycznym Scratch. Są również darmowe (https://dl-cdn.ryzerobotics.com/downloads/tello/20180222/Scratch.zip). Po pobraniu znajdują się w skompresowanej paczce, należy je więc wypakować do (wszystkie 3 pliki) do folderu (koniecznie zapamiętując którego ;), sugerujemy najprościej: C:\DJI\Scratch), tzn. Na dysku „C” utwórz nowy folder „DJI”, w nim nowy folder „Scratch” i wklej do niego 3 wypakowane pliki – Tello.js; Tello.s2e; TelloChs.s2e.)
Etap 2: Rozszerzenie Scratch o bloki programowania dla DJI Tello Edu
Po pobraniu i instalacji wspomnianych wyżej aplikacji uruchamiamy środowisko programistyczne Scratch 2.0. Następnie przytrzymując lewy klawisz Shift wybieramy z górnej zakładki menu „File” otwierając tym samym rozszerzony panel poleceń. Na samym dole klikamy opcję „Import experimental http extension”. Wyszukujemy pobrane przez nas sterowniki (wybraliśmy C:\DJI\Scratch) i importujemy plik „Tello.s2e”. Minimalizujemy program Scratch 2.0.
Następnie za pomocą wiersza polecenia i aplikacji NODE uruchomimy skrypt, który umożliwi nam sterowanie dronem z poziomu aplikacji Scratch 2.0. (Klikamy lupę obok windows menu „Start” i wpisujemy „cmd.exe” )
Uruchamiamy wiersz polecenia (Lupka->cmd.exe). Dalej, za pomocą wiersza poleceń przechodzimy do folderu z trzema wypakowanymi plikami Tello. Korzystamy z komendy: cd ŚcieżkaDoFolderu. W naszym przypadku pełna komenda wygląda następująco: cd C:\DJI\Scratch i klikamy Enter.
Kiedy wejdziemy do naszego folderu ścieżka poleceń powinna wyglądać tak:
Następnie uruchomimy skrypt Tello.js ,dzięki któremu nasz dron będzie pracował w środowisku Scratch 2.0. Aby go uruchomić konieczna jest wcześniejsza instalacja aplikacji NODE (link podano powyżej). W celu uruchomienia skryptu wpisujemy w wierszu poleceń komendę node tello.js (i zatwierdzamy klikając Enter)
Pojawi się następujący komunikat:
Oprogramowanie sterujące jest gotowe. Teraz minimalizujemy okno Wiersza poleceń (to czarne) i przechodzimy do podłączania drona do komputera.
Etap 3: Podłączanie drona
Na początku uruchamiamy drona (patrząc na kamerę przytrzymujemy przycisk z jego lewej strony). Dalej na komputerze, wyszukujemy w sieciach bezprzewodowych połączenie z naszym dronem (w naszym przypadku to TELLO-D3B1E3) i klikamy Połącz.
Nasz dron jest połączony.
Aby sprawdzić połączenie dobrze jest wykonać prosty test w programie Scratch (mieliśmy go zminimalizowany):
Kiedy zielona flaga wciśnięta -> Wystartuj drona -> Wykonaj obrót o 360 stopni -> Wyląduj
- Z zakładki Control wybieramy blok „When clicked” i umieszczamy go w oknie programowania.
- Z zakładki „More blocks” wybieramy blok „take off” (tł. Startuj) i umieszczamy pod wsześniej wybranym blokiem
- Z zakładki „More blocks” wybieramy polecenie „rotate CW with angle <…>”
(CW oznacza clockwise – zgodnie z ruchem wskazówek zegara // CCW – counterclockwise – przeciwnie do ruchu wskazówek zegara). Ustalamy parametr obrotu o kąt – „360” - Z zakładki „More blocks” wybieramy polecenie „land”(tł. Ląduj) i umieszczamy w naszym skrypcie pod blokiem „rotate CW with angle 360”.
Nasz program jest gotowy. Aby go uruchomić należy kliknąć zieloną flagę. Enjoy!