Programowanie NXG

Przygodę z programowaniem robotów budowanych z Lego Mindstorms NXT, rozpoczynamy w środowisku graficznym NXG. Dzięki niemu możemy poznać podstawowe narzędzia programowania oraz lepiej zapoznać się z funkcjami poszczegółnych elementów naszych zestawów. Po włączeniu programu po lewej stronie pojawi nam się paleta komend podstawowych. Zawierają one wszystkie funkcje potrzebne dla osób początkujących.

 

 

Programy w języku NXG tworzymy poprzez układanie ich w liniach obok siebie lub pod sobą. Na czym polega różnica omówimy w dalszej części poradnika. Aby przenieść komendę na pole robocze należy przeciągnąć ją z panelu wyboru i umieścić na polu ‘start’. Po kliknięciu w każdy z bloczków na dole ekranu wyświetlą nam się możliwe do zmiany opcję. Omówmy teraz po kolei wszystkie komendy oraz ich funkcje.

 

1. Zacznijmy od komendy odpowiadającej za sterowanie serwomechanizmami, czyli komendy move (z ang. ruch). Oferuje ona nam spory zakres parametrów, które możemy zm,ieniać w zależności od tego jakie chcemy żeby nasz robot wykonywał ruchy.

Port – tutaj wybieramy, którymi silnikami chcemy sterować. Program pozwala nam na obsługę 3 silników równocześnie. Należy pamiętać, że porty zaznaczone w programie muszą się pokrywać z tym jak podpięliśmy serwomechanizmy w rzeczywistości.

Dierction – odpowiada za kierunek obrotu silnika. Do zapamiętania – kierunek obrotu silnika to nie to samo co kierunek jazdy robota!

Dodatkowo można tutaj wybrać opcje stop, która zablokuje silnik, aż do momentu, gdy zwolnimy go w innej części programu.

Steering – ta opcja jest aktywna tylko jeśli zaznaczyliśmy wcześniej dokładnie dwa porty. Pozwala ona włączyć 2 silniki równocześnie, ale z różną mocą. Różnice mocy regulujemy za pomocą suwaka. Jego przesunięcie w skrajne pozycje sprawi, że silniki będą się kręcić w przeciwnych kierunkach.

Power – oznacza z jaką mocą będą się kręcić wybrane silniki.

Duration – jedna z ważniejszych opcji. Opowiada za to jak długo nasze serwomechanizmy będą się obracać. Do wyboru mamy obroty, stopnie, czas, albo opcję unlimited oznaczającą – kręć się, aż do spełnienia określonego warunku.

Next action – w tym miejscu decydujemy co silnik ma zrobić po wykonaniu ruchu – czy włączyć wbudowany hamulec, czy pozwolić silnikowi samemu wyhamować siłą bezwładności.

 

2. Kolejnym bloczkiem jest bloczek record/play (z ang. nagraj/odtwórz). Dzięki wbudowanemu w silnik czujnikowi obrotów, program może zapamiętać ile razy przejkręcił się silnik, a następnie dzięki omawianemu bloczkowi odtworzyć zapamiętaną sekwencję.

Action - tutaj wybieramy, czy bloczek ma dzialac w trybie nagyrwania, czy odtwarzania

Name - przypisujemy nazwe nagrywanej sewkencji. Dzięki temu będzie nam prościej odnaleźć się w programie, który będzie miał zapisane kilka/kilkanaście kobinacji ruchów.

Recording - zaznaczamy ruch, których serwonapędów chcemy zapisać

Time - przerz jak długi czas chcemy nagrywać
 
 3. Trzecią komenda na naszej liście jest komenda sound (z ang. dźwięk). Nasze kostki wyposażone są w głośniki, które mogą odtwarzać dowolne dźwięki. W programie mamy do wyboru bazę gotowych odgłosów, ale nic nie stoi na przeszkodzie, aby nagrać własne. Służy do tego edytor dźwięków, który znajdziemy w zakładce tools -> sound editor na górze ekranu.

 

 

Dostępne do ustawienia w bloczku opcje to:


Action – tutaj wybieramy, czy chcemy odtworzyć dźwięk, czy ton.

Control – pozwala nam zdecydować, czy chcemy odtworzyć dźwięk, czy zatrzymać jego odtwarzanie.

Volume – poziom głośności odtwarzanego dźwięku.

Fuction – po zaznaczeniu opcji repeat wybrany dźwięk będzie się powtarzał.

File – jest to lista dostępnych plików dźwiękowych.

 

4. Po obsłudze głośnika nadszedł czas na naukę obsługi ekranu. Służy do tego bloczek numer 4 na naszej liście podpisany jako display. Posługiwanie się tą funkcją jest bardzo intuicyjne.

 

Action – po kliknięciu na rozwijalną listę przypisaną do tej opcji będziemy mogli wybrać co chcemy wyświetlać na ekranie naszej kostki. Do wyboru mamy:

            Image –wyświetlanie obrazka z listy

            Text – wyświetlanie tekstu wpisanego do rubryki wyświetlanej pod komendą.

            Drawing – rysowanie wybranych kształtów.

            Reset – czyszczenie zawartości ekranu.

Display – ta opcja pozwala nam wybrać, czy przed wyświetleniem obrazka mamy wyczyścić ekran z poprzedniej zawartości.

File - jest to lista dostępnych plików graficznych.

Position – poprzez wpisanie współrzędnych x-poziomo i y-pionowo możemy ustawić położenie wyświetlanej grafiki na ekranie.

 

Podobnie  jak w przypadku funkcji sound w zakładce tools->image editor możemy tworzyć własne obrazki.

 

 

5. Piąta w kolejce jest komenda wait. Przy jej użyciu możemy zmusić robota żeby poczekał z wykonaniem czynności przez dany czas, albo do momentu otrzymania sygnału z wybranego czujnika. Po jej kliknięciu na panelu wyboru pojawia nam się podlista, z której możemy wybrać typ sposobu czekania robota.

 

Wait – jest to najprostszy rodzaj czekania.  W opcjach wpisujemy wartość ile sekund ma poczekać robot przed wykonaniem kolejnej czynności

   

Touch – Robot czeka, aż podpięty do niego czujnik dotyku wyślę sygnał do kostki. Najważniejsze to wybrać prawidłowy numer portu do którego podłączony jest przewód z czujnikiem oraz sygnał na jaki ma reagować – do wyboru mamy wciśnięcie przycisku, puszczenie, lub uderzenie(wciśniecie i puszczenie).