Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20090121-09e [2009/01/21 13:56]
jsi08 Do dokończenia...
pl:mindstorms:studenci:przedmioty:jsi:jsi2008:jsi20090121-09e [2019/06/27 15:50]
Linia 1: Linia 1:
-**Konstrukcja:​**\\ 
-Korzystaliśmy ze skonstruowanego już robota Tribot (zestaw IREK). Z tego też względu nie zamieszczamy jego zdjęć. 
  
-**Program:​** \\ 
-Początkowo postanowiliśmy zaimplementować program "Co przybyło?"​. Był on realizowany w ten sposób: robot obracał się o 360 stopni i co 45 stopni badał odległość czujnikiem ultradźwiękowym,​ którą nasŧępnie dodawał na listę. W kolejnej części - po dodaniu przedmiotu - miał przeprowadzać tą czynność ponownie, by ostatecznie porównać obie listy. ​ 
-Pojawił się jednak problem (opisany w kolejnej części), który zmusił nas do porzucenia tego programu i zajęcia się innym - "​Śledzenie linii"​. 
-Program "​Śledzenie linii" udało się nam zrealizować (choć nie bez komplikacji,​ patrz -> Problemy). Działał on następująco:​ 
-Robot ustawiony na planszy dostarczanej przez Lego (w jej wnętrzu) jedzie przed siebie dopóki nie natrafi na czarne podłoże (użyta funkcja wait_till). Wówczas kontynuuje jazdę przed siebie ale tym razem dopóki podłoże jest czarne. Gdy przestanie być to skręca o 20 stopni w prawo i kontynuuje jazdę dopóki znów nie będzie białe podłoże (w przeciwnym wypadku znów obróci się o 20 stopni itd.). Program kończył się po naciśnięciu czujnika dotyku. Poniżej zamieszczamy listing programu: 
-<code prolog> 
-:- consult('​plnxt/​plnxt.pl'​). 
- 
-is_touched :- 
- nxt_touch(Value),​ 
- Value = 1. 
- 
-is_loud :- 
- nxt_sound(Value),​ 
- Value > 50. 
- 
-is_white :-  
- nxt_light(Value,​force),​ 
- write('​Light:​ '), write(Value),​ nl, 
- Value > 45. 
- 
-follow_the_white_rabbit :- 
- nxt_stop, 
- nxt_go(100),​ 
- wait_till(not(is_white)),​ 
- follow_line. 
- 
-follow_line :- 
- nxt_stop, 
- nxt_go(100),​ 
- wait_till(is_white),​ 
- turn_right. 
- 
-turn_right :- 
- nxt_stop, 
- nxt_rotate(200,​20,​force),​ 
- follow_line. 
- 
-start :- 
- nxt_light_LED(activate),​ 
- trigger_create(_,​is_touched,​[quit]),​ 
- follow_the_white_rabbit. 
- 
-quit :- 
- trigger_killall,​ 
- nxt_stop. 
-</​code>​ 
- 
-**Problemy:​** \\ 
- - Pierwszy problem pojawił się przy próbie stworzenia programu "Co przybyło?"​. Dla poniższego kodu: \\ 
-<code prolog> 
-bug_1(A) :- 
- A >= 45, 
- NewA is A - 45, 
- nxt_rotate(400,​45),​ 
- nxt_ultrasonic(Value),​ 
- bug_1(NewA). 
- 
-start :- 
- bug_1(360). 
-</​code>​ 
-Pojawiał się błąd: 
-?- nxt_open. 
- 
-Yes 
-?- start. 
-ERROR: Arithmetic: `angle/​1'​ is not a function 
-^  Exception: (27) _L19345 is angle(89)//​256 ? creep 
-   ​Exception:​ (23) nxt_actions_serial:​nxt_actions_motor_move('​C',​ 400, [motoron, brake, regulated], sync, 100, running, angle(89)) ? creep 
-   ​Exception:​ (21) nxt_sensomoto:​nxt_motor_sync('​C',​ '​B',​ 400, 100, angle(angle(89))) ? creep 
-   ​Exception:​ (18) nxt_movement:​nxt_turn(400,​ 89, force) ? creep 
-\\ 
- 
-- Zbliżony błąd wystąpił w przypadku drugiego programu (udało się go pozbyć modyfikując kod po postaci załączonej do sprawozdania). Pojawiał się on prawdopodobnie przy próbach korzystania z czujnika światła. Był on postaci: 
-ERROR: Arithmetic: `force/​0'​ is not a function 
-^  Exception: (20) _L6877 is force//256 ? creep 
-   ​Exception:​ (16) nxt_actions_serial:​nxt_actions_motor_move('​C',​ 100, [motoron, brake, regulated], sync, 0, running, force) ? creep 
-   ​Exception:​ (14) nxt_sensomoto:​nxt_motor_sync('​C',​ '​B',​ 100, 0, angle(force)) ? creep 
-? 
-\\ 
-- Oprócz tego problem pojawiał się przy próbie nawiązywania (kończenia) połączenia z robotem przy pomocy nxt_open, nxt_close. Dokładniej mówiąc gdy aktualnie działający program wyrzucał wyjątek trzeba było restartować powłokę SWIPL by móc wgrać nowy program. \\ 
-- Parę razy musieliśmy też restartować robota by wgrać nowy program bo poprzednia wersja uporczywie rezydowała w jego pamięci. 
- 
- 
- 
-**Propozycje zmian w Wiki/​laboratoriach:​** \\ 
- 
- 
-**Plik z programem:​**\\ 
-{{indexmenu>​.#​1|js}} 
pl/mindstorms/studenci/przedmioty/jsi/jsi2008/jsi20090121-09e.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0