To jest stara wersja strony!


Opis

Marek, Siara, siara@student.agh.edu.pl

:!: Multilayer Stack in Prolog idea:

  • Serial Comm.(USB/BT)
  • low-level Prolog api 4 serial port, NXT comm. protocol, see other envs
  • mid-level NXT abstraction

see MindStormsAPI for other higher levels.

Spotkania

08.03.04

080311

protokół na poziomie kom. po porcie szeregowym http://nxtpp.sourceforge.net/

080318

080401

080408

  • zapis protokołu kom w prologu tak jak poniżej
  • upload do wiki opisu FIXME
  • testy komunikacji, flush?
  • zapis szesnastkowy w ISO Prologu, proszę się upewnić, że to (hexy) się

już nigdzie nie gubi przy ew. konwersji…

% uwaga!
% komp w pldoc!
% http://www.swi-prolog.org/packages/pldoc.html
% przemyslec, co da uzycie skladni wiki!

% czy porty dla sensorow sa abcd, czy 1,2,3,4?
nxt_port(a,['\x00\']).
% etc

nxt_sensor_type(no_sensor, ['\x00\']).
nxt_sensor_type(switch, ['\x01\']).
% etc

nxt_sensor_mode(rawmode, ['\x00\']).
nxt_sensor_mode(booleanmode, ['\x20\']).
% etc

nxt_cmd(setinputmode, ['\x00\','\x05\']).
nxt_cmd(messagewrite, ['\x00\','\x09\']).

%% nxt_prot(+Command, -NxtCmd, +Port, +Type, +Mode)
% return a nxt command with a given port, type, and mode (for setinputmode)
nxt_prot(setinputmode, NxtCmd, Port, Type, Mode) :-
	nxt_cmd(setinputmode,Cmd),
	nxt_port(Port, PortCmd),
	nxt_sensor_type(Type, TypeCmd),
	nxt_sensor_mode(Mode, ModeCmd),
	flatten([Cmd, PortCmd,TypeCmd,ModeCmd],NxtCmd).

nxt_prot(messagewrite, NxtCmd, Inbox, Size,Data) :-
	nxt_cmd(messagewrite,Cmd),
	integer(Inbox), Inbox < 10, Inbox >= 0,
	length(Data,L),
	Size is L + 3,
	Size < 60, % vide doc!
	flatten([Cmd,Inbox,Size,Data],NxtCmd).

% tu nalezy jeszcze sprawdzic null termination vide dokuemntacja, ew dodac jak go nie ma!

% nxt_prot(setinputmode,C,a,switch,rawmode).
% nxt_prot(messagewrite,C,3,S,['a','l','a']).
% nxt_prot(messagewrite,C,3,_,['a','l','a']).

% aha, prosze przemyslec i potestowac, czy nie wystarczy powyzej pisac:
% nxt_prot(COSTAM, NxtCmd, Inbox, Size,Data) :-
%	nxt_cmd(COSTAM,Cmd),
% na oko chyba tak!

FIXME :pl:miw:appendix_2-lego_mindstorms_nxt_direct_commands.pdf

FIXME: proszę dopisać URL gdzie za strony LEGO Pan to pobrał, czy to jest w BT dev guide?

Projekt

Milestones

  • komunikacja z nxt z prolog, potrafimy wyslac trywialne rozkazy, np. obroc silniczkem nr. 2

Sprawozdanie

W związku z tym, że materiały podane poniżej były mało ciekawe, a na stronie producenta ciężko jest cokolwiek znaleźć, zapoznałem się z dokumentacją techniczną i zasadą działania standardu USB. Mam nadzieję, że ta wiedza będzie pomocna, ponieważ poznawanie standardu USB było uciążliwe. Wiele jest ciekawych materiałów w sieci, po przeczytaniu skrócony opis zamieściłem w http://student.agh.edu.pl/~siara/USB.pdf

Materiały

pl/miw/miw08_mindstormscontrols.1207126425.txt.gz · ostatnio zmienione: 2019/06/27 15:58 (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