Comunicação com os motores em Matlab

Pode fazer download do programa aqui.

Janela do programa

Este exemplo demonstra como se programa a comunicação entre o pc e os motores através da placa PMD.

O utilizador só tem de introduzir a tensão que pretende dar a cada motor entre 0 e 5V e pressionar o botão Testar Valores para visualizar o seu efeito no robô. Para voltar a parar os motores basta  pressionar o botão Parar motores.

 

Descrição do código criado

Inicio do programa

%%%MY CODE STARTS HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Configure the mcc card
delete(daqfind)
handles.ao = analogoutput('mcc',1); %cria o objecto anologico
chan = addchannel(handles.ao, 0:1); % Add lines
set(handles.ao,'SampleRate',100); %maximixa o tempo de reação da actualização dos valores

%%%MY CODE ENDS HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Nestas linhas de código declara-se um objecto de saídas analógicas e criam-se dois canais, um para cada motor. O tempo de amostragem é configurado para 100 amostras por segundo (máx) para minimizar atrasos.

 

Código executado quando se pressiona o botão Testar Valores

%%%MY CODE STARTS HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
auxe=str2double(get(handles.edit_testeesq,'String'));
auxd=str2double(get(handles.edit_testedto,'String'));
putdata(handles.ao,[auxe auxd]);
start(handles.ao);
pause(0.01)
stop(handles.ao);
%%%MY CODE ENDS HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Os valores da tensão são lidos das caixas de texto e são enviados para aplaca de aquisição PMD. O comando pause foi utilizado para que se possa fazer start seguido do stop que permite estar sempre a alterar os valores da tensão nas caixas e enviá-las de novo aos motores. Assim quando é executado o start as tensões são enviadas aos motores e mantém-se inalteradas até serem enviadas novas tensões. O stop volta a disponibilizar o canal para ser possível voltar a enviar outras tensões.

 

No botão Parar Motores são simplesmente enviadas tensões nulas.