Nowa wersja
|
Poprzednia wersja
|
pl:dydaktyka:piw:2010:sprawozdania:piw20100519-15e [2010/05/25 19:55] piw10 utworzono |
pl:dydaktyka:piw:2010:sprawozdania:piw20100519-15e [2019/06/27 15:50] (aktualna) |
| |
</code> | </code> |
| |
| ===== Działające algorytmy ===== |
| |
| Niestety pierwsza wersja programu działała połowicznie. Robot poruszał się do przodu, ale drugi wątek z triggerami nie działał. |
| |
| Po przeniesieniu wszystkiego do jednego wątku powstała poniższa, w pełni działająca wersja programu: |
| |
| <code prolog> |
| :- consult('plnxt.pl'). |
| |
| start :- |
| nxt_go(100), |
| sleep(1), % Chwila przerwy, żeby jedno klaśnięcie nie zostało rozpoznane jako dwa. |
| trigger_create(_,clap,uciekaj), |
| trigger_create(_,click,stop). |
| |
| uciekaj :- |
| nxt_stop, |
| nxt_rotate(900, 90), |
| nxt_go_sec(900, 1), |
| sleep(1), |
| start. |
| |
| % Sprawdzenie, czy natężenie dźwięku przekracza progową wartość. |
| clap :- |
| nxt_sound(Value,force), |
| Value > 50. |
| |
| click :- |
| nxt_touch(Value, force), |
| Value > 0. |
| |
| stop :- |
| trigger_killall, |
| nxt_stop, |
| nxt_close. |
| |
| </code> |
| |
| Następnie napisaliśmy również w 100% działającą wersję omijacza: |
| |
| <code prolog> |
| :- consult('plnxt.pl'). |
| |
| start :- |
| nxt_go(100), |
| trigger_create(_,clap,stop), |
| trigger_create(_,odl,omijaj). |
| |
| omijaj :- |
| nxt_stop, |
| nxt_rotate(100, 30), |
| start. |
| |
| % Sprawdzenie, czy natężenie dźwięku przekracza progową wartość. |
| clap :- |
| nxt_sound(Value,force), |
| Value > 50. |
| |
| odl :- |
| nxt_ultrasonic(Value, force), |
| Value < 20. |
| |
| stop :- |
| nxt_stop, |
| nxt_close. |
| |
| </code> |
| |
| Oto zdjęcie robota dla powyższego programu: |
| |
| {{:pl:dydaktyka:piw:2010:sprawozdania:zdjecie0017.jpg|}} |