To jest stara wersja strony!


Zapoznanie z PLNXT

Celem ćwiczenia było zapoznanie się z interfejsem programistycznym w prologu do Lego Mindstorms.

Przebieg Ćwiczenia

  • Wykożystywana w tym ćwiczeniu konstrukcja robota, nie jest szczególnie istotna, warto nadmienić, że robot był samojezdy oraz posiadał nst. czujniki:
    • dźwiękowy
    • ultrasoniczny (odległości)
    • dotyku
  • 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:
    • nxt_open, nxt_close - otwarcie/zamknięcie połączenia
    • nxt_voltage_millivolt(Voltage) - odczyt napięcia na bateriach
    • nxt_rotate(350,360) - obrót w prawo
    • 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.
  • Ostatecznie stworzyliśmy własny program pozwalający na omijanie przeszkód przez naszego robota:
:- consult('../plnxt/plnxt.pl').
 
start :-
	nxt_open,
	trigger_create(_,check_distance,[nxt_stop, rotate90]),
	trigger_create(_, check_stop, [nxt_stop, nxt_close]),
	nxt_go(500).
 
 
check_distance :-
	nxt_ultrasonic(Distance,force),
	Distance < 15.
 
 
rotate90 :-
	go_rotate,
	trigger_create(_,check_distance,[nxt_stop, rotate90]),
	nxt_go(500).
 
go_rotate :-
	nxt_rotate(350, 90), sleep(1),
	nxt_go_cm(500,30),
	nxt_rotate(350,-90),sleep(1),
	nxt_go_cm(500,30),
	nxt_rotate(350,-90),sleep(1),
	nxt_go_cm(500,30),
	nxt_rotate(350,90),sleep(1).
 
check_stop :-
	nxt_touch(Stop,force),
	Stop = 1.
pl/mindstorms/studenci/przedmioty/jsi/jsi2008/jsi20090114-11a.1232294329.txt.gz · ostatnio zmienione: 2019/06/27 15:57 (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