Matlab - Problema con la adquisición de imagenes

   
Vista:

Problema con la adquisición de imagenes

Publicado por Sergio (4 intervenciones) el 23/06/2015 17:59:43
Buenas tardes a todos, aver si podeis ayudarme en este tema porque nose que hacer ya..

estoy trabajando en una maqueta ball and plate y la estoy programando con Matlab, usando el control Fuzzy.

Tengo el problema en los siguientes sitios (adjunto codigo):

clear all
close all
clc

global t0;
global mitjanaLoc;
global loc;
global posDesitjada;
global radius;
global Kp;
global a;

Kp = 0.010;
totalTime = 40;

posDesitjada (1,1)=0;
posDesitjada(2,1) = 0;

a = arduino('COM3');
a.servoAttach(3);
a.servoAttach(9);

vid= videoinput('winvideo', 1, 'YUY2_640x480');
vid.ReturnedColorSpace='grayscale';

set(vid, 'FramesPerTrigger', 40);
set(vid, 'FramesAcquiredFcnCount', 1);
set (vid, 'FramesAcquiredFcn','ControlBola')

disp('Inici');

loc = [];
mitjanaLoc = [];
contador = 0;

start(vid);
t0=clock;
pause(totalTime);
stop(vid);
disp('Fet');

figure(2)
plot3 (loc(1,:), loc(2,:), loc(3,:))
hold on
plot([0 0], [0 0], [0 45],'k', 'LineWidth', 2)
title ('posició de l´objecte en funcio del temps')
xlabel('x')
ylabel('y')
zlabel('temps')
axis([-175 175, -175 175])
grid on


delete (vid)
clear vid

Me salta el siguiente Warning: ' Warning: The FramesAcquiredFcn callback is being disabled.
To enable the callback, set the FramesAcquiredFcn property'.

No tengo idea de como hablitar esta property, y sin esto mi codigo no funciona, ya que es el primer paso.. 'ControlBola' es un script aparte que llamo desde el codigo principal, adjunto codigo:

function ControlBola(obj, event)

global loc;
global contador;
global t0;
global kp;
global posDesitjada;
global a;
contador = contador+1;
im=peekdata(obj, 1);
[loc(1,contador) loc(2,contador)] =trobarPeca(im);
loc(3,contador)=etime(clock, t0);

figure(1)
plot(loc(1,contador),loc(2,contador),'*')
axis([-175 175, -175 175])
title('Posició de l´objecte')
xlabel('x(mm)')
ylabel('y(mm)')
grid on

if contador ==1
mitjLoc = loc(1:2, contador);
elseif contador == 2
mitjLoc=median(loc(1:2, contador-1:contador),2);
else
mitjLoc=median(loc(1:2,contador-2:contador),2);
end

kp = 0.010;
nouAngle=((posDesitjada(:,1)-mitjLoc(:,1)).* kp+pi/2)*360/(2*pi);
nouAngle=abs(round(nouAngle-180*fix(nouAngle./180)));
a.servoWrite(3, nouAngle(1));
a.servoWrite(9, nouAngle(2));

pause(0.05)


Muchas gracias de antemano!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Dave

Problema con la adquisición de imagenes

Publicado por Dave correa.dave30@gmail.com (934 intervenciones) el 24/06/2015 08:12:38
Hola Sergio;

Te sugiero que revises el siguiente link, allí encontrarás un ejemplo muy interesante.

http://www.mathworks.com/matlabcentral/newsreader/view_thread/281672

Espero que sea de alguna ayuda.

Saludos
Dave Correa
correa.dave30@gmail.com
dcorrea@fismatlab.org
Servicios de Programación Matlab
http://fismatlab.org
http://fismatlab.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con la adquisición de imagenes

Publicado por Sergio (4 intervenciones) el 24/06/2015 13:07:01
Hola, muchas gracias por el aporte, pero no he podido dar con la solución, no entiend de donde viene el problema..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con la adquisición de imagenes

Publicado por vicente (3 intervenciones) el 23/11/2015 22:13:50
estimado sergio le escribo porque yo quiero comunicar un arduino uno con matlab pero el problema que tengo es que no tengo los paquetes de matlab para trabajar con arduino.y nos los he podido descargar por problemas con internet ya que vivo en cuba, si me lo pudieran enviar por este foro seria un ayuda grandisima.. saludos vicente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar