matlab经典编程例题分析 matlabgui设计实例语言信号( 三 )


b_count_flag = b_count_flag + 1;
end
if out(a) == 10
c_count_flag = c_count_flag + 1;
b_count_flag = b_count_flag – 1;
i = b_count_flag;
while b_count_flag~=0
data(c_count_flag) = a_temp(b_count_flag) * (10^(i – b_count_flag)) + data(c_count_flag);
%将rgb565格式转化成适合计算机处理的形式
imgR = uint8((255/31)*bitshift(bitand(data,63488),-11));
imgG = uint8((255/63)*bitshift(bitand(data,2016),-5));
imgB = uint8((255/31)*bitand(data,31));
imgRGB = cat(3,imgR,imgG,imgB);
imwrite(imgRGB,Sun.jpg);%存储当前帧
3.3GUI界面布局
利用MATLAB GUIDE开发工具,添加完成必要的控制框,包括静态文本框、弹出式菜单、可编辑文本框、按钮、坐标轴 。
完成后的界面如图5所示 。界面设计了一般串行通信参数设置按钮,可对波特率、数据位、停止位等数值进行设置,这里根据STM32程序中的对应设置,选择相应的参数 。Pixel为像素数的大小,由图像传感器寄存器中的相应设置来选择接收像素数 。方形静态文本框显示当前执行状态 。坐标轴(axes1)显示当前接收到的图像 。右边打开串口(open serial)完成串口参数的读取设置,并发送握手信号 。发送控制信号(send control signal)通过串口发送控制信号给伺服电机,完成精确的太阳定位跟踪 。关闭(close)按钮释放串口对象在MATLAB工作区中占用的存储空间,并退出应用 。

matlab经典编程例题分析 matlabgui设计实例语言信号


4实验
设置波特率为115 200,数据位8 bit,停止位1 bit,无奇偶校验位,像素数为240×240 。图片以45 s为周期进行刷新,满足预期 。太阳图像显示结果如图6所示 。

matlab经典编程例题分析 matlabgui设计实例语言信号


5结论
【matlab经典编程例题分析 matlabgui设计实例语言信号】针对目前太阳辐射测量中的跟踪系统累积误差较大、速度较慢等问题,提出了一种基于MATLAB与ARM的太阳图像采集系统 。该系统可以直观、快速地显示当前系统的运行状态与太阳的实时变化,使控制过程可视化 。同时,上位机采用MATLAB编程实现,可以利用软件本身的图像处理方法与工具箱,为下一步太阳质心提取算法的开发提供良好的平台,可大大节省开发时间 。GUI程序发布后,移植方便,无需安装MATLAB软件,可在任意一台PC上以静态或动态的图像处理结果,驱动电机等执行器,实现高精度的太阳跟踪自动控制 。

推荐阅读