TCC – CONTROLE ROBÓTICO REFERENCIADO POR SISTEMA DE VISÃO COMPUTACIONAL UTILIZANDO O KINECT

Anúncios

Dicas MATLAB – Desalocando o uso da porta serial

Se você que usa o MATLAB nunca passou pelo problema de a comunicação serial travar e ser necessário reiniciar o mesmo, pode ter certeza que vai passar isso.
Mas hoje vou deixar um dica de como desalocar o uso da serial dentro do script sem que o mesmo feche o script ou trave o uso da porta serial.

Usaremos a instrução INSTRFIND , esse comando é responsável por verificar se algum objeto está conectado a porta serial.

Para efetuar a desconexão do objeto usaremos a função FCLOSE, da seguinte forma:

fclose(instrfind)

Abaixo deixo um fragmento do script que efetua o fechamento da porta sem efetuar o termino do script, utilizando é claro o método de tratamento de erro, conforme explique em outro post.

%Script responsável por efetuar a conexão a porta serial 
%Nome do script: conecta_serial.m
%Forma de uso: conecta_serial('COM1')

function [ viRetorno ] = conecta_serial ( vsCom ) 
    viControle = 1; 
    while(viControle == 1)
        try
            voSerial = serial(vsCom); 
            fopen(voSerial);
            disp('Serial conectada...'); 
            viControle = 0; 
       catch 
           disp('Erro ao conectar na serial');
           fclose(instrfind); 
           disp('Serial sendo reconectada...');
           viControle = 1;
       end
    end %fim while 
por Hamilton Sena Postado em Matlab

Dicas MATLAB – Barra de progresso

image003.png

Enquanto matlab está sendo executado uma função por muito tempo ou em algum laço de repetição, o usuário não tem idéia de quando será concluída. Ao implementar uma barra de progresso, o usuário será capaz de ver o status da função e quando ela será concluída. Neste tutorial, você aprenderá como implementar uma barra de progresso para o seu script GUI ou em alguma função. Este comando é normalmente usado dentro de uma loop que executa um cálculo muito longo. Embora seja possível usar o waitbar, não é tão flexível como essa barra de progresso personalizado por três razões:

  1. Não mostra a percentagem concluída

  2. Não mostra tempo restante antes da conclusão

  3. Se o usuário fecha a barra, antes de esperar que ela seja concluída, ocorrerá um erro

Fonte: http://blinkdagger.com/matlab/matlab-gui-tutorial-progress-status-bar/

por Hamilton Sena Postado em Matlab

Dicas MATLAB – Tratamento de exceções

Durante o desenvolvimento de um programa, podem existir alguns casos no qual não temos a certeza que um pedaço do código irá funcionar corretamente, ou porque acessa recursos que não existem ou porque sai de um limite esperado.

Esses tipos de situações anômalas estão incluídas no que consideramos exceções.
Abaixo segue o link da utilização dos operadores no matlab.

Fonte: http://www.mathworks.com/help/techdoc/ref/try.html

obs: Dá pra usar com a comunicação serial, pra saber se foi aberta ou não, sem terminar a execução do script com algum erro.

Segue um exemplo abaixo:

 
try 
    fopen(erty); 
    disp(Não Ocorreu um erro); 
catch 
   disp(Ocorreu um erro); 
end 
por Hamilton Sena Postado em Matlab

Dicas MATLAB – Threads

Thread é uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrentemente.

Em diversas liguagens de programação é possivel efetuar threads utilizando modulos especificos da linguagem, onde é passado para algum modulo a função ou classe que será executada em paralelo ao programa principal.

No caso do MATLAB não é bem uma thread mas com um pouco de criatividade é possivel simular algumas caracteristicas de uma thread real. Como por exemplo efetuar visão de maquina de um robo onde o movimento do robo ocorre em um script, enquanto em outro script é efeuado a aquisição da imagem de um objeto mediante a uma camera.

Com um pouco de criatividade da pra fazer chuver.
Principalmente se usar variáveis globais, pois dessa forma da pra fazer interação entre os scripts paralelos.

Fonte: http://blogs.mathworks.com/pick/2008/05/05/advanced-matlab-timer-objects/

por Hamilton Sena Postado em Matlab