Jak programować Lego Mindstorms EV3 w Pythonie?

Jak programować Lego Mindstorms EV3 w Pythonie?

Nie wszyscy wiedzą, że zestaw Lego Mindstorms EV3 można programować za pomocą języka Python, a właściwie jego implementacją MicroPython.

MicroPython to w skrócie implementacja programowa języka programowania Python 3 zoptymalizowanego do pracy na mikrokontrolerze.

Kostka EV3 to w zasadzie mikrokontroler wyposażony w wyświetlacz, układ ładowania, wejścia / wyjścia, przyciski, diody. Python natomiast to świetny język do rozpoczęcia lub kontynuowania nauki programowania.

W artykule tym przedstawię proces instalacji firmware ev3dev2 na kostce EV3 oraz instrukcję jak przygotować komputer. W kolejnych natomiast przykładowe projekty wraz z kodem źródłowym do własnych eksperymentów.

Czego potrzebujesz?

  • kostkę Lego Mindstorms EV3
  • kartę microSD o maksymalnej pojemności 32GB, jednak nie mniejszej jak 4GB
  • komputer z systemem Windows 10 lub macOS
  • czytnik kart microSD podłączony do komputera
  • przewód mini-USB (ten z zestawu Lego Mindstorms do podłączenia kostki EV3 do komputera). Jeżeli nie wiesz jaki to przewód, bez obaw, jego zdjęcie znajduje się poniżej.
przewód mini-USB

Dodatkowo, potrzebne będą:

  • Program balenaEtcher do nagrania ev3dev2 na kartę microSD, którego pobierzesz ze strony balena.io/etcher
  • Plik z oprogramowaniem kostki EV3 – ev3dev2 z tej strony
  • Visual Studio Code ze strony code.visualstudio.com, jest to program (edytor, IDE), w którym będziesz pisał programy

Nagranie ev3dev2 na kartę microSD

Jeżeli masz już pobrane wszystkie pliki z listy powyżej, to znajdź wśród nich plik z rozszerzeniem *.zip, jego nazwa będzie dość długa, zaczynająca się ev3dev-stretch-ev3-generic.

Uruchom teraz instalator programu balenaEtcher. Na pierwszym ekranie instalatora kliknij I Agree (oczywiście po przeczytaniu warunków umowy 😉 ) po czym właściwy proces instalacji powinien się rozpocząć.

Jeżeli instalacja się powiodła, uruchom program balenaEtcher.

balenaEtcher - okno programu

Klikając w przycisk Select Image wybierz na komputerze plik obrazu *.zip który uprzednio pobraliśmy ze strony ev3dev.org/downloads. Teraz możesz włożyć kartę microSD do czytnika. Następny krok to wybór docelowego nośnika (karty), na który chcesz nagrać obraz.

Uwaga! Sprawdź dwa razy czy wybrana została właściwa karta. Zdarzyć się może, że do komputera podłączone są inne nośniki USB (zewnętrzne dyski, pendrive’y) i to one zostaną wybrane przez program. Z tego względu najlepiej się upewnić klikając change pod ikonką dysku i ręcznie wybrać kartę microSD przeznaczoną dla kostki EV3.

Sprawdzone? Zatem można klikać na Flash! Nagrywanie obrazu na kartę powinno zająć kilka minut. Po zakończonym procesie program poinformuje Cię o tym odpowiednim komunikatem.

Karta gotowa, czyli pora na kolejny krok! 🙂

Uruchamienie ev3dev2 na kostce EV3

Upewnij się, że kostka EV3 jest wyłączona. Umieść kartę microSD w gnieździe kostki, po czym włącz ją.

Wskazówka! Naklej fragment taśmy klejącej na zewnętrzną część karty (nie zaklejając styków) a łatwiej będzie Ci tę kartę w przyszłości wyciągnąć

Chwilę to potrwa, ale po kilku minutach kostka uruchomi się witając Cię w nowy sposób.

Przygotowanie komputera do pracy z ev3dev2

W pierwszym kroku uruchom proszę program instalacyjny Visual Studio Code. Jego nazwa będzie rozpoczynała się ciągiem VSCodeUserSetup. Ustawienia domyślne instalatora są w większości przypadków właściwe, zatem klikając przycisk Next na kolejnych trzech ekranach instalatora przeprowadzisz proces instalacji programu. Ostatni ekran poinformuje Cię, że wszystko jest OK. Naciśnij przycisk Finish. Program VS Code uruchomi się samoczynnie.

Drugim krokiem będzie konfiguracja programu, a właściwie instalacja niezbędnych rozszerzeń. Poniżej znajduje się widok okna programu. Kliknij na ikonę zaznaczoną kolorem niebieskim, jest to zakładka rozszerzeń.

Visual Studio Code - instalacja rozszerzeń

W polu wyszukiwania rozszerzeń (zaznaczone kolorem zielonym) wyszukaj rozszerzenia z poniższej listy:

  • Python – dzięki niemu program Visual Studio Code będzie “rozumiał” język Python i odpowiednio kolorował kod i jego składnię
  • LEGO® MINDSTORMS® EV3 MicroPython – wtyczka umożliwiająca poprawną komunikację pomiędzy komputerem oraz kostką EV3

Instalacja rozszerzeń odbywa się przez naciśnięcie przycisku Install zaznaczonego kolorem pomarańczowym

Visual Studio Code - instalacja rozszerzeń

Konfiguracja komputera za Tobą. Na koniec warto zrestartować teraz program Visual Studio Code by mieć pewność, że zainstalowane właśnie wtyczki zostały uruchomione.

Podłączenie kostki do komputera

Pora sprawdzić, czy całość łączy się ze sobą oraz działa właściwie. W tym celu napiszesz prosty programik, który sprawi, że kostka wyda dźwięk po naciśnięciu dowolnego z przycisków. Do jego wykonania nie będą wykorzystywane inne elementy LEGO poza kostką EV3.

Wczytanie przykładowego projektu odbywa się w następujący sposób:

  1. Kliknij na Explore example projects – zaznaczone poniżej kolorem pomarańczowym
  2. Z listy dostępnych programów wybierz Mission Button Menu – zaznaczone kolorem czerwonym
  3. W polu tekstowym wpisz nazwę projektu testowego lub pozostaw tą, która się pojawi, czyli button_quickstart
  4. Naciśnij klawisz enter
  5. Otworzy się okno wyboru katalogu, w którym chcesz zapisać nowo utworzony projekt testowy
Visual Studio Code - przykładowy projekt

Okno z utworzonym projektem testowym wyglądać powinno tak jak na widoku poniżej:

Visual Studio Code - przykładowy projekt

Nie pozostaje Tobie nic innego jak podłączyć kostkę EV3 do komputera przewodem USB, oraz wykonać poniższe czynności:

  1. kliknij na EV3DEV DEVICE BROWSER zaznaczony poniżej kolorem zielonym
  2. wybierz Click here to connect to a device, kolor żółty
  3. z pola zaznaczonego kolorem czerwonym wybierz swoją kostkę, jej nazwa to ev3dev, odczekaj chwilę, jeżeli nie pojawi się od razu. Czasem może być konieczne odłączenie przewodu USB i podłączenie go ponownie
Visual Studio Code - łączenie z kostką EV3

Po wybraniu kostki, w dolnym lewym polu opisanym jako EV3DEV DEVICE BROWSER pojawi się nazwa naszej kostki wraz z informacją o statusie połączenia.

  • czerwony kolor oznacza brak połączenia
  • żółty, że nasze połączenie jest właśnie w trakcie ustanawiania
  • zielony natomiast, że nasza kostka jest gotowa do pracy.
Visual Studio Code - łączenie z kostką EV3

Prawie gotowe!

Kliknij proszę na ikonkę wysyłania programu do urządzenia, czyli zaznaczoną na poniższym ekranie kolorem czerwonym:

Visual Studio Code - łączenie z kostką EV3

Program zostanie wysłany do kostki EV3. Aby go uruchomić, na kostce przejdź do File Browser używając przycisków góra / dół i zatwierdzając środkowym, następnie przejdź do katalogu buttons_quickstart (nazwa naszego projektu wybrana wcześniej) i ponownie używając strzałek wyszukaj pliku main.py i uruchom go środkowym przyciskiem.

Gotowe, program przywita Cię poniższym widokiem.

Lego Mindstorms EV3 z zainstalowanym ev3dev

Wypróbuj program naciskając przyciski kostki EV3, w rezultacie usłyszysz różne dźwięki przypisany do każdego z klawiszy.

W następnych artykułach dotyczących języka Python i Lego Mindstorms EV3, postaram się przybliżyć Tobie działanie kodu w tym oraz innych przykładach.

Na zakończenie informacja – niniejszy artykuł powstał w oparciu o Getting started with LEGO® MINDSTORMS® Education EV3 MicroPython dostępne do pobrania na stronie https://education.lego.com/en-us/support/mindstorms-ev3/python-for-ev3