Miesięczne archiwum: Kwiecień 2019

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

  1. 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.
  2. 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.
  3. 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

  1. Z zakładki Control wybieramy blok „When clicked” i umieszczamy go w oknie programowania.
  2. Z zakładki „More blocks” wybieramy blok „take off” (tł. Startuj) i umieszczamy pod wsześniej wybranym blokiem
  3. 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”
  4. 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!