Różnice
Różnice między wybraną wersją a wersją aktualną.
|
|
pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20090121-09b [2009/02/02 11:07] jsi08 |
pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20090121-09b [2019/06/27 15:50] |
====== Labolatorium z PLNXT (2) ====== | |
| |
**Autorzy**: Michał Chalupczak, Słowamorir Widlarz, Grzegorz Dydo-Rozniecki | |
| |
**Robot**: Jasio | |
| |
---- | |
| |
===== Cel labolatorium ===== | |
| |
Na laboratoriach staraliśmy się zaimplementować jeden z algorytmów zaproponowanych w opisie: **Śledzenie linii**. Robot umieszczony na planszy testowej dojeżdża do grubej czarnej linii i od tego momentu stara się poruszać wzdłuż tej linii. Po wciśnięciu sensora dotyku kończy pracę. | |
| |
===== Wykonanie ćwiczenia ===== | |
| |
FIXME | |
| |
<code prolog> | |
:- consult('plnxt.pl'). | |
| |
start:- | |
nxt_open, | |
nxt_light_LED(activate, force), | |
go_on_buddy, | |
trigger_create(_,pushed,nxt_stop). | |
| |
go_on_buddy :- | |
nxt_go(500), | |
trigger_create(_,line,find_way). | |
| |
find_way :- | |
nxt_stop, | |
sleep(0.1), | |
nxt_go(300,50), | |
nxt_stop, | |
sleep(0.1), | |
nxt_turn(300, 160), | |
nxt_go_sec(300, 2), | |
trigger_create(_,line,tracking). | |
| |
| |
tracking :- | |
nxt_stop, | |
sleep(0.1), | |
nxt_turn(300, -160), | |
go_on_buddy. | |
| |
| |
line :- | |
nxt_light(Value,force), | |
Value < 20. | |
| |
pushed :- | |
nxt_touch(Value,force), | |
Value=1. | |
</code> | |
| |
===== Problemy ===== | |
| |
* Za każdym razem po wykonaniu programy interpreter Prologa sygnalizował ostrzeżenie: //"Warning: [Thread 4] Thread running (...) died on exception: Out of global stack"//, a po wyjściu z Prologa wyjątek: //"1 threads wouldn't die"//. Zapewne jest to spowodowane błędem w implemetacji PLNXT, choć z punktu widzenia wykonania ćwiczenia jest nieszkodliwe. | |
* Skręcanie robota o 90 stopni nie ma "okrągłej" wartości i bardzo ciężko wymierzyć dokładnie obrót o kąt prosty. | |
* Dwa razy Jaś zaczął niespodziewanie wydawać z siebie wysoki, cichy dźwięk, który ustawał po wyłączeniu i ponownym włączeniu robota. | |
| |