umbral = 150;
potenciaAdelante = 5;
potenciaGiro = 3 * potenciaAdelante;
COM_CloseNXT all
hNXT = COM_OpenNXT('bluetooth.ini');
COM_SetDefaultNXT(hNXT);
placa = serial( 'COM4' , 'BaudRate', 9600 );
fopen( placa );
try
i = 1;
mi = NXTMotor('A');
md = NXTMotor('B');
while (i < 10000)
loQueRecibo = fscanf( placa );
loQueRecibo = sscanf(loQueRecibo,'%d');
a = size(loQueRecibo);
if(a(1) == 2)
loQueRecibo;
valorIzquierda = loQueRecibo(1);
valorDerecha = loQueRecibo(2);
if( (valorIzquierda < umbral) && (valorDerecha > umbral) )
display('Me muevo hacia la izquierda.');
mi.Stop('off');
mi.SendToNXT();
md.Power = potenciaGiro;
md.SendToNXT();
elseif( (valorDerecha < umbral) && (valorIzquierda > umbral) )
display('Me muevo hacia la derecha.');
md.Stop('off');
md.SendToNXT();
mi.Power = potenciaGiro;
mi.SendToNXT();
elseif( (valorDerecha > umbral) && (valorIzquierda > umbral) )
display('Me muevo hacia adelante como los de alicante.');
mi.Power = potenciaAdelante;
mi.SendToNXT();
md.Power = potenciaAdelante;
md.SendToNXT();
else
md.Stop('off');
mi.Stop('off');
loQueRecibo
%pause;
end
i = i + 1;
end % compruebo que he recibido dos
end
catch err
loQueRecibo
display('LEÑO GORDO')
err
try
mi.Stop('off');
md.Stop('off');
catch err1
end
fclose( placa );
COM_CloseNXT(hNXT);
end % try-catch
mi.Stop('off');
md.Stop('off');
fclose( placa );
COM_CloseNXT(hNXT);
He utilizado la la última versión estable de laRWHT toolbox. Ahora está orientada a objetos y utiliza una aplicación en nxc para un, según ellos, mejor control de los motores.
No hay comentarios:
Publicar un comentario