Society of Robots - Robot Forum

Software => Software => Topic started by: xkyve on June 03, 2012, 09:40:17 AM

Title: Real time data plotting RS232 through MATLAB
Post by: xkyve on June 03, 2012, 09:40:17 AM
The Matlab script is working, but I need a little help on a detail.

I am sending data from the microcontroller to the PC using UART (RS232) evey 100 ms (it can be configured). I'm sending two integer values.

The matlab script reads both values correctly and stores them in 2 vectors, one for each value read. The vectors are growing in size over time, and as they grow I want to update my plot. (Plot as two series against time).

The thing is I can update only one graph in the plot using this:
set(plotHandle, 'YData', voltage, 'XData', time);

I have tried this to update both:
plot(axesHandle,time,voltage,time,target,'LineWidth',2);

where time, voltage and target are the 3 series. And I want to plot voltage and target as two series against time.

But it is too slow re-plotting everything, I have a major delay. The "set" method works fast but only for one series against time.

This is the code if you want to look into it:
https://github.com/xkyve/mobility/blob/master/matlab/real_time_data_plot.m
Title: Re: Real time data plotting RS232 through MATLAB
Post by: xkyve on June 05, 2012, 06:32:24 AM
i managed to solve the problem, in case anyone will need this, the link is still the same:

https://github.com/xkyve/mobility/blob/master/matlab/real_time_data_plot.m