Nowa aplikacja do programowania MINDSTORMS® EV3 jest nareszcie dostępna do pobrania za darmo i gotowa do pracy.

Aplikacja EV3 Classroom była wypuszczana stopniowo, najpierw dla MacOS w listopadzie 2019, potem dla Windows 10, Androida i Chromebooka rok później w 2020.

Obecnie aplikacja jest dostępna dla wszystkich, więc postanowiliśmy ją przetestować.


We are pleased to announce that we have launched a brand-new EV3 app called ‘LEGO® MINDSTORMS® Education EV3 Classroom’. Featuring a coding language based on Scratch and similar to the LEGO® Education SPIKE™ app, EV3 Classroom will replace the current EV3 Lab and EV3 Programming app products. This is in order to provide a consistent experience, features and content across all of the currently supported computer and tablet devices.

– Powiadomienie z aplikacji LEGO® MINDSTORMS® Education EV3 Teacher Edition

W automatycznym powiadomieniu zacytowanym powyżej jest kilka ciekawych informacji o tym czego spodziewać się od nowej aplikacji do programowania, a także od całej firmy LEGO® w kwestii strategii dotyczącej przyszłych produktów edukacyjnych. Można nawet dopatrzeć się zawoalowanej groźby, że EV3 Classroom ostatecznie stanie się jedyną aplikacją do programowania zestawów MINDSTORMS® EV3. Przynajmniej na razie nie jest to prawdą.

Zanim wyciągniemy wnioski, przyjrzymy się rzeczywistym różnicom między EV3 Lab a EV3 Classroom. Spróbujemy też odpowiedzieć na najważniejsze pytanie - czy nowa aplikacja jest lepsza do programowania robotów?

Jeżeli zastanawiacie się czym w ogóle jest EV3 Lab i dlaczego nigdy wcześniej nie słyszeliście o tej aplikacji, już wyjaśniamy. EV3 Lab to po prostu poprzednia aplikacja do programowania zestawu MINDSTORMS® EV3, do niedawna znana jako LEGO® MINDSTORMS® Education EV3 Teacher Edition, zmieniono tylko jej nazwę.

Informacje na temat samego zestawu LEGO® MINDSTORMS® EV3, czyli chociażby jego możliwości, przegląd klocków i elektroniki w zestawie znajdziecie w tym artykule. Warto od niego zacząć, zwłaszcza jeśli to Wasz pierwszy kontakt z zestawem.

Robot Żuraw od RoboCamp zaprogramowany w apkach EV3

Możecie skoczyć prosto do sekcji, która Was najbardziej interesuje, albo przeczytać cały artykuł od A do Z.

Wymagania

Po pierwsze sprawdźmy czy komputer da radę uruchomić nową aplikację do programowania - EV3 Classroom. Nowa aplikacja to nowe wymagania, więc brak kompatybilności z Windows 7 i 8.1 teoretycznie nie powinien nikogo zaskakiwać.

Jednak firma LEGO® chętnie chwali się wspieraniem produktów wypuszczonych na rynek lata temu, więc brak kompatybilności jest pewnym zaskoczeniem.

Przejdźmy do pozytywów. Doprawdy świetne w EV3 Classroom jest to, że daje pełen dostęp do kodowania na wszystkich urządzeniach, więc nieważne czy macie komputer stacjonarny, laptopa, iPada, tablet z Androidem czy Chromebook - każde urządzenie zadziała! Jest to ważne usprawnienie od poprzedniej aplikacji (EV3 Lab), która teoretycznie pozwalała programować na tablecie, ale w wersji okrojonej do tak absolutnego minimum, że nie da się jej używać w praktyce. Jeżeli chcielibyście ją wypróbować, albo zobaczyć czy warto, zajrzyjcie do tego artykułu, gdzie szczegółowo omawiamy zestaw MINDSTORMS® EV3. Całe szczęście z EV3 Classroom już nie musimy martwić się o tablety.

Obie aplikacje są dostępne w 16 wersjach językowych, czym przyczyniają się do zwiększenia dostępności nauki programowania dla dzieci z większej części świata. Około 5.7 miliardów ludzi na świecie używa języków innych niż angielski do komunikacji, więc jest to ważna cecha. Niestety żadna z oficjalnych aplikacji do programowania MINDSTORMS® EV3 nie została przetłumaczona na język polski.

Skoro o komunikacji mowa, w nowej aplikacji zmieniono sposób łączenia kostki EV3. W EV3 Lab można było (i wciąż można) korzystać z kabla USB, technologii Bluetooth 2.0 lub WiFi, żeby nawiązać połączenie między urządzeniem a kostką EV3. Jednak w nowej aplikacji EV3 Classroom można używać tylko kabla USB albo technologii Bluetooth 4.0 lub nowszej. Połączenie przez WiFi zostało wycofane, co ma pewne konsekwencje dla programowania.

Bez zbędnego przedłużania przedstawiamy listę oficjalnych wymogów dla EV3 Classroom oraz EV3 Lab.

Wymagania EV3 Classroom

Komputer i laptop:

  • 1.5 GHz Intel® Core Duo procesor - równy lub lepszy
  • 4 GB RAM
  • 2 GB miejsca na dysku twardym
  • Bluetooth 4.0 lub wyższy
  • System operacyjny:
    • Windows 10 wersja 1803 lub nowszy
    • macOS Mojave 10.14 lub nowszy

Tablet iOS (kliknij i otwórz)

  • Pad Air 2 lub iPad Mini 4 lub nowszy
  • iOS 11 lub nowszy

Tablet Android (kliknij i otwórz)

  • Ekran o rozdzielczości 8” minimum
  • 3 GB RAM
  • 3 GB miejsca na dysku twardym
  • Bluetooth 4.0 lub wyższy
  • Android 7.0 lub nowszy

Chromebook (kliknij i otwórz)

  • Dwurdzeniowy procesor 1.40 GHz Intel® Celeron® 2955U – równy lub lepszy
  • 4 GB RAM
  • 3 GB miejsca na dysku twardym
  • Bluetooth 4.0 lub wyższy
  • Android 7.0 lub nowszy
  • Wymagany dostęp do Google Play Store (Android App na Chromebooku)
  • Połączenie z internetem

Wymagania EV3 Lab

Komputer i laptop:

  • Procesor 1.5 GHz lub szybszy
  • 2 GB RAM minimum
  • 2 GB miejsca na dysku twardym
  • Port USB lub Bluetooth 2.0 lub wyższy
  • Rozdzielczość ekranu minimum 1024 x 600
  • System operacyjny:
    • Windows 7, Windows 8 i Windows 10 (oprócz Win RT)
    • Mac OS X 10.6 (Snow Leopard); niekompatybilny z Mac OS 10.15 (Catalina) i wyższym

Tablet (kliknij i otwórz)

  • Aplikacja EV3 Lab jest dostępna na Chromebooki, iPady, tablety Android i Fire, ale w wersji mocno ograniczającej możliwości programowania (kliknij tutaj żeby dowiedzieć się więcej), dlatego nie polecamy jej do programowania robotów. Ale jeśli mimo tego chcielibyście ją wypróbować, tutaj znajdziecie oficjalne wymagania od producenta.

Wystarczy jeden rzut oka by zrozumieć, że EV3 Classroom jest przystosowane na nowszy, bardziej zaawansowany sprzęt.

Szczęśliwie wiele szkół posiada sprzęt tego rodzaju. Przez pandemię i przymusowe zajęcia online niektóre szkoły otrzymały nawet dodatkowe fundusze na modernizację swoich pracowni komputerowych. A dzięki temu, że EV3 Classroom traktuje wszystkie urządzenia równo, część uczniów może używać laptopów, podczas gdy inni korzystają z tabletów. Organizacja takich lekcji na pewno byłaby wyzwaniem dla nauczyciela, ale jest to osiągalne. Oznacza to, że mimo wyższych wymagań sprzętowych, EV3 Classroom wciąż jest potencjalnie dostępny dla szerokiej gamy uczniów.

Niestety nie każdy ma dostęp do najnowszych komputerów. Czy to znaczy, że trzeba zapomnieć o programowaniu robotów? Ależ skąd! Dzieci i dorośli mogą uczyć się kodowania przy pomocy graficznych języków programowania na starszym sprzęcie, po prostu nie z najnowszą aplikacją. Nie ma tego złego, bo w starej aplikacji albo większość błędów i usterek została naprawiona, albo rozwiązania można łatwo znaleźć na internecie (błędy nie są charakterystyczne dla starszego oprogramowania, obie aplikacje je mają).

Jeżeli masz zestawy MINDSTORMS® EV3 i starszy sprzęt komputerowy, możesz używać EV3 Lab albo Scratcha. Pierwsza opcja ma więcej możliwości, ale trzeba przyzwyczaić się do interfejsu i sposobu programowania. Czytajcie dalej, żeby dowiedzieć się o niej więcej.

Interfejs użytkownika

Pierwsze wrażenie zawsze robi ekran powitalny. W przypadku EV3 Lab, pierwsze wrażenie można sprowadzić do niespodziewanej dezorientacji.

Wyobraźcie sobie taką oto sytuację. Chętni by przetestować nowy zestaw, otwieracie aplikację do programowania i… nie wiadomo co zrobić dalej. Interfejs wydaje się sugerować, że zanim dotrzecie do edytora, musicie przejść przez obowiązkowy samouczek MINDSTORMS®. Bardziej spostrzegawczy użytkownicy zauważą przycisk “New Project” (Nowy Projekt) tuż poniżej, co na krótko przywróci wiarę we własne możliwości. Lecz trzeba podjąć jeszcze jedną ważną decyzję: czy chcecie rozpocząć nowy program, czy nowy eksperyment? I jaka jest między nimi różnica?

Doświadczeni użytkownicy wiedzą, że najszybsza droga do programowania w EV3 Lab to kliknięcie przycisku “Add Project” (Dodaj Projekt) w lewym górnym rogu, oznaczonego małym znakiem plusa. Tak, znajdziecie go tam od samego początku, ale ten skrót nie jest oczywisty. To tylko jeden z wielu przykładów niejasnych rozwiązań w interfejsie EV3 Lab, co przekłada się na to, że generalnie EV3 Lab wymaga od użytkownika więcej wysiłku. Niekoniecznie dotyczy to samego programowania, ale jeżeli chcecie sprawnie poruszać się po aplikacji i korzystać z jej dodatkowych funkcjonalności, przygotujcie się na lekturę plików pomocy (po angielsku!) przed rozpoczęciem programowania.

Z kolei EV3 Classroom wita nowych użytkowników jasnym wyborem. Możemy przejść przez krótkie wprowadzenie w trzech krokach, albo zupełnie je pominąć i przejść prosto do utworzenia nowego projektu programistycznego. Jasne i proste. Tym prostsze jeżeli już kiedyś mieliście do czynienia z aplikacją LEGO® Education SPIKE - ekran powitalny jest prawie identyczny. Łatwy start w EV3 Classroom jest mile widzianym postępem w porównaniu do starszego oprogramowania.

Następny krok - samouczki wprowadzające. Samouczki od LEGO® są zawsze dobre i warto je przejść, ale EV3 Classroom zbiera dodatkowe punkty za osobny samouczek skierowany bezpośrednio do nauczyciela - Teacher Preparation. Chociaż jego zawartość nie różni się od sekcji Prepare w EV3 Lab, to wezwanie nauczycieli wprost, by zapoznali się z podstawowymi informacjami o oprogramowaniu ma zasadnicze znaczenie. Kiedy pracujecie w szkole z klockami MINDSTORMS®, przygotowanie nauczyciela przed lekcją zasadniczo wpływa na proces uczenia się dzieci. Na przykład przed rozpoczęciem programowania, każdej kostce EV3 powinno nadać się unikalną nazwę, co nie staje się oczywiste automatycznie przy zakupie zestawu. Dobrze widoczne zalecenia od producenta są krokiem we właściwą stronę.

Interfejs Mindstorms EV3 Classroom i EV3 Lab

Sercem każdej aplikacji jest Programming Canvas (albo edytor), gdzie wybieramy i łączymy bloczki programistyczne w stosy (czyli skrypty), żeby stworzyć pełnoprawne programy dla robotów.

Wygląd tej części EV3 Classroom będzie dobrze znany każdemu, kto kiedykolwiek programował w Scratchu. Edytor po prawej, paleta bloczków po lewej, kategorie bloczków przypominają te w Scratchu... Brakuje tylko Sceny i duszków. Nim za nimi zatęsknicie, pamiętajcie że macie coś lepszego w zamian - roboty!

Stworzenie kalki środowiska jakby żywcem wyjętego ze Scratcha ma dwie ważne zalety. Po pierwsze istnieje duża szansa, że taki sposób programowania okaże się bardziej intuicyjny dla uczniów zainteresowanych zaawansowaną robotyką z MINDSTORMS®, bo prawdopodobnie mają już doświadczenie w pracy ze Scratchem (lub SPIKE'em). Po drugie, dzięki temu że wszystkie bloczki są oznaczone kolorystycznie, składanie skomplikowanych programów, a także modyfikowanie ich później idzie naprawdę sprawnie.

Ale zawsze może być lepiej. Przewijając paletę zobaczycie dużo bloczków, co pewnie oznacza dużo możliwości, prawda? Niestety w EV3 Classroom jest wiele nadmiarowych bloczków, dodanych być może by ułatwić programowanie, lub dać użytkownikom wybór w kwestii projektowania rozwiązania. W rzeczywistości nadmiar niepotrzebnych bloczków tworzy bałagan. Co gorsza palety nie można rozciągnąć, żeby zobaczyć bloczki w całości. Na każdy długi bloczek trzeba najechać myszką i zaczekać - wtedy pokaże się cały. To jeszcze nie powód żeby zwinąć żagle, ale jest to żmudny proces, tym dotkliwszy jeśli jeszcze nie znamy bloczków EV3 Classroom.

Edytor EV3 Lab jest skrajnie różny. Niekoniecznie musi to być coś złego. Aplikacja została oparta o LabVIEW, oprogramowanie używane w prawdziwych laboratoriach naukowych, w Europejskiej Organizacji Badań Jądrowych (CERN) oraz w NASA. Bloczki programistyczne są oznaczone ikonami (nazwa pojawia się po wybraniu), każdy ma mnóstwo trybów pracy i parametrów, a wszystkie z nich zostały posortowane do łatwych w przeglądaniu kategorii. Bloczki łączymy w poziome skrypty. Niewykluczone, że dla użytkownika z zerowym doświadczeniem w programowaniu stworzenie prostego programu z wykorzystaniem silnika lub czujnika mogłoby być łatwiejsze właśnie w EV3 Lab.

Proste programy są łatwe do zrobienia w EV3 Lab. Jednak zaawansowane programy są arcytrudne - i to jest główny problem. Dosłownie każdy bloczek ma multum trybów i parametrów, a wszystkie możecie wykorzystać w programie. Do zilustrowania problemu wykorzystamy niepozorny bloczek Wait (Czekaj) - ma aż 68 różnych trybów pracy! Ponadto im bardziej rozbudowujecie program, tym bardziej rozrośnie się jego podgląd WZDŁUŻ I WSZERZ, co skutecznie utrudnia śledzenie całego skryptu na bieżąco. Konsekwencją takich rozwiązań jest to, że użytkownicy mogą łatwo zostać przytłoczeni i stracić zainteresowanie.

Pomimo wad interfejsu, EV3 Lab ma niewątpliwie więcej możliwości programistycznych. W tej sekcji dowiecie się dokładnie które funkcjonalności zostały pominięte w nowszej aplikacji.

Programowanie i bloczki

Zarówno EV3 Classroom jak i EV3 Lab są graficznymi językami programowania, gdzie nie trzeba się martwić o składnię. W pierwszej aplikacji różne kształty bloczków sugerują gdzie należy ich użyć. Druga, starsza aplikacja całkiem pomija kwestię składni poprzez wyposażenie każdego bloczka w masę parametrów do skonfigurowania.

Jedną z największych radości programowania robotów jest wprawianie ich w ruch, więc przyjrzyjmy się bloczkom odpowiedzialnym za kontrolę silników.

Bloczki silnikowe EV3 Classroom i EV3 Lab

W EV3 Lab sprawa jest prosta. Mamy dwa wymienne bloczki do sterowania pojedynczym silnikiem (średnim lub dużym), kolejne dwa do regulowania dwóch silników na raz, i jeszcze dwa bloczki w kategorii Advanced (Zaawansowane): Unregulated Motor oraz Inverted Motor. Działanie poszczególnych bloczków silnikowych można dostosować w zakresie mocy, czasu działania, trybu zatrzymania czy napędu. Ponadto można wyłączyć automatyczną regulację mocy silnika albo łatwo odwrócić kierunek jego obrotu.

Natomiast EV3 Classroom ma 20 bloczków silnikowych posortowanych w dwie osobne kategorie: Movement (Ruch) oraz Motors (Silniki). Jaka jest między nimi różnica?

Robo Rada: Skoro już wspomnieliśmy problem nomenklatury EV3 Classroom, uważajcie żeby nie pomylić “speed” z “power”. W tej aplikacji “speed”, czyli "szybkość", jest regulowana automatycznie i zapewnia jednostajne tempo ruchu. Lecz używając “power”, czyli "mocy", kontrolujecie wyłącznie poziom energii wysyłanej do silnika; ostateczny napęd nie będzie kompensował żadnych oporów, czy poziomu naładowania baterii (w EV3 Lab osiągniecie to przy pomocy bloczka Unregulated Motor). Stosować ostrożnie!

Wbrew swojej nazwie, bloczki z kategorii Motors (Silniki) pozwalają kontrolować tylko jeden silnik. Z kolei kategoria Movement (Ruch) zawiera bloczki odpowiedzialne za sterowanie dwoma silnikami naraz, których najczęściej używa się do programowania poruszania się robota. W sumie mamy aż 20 bloczków, lecz nie wszystkie są potrzebne. Funkcjonalności niektórych bloczków pokrywają się z innymi, co utrudnia znalezienie tego bloczka, którego rzeczywiście potrzebujecie. Oczywiście teraz można zaprogramować to samo na 5 różnych sposobów, tylko po co?

Program w EV3 Classroom na 5 różnych sposobów

Następne w kolejce są bloczki wyświetlania, odpowiedzialne za programowanie ekranu kostki EV3. Możliwości obu aplikacji są bardzo zbliżone, jednak jeśli chcecie samodzielnie stworzyć obrazek, będziecie musieli skorzystać z EV3 Lab. Dobre wieści są takie, że wszystkie pozostałe funkcje (wyświetlanie tekstu, grafik z biblioteki, oraz kontrolowanie światła LED) znajdziecie również w EV3 Classroom.

Bloczki odpowiedzialne za przepływ programu to jedne z najważniejszych bloczków w całej palecie. EV3 Lab ponownie stawia na pozorną prostotę, bo znajdziemy tu w sumie tylko 5 bloczków (Start, Wait, Loop, Switch, Loop Interrupt). Niestety takie rozwiązanie sprawia, że jeżeli wprowadzimy wielowątkowość, warunki, czy cokolwiek bardziej ambitnego niż podstawa, całość niepotrzebnie się komplikuje. Można łatwo dorobić się programu, który jest trudny do odczytania, modyfikacji, czy ulepszenia.

Bloczki przepływu w EV3 Classroom, czyli kategorie Events (Wydarzenia) oraz Control (Kontrola), są łatwiejsze do zastosowania i zrozumienia, częściowo dlatego, że warunki, pętle i polecenia oczekiwania są zupełnie osobnymi elementami. Przypominają klasyczne polecenia używane w większości współczesnych tekstowych języków programowania. EV3 Classroom ma jeszcze jedną zaletę - bloczki broadcast (nadaj komunikat) i when I receive (kiedy otrzymam), dzięki którym można stworzyć sieć komunikacji między indywidualnymi skryptami.

Moja ulubiona kategoria w EV3 Classroom to Events. W EV3 Lab nie było czegoś takiego, a ja lubię używać wydarzeń. Sprawiają, że cały program jest bardziej czytelny.
Adrianna z RoboCamp

Czujniki to oczy i uszy każdego robota. W oryginalnym zestawie MINDSTORMS® EV3 od LEGO® Education znajdziecie 4 czujniki: koloru, dotyku, ultradźwiękowy (tzn. odległości) oraz żyroskop. Każdy z nich można zaprogramować w EV3 Lab i w EV3 Classroom, co jest zdecydowanie dobre. O elektronice z domowej wersji zestawu (Home), czyli czujniku podczerwieni i nadajniku, też nie zapomniano. Nie martwcie się jeśli nie możecie od razu ich znaleźć w EV3 Classroom - są po prostu ukryte. Wystarczy kliknąć opcję “All Codeblocks” ("Wszystkie bloczki"), żeby odkryć bloczki kontrolujące czujniki z zestawu MINDSTORMS® EV3 Home (31313).

Aktualnie w EV3 Classroom nie można programować żadnych innych czujników niż te w zestawie, niestety. Jeśli chcecie wejść na wyższy poziom z dodatkowymi, nieoficjalnymi, albo wycofanymi czujnikami, będziecie musieli wykorzystać do tego EV3 Lab. Więcej na ten temat poniżej.

W EV3 Classroom jest sporo bloczków czujników, ale nie wszystkie są potrzebne. Tak jak w pozostałych przypadkach, w kategorii Sensors (Czujniki) jest wiele bloczków 2-w-1 i 3-w-1, które można łatwo i szybko złożyć samemu. Dlatego też przewijanie tego repertuaru zajmuje sporo czasu, zwłaszcza, że na każdy dłuższy bloczek trzeba najechać myszką żeby zobaczyć go w całości i przeczytać (rozszerzana paleta sprawnie naprawiłaby ten problem). Dobra wiadomość jest taka, że bloczki są posortowane według rodzaju czujnika.

Kolej na bloczki matematyczne. Kategoria Operators (Wyrażenia) w EV3 Classroom robi naprawdę dobre pierwsze wrażenie. Bloczki są jasne, zrozumiałe, ich liczba jest dostateczna, a przy tym nie odstraszają początkującego użytkownika. Choć możliwości programistyczne są bardzo zbliżone do tych z EV3 Lab, to są stanowczo łatwiejsze w zastosowaniu. Niemniej jest kilka różnic miedzy dwoma aplikacjami. W EV3 Classroom wprowadzono dwa nowe bloczki: length of (długość z) oraz mod (reszta z dzielenia przez). Jednocześnie wycofano kilka starych, przede wszystkim exponent (potęga), XOR (alternatywa rozłączna), i truncate (zaokrąglenie do dziesiętnej). Większość z tych działań da się odtworzyć przy pomocy dostępnych bloczków, jednak nie będzie to równie wygodne (i estetyczne) rozwiązanie.

Zmienne i listy znajdziecie w obu aplikacjach. Zdecydowanie przydatna funkcjonalność, lecz warto tu dodać, że w EV3 Classroom czasem po prostu nie ma wyboru - trzeba użyć zmiennej. Wszystko przez jeden z błędów obecnej wersji EV3 Classroom (1.2.2), który uniemożliwia prawidłowe przesyłanie wartości z niektórych bloczków zgłoszenia do bloczków zwykłych oraz logicznych. Aby obejść ten problem, za każdym razem trzeba polegać na zmiennych.

Zwróćcie też uwagę na dane wpisywane do zmiennej czy listy w EV3 Classroom. Ponieważ nie ma automatycznego rozróżnienia między tekstem i liczbami, cokolwiek wpiszecie, tak będzie. Mimo tych niedociągnięć, używanie zmiennych i list jest o wiele łatwiejsze niż było w EV3 Lab.

Wreszcie docieramy do enigmatycznej kategorii My Blocks, czyli Moje Bloczki. Obie aplikacje dają możliwość utworzenia swoich własnych bloczków do wykorzystania w skrypcie. Przyda się zwłaszcza tym użytkownikom, którzy chcą w programie używać powtarzalnych funkcji, albo wprowadzić zaawansowane działania matematyczne w EV3 Classroom.

Robo Rada: Podczas tworzenia nowych poleceń z użyciem silników możecie określić parametr portu używając przypisanego mu numeru (np. port A = 1, port B = 2 itd.). Część z takich numerów znajdziecie w oficjalnym pliku pomocy producenta.

Jeżeli kiedyś mieliście okazję programować w EV3 Lab, to pewnie już zauważyliście, że w EV3 Classroom nie ma kategorii bloczków Advanced, czyli Zaawansowanych. Gdzie się podziały? Otóż do EV3 Classroom przeniesiono tylko dwa takie bloczki: Unregulated Motor (Nieregulowany silnik) jako start motor at 100% power oraz Stop Program (Zatrzymaj program) jako stop all stacks and exit program. Pozostałe 8 bloczków, czyli między innymi Data Logging (Rejestruj dane), albo Invert Motor (Odwróć kierunek silnika), są zwyczajnie niedostępne w nowej aplikacji.

Jeden program w dwóch aplikacjach

Chociaż obie aplikacje do programowania mają podobny potencjał, to zasadniczo się różnią. Oznacza to, że nie wszystkie programy można łatwo "przetłumaczyć" z języka EV3 Lab na język EV3 Classroom. Spodziewajcie się zmian w układzie, a czasem i w rozmiarze programu. Programy odtworzone w EV3 Classroom będą zajmować mniej miejsca na ekranie, choć pewnie będą się składać z większej liczby bloczków. Czasem może nie być konkretnego bloczka w palecie, a czasem nowe możliwości pozwolą osiągnąć efektywniejsze, lub bardziej interesujące rozwiązanie. No i nie zapominajmy o uciążliwych błędach, które trzeba będzie jakoś obejść.

Tyle jeśli chodzi o ogólniki, teraz zobaczcie jak program dla robota Wózek widłowy zmienia się w zależności od aplikacji do programowania. Obejrzyjcie filmiki poniżej, gdzie pokazujemy pełną instrukcję programowania oraz testowanie robota.

Instrukcje budowy Wózka widłowego znajdziecie w serii lekcji CityCamp na MINDSTORMS EV3.

Waszym zdaniem, która aplikacja EV3 jest lepsza do przeprowadzenia lekcji z Wózkiem widłowym?

Oba programy wyjaśnione powyżej sprawiają, że robot wykonuje to samo zadanie autonomicznie. Ale wyglądają kompletnie inaczej! Różnią się kolory, grafiki, a nawet kierunek układania skryptu.

W EV3 Lab parametry i opcje instrukcji programistycznych zazwyczaj stanowią integralną część pojedynczego bloczka. Tymczasem bloczki EV3 Classroom mają jedynie te opcje, które widać od razu, dlatego stworzenie zaawansowanej instrukcji leży całkowicie w gestii użytkownika. Właśnie dlatego warunek w programie Wózka widłowego wymaga tylko jednego bloczka Wait (Czekaj) w EV3 Lab, z kolei w EV3 Classroom potrzeba dwóch bloczków, żeby osiągnąć ten sam efekt - wait until distance is less than 3 cm oraz stop moving.

Warto przy okazji zauważyć, że w EV3 Classroom nie ma rozróżnienia między dużymi i średnimi silnikami. Po prawdzie to rozróżnienie w EV3 Lab było tylko symboliczne, więc usunięcie go można uważać za zaletę. Z drugiej strony opisywanie poszczególnych silników tylko za pomocą portu do którego są podłączone może być niejasne dla młodszych dzieci.

Przy bliższym spojrzeniu można dostrzec więcej podobieństw między dwoma programami. Bloczki kodu wyglądają inaczej, ale polecenia które przedstawiają są porównywalne. Nie tylko można sterować jednym lub dwoma silnikami jednocześnie, większość opcji programowania silników znajdziemy w obu aplikacjach. Co ciekawe, nawet odwrócenie kierunku obrotu silnika poprzez dodanie minusa na początku wartości jego mocy działa w obu aplikacjach! Wyraźnie widać, że chociaż EV3 Classroom wygląda jak Scratch, to trzon aplikacji został wzięty prosto z EV3 Lab.

Szybkie porównanie dwóch programów pozwala też wywnioskować kto jest docelowym użytkownikiem każdej z aplikacji.

EV3 Classroom jest lepsze dla użytkowników, którzy są bardziej niezależni i nie trzeba im przypominać o podstawowych parametrach, jak określenie portu do którego podłączony jest silnik. Z kolei EV3 Lab wymaga od użytkownika większej dbałości o detale ("czy na pewno zaznaczyłeś ten parametr?") i cierpliwości do wertowania wszystkich dostępnych opcji.

Czy macie z nimi coś wspólnego?

Unikalne funkcjonalności EV3 Lab

Pomimo niedoskonałego interfejsu, w EV3 Lab można tworzyć wysoko zaawansowane programy, co środowisko wspiera wyrafinowanymi narzędziami i funkcjonalnościami. Nic dziwnego że część z nich wyrzucono z nowszej aplikacji w celu uproszczenia procesu nauki programowania dla dzieci.

Zobaczcie czego nie znajdziecie w EV3 Classroom.

Pożegnajcie projekty wykorzystujące kilka kostek EV3 naraz (tj. Daisy Chaining). Możliwość łączenia kostek EV3 przez WiFi została usunięta wraz ze wszystkimi opcjami komunikacji, które pozwalały na kontrolowanie więcej niż tylko jednej kostki w programie.

Nagrywanie nowych dźwięków (Sound Editor) i projektowanie unikalnych grafik (Image Editor, bloczek Shapes) do wyświetlania na ekranie kostki nie jest możliwe w EV3 Classroom. Z punktu widzenia nauczyciela te narzędzia nie były specjalnie ważne, ale pozwalały uczniom z zacięciem artystycznym spersonalizować swój projekt i zaczerpnąć więcej radości z programowania.

Skoro mowa o projektach, nie przedłużajcie tematu. Wiele zaawansowanych bloczków i narzędzi do prowadzenia długoterminowych projektów (np. Data File Log Manager, albo bloczki Data Logging i Keep Awake) nie zostało przeniesionych do nowszej aplikacji. Dla większości szkół nie jest to powód do zmartwień, ale może to pokrzyżować ambitne plany kilku klubów robotyki.

Z nowszej aplikacji wycięto kilka operacji matematycznych, takich jak XOR (alternatywa rozłączna), exponent (potęga), bloczek advanced (do trygonometrii), truncate (zaokrąglenie do dziesiętnej) oraz range (zakres). Jeśli jesteście kreatywni i lubicie matematykę, to pewnie uda Wam się wymyślić alternatywne rozwiązanie, choć pewnie nie tak zgrabne.

Mindstorms EV3 Lab Bloczki czujników

Jeśli przyjmiemy, że EV3 Classroom jest w kwestii czujników spoza oficjalnego zestawu ściśle trzymającym się zasad formalistą, to EV3 Lab jest prawdziwym buntownikiem. W starszej aplikacji do programowania możecie używać czujników z serii EV3, NXT, a nawet elektroniki wyprodukowanej przez inne firmy! Wolność wyboru jest tu potężnym narzędziem. Potrafi przeobrazić robota w prawie każde urządzenie, które umiecie sobie wyobrazić i złożyć. Narzędzie Block Import (Import bloczków) jeszcze bardziej ułatwia cały proces. Szkoda, że nadszedł zmierzch anarchii w świecie EV3.

Na szczęście EV3 Lab wciąż jest dostępny. Aby skorzystać z tych niesamowitych narzędzi, wystarczy pobrać EV3 Lab za darmo i zainstalować aplikację na komputerze z systemem Windows.

Dobrej zabawy!

Lekcje na EV3 Classroom od RoboCamp

Wnioski, czyli która aplikacja jest lepsza

EV3 Lab i EV3 Classroom to dwa fundamentalnie różne języki programowania, wyraźnie zaprojektowane w różnych celach.

Do stworzenia starszej aplikacji inspirowano się LabVIEW. W konsekwencji EV3 Lab przedstawia programowanie w kontekście pracy z maszynami, takimi jak automaty czy przyrządy używane w laboratoriach badawczych. Rzeczywiste urządzenia są tu w centrum uwagi, a do ich użycia zachęcają szerszy wachlarz części elektronicznych, które można dokupić osobno i zaprogramować, a także dodatkowe opcje, na przykład łączenie i wykorzystanie w projekcie kilku kostek EV3 naraz.

Natomiast nowa aplikacja EV3 Classroom jest blisko spokrewniona ze Scratchem, pierwotnie stworzonym by przygotować dzieci do programowania w językach tekstowych. W EV3 Classroom użytkownik składa pojedyncze polecenia w skrypt tak, by stworzyć logiczny ciąg wydarzeń i działań, co przy okazji uczy go podstawowej idei składni oraz różnic między rozmaitymi poleceniami programistycznymi.

Geneza środowiska do programowania może nam dużo podpowiedzieć, ale żeby wybrać aplikację odpowiednią dla siebie i uczniów, warto zastanowić się co chcecie osiągnąć przez programowanie robotów z klocków EV3. Pewnie nie wiecie czy Wasi uczniowie planują w przyszłości pracować w specjalistycznym laboratorium albo stworzyć aplikację na telefon, ale na pewno da się przewidzieć co chcecie osiągnąć podczas wspólnych lekcji.

Mówiąc krótko, jeśli chcecie po prostu wprowadzić dzieciaki w podstawy programowania przy wsparciu robotów, wybierzcie EV3 Classroom. Aplikacja jest łatwiejsza do zrozumienia, przyjemniejsza w pracy i przekaże uczniom fundamentalne kompetencje, które będą mogli rozwijać w przeróżnych kierunkach. Aczkolwiek jeśli chcecie realizować długoterminowe projekty wykraczające poza jedną lekcję, wykładać nauki ścisłe przy pomocy robotów, albo prowadzić eksperymenty z dodatkowymi czujnikami, to lepszą aplikacją może okazać się EV3 Lab.

Proste, prawda? Zanim podejmiecie ostateczną decyzję, zwróćcie uwagę również na słabości każdej aplikacji. EV3 Lab, na przykład, sprawia że zaawansowane programy wyglądają bardzo masywnie i są trudniejsze w zrozumieniu. Naprawdę szkoda, tym bardziej że ta aplikacja dysponuje narzędziami użytecznymi tylko w złożonych programach. Interfejs jest mniej intuicyjny i wygląda trochę anachronicznie. Niemniej jednak więcej problemów przy łączeniu kostki EV3 przez WiFi napotkaliśmy w nowej aplikacji, czyli EV3 Classroom. To nowe środowisko jest bardziej przyjazne dla użytkownika, ale też przeładowane nadmiarowymi, zbędnymi bloczkami kodu; co więcej, kilka przydatnych bloczków zostało usuniętych.

Jakby tego było mało, w EV3 Classroom będziecie musieli radzić sobie z błędami i nauczyć się je obchodzić. Zaczęliśmy już pracować nad osobnym artykułem na temat błędów w EV3 Classroom oraz jak je rozwiązać, więc bez obaw - pomoc jest w drodze! Tymczasem radzimy tworzyć programy zgodnie z naszymi instrukcjami programowania krok po kroku żeby uniknąć problemów.

Jest nad czym się zastanawiać.

Chociaż szczerze mówiąc, niektórzy mogą nie mieć w ogóle wyboru. Jeżeli korzystacie ze starszych komputerów, które nie spełniają oficjalnych wymagań EV3 Classroom, będziecie musieli zostać przy EV3 Lab. Z kolei jeśli programujecie przy pomocy tabletów, wówczas tylko praca z EV3 Classroom ma jakikolwiek sens, bo druga aplikacja została tak okrojona w wersji na tablety, że mało który bloczek się ostał.

Koniec końców, to czy zdecydujecie się na EV3 Classroom czy EV3 Lab zależy od Waszego sprzętu i osobistych preferencji.

W RoboCamp pracowaliśmy z obiema aplikacjami i nie potrafimy wskazać bezspornego zwycięzcy. Żadna z tych aplikacji nie jest doskonała. Jednak pytani nieoficjalnie którą aplikację do programowania MINDSTORMS® EV3 preferują, członkowie zespołu RoboCamp w większości wskazali EV3 Classroom.



O autorach
Dominika Skrzypek
International Education Specialist
Miłośniczka robotów, kształcenia ustawicznego oraz języków – naturalnych, jak i sztucznych. Z wykształcenia pedagog i lingwistka zarazem, w zespole RoboCamp nadzoruje publikowane treści i odpowiada za przygotowanie anglojęzycznych nauczycieli do pierwszej lekcji robotyki.
Ola Syrocka
Curriculum Developer
Z wykształcenia mgr. inż. fizyki technicznej, Ola uczy dzieci robotyki od ponad 8 lat. Odgrywa kluczową rolę w projektowaniu wewnętrznego programu nauczania, łączeniu elementów STEAM z poszczególnymi lekcjami i współtworzeniu serii lekcji RoboCamp. Oprócz tego szkoli nauczycieli i pomaga im przeprowadzić lekcje robotyki.