Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20090121-11c [2009/01/26 02:17] jsi08 |
pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20090121-11c [2019/06/27 15:50] (aktualna) |
=== Prezentacja robota: === | === Prezentacja robota: === |
| |
ret | Na ostatnich zajęciach współpracowaliśmy z Bolkiem. Wyglądał on podobnie jak jego poprzednicy, różnił się tylko tym że dodatkowo miał wbudowany czujnik światła, dzięki któremu wiedział po jakim kolorze się porusza no i był w sumie trochę bardziej przerażający 8-). Dodatkowo mieliśmy dostępną planszę na której była przestrzeń ograniczona czarną linią oraz kilka innych elementów, między innymi czerwone koło oznaczające klucz do wyjścia z zamkniętego obszaru. |
wert | |
ewr | |
t | |
ewr | |
t | |
re | |
| |
| **Zdjęcia Bolka:** |
**Zdjęcia Bola:** | |
| |
{{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:bolo_1.jpg|}}{{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:bolo_2.jpg|}}{{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:bolo3.jpg|}} | {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:bolo_1.jpg|}}{{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:bolo_2.jpg|}}{{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:bolo3.jpg|}} |
| |
---- | ---- |
| |
=== Projektowanie algorytmów: === | === Projektowanie algorytmów: === |
| |
| Na dzisiejszych zajęciach po raz drugi projektowaliśmy algorytmy przy wykorzystaniu interfejsu programistycznego PLNXT. Tym razem do labolatorium dołączona była dodatkowa instrukcja o triggerach i timerach, przy wykorzystaniu których można pisać o algorytmy dużo bardziej zaawansowane niż na poprzednich zajęciach. W tym tygodniu nie mieliśmy żadnych problemów jeśli chodzi o połączenie i komunikację z Bolkiem więc od razu wzięliśmy się za pisanie algorytmu. |
| |
| **Algorytm** |
| |
| Do wyboru mieliśmy kilka algorytmów takich jak: "więzień", "sprzątacz", "śledzenie linii", "co przybyło?". Postanowiliśmy wybrać algorytm "więzień", który polegał na zatrzymaniu Bolka w obrębie czarnej linii do póki nie odnajdzie klucza którym było pole oznaczone kolorem czerwonym. Po zdobyciu klucza Bolek mógł zwiać z więzienia. |
| |
| <code prolog> |
| :-consult('plnxt.pl'). |
| |
| start:- |
| nxt_open, |
| nxt_light_LED(activate,force), |
| go_on_buddy. |
| |
| go_on_buddy:- |
| nxt_go(200), |
| trigger_create(_,linia,[nxt_stop,wycofaj]), |
| trigger_create(_,klucz,[nxt_stop,wyjedz]). |
| |
| wycofaj:- |
| nxt_go_cm(-200,20), |
| nxt_rotate(200,90), |
| go_on_buddy. |
| |
| wyjedz:- |
| nxt_go_cm(900, 100). |
| |
| linia:- |
| nxt_light(Value,force), |
| Value<30. |
| |
| klucz:- |
| nxt_light(Value,force), |
| Value>55, |
| Value<60. |
| </code> |
| |
| Plik algorytmu: {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:wiezien.pl|}} |
| |
---- | ---- |
=== Integracja i testowanie: === | === Integracja i testowanie: === |
| |
| Po stworzeniu algorytmów rozpoczęliśmy ich testowanie. Najpierw jednak postanowiliśmy przetestować czujniki jakie Bolek posiadał. Czujnik ultradźwiękowy spisywał się znakomicie, lecz jeśli chodzi o czujnik światła to z tym mieliśmy niestety nie małe problemy. |
---- | ---- |
| |
=== Problemy: === | === Problemy: === |
| |
| * Przy testowaniu czujnika światła mieliśmy dziwny problem. Czujnik się uruchamiał co sygnalizował zapaleniem diody, natomiast nie chciał nam rozpoznawać kolorów. Czasami czujnik wykrywał kolor który chcieliśmy a czasami po prostu tak jak by nie reagował na żaden z kolorów. Problemu tego tak naprawdę nie udało nam się rozwiązać. |
| |
---- | ---- |
=== Wnioski: === | === Wnioski: === |
| |
| * Przy wykorzystaniu nowo poznanych poleceń z API PLNXT można tworzyć o wiele bardziej zaawansowane algorytmy w których można wprowadzić ograniczenia czasowe oraz bardziej złożone operacje przy wykorzystywaniu triggerów. |
| * Dokumentacja wymaga dopracowania pod względem opisu podstawowych czujników. Znalezienie interesującego przedziału koloru w czujniku światła było bardzo trudne. |
---- | ---- |
| |
=== Propozycje rozszerzenia wiki: === | === Propozycje rozszerzenia wiki: === |
| |
| * Proponujemy wzbogacenie wiki o lepszy opis do niektórych funkcji z API PLNXT zwłaszcza tych dotyczących triggerów i wykorzystania czujników oraz dodanie przykładów wykorzystania tych funkcji w różnego rodzaju algorytmach. |
=== Inne propozycje zmian: === | * Na pewno przydał by się dokładny opis wartości które reprezentują dany kolor w funkcji nxt_light/2. Jest to całkowicie nieintuicyjne i nie wiadomo nawet w jakich przedziałach dany kolor się znajduje. Przeprowadzane w tym kierunku doświadczenia są bardzo czasochłonne. |
| |