Różnice

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

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
pl:mindstorms:mindstorms_lab [2008/04/23 10:00]
wojnicki dodane BT
pl:mindstorms:mindstorms_lab [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 +====== Laboratorium LEGO Mindstorms ======
 +Cele Lab: 
 +  * Zapoznanie się z technologią Mindstorms
 +  * Programowanie podzespołów robotów przy pomocy istniejących metod i narzędzi
 +  * Przygotowanie do rozwijania w oparciu o Mindstorms mechanizmów projektowania logiki sterujących dla robotów, z wykorzystaniem wizualnych metod reprezentacji wiedzy i języka Prolog
 +
 +Środki:
 +  * zestawy Mindstorms NXT
 +  * oprogramowanie LEGO dostarczone z w.w.
 +  * software opensource, w szczególności:​ [[http://​bricxcc.sourceforge.net/​nbc/​|NBC]],​ [[http://​bricxcc.sourceforge.net/​|BrixCC]],​ [[http://​nxtpp.sourceforge.net/​|NXT++]],​ [[http://​lejos.sourceforge.net/​|LeJOS]]
 +
 +FIXME
 + --- //​[[gjn@agh.edu.pl|Grzegorz J. Nalepa]] 2007/11/29 13:27//
 +
 +====== Zaliczenie ======
 +Uwagi dla JSI 2007
 +  * w czasie 1. lab należy pokazać co się udalo zrobić
 +  * o ile grupa narysowala jakiś ciekawy alg. sterujący w środowisku LEGO należy go zachować (np. wyslać sobie mailem)
 +  * na 2. lab: zademonstrować co udalo się zrobić
 +  * po 2. lab należy zachować swoje pliki z algorytmami i wyslac emailem
 +  * przygotować krótki opis/​sprawozdanie i wyslać do prowadzącego emailem, w formacie TXT, szkielet:
 +    * JSI2007, imiona, nazwiska, data
 +    * co udalo się zrobić
 +    * krótki opis opracowanych zalączonych algorytmów (1-2 akapity na każdy) ​
 +    * sugestie, pomysly, życzenia, uwagi
 +    * zalączyć wszystkie opracowane pliki (projekty środowiska LEGO)
 +
 +====== LAB1 ======
 +
 +===== Opis =====
 +Cel:
 +  * Zapoznać się z elementami sprzętowymi zestawu NXT: NXTbrick, sensorami i silnikami.
 +  * Zapoznać się z podstawami programowania i komunikacji w.w. przy pomocy środowiska LEGO
 +
 +Środki:
 +  * sprzęt: NXTbrick, 2 silniki, 3 sensory, kable łączące, kabel USB, ew. łącze BT
 +  * software: środowisko LEGO
 +
 +===== Przygotowanie =====
 +Ważne jest przemyślane zagospodarowanie przestrzeni.
 +Każda grupa ma obok swojego stołu inny, wolny.
 +Należy mieć na tyle przestrzeni,​ żeby klocki nie leżały na klawiaturze,​ nic nie spadlo na podlogę, etc.
 +
 +Istotny jest podzial ról w zespole: należy wybrać osobę obslugującą
 +  * komputer (wiki, instrukcja, email)
 +  * pudelko (wyciaganie i podawanie elementów)
 +  * klocki (skladanie, podlączanie elementów) ​
 +
 +===== Wstęp =====
 +W zależności od sytuacji i stanu zestawu NXT, zidentyfikować:​
 +  * opisy //​Quickstart//​ (**QS**) i //User Manual// (**UM**)
 +  * podzespoły:​
 +    * Brick (komputer) - małe białe pudełko
 +    * sensory x4
 +    * silniki x2
 +    * kable 2+4+1
 +  * ew. czarne pudełko //​Quickstart//​ a w nim zestaw podstawowych elementów do silnika
 +Uwaga: przed zakończeniem zajęć należy wszystko spakować tak, jak się zastalo, więc proszę zwrócić uwagę na sposób pakowania!
 +
 +===== Podłączenie Zmysłów =====
 +  * włożyć baterie do Brick
 +  * podłączyć silniki i sensory ​ (QS:2, UM:7) __zgodnie__ z numerami portów
 +  * włączyć Brick, ​
 +
 +===== I'm alive! =====
 +Przetestować UI Brick.
 +  * podstawy, QS:3
 +  * uruchomić testowe programy UM:14--17 ("Try Me")
 +  * pełny opis UI w UM:20--21
 +  * oglądnąć dane ze zmysłów przez "​View"​
 +
 +
 +===== Podłączenie do komputera =====
 +  * uruchomić aplikację LEGO
 +  * podłączyć Brick przez USB do komputera
 +  * utworzyć nowy projekt
 +  * nawiązać połączenie
 +  * przetestować połączenie BT
 +
 +===== Programowanie =====
 +  * skonstruować trywialny program składający się z 2 elementów w sekwencji sensor/​motor
 +  * przesłać program do Brick i przetestować
 +  * powyższe 2 kroki powtórzyć dla kilku sensorów
 +
 +===== Logika =====
 +Użycie podstawowych konstrukcji sterujących (np. warunkowych) do budowania trywialnych miniprogramów.
 +  * zaprogramować algorytmy typu: jeżeli jakieś zdarzenie sensoryczne,​ wtedy, jeżeli inne coś innego, etc.
 +
 +===== Koniec =====
 +Po zakończeniu laboratorium a __przed__ wyjściem z sali należy:
 +  * wyłączyć Brick i odłączyć USB
 +  * wylogować się
 +  * rozłączyć elementy
 +  * schować brick, silniki i sensory do pudełek
 +
 +
 +====== LAB2 ======
 +Cel: budowa prostych algorytmów sterowania w środowisku LEGO
 +
 +Środki: Brick ze zmysłami, ew. gotowy mini/robot + software LEGO
 +
 +===== Opis =====
 +Przebieg lab:
 +  - budowa prostego robota mobilnego, równolegle z
 +  - projektowaniem prostego algorytmu, następnie
 +  - integracja i testowanie,
 +  - ewaluacja i wnioski.
 +Podział zespołu:
 +  * budowniczy robota 1,2 osoby,
 +  * tworzenie algorytmu 1,2 osoby
 +__UWAGA__: ​
 +  * należy używać wyłącznie niezbędnych klocków,
 +  * należy wyciągać klocki stopniowo,
 +  * wszystkie nieużyte klocki należy schować do zamykanego pojemnika.
 +
 +===== Budowa robota =====
 +(Zespół budowniczy)
 +  * Należy zbudować trywialnego robota mobilnego opisanego w **QS**.
 +  * Należy znaleźć odpowiedni woreczek z elementami - podpisany //QS//
 +  * W przypadku braku w.w, należy je skompletować z pomocą prowadzącego i włożyć do woreczka.
 +  * Dołączyć z boku lub z przodu Brick wybrany sensor (np. sonar), do tego mogą być potrzebne dodatkowe klocki z innego woreczka
 +
 +===== Tworzenie algorytmu =====
 +(Zespół sterowania)
 +  * stworzyć proste (1-2) alg. sterowania, ​
 +  * założyć użycie 1 sensora
 +  * zapisać pliki projektów
 +
 +===== Algorytmy =====
 +
 +==== Patrol ====
 +  * robot jeździ po zadanej trajektorii (kwadrat, koło, trójkąt)
 +  * powtarza przejazd N razy
 +  * robot zatrzymuje się po napotkaniu przeszkody (zbliżenie,​ dotyk)
 +  * odtwarzany jest sygnał dźwiękowy
 +  * robot cofa
 +
 +==== Uniki ====
 +  * robot jedzie prosto, ew. po trajektorii
 +  * po zbliżeniu do przeszkody (sonar) wykonuje unik, np. obrót w prawo
 +  * przy uniku odtwarzany jest dźwięk
 +
 +==== Śledzenie ====
 +  * robot podąża za źródłem światła, dźwięku
 +
 +==== Sterowanie ====
 +  * sterowanie robotem za pomocą sygnałów dźwiękowych,​ klaśnięcie,​ ew dotykowych?
 +  * np. 1 klaśnięcie - przód, 2 - tył
 +
 +==== Komunikacja ====
 +  * proszę przeanalizować możliwość komunikacji między robotami przez Bluetooth
 +
 +===== Integracja =====
 +Oba zespoły testują stworzony algorytm na zbudowanym robocie.
 +
 +Proszę pamiętać, że po wgraniu do robota programu sterującego,​ można odlączyć kabel USB i puścić go na podlodze.
 +
 +===== Zakończenie =====
 +  * Rozmontować robota, wkladając wszystkie części (poza kablami, silnikami,​sonsorem i Brick), do jednego większego pojemnika, woreczka. __UWAGA__: należy to robić powoli i ostrożnie - polamanie klocków przy rozmontowaniu jest latwiejsze niż przy montażu. :-(
 +  * wyslać emailem sprawozdanie zawierające:​ pliki stworzonych algorytmów,​ kilkuzdaniowe opisy algorytmów,​ pomysly na inne algorytmy, zdjęcia zrobionych robotów, etc.
 +
 +====== LAB3 ======
 +Cel: zaawansowane programowanie w LEGO
 +
 +Środki:
 +
 +===== Opis =====
 +Przebieg lab:
 +  - zapoznanie się z budową robota UG (robot zożony, instrukcja budowy znajduje sie w Users Guide)
 +  - uruchomienie przygototowanego programu ''​Robo3''​ //na sucho//
 +    - unieś robota tak aby nie dotykal kolami podloża,
 +    - uruchom program -- kola zaczną się obracać
 +    - aktywuj sensor dotyku -- kola powinny się zatrzymać
 +    - aktywuj sensor dźwieku (gwizdnij, klaśnij, dmuchnij...) -- kola zaczną sie obracać, szczęki zostaną rozwarte
 +  - uruchomienie ''​Robo3''​
 +    - ustaw robota na plaskiej powierzchni na przeciwko koszyka z kulką
 +    - uruchom program ''​Robo3''​
 +    - co zrobil robot?
 +  - projektowanie algorytmu sterowania,
 +  - integracja i testowanie,
 +  - ewaluacja i wnioski.
 +
 +===== Tworzenie algorytmu =====
 +  * stworzyć algorytm sterowania, ​
 +  * założyć użycie wielu sensorów
 +  * zapisać pliki projektów
 +
 +===== Algorytmy =====
 +
 +Poniżej znajdują się przykladowe algorytmy. Zaimplementuj przynajmniej jeden z nich. Oczywiście można zaproponować swój wlasny algorytm.
 +
 +
 +==== Magazynier ====
 +  * podnieś kulkę (użyj sensora dotyku)
 +  * wykonaj zwrot o 180 stopni
 +  * przenieś kulkę pod ścianę (użyj sonaru do określenia co jest ścianą)
 +  * wylacznik awaryjny: klaśniecie
 +
 +
 +==== Magazynier 2 ====
 +  * podnieś kulkę (użyj sensora dotyku)
 +  * wykonaj zwrot o 180 stopni
 +  * przenieś kulkę w miejsce oznaczone innym kolorem (np. biala kartka), wykorzystaj sensor światla
 +  * wylacznik awaryjny: klaśniecie
 +
 +
 +==== Zlodziej ====
 +  * zlap kulke gdy znajdzie się z odpowiedniej odleglości od szczęk
 +  * cofnij
 +  * wykonaj zwrot np. o 180 stopni
 +  * jedź tak dlugo az ktoś krzyknie: '​Stać,​ policja!'​ ;-)
 +
 +==== Zlodziej 2 ====
 +  * tak jak Zlodziej, ale przyspiesza i/lub zaczyna kluczyć na wiadomośc o policji
 +
 +===== Integracja =====
 +Algorytm należy przetestować na robocie UG
 +
 +Proszę pamiętać, że po wgraniu do robota programu sterującego,​ można odlączyć kabel USB i puścić go na podlodze.
 +
 +===== Zakończenie =====
 +  * Proszę **nie rozmotowywać robota**
 +  * wyslać emailem sprawozdanie zawierające:​ pliki stworzonych algorytmów,​ kilkuzdaniowe opisy algorytmów,​ pomysly na inne algorytmy, zdjęcia zrobionych robotów, etc.
 +
 +====== LAB ======
 +Cel: programowanie NXT przy pomocy NBC, Bricxcc
 +
 +Środki:
 +
 +====== LAB ======
 +Cel:
 +
 +Środki:
  
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