clear;
disp('Ligado');
pause;

%           PROGRAMA PARA UMA TRAJECTORIA EM OITO

%---------------------------------------

ao=analogoutput('nidaq');
addchannel(ao, 0);
ch0=ao.Channel;

ao1=analogoutput('nidaq');
addchannel(ao1, 1);
ch1=ao1.Channel;


sampleRate=1000;

set(ao,'SampleRate',sampleRate);
set(ao1,'SampleRate',sampleRate);

set(ao, 'TriggerType', 'Immediate');
set(ao, 'RepeatOutput',0);

set(ao1, 'TriggerType', 'Immediate');
set(ao1, 'RepeatOutput', 0);

%------------------------------------------------------

z=0;
putdata(ao, [z]');
start(ao);

stop(ao);


Vmotor=1.8;

    
    putdata(ao, [Vmotor]');
    start(ao); 
    stop(ao);
    
    
dio = digitalio('nidaq', 1);
addline(dio, 0:4, 0, 'Out');
putvalue(dio, [1 1 1 1 0]);

d=0;

while d==0,

    tic
rgb_=vfm('grab',1);
% imshow(rgb_)
rgb_1=(rgb_(:,:,1) >250);
rgb_2=(rgb_(:,:,2) >250);
% rgb_3=(rgb_(:,:,3) >250);
rgb_4 = rgb_1 & rgb_2;
% figure
% imshow(rgb_4)

[x y]=find(rgb_4);

xx=max(x);

if xx>7,
xx_M=rgb_1(xx-7,:);
[x_M y_M]=find(xx_M);

[yy_m]=min(y_M);
[yy_M]=max(y_M);

if yy_m>=1,
    yy_m=yy_m+10;
else yy_m=yy_m;
end

if yy_M<=160,
    yy_M=yy_M-10;
else yy_M=yy_M;
end


end

% yy_med=yy_m+(yy_M-yy_m)/2

if yy_m~=[],

if yy_m<=79,
    Vref=(yy_m-47)*(-1.8/46);
    putdata(ao1, [Vref]');
    start(ao1); 
    stop(ao1);
    
elseif yy_m>79,
    Vref=(yy_M-111)*(-1.8/49);
    putdata(ao1, [Vref]');
    start(ao1); 
    stop(ao1);
end
end
toc
end

%---------------------------------------

%   ENCERRAR COM OS CANAIS A ZERO.

z=0;
putdata(ao, [z]');
start(ao);
stop(ao);

z1=0;
putdata(ao1, [z1]');
start(ao1);
stop(ao1);

putvalue(dio, [0 0 0 0 0]);
stop(dio);
