智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 25983|回复: 68
打印 上一主题 下一主题

[其他] 手把手教你从零开始用labview编写智能车上位机程序(5)

  [复制链接]

0

主题

294

帖子

1

精华

功勋会员

Rank: 10Rank: 10Rank: 10

积分
4137

特殊贡献奖章

QQ
威望
2664
贡献
1409
兑换币
35
注册时间
2007-11-22
在线时间
32 小时
跳转到指定楼层
1#
发表于 2008-6-13 17:45:14 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
<><FONT color=#1a1ae6 size=6>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;图形绘制</FONT></P><P><FONT color=#1a1ae6 size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 今天应该是讲到这个教程的最后部分了,有人看了肯定会觉得才写了这么点就没了。对这个教程,我在一开始写的时候就就是以简单为主,告诉大家如何入手labview。我学这个也没多久,像内存优化之类的高级功能还不熟悉,多进程也只是用了点皮毛而已。而且,这个车上位机软件编写还需要根据你的车上的程序和实际需要来修改,我这里只是讲述如何编写通用的上位机软件,也就是说你想编这个上位机软件时肯定会用到的技术,至于那些比较花哨的东西(比如改背景)可以不要,所以全部省掉。</FONT></P><P><FONT color=#1a1ae6 size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 罗嗦了这么多,下面进入正题吧。在上篇中,我们拥有了一个简陋的通讯协议,在单片机上我们发送字符串“image”然后发送一个固定长度的图片,从左到右从上到下一次发送每个点的灰度值,而且这个灰度值的长度是固定的10*100。对于labview,每次收到的是4096个字节的字符串,从中搜索到“image”,然后把后面的10*100个字符串取出来,上位机就得到图像数据了。最后把这些数据用字“符串显示控件”显示出来,而且要把“符串显示控件”拖到合适大小才行。</FONT></P><P><FONT color=#1a1ae6 size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 现在呢,我们要把这个些图像数据显示成图像该怎么办呢?原因不说了,见步骤:</FONT></P><P><FONT color=#1a1ae6 size=3>(1)把这些字符串转化成“无符号字节数组”。</FONT></P><P><FONT color=#1a1ae6 size=3>编程面板:编程-&gt;字符串-&gt;字符串/数组/路径转换-&gt;&nbsp;“字符串至字节数组转换”&nbsp; </FONT><IMG src="http://download.intelligentcar.cn/bbsupfile//upfile/截图01.jpg"></P><P><FONT color=#1a1ae6 size=3>(2)上面得到的是一位数组,下面把它转化成10*100的二维数组。</FONT></P><P><FONT color=#1a1ae6 size=3>编程面板:编程-&gt;数组-&gt;“转换数组维数”</FONT></P><P><FONT color=#1a1ae6 size=3><IMG src="http://download.intelligentcar.cn/bbsupfile//upfile/截图04.jpg"></FONT></P><P><FONT color=#1a1ae6 size=3>(3)平化像素图</FONT></P><P><FONT color=#1a1ae6 size=3>编程面板:编程-&gt;图形与声音-&gt;图形格式-&gt;“平化像素图”</FONT></P><P><FONT color=#1a1ae6 size=3><IMG src="http://download.intelligentcar.cn/bbsupfile//upfile/截图05.jpg"></FONT></P><P><FONT color=#1a1ae6 size=3></FONT>&nbsp;</P><P><FONT color=#1a1ae6 size=3>(4)绘制平滑像素图</FONT></P><P><FONT color=#1a1ae6 size=3>编程面板:编程-&gt;图形与声音-&gt;图片函数-&gt;“绘制平化像素图”</FONT></P><P><FONT color=#1a1ae6 size=3>编程面板:编程-&gt;簇/类/与变体-&gt;“按名称捆绑”</FONT></P><P><FONT color=#1a1ae6 size=3><IMG src="http://download.intelligentcar.cn/bbsupfile//upfile/截图06.jpg"></FONT></P><P><FONT color=#1a1ae6 size=3>(5)右边接入图片控件,就可以显示了。</FONT></P><P><FONT color=#1a1ae6 size=3>前面板:新式-&gt;图形-&gt;控件-&gt;“图片”</FONT><BR><BR><BR><IMG src="http://download.intelligentcar.cn/bbsupfile//upfile/截图07.jpg"></P><P><FONT color=#1a1ae6></FONT>&nbsp;</P><P><IMG src="http://www.intelligentcar.cn/images/affix.gif"><A target=_blank href="http://download.intelligentcar.cn/bbsupfile//upfile/串口接收示例4.rar" target=_blank>串口接收示例4.rar</A></P><P><FONT color=#e61abd size=5>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 只要你的单片机程序没问题,现在应该可以显示图片了。但是这个程序实在是太简陋了,面临的问题还有很多:</FONT></P><P><FONT color=#2292dd size=4>(1)这个程序有漏数据的情况,我明明发了3副,他却只能收到1副。</FONT></P><P><FONT color=#ff0033 size=4>答:有多种可能,在编这个程序时首先要考虑一下串口速度和所发送数据的数据量。还有就是目前这个labview上位机程序是有问题的,那就是每次从串口缓冲区读取4096个字节的数据,却只从中搜索了副图像,其他的扔掉了。我们可以使用“移位寄存器”把搜索后剩余的字符串与下一次收到的进行连接,然后再进行搜索,这样就不会漏掉了。</FONT></P><P><FONT color=#2292dd size=4>(2)我现在是在调试程序,那个图片的尺寸随时会不停地修改,这样做的话,每次修改真麻烦,单片机修改后还需要修改上位机软件,有没有可以使上位机自动适应这个参数的呢?</FONT></P><P><FONT color=#ff0033 size=4>答:可以修改通信协议,单片机每次发送图像修改为以下格式</FONT></P><P><FONT color=#ff0033 size=4>printp("size");printp("%3d%3d",high,width);print("image");printp("图像数据");</FONT></P><P><FONT color=#ff0033 size=4>然后在上位机上先截取前面的参数,然后再处理后面的图像数据。</FONT></P><P><FONT color=#e61abd size=5>程序运行速度怎么这么慢?我如何使用上位机软件来控制小车?如何向上位机软件发送更多的信息,包括车速等?等等等等。。。。。。。。问题实在是太多了。一下子真的说不清楚如果有需要我会单独发帖各个击破!</FONT></P><P><FONT color=#ff3300 size=5 face=幼圆><STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;偶近期看了一下这个帖子的回复,应者寥寥,这让我怀疑这几个帖子的实际价值,也许我在做无用功吧。最初是因为觉得上位机软件对做摄像头的很重要,但从来没看到有讲过这方面的帖子,有的话也都是写的很粗糙,虽然没空余时间,但还是写了。如果你们觉得对你有用,就回个帖子吧,大家讨论讨论!!谢谢!!!再这样的话我也不敢保证我能继续给大家发有价值的帖子了!!</STRONG></FONT></P>

0

主题

3

帖子

0

精华

注册会员

Rank: 2

积分
86
威望
52
贡献
20
兑换币
22
注册时间
2015-4-20
在线时间
7 小时
毕业学校
重庆科技学院
69#
发表于 2015-6-30 12:03:43 | 只看该作者
必须顶
回复 支持 反对

使用道具 举报

8

主题

282

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2056
QQ
威望
1038
贡献
670
兑换币
675
注册时间
2012-12-26
在线时间
174 小时
68#
发表于 2013-8-24 17:10:33 | 只看该作者
收益颇丰
回复 支持 反对

使用道具 举报

5

主题

19

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
319
QQ
威望
171
贡献
96
兑换币
89
注册时间
2013-3-11
在线时间
26 小时
67#
发表于 2013-5-18 21:23:17 | 只看该作者
为什么有些东西 例子下载不了?
回复 支持 反对

使用道具 举报

16

主题

590

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2987
威望
1599
贡献
34
兑换币
939
注册时间
2012-11-17
在线时间
677 小时
66#
发表于 2013-3-27 13:28:15 | 只看该作者
呵呵  挺不错的啊
回复 支持 反对

使用道具 举报

1

主题

102

帖子

0

精华

高级会员

Rank: 4

积分
798
QQ
威望
425
贡献
151
兑换币
244
注册时间
2012-11-16
在线时间
111 小时
65#
发表于 2013-2-22 13:36:14 | 只看该作者
写的很好啊  做的时候没什么头绪  看了你写的大概就知道怎么做了 灰常感谢
回复 支持 反对

使用道具 举报

3

主题

86

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1551
威望
818
贡献
383
兑换币
138
注册时间
2012-3-27
在线时间
175 小时
64#
发表于 2012-12-3 22:28:19 | 只看该作者
你好,我想问一下你编写的labview的上位机程序接收的图像数据,是二值化后的图像数据?还是灰度图像、
回复 支持 反对

使用道具 举报

5

主题

370

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1534
QQ
威望
921
贡献
397
兑换币
68
注册时间
2011-11-26
在线时间
108 小时
63#
发表于 2012-8-24 16:34:07 | 只看该作者
8错8错
回复 支持 反对

使用道具 举报

0

主题

23

帖子

0

精华

注册会员

Rank: 2

积分
169
威望
131
贡献
28
兑换币
0
注册时间
2012-5-10
在线时间
5 小时
毕业学校
xcl
62#
发表于 2012-5-10 17:47:02 | 只看该作者
支持.......................
回复 支持 反对

使用道具 举报

4

主题

34

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1283
威望
475
贡献
684
兑换币
40
注册时间
2012-2-5
在线时间
62 小时
61#
发表于 2012-4-7 01:08:52 | 只看该作者
大哥,你的第一章串口接收示例还有串口收发示例我这下载不了,能麻烦发我邮箱吗?多谢,544584305@qq.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-28 22:56 , Processed in 0.059538 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表