Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20090114-11a [2009/01/18 17:07] jsi08 |
pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20090114-11a [2019/06/27 15:50] (aktualna) |
====== Przebieg Ćwiczenia ====== | ====== Przebieg Ćwiczenia ====== |
| |
* Wykożystywana w tym ćwiczeniu konstrukcja robota, nie jest szczególnie istotna, warto nadmienić, że robot był samojezdy oraz posiadał nst. czujniki: | * Sama konstrukcja robota wykożystywana w tym ćwiczeniu wydaje się nie być szczególnie istotna, warto nadmienić, że robot był samojezdy oraz posiadał nst. czujniki: |
* dźwiękowy | * dźwiękowy |
* ultrasoniczny (odległości) | * ultrasoniczny (odległości) |
* Komunikacja pomiędzy robotem a PC odbywała się za pomocą Bluetooth. | * Komunikacja pomiędzy robotem a PC odbywała się za pomocą Bluetooth. |
| |
* Po wstępnym zapoznaniu się z instrukcją API przystąpiliśmy do jego testowania. W pierwszej fazie udało się nam przetestować działanie podstawowych funkcji API: | * Po wstępnym zapoznaniu się z instrukcją API przystąpiliśmy do jego testowania. W pierwszej fazie udało się nam przetestować działanie podstawowych funkcji API m. in.: |
* nxt_open, nxt_close - otwarcie/zamknięcie połączenia | * nxt_open, nxt_close - otwarcie/zamknięcie połączenia |
* nxt_voltage_millivolt(Voltage) - odczyt napięcia na bateriach | * nxt_voltage_millivolt(Voltage) - odczyt napięcia na bateriach |
* nxt_go(300) - jazda do przodu z prędkością 300 stopni/sekundę | * nxt_go(300) - jazda do przodu z prędkością 300 stopni/sekundę |
| |
* Następnie kiedy udało się nam wstępnie zaznajomić z dostępnymi predykatami przeszliśmy do testowania działania przykładowych trzech programów zamieszczonych w instrukcji do ćwiczenia. Pozwoliły nam one na przyjżenie się konstrukcji programu w prologu sterującego robotem oraz na sposób tworzenia zdarzeń oraz akcji w programie za pomocą predykatu trigger_create/3 z modułu threads. | * Następnie kiedy udało się nam wstępnie zaznajomić z dostępnymi predykatami przeszliśmy do testowania działania przykładowych trzech programów zamieszczonych w instrukcji do ćwiczenia. Pozwoliły nam one na przyjrzenie się konstrukcji programu w prologu sterującego robotem oraz na sposób tworzenia zdarzeń oraz akcji w programie za pomocą predykatu trigger_create/3 z modułu threads. |
| |
====== Implementacja Algorytmu ====== | ====== Implementacja Algorytmu ====== |
* Robot porusza się do przodu z zadaną prędkością, gdy zbliży się do przeszkody wykonuje serię manewrów umożliwiających jej ominięcie i jedzie dalej aż do napotkania kolejnej przeszkody, poczym znów ją omija, wyłaczenie programu następuje poprzez wciśnięcie czujnika dotyku. Zrezygnowaliśmy tutaj ze sterowania robotem poprzez klaśnięcia ponieważ system ten źle sprawdza się w warunkach laboratorium i jest bardzo ciężki w testowaniu. | * Robot porusza się do przodu z zadaną prędkością, gdy zbliży się do przeszkody wykonuje serię manewrów umożliwiających jej ominięcie i jedzie dalej aż do napotkania kolejnej przeszkody, poczym znów ją omija, wyłaczenie programu następuje poprzez wciśnięcie czujnika dotyku. Zrezygnowaliśmy tutaj ze sterowania robotem poprzez klaśnięcia ponieważ system ten źle sprawdza się w warunkach laboratorium i jest bardzo ciężki w testowaniu. |
| |
| |
| {{:pl:mindstorms:studenci:przedmioty:jsi:jsi2008:omijanie.pl|}} |
| |
| ====== Wnioski ====== |
| |
| API prologu jest zdecydowanie wygodniejszą formą tworzenia oprogramowania dla Mindstorms niż kożystanie z dostarczanego programu firmy LEGO, z którego kożystaliśmy na wcześniejszych zajęciach. Warto było by się zastanowić nad innym sposobem rozkazywania robotowi w trakcie jego działania niż klaskanie (co niestety często się zdarza w instrukcjach), z bardzo prozaicznego powodu ponieważ system klaskań nie sprawdza się w warunkach laboratorium. |