Konfigurowanie sprzętu i oprogramowania

Prezentacja na temat „Interfejs modułu EV3”. Wymień swój mózg w Lego Mindstorms

- Kogo chciałbyś - syna czy córkę?
- Synu!
- Dlaczego?
- Chcę helikopter sterowany radiowo!!!
Anegdota nieśmieszna i sztampowa, ale bez niej nie można rozpocząć tej publikacji – najlepiej oddaje ona istotę tego, o czym będzie mowa dalej. Jednak już z tytułu rozumiesz, o czym mówimy.

Ostrożnie! Publikacja może wywołać nieodpartą chęć posiadania syna.

Lekcja historii

Firmy LEGO (nazwa pochodzi od duńskiego wyrażenia „leg godt”, „Baw się z przyjemnością”) nie trzeba przedstawiać – powstała w 1932 roku, choć pierwsze znane plastikowe klocki pojawiły się znacznie później, bo w 1947 roku. Warto zauważyć, że Klocki LEGO produkowane w tamtych latach są w pełni kompatybilne z tymi produkowanymi obecnie.

Historia powstania firmy wydana przez Pixar z okazji 80-lecia LEGO:

Firma produkuje obecnie około 20 miliardów części rocznie, czyli ponad 630 sztuk na sekundę. W aktualnej ofercie modelowej znajduje się ponad 600 różnych zestawów konstrukcyjnych i tak się składa, że ​​seria Mindstorms to swego rodzaju szczyt myśli technicznej, najbardziej wyrafinowany zestaw konstrukcyjny. Krótko mówiąc, pozwala na tworzenie pełnoprawnych robotów.

Według Wikipedii seria LEGO Mindstorms została po raz pierwszy wprowadzona w 1998 roku. 8 lat później (w 2006 roku) narodził się zestaw LEGO Mindstorms NXT 1.0, a już w 2009 roku zestaw LEGO Mindstorms NXT 2.0. Dzisiaj porozmawiamy o LEGO Mindstorms EV3– ostatnia (trzecia) generacja projektanta terminatora, która została zaprezentowana niemal rok temu, 4 stycznia 2013 roku (do sprzedaży trafiła dopiero pół roku później).

Różnice pomiędzy EV3 i NXT 2.0

W zasadzie główna idea pozostaje ta sama – seria przeznaczona jest do montażu programowalnych robotów. Dlatego pierwsze pytanie, które się pojawia, to co się zmieniło od czasu wypuszczenia poprzedniego projektanta i czy warto kupić nowego? Główną różnicą są zaktualizowane czujniki/silniki i, co najważniejsze, EV3 Smart Brick (EV oznacza EVolution):
Jak widać różnica jest dość znacząca – dziwne byłoby, gdyby za 4 lata zmieniono tylko rozdzielczość ekranu i zestaw naklejek.

Kolejną różnicą jest to, że seria NXT była sprzedawana w kilku wersjach (w różnych latach) i reprezentowała różne zestawy, podstawowy i zasobowy. Nowy EV3 ma z tym łatwiej – na razie sprzedawany jest w wersji podstawowej – (601 części), z której można zrobić naprawdę sporo rzeczy. Ale jeśli chcesz, możesz kupić podstawowy zestaw (541 części) z dodatkowymi czujnikami i częściami (nikt też nie zawraca sobie głowy używaniem części od zwykłych projektantów). Nawiasem mówiąc, zwróć uwagę na pięciocyfrowe numery artykułów - firma przeszła na tę numerację w 2013 roku.

Jeśli chodzi o kompatybilność, wszystko, co możliwe, zostało tutaj zrobione. Wszystkie czujniki i silniki NXT są kompatybilne z EV3 i są rozpoznawane jako NXT. Czujniki EV3 nie współpracują z NXT, ale silniki EV3 wydają się być kompatybilne. Klock NXT można zaprogramować za pomocą oprogramowania EV3, ale niektóre funkcje mogą być niedostępne, ale zaprogramowanie klocka EV3 za pomocą oprogramowania NXT bez rozwiązań innych firm nie będzie możliwe.

Wewnątrz pudełka

Nawet gdy byłam mała i jeździłam z rodzicami do centralnego Świata Dziecka (kiedy jeszcze tam był), na Łubiankę – już wtedy nie mogłam oderwać wzroku od pudełek z LEGO. Potem nie było Giktimesa, ani nawet Habr, ale od tego czasu pudełka pozostały tak samo jasne i soczyste, nawet w wieku dorosłym aktywują proces ślinienia) Pod tym względem inni producenci muszą się wiele nauczyć.

Częścią pudełka jest tak naprawdę (jeśli ją wytniesz) tor z różnymi strefami kolorów, który można wykorzystać dla robotów z czujnikiem koloru.

Wszystkie części są starannie poukładane w woreczkach, w zestawie znajduje się instrukcja oraz zestaw naklejek. Przyjrzyjmy się szybko zawartości zestawu.

Ja EV3, czyli blok intelektualny, czyli serce systemu, czyli „cegła” lub „kostka”. Służy jako centrum sterowania i elektrownia dla Twojego robota i posiada następujące elementy funkcjonalne:

– Wielofunkcyjny monochromatyczny wyświetlacz o rozdzielczości 178x128
– Interfejs sterujący z sześcioma przyciskami i możliwością zmiany podświetlenia (3 kolory) sygnalizującego tryb pracy
– 4 porty wejściowe (1, 2, 3, 4) do podłączenia czujników
– 4 porty wyjściowe (A, B, C, D) do wykonywania poleceń
– 1 złącze miniUSB umożliwiające podłączenie EV3 do komputera
– 1 port hosta USB (na przykład do podłączenia kilku EV3 w jednym łańcuchu)
– 1 slot na karty pamięci microSD (do 32 GB) – w celu zwiększenia ilości dostępnej pamięci EV3
– Wbudowany głośnik

EV3 Brick obsługuje także Bluetooth, WiFi (za pośrednictwem adaptera USB NETGEAR WNA1100 Wireless-N 150) oraz posiada interfejs programowy do komunikacji z komputerami, który umożliwia tworzenie programów i konfigurowanie rejestrowania danych bezpośrednio na mikrokomputerze EV3.

» Duży serwomotor EV3 (2 sztuki). Zaprojektowany do współpracy z mikrokomputerem EV3 i posiada wbudowany czujnik obrotu z dokładnością pomiaru do 1 stopnia. Za pomocą tego czujnika silnik można połączyć z innymi silnikami, umożliwiając robotowi poruszanie się ze stałą prędkością. Ponadto czujnik obrotu można również wykorzystać w różnych eksperymentach, aby dokładnie odczytać dane dotyczące odległości i prędkości.

– Wbudowany czujnik obrotu z dokładnością pomiaru do 1 stopnia
– Maksymalna prędkość do 160-170 obr./min
– Maksymalny moment obrotowy 40 Ncm

» Średni serwomotor EV3. Idealny do zadań, w których szybkość i responsywność, a także rozmiar robota są ważniejsze niż jego udźwig.

– Wbudowany czujnik obrotu z dokładnością pomiaru do 1 stopnia
– Maksymalna prędkość do 240-250 obr./min
– Maksymalny moment obrotowy 12 Ncm
– Automatyczna identyfikacja przez oprogramowanie EV3

» Czujnik koloru (EV3). Potrafi wykryć 8 różnych kolorów, chociaż może być również używany jako czujnik światła.

– Mierzy odbite światło czerwone i światło otoczenia, od całkowitej ciemności do jasnego światła słonecznego
– Przechwytuje i identyfikuje 8 kolorów
– Częstotliwość odpytywania do 1 kHz
– Automatyczna identyfikacja przez oprogramowanie EV3

» Czujnik dotykowy (EV3). Pozwala robotowi reagować na dotyk, rozpoznaje trzy sytuacje: dotknięcie, kliknięcie i puszczenie. Jest także w stanie określić ilość kliknięć, zarówno pojedynczych, jak i wielokrotnych.

» Cyfrowy czujnik podczerwieni (EV3). Aby wykryć zbliżanie się robota. Jest także w stanie przechwytywać sygnały IR z latarni IR, co pozwala na tworzenie zdalnie sterowanych robotów i systemów nawigacji do pokonywania przeszkód.

– Pomiary przybliżające/oddalające w promieniu 50-70 cm
– Promień wykrywania sygnału IR do 2 metrów
– Do 4 indywidualnych kanałów odbioru sygnału
– Otrzymuj polecenia zdalnego sterowania na podczerwień
– Automatyczna identyfikacja przez oprogramowanie EV3

» Zdalny sygnalizator podczerwieni. Zaprojektowany do użytku z czujnikiem podczerwieni EV3. Lampa emituje sygnał IR, który jest odbierany przez czujnik - może pełnić funkcję pilota do mikrokomputera EV3, przesyłającego sygnały do ​​czujnika IR.

– Do 4 indywidualnych kanałów transmisji sygnału (przełącznik bezpośrednio na korpusie)
- Posiada przycisk i przełącznik do włączania/wyłączania
– Gdy działa lampa ostrzegawcza na podczerwień, świeci się zielona dioda LED
– Automatyczne wyłączanie w przypadku bezczynności przez ponad 1 godzinę
– Zasięg do 2 metrów

W osobnej torbie znajdują się przewody umożliwiające podłączenie czujników i silników do kostki, a także kabel USB umożliwiający podłączenie kostki do komputera.

Warto zwrócić uwagę na dwie istotne kwestie. Po pierwsze, istnieją inne czujniki Lego, takie jak:

» Czujnik żyroskopowy (EV3). Cyfrowy czujnik żyroskopowy EV3 może mierzyć ruch obrotowy robota, a także wykrywać zmiany w jego ruchu i pozycji. Tryb pomiaru kąta z dokładnością ± 3 stopnie; wbudowany żyroskop wykrywa obroty z momentem obrotowym do 440 stopni/s; częstotliwość odpytywania do 1 kHz.

» Czujnik ultradźwiękowy (EV3). Generuje fale dźwiękowe i rejestruje ich odbicia od obiektów, mierząc w ten sposób odległość do obiektów. Może być również używany w trybie sonaru, emitując pojedyncze fale. Może wychwytywać fale dźwiękowe, które będą wyzwalaczami uruchomionych programów. Mierzy odległości w zakresie od 1 do 250 cm, a dokładność pomiaru wynosi ± 1 cm.

Po drugie, obsługuje czujniki i inne akcesoria zewnętrznych producentów, takich jak HiTechnic i Mindsensors - oferują one wszelkiego rodzaju joysticki, czujniki odległości na podczerwień, czujniki magnetyczne, kompasy, żyroskopy, akcelerometry, timery, multipleksery, przeguby kulowe itp. Jeśli więc zadasz sobie pytanie, możesz znaleźć wiele interesujących rzeczy.

Ogólnie rzecz biorąc, jak już rozumiesz, LEGO jest dla prawdziwych chłopców!

Pierwszy model

Do zestawu dołączona jest papierowa instrukcja, z której można złożyć jeden model - rodzaj gąsienicowego pojazdu samobieżnego.

Na początku byłem zaskoczony, bo nawet najprostsze zestawy (np. seria LEGO Creator) zawsze zawierają kilka instrukcji, ale nagle zabrakło papieru lub zabrakło miejsca w pudełku. Okazało się... że tylko na oficjalnej stronie zaproponowano złożenie 17 różnych robotów z zestawu części! Dlatego 17 instrukcji w pudełku byłoby naprawdę zbędne (zarówno dla logistyki, jak i dla lasów natury). Oto nazwy robotów: EV3RSTORM, GRIPP3R, R3PTAR, SPIK3R i TRACK3R. ROBODOZ3R, BANNER PRINT3R, EV3MEG, BOBB3, MR-B3AM, RAC3 TRUCK, KRAZ3, EV3D4, EL3CTRIC GUITAR, DINOR3X, WACK3M i EV3GAME - instrukcje do nich trzeba będzie pobrać z Internetu, a także oprogramowanie umożliwiające podłączenie EV3 do komputer.

Instrukcje są bardzo szczegółowe, trudno je pomylić. Syn powiedziałże części w workach nie są zbyt dobrze zapakowane - na pierwszej stronie może zaistnieć potrzeba otwarcia 3 różnych torebek, ale to też są drobnostki.

Kostka EV3 wymaga zasilania, do zasilania którego można użyć baterii (brak w zestawie) lub 6 baterii AA. Patrząc w przyszłość, potrzebne będą jeszcze 2 baterie (ale małe) do zasilania sygnalizatora podczerwieni (czyli pilota).

Dziecko (7 lat) zmontowało pierwszy model w około 30 minut.

Proces okazał się nie tak ekscytujący, jak na przykład składanie modeli LEGO Technics - instrukcja sugeruje złożenie robota, który wcale nie jest najciekawszy: zawiera tylko duże części, wśród których znajdowały się prawie wszystkie czujniki i silniki - najwyraźniej po to, aby zademonstrować działanie każdego z nich.

Jednak efekt przerósł wszelkie oczekiwania dzieci – po raz pierwszy zbudował model, który mógł samodzielnie poruszać się: do przodu i do tyłu, obracać się, obracać w miejscu, skręcać mackami…

Uruchomienie odbywa się z klocka EV3, dla którego należy nacisnąć kilka przycisków na panelu przednim. Niektóre akcje można zaprogramować bezpośrednio na kostce: wybierz liczbę iteracji, skonfiguruj sygnał dźwiękowy i tak dalej – nie da się wszystkiego opowiedzieć w jednym artykule, wypal instrukcje.

Oprogramowanie

Nie było potrzeby programowania złożonego powyżej modelu za pomocą komputera. Niemniej jednak istnieje taka możliwość, na różnych poziomach hardkoru.

Dziecko najłatwiej zacząć od oprogramowania oferowanego przez producenta, które dostępne jest zarówno dla systemu Windows, jak i OS X. W drugim przypadku dystrybucja waży 666 MB, a zainstalowana aplikacja zajmie gigabajt. Nazywa się LEGO Mindstorms EV3 Home Edition i został opracowany wspólnie ze znaną firmą LabView. Na stronie LEGO znajduje się całkiem sporo edukacyjnych materiałów programistycznych.

Zaraz po uruchomieniu pojawia się przed nami interaktywny „garaż” robotów, które można złożyć z zestawu:




Wybieramy ten, który nam się podoba i przystępujemy do montażu: zobaczymy interaktywną instrukcję montażu, filmy, a także wybór różnych misji, które można wykonać ze złożonym robotem. Dlatego dystrybucja ważyła tak dużo.








Nie widzę sensu opisywania wszystkiego szczegółowo: szybko sam pobierzesz aplikację i zobaczysz, co tam jest i na jakim poziomie. Wspomnę tylko o jednym z mankamentów, które najbardziej utkwiło mi w pamięci: interfejs nie jest zbyt przyjazny (zwłaszcza dla dzieci) – aplikacja pachnie jakimś klientem banku.

Jeszcze raz warto zaznaczyć, że kostką EV3 można sterować z poziomu smartfona pracującego na systemach operacyjnych Android lub iOS, dla których istnieją osobne aplikacje.

Jeśli tego wszystkiego było mało, możesz zwiększyć stopień hardkoru. Istnieją różne oprogramowania sprzętowe dla klocka EV3, które pozwalają rozszerzyć jego możliwości, prędkość itp. Tutaj na przykład alternatywny firmware leJOS EV3 - firmware z jvm, który pozwala na programowanie EV3 w Javie. Chcesz to w innym języku? OK, Google - masz prawie 60 opcji do wyboru: ASM/C/C++/Perl/Python/Ruby/VB/Haskell/Lisp/Matlab/LabVIEW i wiele, wiele więcej.

Nie będę o tym mówił szerzej z kilku powodów: po pierwsze, jestem kompletnym fałszywym programistą (całe nadzieje pokładam w moim synu), po drugie, jak dotąd udało nam się złożyć tylko jeden model (i mamy w weekend zajmę się drugim), a po trzecie - już złożyłeś zamówienie u tego projektanta i niedługo sam się wszystkiego dowiesz ;) A tak na serio, artykuł jest już ogromny - lepiej przestudiować dwa linki: raz i dwa razy.

Cóż, kolejnym dużym plusem są społeczności LEGO, których jest mnóstwo na całym świecie. Możesz być pewien, że na każdym etapie eksperymentów z robotami zawsze znajdziesz osoby o podobnych poglądach i takie, które pomogą w rozwiązaniu problemu. Oprócz przyjaznych społeczności, w Internecie publikowana jest ogromna różnorodność różnych instrukcji, modeli, źródeł, filmów i materiałów szkoleniowych. Wszystko to oznacza jedno: z Mindstorms nie będziesz się nudzić.

Plusy i minusy

Produkty LEGO od wielu lat słyną ze swojej jakości, więc nie ma pod tym względem żadnych zastrzeżeń: efektowne pudełko, części, naklejki, instrukcja - wszystko dopracowane w najdrobniejszych szczegółach. Dlatego pozwolę sobie przymknąć oczy na wszystkie „małe zalety” w porównaniu z jedną dużą: różnorodność możliwych kombinacji projektów, które można wykonać nawet ze standardowego zestawu części (o czym nie ma co mówić dodatkowe zestawy) ogranicza jedynie Twoja wyobraźnia. Możliwość programowania złożonego modelu na różne sposoby to kolejny plus, który w rzeczywistości jest o wiele więcej, niż się wydaje na pierwszy rzut oka.

Ale znalazłem tylko jedną naprawdę istotną wadę: cenę. Jeszcze latem LEGO Mindstorms EV3 można było kupić za 14-15 tys., ale szybki wzrost wiecznie zielonego kursu prezydenta podniósł cenę do 17 tys. Ktoś powie: „ tak, fajny projektant... ALE DROGI!„I będzie miał rację. Studiując zestaw i jego możliwości, byłem pod wrażeniem ilości zasobów włożonych w jego stworzenie; Rozumiem, że elektroniki i całej reszty jest mnóstwo... ale nadal nie mogę się pogodzić z kosztami projektanta. Za te pieniądze można wyciągnąć osobę z więzienia (za pomocą) wybrać wiele innych prezentów: quadkopter, model silnika spalinowego sterowany radiowo, pełnowymiarowy motocykl elektryczny, rok zajęć w sekcji sportowej, tablet. .. i wiele rzeczy! Ale w każdej chwili możesz uprawiać sport i wydaje się, że nie jest to do końca prezent, ale ten sam quadkopter będzie brzęczał aż do pierwszej poważnej awarii. Pod tym względem Lego jest prezentem o wiele trwalszym, łączącym przyjemne z pożytecznym, z nierealistycznie dużym potencjałem. Tak, programowania też można się nauczyć na tym samym tablecie, ale gdy nie masz możliwości faktycznego dotknięcia rezultatu swojej pracy rękami, nie jest to już takie ekscytujące. Więc zdecyduj sam.

O tak. Producent pozycjonuje ten zestaw dla dzieci od 10 roku życia, jednak zabawą zainteresowało się już 7-letnie dziecko – rozpoczął się proces szybkiego rozwoju. Jak myślisz, ile ci goście i kiedy kupią swoje pierwsze Porsche?)

Koniec

Każdy z nas Nowy Rok kojarzy się ze śnieżnymi pannami, choinką, mandarynkami, miską Oliviera i oczywiście prezentami. A jeśli mówimy o dzieciach, ich prezenty są dalekie od ostatniego miejsca na tej liście. A jeśli tak się stanie, że urodził Ci się synek, to możesz być pewien, że ta konstrukcja ustawiona pod drzewkiem wprawi go w świński pisk radości. A biorąc pod uwagę, że po noworocznych fajerwerkach będziesz miał jeszcze prawie tydzień na majsterkowanie z dzieckiem przy kostkach i drutach... kupujesz to dla swojego dziecka, prawda?

Szczęśliwego nowego roku!

Tradycyjnie roboty budowane są na platformie Lego Mindstorms EV3, są programowane przy użyciu środowiska graficznego LabVIEW. W tym przypadku programy działają na kontrolerze EV3, a robot działa autonomicznie. Tutaj opowiem o alternatywnym sposobie sterowania robotem - za pomocą platformy .NET działającej na komputerze.

Zanim jednak zajmiemy się programowaniem, przyjrzyjmy się niektórym przypadkom, w których może to być przydatne:

  • Wymaga zdalnego sterowania robotem z poziomu laptopa (np. poprzez naciśnięcie przycisków)
  • Wymagane jest pobranie danych ze sterownika EV3 i przetworzenie ich w systemie zewnętrznym (np. dla systemów IoT)
  • Wszelkie inne sytuacje gdy chcesz napisać algorytm sterujący w .NET i uruchomić go z komputera podłączonego do sterownika EV3

API LEGO MINDSTORMS EV3 dla .NET

Sterowanie kontrolerem EV3 odbywa się z systemu zewnętrznego poprzez wysyłanie poleceń na port szeregowy. Sam format poleceń jest opisany w Communication Developer Kit.

Ale ręczne wdrażanie tego protokołu jest nudne. Można zatem skorzystać z gotowego wrappera .NET, który starannie napisał Brian Peek. Kod źródłowy tej biblioteki jest hostowany na Githubie, a gotowy do użycia pakiet można znaleźć na Nuget.

Podłączanie do kontrolera EV3

Do komunikacji z kontrolerem EV3 wykorzystywana jest klasa Brick. Tworząc ten obiekt należy przekazać konstruktorowi implementację interfejsu ICommunication - obiekt opisujący sposób połączenia się ze sterownikiem EV3. Dostępne są implementacje komunikacji USB, komunikacji Bluetooth i komunikacji sieciowej (połączenie Wi-Fi).

Najpopularniejszą metodą połączenia jest Bluetooth. Przyjrzyjmy się bliżej tej metodzie połączenia.

Zanim będziemy mogli programowo połączyć się z kontrolerem poprzez Bluetooth, należy połączyć kontroler z komputerem za pomocą ustawień systemu operacyjnego.

Po podłączeniu kontrolera należy przejść do ustawień Bluetooth i wybrać zakładkę Porty COM. Znajdujemy nasz kontroler, potrzebujemy towarzyski port. Określimy to podczas tworzenia obiektu BluetoothCommunication.

Kod umożliwiający połączenie się z kontrolerem będzie wyglądał następująco:

Publiczne zadanie asynchroniczne Połącz (komunikacja IKomunikacja) ( var komunikacja = nowa komunikacja Bluetooth("COM9"); var cegła = _brick = nowa cegła (komunikacja); czekaj _brick.ConnectAsync(); )

Opcjonalnie możesz określić limit czasu połączenia ze sterownikiem:

Oczekuj _brick.ConnectAsync(TimeSpan.FromSeconds(5));

Podłączenie do urządzenia poprzez USB lub WiFi odbywa się w ten sam sposób, z tą różnicą, że wykorzystywane są obiekty UsbCommunication i NetworkCommunication.

Wszystkie dalsze akcje wykonywane na kontrolerze wykonywane są poprzez obiekt Brick.

Zakręćmy silnikami

Aby wykonać polecenia na kontrolerze EV3, uzyskujemy dostęp do właściwości DirectCommand obiektu Brick. Najpierw spróbujmy uruchomić silniki.

Załóżmy, że nasz silnik jest podłączony do portu A sterownika, wówczas praca tego silnika na 50% mocy będzie wyglądać następująco:

Czekaj na _brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.A, 50);

Istnieją inne metody sterowania silnikiem. Na przykład można obrócić silnik o określony kąt, korzystając z metod StepMotorAtPowerAsync() i StepMotorAtSpeedAsync(). Dostępnych jest kilka metod, które są odmianami trybów włączania silników - według czasu, prędkości, mocy itp.

Wymuszone zatrzymanie realizowane jest przy pomocy metody StopMotorAsync():

Czekaj na _brick.DirectCommand.StopMotorAsync(OutputPort.A, true);

Drugi parametr wskazuje użycie hamulca. Jeśli ustawisz wartość Fałsz, silnik zatrzyma się wybiegiem.

Odczyt wartości z czujników

Kontroler EV3 posiada cztery porty do podłączenia czujników. Oprócz tego silniki mają również wbudowane enkodery, co pozwala na wykorzystanie ich jako czujników. W rezultacie mamy 8 portów, z których można odczytać wartości.

Dostęp do portów do odczytu wartości można uzyskać poprzez właściwość Ports obiektu Brick. Porty to zbiór portów dostępnych na kontrolerze. Dlatego, aby pracować z określonym portem, musisz go wybrać. InputPort.One...InputPort.Four to porty czujników, a OutputPort.A...InputPort.D to enkodery silnika.

Var port1 = _brick.Ports;

Czujniki w EV3 mogą pracować w różnych trybach. Na przykład czujnika koloru EV3 można używać do pomiaru światła otoczenia, pomiaru światła odbitego lub wykrywania koloru. Aby zatem „powiedzieć” czujnikowi dokładnie, w jaki sposób chcemy go używać, musimy ustawić jego tryb:

Brick.Ports.SetMode(ColorMode.Reflective);

Teraz, gdy czujnik jest podłączony i ustawiony jest jego tryb pracy, można odczytać z niego dane. Możesz uzyskać „surowe” dane, wartość przetworzoną i wartość procentową.

Float si = _brick.Ports.SIValue; int surowy = _brick.Ports.RawValue; bajt procent = _brick.Ports.PercentValue;

Właściwość SIValue zwraca przetworzone dane. Wszystko zależy od tego, który czujnik jest używany i w jakim trybie. Przykładowo mierząc światło odbite otrzymamy wartości od 0 do 100 w zależności od natężenia światła odbitego (czarny/biały).

Właściwość RawValue zwraca surową wartość uzyskaną z przetwornika ADC. Czasami wygodniej jest go użyć do późniejszego przetwarzania i użytkowania. Nawiasem mówiąc, w środowisku programistycznym EV3 możliwe jest również uzyskanie „surowych” wartości - w tym celu należy użyć bloku z niebieskiego panelu.

Jeśli czujnik, którego używasz, oczekuje wartości w procentach, możesz także skorzystać z właściwości PercentValue.

Wykonywanie poleceń partiami

Załóżmy, że mamy wózek robota z dwoma kołami i chcemy go ustawić na miejscu. W takim przypadku oba koła muszą obracać się w przeciwnym kierunku. Jeśli skorzystamy z DirectCommand i wyślemy do kontrolera kolejno dwa polecenia, pomiędzy ich wykonaniem może upłynąć trochę czasu:

Czekaj na _brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.A, 50); czekaj _brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.B, -50);

W tym przykładzie wysyłamy polecenie obrócenia silnika A z prędkością 50, po pomyślnym wysłaniu tego polecenia powtarzamy to samo z silnikiem podłączonym do portu B. Problem w tym, że wysyłanie poleceń nie następuje natychmiastowo, więc silniki może zacząć się kręcić w różnym czasie - w czasie przekazywania polecenia dla portu B, silnika A już zacznie się kręcić.

Jeśli dla nas ważne jest, aby silniki obracały się w tym samym czasie, możemy wysłać polecenia do sterownika w „pakietze”. W takim przypadku powinieneś użyć właściwości BatchCommand zamiast DirectCommand:

Brick.BatchCommand.TurnMotorAtPower(OutputPort.A, 50); _brick.BatchCommand.TurnMotorAtPower(OutputPort.B, -50); czekaj _brick.BatchCommand.SendCommandAsync();

Teraz przygotowywane są jednocześnie dwa polecenia, po czym wysyłane są do sterownika w jednym pakiecie. Sterownik po otrzymaniu tych poleceń zacznie jednocześnie obracać silniki.

Co jeszcze możesz zrobić

Oprócz obracania silników i odczytywania wartości z czujników, na sterowniku EV3 można wykonywać szereg innych czynności. Nie będę się rozpisywał szczegółowo o każdym z nich, wymienię jedynie listę tego co można zrobić:

  • CleanUIAsync(), DrawTextAsync(), DrawLineAsync(), itp. - manipulacja wbudowanym ekranem kontrolera EV3
  • PlayToneAsync() i PlaySoundAsync() - użyj wbudowanego głośnika do odtwarzania dźwięków
  • WriteFileAsync() , CopyFileAsync() , DeleteFileAsync() (z SystemCommand) - praca z plikami

Wniosek

Wykorzystanie .NET do sterowania robotami Mindstorms EV3 dobrze pokazuje, jak technologie z różnych światów mogą ze sobą współpracować. W wyniku badań nad API EV3 dla .NET powstała niewielka aplikacja pozwalająca na sterowanie robotem EV3 z poziomu komputera. Niestety podobne zastosowania istnieją dla NXT, ale EV3 je ominęło. Jednocześnie sprawdzają się w kontrolowanych zawodach robotów, takich jak piłka nożna robotów.

Aplikację można pobrać i zainstalować pod tym linkiem:

Jeśli masz jakieś pytania, które chciałbyś wiedzieć na temat nowego projektanta (jak działa coś konkretnego, przeprowadź eksperyment z czujnikami lub silnikami) - napisz do nas - przetestujemy Twoje sugestie. W ten sposób możesz dowiedzieć się znacznie więcej o EV3 jeszcze zanim trafi on do sprzedaży.

Teraz wszystko zaczyna się od przeglądu oprogramowania bloku EV3 (oprogramowania EV3).

Jedną z cech nowego urządzenia jest to, że włączanie i wyłączanie zajmuje dużo czasu. Czasowo proces jest porównywalny z włączeniem telefonu komórkowego czy domowego routera, czyli tzw. 20-30 sekund. Po włączeniu pojawia się następujące menu:


Jak widać, w porównaniu do bloku NXT, wiele się zmieniło: poprawiła się jakość czcionek, elementy graficzne zostały bardziej narysowane, a interfejs okna został poprawiony. Przede wszystkim wynika to z faktu, że rozmiar ekranu teraz wzrósł - wyniósł 178 na 128 pikseli, a nie 100 na 64, jak w bloku NXT. Posiadanie okienkowego interfejsu z wbudowanymi przyciskami i paskami przewijania sugeruje, że urządzenia takie jak zewnętrzny touchpad będą teraz miały jeszcze większy sens.


Z pierwszego okna możliwe jest wywoływanie programów załadowanych do bloku, jak również programów utworzonych bezpośrednio w bloku. Te. aby uruchomić program, musisz teraz wykonać mniej kliknięć niż w bloku NXT.

Nawigacja po załadowanych programach oraz do drugiego i kolejnych ekranów (pozycji menu) odbywa się za pomocą przycisków sterujących, których jest obecnie 4.


Drugi ekran - umożliwia poruszanie się po obiektach systemu plików w bloku. System plików obsługuje teraz tradycyjną hierarchię: pliki i katalogi.


Trzeci ekran zawiera podmenu - aplikacje, które pozwalają na wykonanie różnych akcji z blokiem:


W aktualnej wersji oprogramowania bloku dostępne są cztery takie aplikacje:

  • Zobacz czujniki
  • Sterowanie silnikiem
  • Zdalne sterowanie
  • Programowanie na bloku
Czwarty ekran to konfiguracja. Oprócz podstawowych ustawień: poziomu dźwięku, timera bezczynności, włączenia BlueTooth i WiFi, pozwala uzyskać informacje o oprogramowaniu urządzenia:



Wybór konkretnej pozycji menu/aplikacji następuje za pomocą środkowego przycisku na klawiaturze. Aby wyjść z dowolnego elementu menu lub aplikacji, należy nacisnąć przycisk „Wyjdź”, który znajduje się teraz oddzielnie od głównych przycisków - po lewej stronie pod ekranem.

Teraz powinieneś wrócić do trzeciego ekranu i rozpocząć zapoznawanie się z aplikacjami. Tak więc aplikacja „Wyświetl czujniki” (Widok portu).

W przeciwieństwie do podobnego trybu w bloku NXT, możesz teraz zobaczyć informacje o wszystkich 8 urządzeniach podłączonych do bloku jednocześnie. Co więcej, zadeklarowana funkcjonalność automatycznego wykrywania czujników pozwala na brak ręcznego wskazywania, który czujnik gdzie jest podłączony.

Informacje z enkoderów silnika wyświetlane są na górze, informacje z czujników na dole. Na środku ekranu znajduje się informacja o konkretnym urządzeniu (w konkretnym porcie), którą można wybrać naciskając przyciski sterujące na klawiaturze. Informacje obejmują graficzną reprezentację czujnika, jego nazwę i aktualne odczyty:

Czujnik dotyku:


Czujnik żyroskopowy:


Czujnik koloru w trybie światła odbitego:


Ultradźwiękowy czujnik odległości:

Tutaj swoją drogą widać, że czujnik teraz twierdzi, że potrafi mierzyć odległości z dokładnością do milimetrów, a minimalna zmierzona odległość wynosi teraz 3 cm.

Informacje z lewego enkodera silnika.


Kolejnym zastosowaniem jest sterowanie silnikiem. Zasadniczo pozwala używać przycisków do obracania silników. Za pomocą środkowego przycisku musisz wybrać, które silniki mają się obracać. Następnie użyj par przycisków w górę i w dół lub w lewo i w prawo, aby obrócić określone silniki.


Trzeciej aplikacji nie można było wypróbować, ponieważ wersja edukacyjna zestawu EV3 nie zawiera w standardzie czujnika odległości na podczerwień ani lampy ostrzegawczej na podczerwień. Ale najwyraźniej na tym ekranie możesz skonfigurować, które silniki będą sterowane za pomocą lampy na podczerwień.


Oczywiście najciekawszym zastosowaniem jest programowanie blokowe. Został on znacznie przeprojektowany: program może teraz zawierać aż 16 elementów programu (bloków), a utworzone programy można zapisywać i oczywiście ponownie otwierać w celu modyfikacji.


Gdy otworzy się aplikacja pisząca program, wyświetli się pusta pętla wykonawcza (wykonana zostanie tylko jedna iteracja) i propozycja wstawienia pierwszego bloku. Blok można wstawić za pomocą przycisku „W górę”.


W wyświetlonym oknie wyboru bloku dostępnych jest 17 bloków (6 bloków akcji i 11 bloków oczekiwania) plus akcja usunięcia bieżącego bloku.



Kolejność wyboru i kolejność bloków ustala programista. Nie oznacza to, że po każdym bloku akcji musi nastąpić blok oczekiwania, jak miało to miejsce wcześniej w przypadku bloku NXT.

Wybrany blok w programie wygląda następująco:


Zachowanie bloku można określić naciskając środkowy przycisk. Dla tego bloku można np. zmienić kąt i kierunek obrotu robota lub całkowicie zatrzymać silniki (np. po poprzednim bloku oczekiwania).


Przesuwając „kursor” w lewo lub w prawo, możesz wstawić kolejny blok:


Na przykład blok oczekiwania na zdarzenie na czujniku odległości:


I zmień jego zachowanie (zdarzenie nastąpi, jeśli odległość wzrośnie powyżej 60 cm):


Bloki można wstawiać pomiędzy istniejącymi blokami lub nawet na początku programu.


Oto więcej przykładów bloków oczekiwania:

Blok czasu oczekiwania (możesz dokładnie ustawić czas oczekiwania):


Lub blok oczekiwania na zdarzenie z czujnika żyroskopowego (można ustawić kąt obrotu czujnika).


Należy ponownie zauważyć, że funkcja automatycznego wykrywania czujnika upraszcza proces programowania urządzenia. Nie ma już konieczności trzymania się zasady, że określone czujniki muszą być podłączone do określonych portów.

Jeżeli program musi zostać wykonany kilka razy, można zmienić liczbę iteracji pętli sterującej:


Program uruchamia się poprzez wybranie pierwszego bloku:


Po uruchomieniu programu na ekranie wyświetli się:


Program można zapisać, a także określić nazwę pliku do późniejszego wyszukiwania:



Litery wybiera się za pomocą klawiatury (witaj, touchpad!)

Jeśli spróbujesz zamknąć niezapisany program, wyświetli się następujący niezbyt wyraźny komunikat i będzie emitowany nieprzyjemny dźwięk:


Możesz później otworzyć utworzony program i wprowadzić w nim zmiany.


Oczywiście otwierane są tylko programy utworzone w bloku.

Podsumowując chciałbym pokazać jak wygląda wyłączenie blokady:


Połączenie USB

LEGO Mindstorms EV3 można podłączyć do komputera PC lub innego EV3 za pomocą połączenia USB. Szybkość i stabilność połączenia w tym przypadku są lepsze niż w przypadku jakiejkolwiek innej metody, w tym Bluetooth.

LEGO Mindstorms EV3 posiada dwa porty USB.

Komunikacja pomiędzy LEGO EV3 i innymi klockami LEGO EV3 w trybie połączenia łańcuchowego.

Tryb połączenia łańcuchowego służy do łączenia dwóch lub więcej klocków LEGO EV3.

Ten tryb:

  • przeznaczony do podłączenia więcej niż jednego LEGO Mindstorms EV3;
  • służy do podłączenia większej liczby czujników, silników i innych urządzeń;
  • umożliwia komunikację pomiędzy kilkoma LEGO Mindstorms EV3 (aż 4), co daje nam aż 16 portów zewnętrznych i tyle samo portów wewnętrznych;
  • umożliwia kontrolowanie całego łańcucha z poziomu głównego LEGO Mindstorms EV3;
  • nie może działać, gdy aktywne jest Wi-Fi lub Bluetooth.

Aby włączyć tryb połączenia łańcuchowego, przejdź do okna ustawień projektu i zaznacz pole.

Po wybraniu tego trybu, dla dowolnego silnika możemy wybrać blok EV3, który będzie używany oraz niezbędne czujniki.

W tabeli przedstawiono możliwości wykorzystania bloków EV3:

Działanie

Silnik średni

Duży silnik

Sterowniczy

Niezależne zarządzanie

Żyroskopowy

Podczerwony

Ultradźwiękowy

Obrót silnika

Temperatury

Licznik energii

Dźwięk

Połączenie przez Bluetooth

Bluetooth umożliwia połączenie LEGO Mindstorms EV3 z komputerem PC, innymi zestawami LEGO Mindstorms EV3, smartfonami i innymi urządzeniami Bluetooth. Zasięg komunikacji poprzez Bluetooth wynosi do 25 m.

Do jednego LEGO Mindstorms EV3 możesz podłączyć aż 7 klocków. Kostka główna EV3 umożliwia wysyłanie i odbieranie wiadomości do każdego urządzenia podrzędnego EV3. Urządzenia podrzędne EV3 mogą wysyłać wiadomości tylko do klocka głównego EV3, a nie między sobą.

Sekwencja połączenia EV3 przez Bluetooth

Aby połączyć ze sobą dwa lub więcej bloków EV3 poprzez Bluetooth należy wykonać następujące kroki:

1. Otwórz kartę Ustawienia.

2. Wybierz Bluetooth i naciśnij środkowy przycisk.

3. Kładziemy Pole wyboru widoczność Bluetooth.

4. Sprawdź, czy znak Bluetooth („<") виден на верхней левой стороне.

5. Wykonaj powyższą procedurę dla wymaganej liczby klocków EV3.

6. Przejdź do zakładki Połączenie:

7. Kliknij przycisk Szukaj:

8. Wybierz EV3, z którym chcesz się połączyć (lub z którym chcesz się połączyć) i naciśnij środkowy przycisk.

9. Łączymy pierwszy i drugi blok kluczem dostępu.

Jeśli wszystko wykonałeś poprawnie, w lewym górnym rogu pojawi się ikona „<>", połączenie pozostałych bloków EV3 odbywa się analogicznie, jeśli jest ich więcej niż dwa.

Jeśli wyłączysz LEGO EV3, połączenie zostanie utracone i konieczne będzie powtórzenie wszystkich kroków.

Ważne: każdy blok musi mieć napisany własny program.

Przykładowy program:

Pierwszy blok: Po naciśnięciu czujnika dotykowego pierwszy blok EV3 przesyła tekst do drugiego bloku z opóźnieniem 3 sekund (blok główny).

Przykładowy program dla bloku 2:

Drugi blok oczekuje na otrzymanie tekstu z pierwszego bloku i po jego odebraniu wyświetli słowo (w naszym przykładzie słowo „Hello”) przez 10 sekund (blok slave).

Połącz się przez Wi-Fi

Komunikacja na dłuższy zasięg jest możliwa po podłączeniu klucza Wi-Fi do portu USB w EV3.

Aby korzystać z Wi-Fi, należy zainstalować specjalny moduł na bloku EV3 za pomocą złącza USB (adapter Wi-Fi (Adapter bezprzewodowy Netgear N150 (WNA1100)) lub można podłączyć klucz Wi-Fi.

Opis prezentacji według poszczególnych slajdów:

1 slajd

Opis slajdu:

2 slajd

Opis slajdu:

Interfejs EV3 Brick Brick EV3 to centrum sterowania, które zasila Twoje roboty. Dzięki ekranowi, przyciskom sterującym Brick i interfejsowi EV3 Brick, który zawiera cztery główne okna, masz dostęp do oszałamiającej różnorodności unikalnych funkcji EV3 Brick. Mogą to być proste funkcje, takie jak uruchamianie i zatrzymywanie programu, lub złożone, jak napisanie samego programu.

3 slajd

Opis slajdu:

Interfejs: Menu EV3 składa się z 4 części: Najnowsze programy Nawigacja po plikach Aplikacje Brick Ustawienia Brick

4 slajd

Opis slajdu:

Ostatnie programy Uruchom programy pobrane ostatnio z komputera stacjonarnego. To okno pozostanie puste, dopóki nie zaczniesz pobierać i uruchamiać programów. W tym oknie zostaną wyświetlone ostatnio uruchomione programy. Program na górze listy, który jest wybrany domyślnie, to program, który został uruchomiony jako ostatni.

5 slajdów

Opis slajdu:

Menedżer plików Dostęp i zarządzanie wszystkimi plikami przechowywanymi w pamięci mikrokomputera, a także na karcie pamięci. W tym oknie będziesz mieć dostęp do wszystkich plików znajdujących się w klocku EV3 Brick i będziesz nimi zarządzać, łącznie z plikami przechowywanymi na karcie SD. Pliki są zorganizowane w foldery projektów, które oprócz rzeczywistych plików programu zawierają także dźwięki i obrazy użyte w każdym projekcie. Pliki można przenosić lub usuwać za pomocą nawigatora plików. Programy utworzone przy użyciu środowiska programistycznego modułu i aplikacji do rejestrowania danych modułu są przechowywane oddzielnie w folderach BrkProg_SAVE i BrkDL_SAVE.

6 slajdów

Opis slajdu:

Aplikacja EV3 Control Box zawiera 4 preinstalowane aplikacje: A. Widok portu. B. Sterowanie silnikiem. B. Sterowanie IR. D. Środowisko programistyczne modułu.

7 slajdów

Opis slajdu:

A. Widok portu W pierwszym oknie aplikacji Port View możesz szybko sprawdzić, do których portów są podłączone czujniki lub silniki. Użyj przycisków sterujących klocka EV3 Brick, aby przejść do jednego z zajętych portów, a zobaczysz aktualne odczyty z czujnika lub silnika. Zainstaluj kilka czujników i silników i eksperymentuj z różnymi ustawieniami. Aby wyświetlić lub zmienić bieżące ustawienia zainstalowanych silników i czujników, naciśnij środkowy przycisk. Aby powrócić do głównego okna aplikacji modułu należy kliknąć przycisk „Wstecz”.

8 slajdów

Opis slajdu:

B. Sterowanie silnikiem Sterowanie ruchem do przodu i do tyłu dowolnego silnika podłączonego do jednego z czterech portów wyjściowych. Istnieją dwa różne tryby. W jednym trybie będziesz mógł sterować silnikami podłączonymi do portu A (za pomocą przycisków Góra i Dół) oraz do portu D (za pomocą przycisków Lewo i Prawo). W drugim trybie sterujemy silnikami podłączonymi do portu B (za pomocą przycisków Góra i Dół) oraz portu C (za pomocą przycisków Lewo i Prawo). Przełączanie pomiędzy tymi dwoma trybami odbywa się za pomocą centralnego przycisku. Aby powrócić do głównego okna aplikacji modułu należy kliknąć przycisk „Wstecz”.

Slajd 9

Opis slajdu:

Sterowanie na podczerwień Sterowanie ruchem do przodu i do tyłu dowolnego silnika podłączonego do jednego z czterech portów wyjściowych przy użyciu zdalnego sygnalizatora na podczerwień jako pilota i czujnika podczerwieni jako odbiornika (czujnik podczerwieni musi być podłączony do portu 4 klocka EV3 Brick) . Istnieją dwa różne tryby. W jednym trybie będziesz używać kanałów 1 i 2 na zdalnym sygnalizatorze podczerwieni. Na kanale 1 będziesz mógł sterować silnikami podłączonymi do portu B (za pomocą przycisków 1 i 2 na zdalnym sygnalizatorze IR) i portu C (za pomocą przycisków 3 i 4 na zdalnym sygnalizatorze IR). Na kanale 2 będzie można sterować silnikami podłączonymi do portu A (za pomocą przycisków 1 i 2) oraz do portu D (za pomocą przycisków 3 i 4). W innym trybie można sterować silnikami w ten sam sposób, używając zamiast tego kanałów 3 i 4 zdalnego sygnalizatora podczerwieni. Przełączanie pomiędzy tymi dwoma trybami odbywa się za pomocą centralnego przycisku. Aby powrócić do głównego okna aplikacji modułu należy kliknąć przycisk „Wstecz”.

10 slajdów

Opis slajdu:

Środowisko programistyczne Brick Brick EV3 Brick jest dostarczany z zainstalowanym oprogramowaniem. Aplikacja przypomina oprogramowanie instalowane na komputerze. Niniejsza instrukcja zawiera podstawowe informacje potrzebne do rozpoczęcia pracy.

11 slajdów

Opis slajdu:

Ustawienia klocka EV3 Brick To okno umożliwia przeglądanie i dostosowywanie różnych ogólnych ustawień klocka EV3 Brick.

12 slajdów

Opis slajdu:

Regulacja głośności Możesz zwiększyć lub zmniejszyć głośność w zakładce Ustawienia w EV3.

Slajd 13



Spodobał Ci się artykuł? Podziel się ze znajomymi!
Czy ten artykuł był pomocny?
Tak
NIE
Dziękujemy za Twoją opinię!
Coś poszło nie tak i Twój głos nie został policzony.
Dziękuję. Twoja wiadomość została wysłana
Znalazłeś błąd w tekście?
Wybierz, kliknij Ctrl + Enter a my wszystko naprawimy!