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:
— 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ć:
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
I'm alive!
Podłączenie do komputera
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:
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
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
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
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
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
Zlodziej 2
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