Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
pl:mindstorms:lab:lab4 [2008/04/03 23:25]
wpiestrak utworzono
pl:mindstorms:lab:lab4 [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
-====== ​JSI: Laboratorium 4 ======+====== Laboratorium 4 ====== 
 + 
 +Laboratorium przygotowane w oparciu o [[pl:​miw:​miw08_mindstormsenv | MindsotrmsENV ]]. 
 + 
 +support: <​dziedzia@student.agh.edu.pl>​ 
 + 
 +===== Lab z iCommand ===== 
 + 
 +[[pl:​miw:​miw08_mindstormscontrolj]] 
 +support P. Gutowski 
 + 
 + 
 +===== Cel ===== 
 + 
 +Celem tego laboratorium jest poznanie(porównanie) możliwości tworzenia programów dla LEGO Mindstorms przy pomocy różnych środowisk. 
 +Środowiska wykorzystywane w ramach tego ćwiczenia:​ 
 +   * LEGO Mindsotrms 
 +   * BrixCC 
 +   * Microsoft Robotics Studio (opcjonalnie) 
 + 
 +Waszym zadaniem będzie uruchomienie oraz przeanalizowanie [[pl:​miw:​miw08_mindstormsenv#​Propozycje_algorytmow|dwóch algorytmów]] (ich implementacji). 
 + 
 +Filmiki pokazujące działanie algorytmów:​ 
 +   * [[http://​www.youtube.com/​watch?​v=dollW5dg_v0 | Saper]] 
 + 
 +Uwaga: Ostatanie 5 minut laboratorium proszę poświęcić na [[pl:​mindstorms:​lab:​lab4#​sprawozdanie | Sprawozdanie]] 
 + 
 +===== Przygotowanie stanowiska ===== 
 + 
 +Do poprawnego przeprowadzenia ćwiczenia wymagane jest: 
 +   * zbudowany robot [[http://​mindstorms.lego.com/​Overview/​MTR_Tribot.aspx|TriBot]] 
 +   * plansza testowa dostarczona z zestawem Lego - postaraj się, aby miała jak najmniej zagięć (zagięcia powodują błędne odczyty z czujnika natężenia swiatła). 
 +   * zainstalowane środowiska:​ LEGO Mindstorms, BrixCC, Microsoft Robotics Studio 
 +   * konstrukcja robota proponowana przez Lego charakteryzuje się tym, że czujnik natężenia światła jet umieszczony bardzo nisko - powoduje to często pojawianie się nieprawidłowych odczytów, a w konsekwencji błędne działanie algorytmów. Można dokonać niewielkiej [[pl:​miw:​miw08_mindstormsenv:​materialy#​Modyfikacja_konstrukcji_TriBot_a | modyfikacji konstrukcji TriBot'​a]]. 
 +   * konstrukcja robota Tribot(wysokie umieszczenie sonara) w zasadzie uniemożliwia stosowanie proponowanych przez LEGO platform z piłeczkami jako przeszkody(poza tym robot nie jest w stanie podnieść platformy, która przeszkadzałaby w ruchu). W tym celu należy (tymczasowo) użyć np.: telefonu komórkowego,​ lub  przedmiotu który generalnie jest trochę wyższy od platformy i piłeczki (ewentualnie można testować algorytmy wskazując miejsce położenia przeszkody ręką). 
 + 
 +===== Ćwiczenie ===== 
 +==== Uwagi ogólne ==== 
 +   * Kalibracja - jest to bardzo ważny krok który jest wykonywany przed każdym algorytmem. Dzięki niemu definiujemy jaki jest zakres możliwych wartości odczytywanych przez sensory. W naszym przypadku kalibrujemy czujnik natężenia światła. Po uruchomieniu każdego algorytmu na ekranie pojawi się napis "​MAX:"​ oraz wartość liczbowa poniżej. Jest wartość odczytywana z czujnika natężenia światła (spróbuj umieścić czujnik nad jasną powierzchnią,​ a następnie nad ciemną i zauważ jak zmienia się wartość odczytu). 
 +**Przebieg kalibracji:​** Po uruchomieniu algorytmu (na ekranie widoczne jest "MAX: <​wartość liczbowa>"​) ustaw robota, tak aby czujnik światła znajdował się nad najciemniejszym z obszarów po którym będzie poruszał się robot (np. czarna linia na planszy testowej), zatwierdź używając przycisku lewej strzałki znajdującego się na kostce NXT. W ten sposób ustawiliśmy maksymalną wartość odczytu z czujnika natężenia światła względem, której dokonywana będzie normalizacja pomiaru. Na ekranie powinien być widoczny napis "MIN: <​wartość liczbowa>",​ umieść tym razem robota nad najjaśniejszym obszarem, po którym będzie się poruszał (białe tło planszy) i wciśnij przycisk prawej strzałki znajdujący się na kostce NXT. Gdy kalibracja jest zakończona na ekranie widoczny jest napis "​Calibrated"​.  
 + 
 +   * Jeżeli po skalibrowaniu czujników robot nie zachowuje się jak powinien (nie rozpoznaję linii, nie rozpoznaję przeszkód, etc.) spróbuj zlokalizować  
 +fragment kodu i zmienić wartość odczytu dla jakiej dana akcja nie wykonuje się prawidłowo. Oczywiście wszelki modyfikacje kodu wskazane:​) 
 +  
 +   * Usuwanie programów - ponieważ pamięć przeznaczona na przechowywanie plików jest ograniczona (124kB) prawdopodobnie konieczne będzie usuwanie plików z programami z kostki. W tym celu:  
 +      - otwórz Lego Mindstorms NXT 
 +      - wybierz File->​New - pojawi się okno edytora 
 +      - z Menu znajdującego się w prawej-dolnej części ekranu wybierz "NXT Window",​ a następnie zakładkę "​Memory"​ 
 +      - w tym miejscu można zobaczyć ile pamięci zajmuje każdy z programów oraz usunąć, te które są już niepotrzebne 
 +Program można też usunąć bezpośrednio z kostki NXT(My Software Siles -> <nazwa programu>​ -> Delete) 
 + 
 +   * Komunikacja z robotem najlepiej działa przy użyciu USB (wyjątkiem jest Microsoft Robotics Studio, dla którego jedenym możliwym kanałem komunikacji ​  jest BlueTooth) 
 + 
 +==== Lego Mindstorms ==== 
 + 
 + 
 +   - Ściągnij implementację algorytmów dla środowiska LEGO: 
 +      * {{:​pl:​miw:​miw08_mindstormsenv:​saper_rbt.zip|saper_rbt.zip}} - implementacja algorytmu Saper w natywnym środowisku LEGO Mindstorms. 
 +      * {{:​pl:​miw:​miw08_mindstormsenv:​patrol_rbt.zip|patrol_rbt.zip}} - implementacja algorytmu Patrol w natywnym środowisku LEGO Mindstorms (wersja nieco różniąca się od wersji napisanej w BrixCC (uboższa))FIXME. 
 +   - Podłącz robota poprzez USB do komuptera. 
 +   - Uruchom środowisko Mindstorms NXT. Wybierz File->​Open...,​ a następnie wskaż uprzednio rozpakowany plik z implementacją algorytmu. 
 +   - Zapoznaj się z kodem algorytmów. 
 +   - Załaduj program na kostkę. 
 +   - Spróbuj porównać implementację algorytmów z diagramami aktywności,​ które je opisują: 
 +      * [[pl:​miw:​miw08_mindstormsenv:​materialy#​Saper|algorytm Saper]] - diagram 
 +      * [[pl:​miw:​miw08_mindstormsenv:​materialy#​Patrol|algorytm Patrol]] - diagram 
 + 
 + 
 + 
 +==== BrixCC ==== 
 + 
 +   - Ściągnij implementację algorytmów dla środowiska BrixCC: 
 +      * {{:​pl:​miw:​miw08_mindstormsenv:​saper_nxc.zip|saper_nxc.zip}} - implementacja algorytmu Saper w języku NXC. 
 +      * {{:​pl:​miw:​miw08_mindstormsenv:​patrol_nxc.zip|patrol_nxc.zip}} - implementacja algorytmu Patrol w języku NXC. 
 +   - Podłącz robota poprzez USB do komputera. 
 +   - Uruchom środowisko BrixCC. 
 +   - W oknie, które się pojawi wybierz: 
 +      * Port - Automatic 
 +      * Brick Type - NXT 
 +   - Otwórz plik z wcześniej ściągniętym kodem (File->​Open...) 
 +   - Zapoznaj się z kodem algorytmów (czytanie kodu należy rozpocząć od metody main() znajdującej się na samym końcu pliku z kodem źródłowym). 
 +   - Skompiluj oraz prześlij program na kostkę 
 +   - Podobnie jak w poprzednim przykładzie porównaj implementację z diagramami algorytmów (diagramy są te same). 
 + 
 +==== Microsoft Robotics Studio ​ ==== 
 + 
 +Ponieważ środowisko Microsoft Robotics Studio udostępnia inne od ww. środowisk możliwości,​ przygotowane zostały inne programy pokazujące możliwości tego środowiska. 
 +Działanie przygotowanego programu zostało przedstawione [[pl:​miw:​miw08_mindstormsenv:​materialy#​Messages|tutaj]].\\ 
 +Aby uruchomic program należy: 
 +   - Ściągnij plik {{:​pl:​miw:​miw08_mindstormsenv:​messages.zip|messages.zip}},​ a następnie go rozpakuj 
 +   - Upewnij się, że do komputera podłączony jest adapter BlueTooth 
 +   - W środowisku Lego Mindstorms NXT załaduj plik Msg.rbt, zapoznaj sie z nim, a następnie skompiluj i przeżlij do modułu NXT 
 +   - W środowisku Microsoft Robotics Studio otwórz projekt Messages, zapoznaj się z nim 
 +   - Upewnij się czy blok LegoNXTBrickv2(pierwszy blok na schemacie wskazuje na właściwy port, przez który odbywa się koumunikacja) 
 +   - Uruchom program 
 +Po chwili powinno otworzyć się okno przegladarki internetowej zawierające informacje o połączeniu. Po uruchomieniu pojawiają się także '​alerty'​ informujące o sukcesie/​niepowodzeniu kolejnych kroków. 
 +\\ 
 +Uwaga: Komunikacja poprzez BlueTooth dla niektórych adapterów jest uciążliwa. Jeżeli nie można się połączyć należy spróbować kilkakrotnie (za każdym razem upewniając się czy na kostce NXT widnieje symbol nawiązanego połączenia BlueTooth "​B<>"​) 
 +===== Sprawozdanie ===== 
 + 
 +Proszę o przesłanie informacji dotyczących:​ 
 +   * Waszych uwag (plusy/​minusy) sprawdzanych środowisk 
 +   * problemów z uruchamianiem algorytmów 
 +   * problemów z działaniem algorytmów 
 + 
 +na adres: <​dziedzia@student.agh.edu.pl>​ 
 + 
  
-Cel: programowanie NXT przy pomocy NBC, Bricxcc 
pl/mindstorms/lab/lab4.1207257944.txt.gz · ostatnio zmienione: 2019/06/27 15:57 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0