智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 34299|回复: 70
打印 上一主题 下一主题

专业智能车上位机调试软件

  [复制链接]

10

主题

150

帖子

0

精华

版主

Rank: 9Rank: 9Rank: 9

积分
4173

活跃会员奖章优秀会员奖章在线王奖章

QQ
威望
1826
贡献
1013
兑换币
564
注册时间
2012-3-1
在线时间
667 小时
跳转到指定楼层
1#
发表于 2012-3-1 17:28:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 小豹 于 2012-3-1 17:47 编辑

专业智能车上位机调试软件

一、如果有这样的一个功能,它可以让你看到你所采集的图像长什么样,并且还可以看到经过你各种滤波算法处理过后图像的模样,然后你就可以通过它轻易看出你的算法是否合理,或者分析怎么样进一步优化你的算法了。你难道不兴奋,不垂涎吗?对,要实现这个功能就要通过上位机了。也许你可能会说那不简单嘛,网上串口调试软件一大堆,随便拿一个来接收数据观察保存数据,然后在处理不就完了嘛。其实这种想法是可以的,也是50%以上的朋友调车时所采用的方法,但是这种调试方式实现起来真是的履步维艰啊,可能你已经体会到调试过程中的艰辛了。一大堆的数据,这么混乱不清,虽然看到这些数据自己已经激动得不得了,但是真的要从这些数据中挖掘对我们调试有利的信息其实是比较很繁琐的,多半都是在做一些无用功尔,况且你下载的串口调试软件中如果做得不是很好的话,发送速度一加块,数据的实时显示功能就不行了,有甚卡死直接未响应了。
二、到这里可能就会有些高手笑着说:“串口?速度这么慢,问题这么多,这么低端,我们不用它,我们用SD卡,SD卡高端!”。嗯,没错,做上位机分析数据的另一种方式就是把采集到的图像数据信息存储到SD卡当中,每过一段时间取出SD卡然后放到电脑中用软件读取出图像数据来再进行分析处理等。这种方式很大程度上保证所采集数据的完整性。但有一个问题就是,你是不是得让跑一段距离后,再拿出SD卡,然后再处理,当你看到采集回来的图像这么完整漂亮,说不出的喜悦之情在所难免的,但是车子方向和摄像头角度的精确位置你真的很难凭图像逆推出来了,而且,玩一小段路程下来,你真的是费了不少的劲了,弄不好有的朋友真的可能已经把好好的车子给调试坏了,真是折腾不起啊,伤不起啊。虽然说折腾无极限,折腾本身就是一种精神,没有折腾地去实践,车子不会跑起来的,也不可能会跑得比原来快一点点的,所以许许多多的智能车爱好者就奋不顾身地把有限的时间投入到了无限调试当中了,就是为了爱车能跑再快一点、再快一点,就这样费劲心思、废寝忘食、没日没夜地进行调试,不断的修改算法、修改参数,总感到不太完美,又无法取得突破,真是到了瓶颈阶段了,到了最后就看运气了,看老天爷了,但是结局怎样其实已经明显了,但这不能怪你思维不好,算法不优秀,只能怪调试方式有问题,调试工具不够精良。
三、所以,影响车子的最终速度在于调试阶段。这款专用调试软件就是在这种复杂的需求下应运而生了,它给专注于调试硬件电路、调试图像处理算法、控制算法的朋友们提供一个操作方便,功能强大的上位机调试环境。通过它,你只要简单把采集到的图像数据发到串口,每张图像数据开始发送时先发送个标志位如0x01,告诉上位机一幅图像开始了。然后设置上位机的图像的宽度和高度跟下位机采集的一样就行了,通过上位机就可以实时的显示图像信息了。然后你只要简单的把图像处理的那部分算法源码加到我们提供的一个VC6.0的模板工程里头的一个函数里面,编译会生成一个后缀名为dll的文件,你在软件中加载这个dll算法库,就生成一个算法插件了。以后通过点击这个插件按钮就可以看到处理后的效果啦,边上下浏览变处理,岂不快哉!

下面介绍这个调试软件拥有的功能和使用方法。

1、实时性好,能够非常流畅地显示摄像头采集的实时图像。
2、串口数据丢失少,几乎不存在数据丢失的情况。即便波特率设定为25000连续不断的发送,也是没有任何问题的,
   因为经过   测试,每秒发100kb的数据,软件接收和显示均良好。(说明:在高速接收串口数据时请不要来回拖动点击软件
   窗口,因为测试发现频繁地放大缩小或者频繁点击软件窗口会导致接收数据的不完整)
3、强大的历史图像浏览功能,可以通过点击上位机的上一张、下一张按钮浏览全部的历史图像以及图像数据信息。软件内
   部默认开辟50张的图像内存大小,当软件接收到超过50张时,则以50张图片的内存大小递增,软件能够临时存储的图片
   数由计算机内存决定。由于下位机采集的图像一般像素比较低,所以临时保存几十万张图像是没有任何问题的。
4、图像灰度值数据列表,对任何图像都可以选择查看,它就是下位机上传上来的实际数据了。
5、可以选择保存当前正在浏览的图像,也可以一下子保存全部接收到的图像。看哪张PP顺眼就保存哪张这个功能就
   比较人性化了。
6、友好的界面设计,可以任意调节软件窗口大小,图像显示区域会自动适应窗口的大小,图像与数据显示区域内部也可
   以通过拖动十字线进行拉伸或者缩小,使用时非常方便。
7、实用、丰富的界面信息显示,动态显示串口接收到的图像数、当前图像已接收的字节数、总接收字节数、总丢失字节数
  (这里需要解释一下总丢失字节数,我们发送数据时为了标志一帧图像的开始,我们需要发一个专用字节来进行标志,
   当上位机接收到两个标志位并且两个标志位之间的数目正好是一幅图像的数据就表明一帧图像接收完成,假如收到
   两个标志位之间的字节数小于一帧图像的字节数,就说明数据丢失了。所以我们的标志位应该设置一些极端值,也就是
   一些摄像头几乎永远不可能采集到的灰度值,比如0或者255等一些特殊值)。通过这些参数信息可以轻易看出下位机
   采集数据以及往串口发送数据时的工作情况。
8、图像灰度值抓取功能,当启动灰度图抓取功能后用鼠标指向图片中任何部位,即可显示当前点的灰度值。对图像每个
   具体细节的灰度值观察变得简单快捷。
9、图像直方图显示功能,通过它你可以轻易看到每个灰度值在一幅图像中出现的频率了。
10、极富魅力、震撼力的算法插件功能,该功能真的让你从此告别盲调了。并且算法插件由你自己编写,会提供一个vc6.0
   的工程模板,在里面给出一个提供有图像数据信息的函数下写算法代码就可以了,实现非常简单,把下位机的算法
   代码拷贝到里头基本不用修改什么就可以编译通过,而且想添加多少个算法插件都无所谓,想怎么添加就怎么添加。
   这样你就拥有了无限的算法库了,并且可以直观看到每种算法的实际效果了。

开发环境:Windows7 32位 + VC6.0 。
关键技术:1、本软件使用MFC类库做界面开发。
                   2、串口通信技术,本软件使用微软提供的MSCOMM32.OCX控件进行串口操作。
                   3、多线程技术,本软件使用三条线程进行处理,一条线程负责接收数据,一条负责数据处理操作
                        最后一条线程进行界面更新操作。使得在高速接收串口数据的情况下,软件运行顺畅。
                   4、缓冲区机制,本软件使用三级缓冲区的机制,每个缓冲区采用双向循环链表实现。
                         减少数据丢失的情况,而且非常灵活实现对这些数据进行操作处理。
                   5、DLL动态链接库技术,实现算法库的动态添加,动态算法库使用C语言编写,
                         编译生成DLL文件,加载到软件形成算法插件,直接点击插件按钮使用,就可以看到处理后的效果,
                         真正意义上实现了模拟单片机程序的执行情况。
               6、VC对位图的基本操作技术。
      好了,每种技术背后所实现的具体细节就不多说了,因为涉及技术面广,况且每种技术都是比较繁杂的,
      也就不可能仅靠一 两篇文章就能说得清的。截图上来吧,要不然又要说什么无图无真相了,下面是软件截图:

      由于软件尚未进行封包处理,还一直在不断测试,不断添加新功能中。
      所以现在软件还不能进行发布,但会考虑近期内发布,望谅解!


2012/3/1  小豹
世界上没有永远的陌生人,
只有还未认识的朋友!




补充内容 (2012-3-1 18:13):
http://wenku.baidu.com/view/3a7054130b4e767f5acfce46.html
见文库说明。

补充内容 (2012-3-15 18:23):
体验版已发布,请转向:
http://www.znczz.com/thread-89062-1-1.html
http://item.taobao.com/item.htm?id=16067720881

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

4

主题

69

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1362
威望
743
贡献
385
兑换币
94
注册时间
2012-2-3
在线时间
117 小时
毕业学校
哈工大威海
2#
发表于 2012-3-1 18:12:46 | 只看该作者
很棒。。我用C#写的。。。咱们可以交流下
回复 支持 反对

使用道具 举报

16

主题

352

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2535

优秀会员奖章活跃会员奖章

QQ
威望
888
贡献
1261
兑换币
10
注册时间
2011-8-31
在线时间
193 小时
3#
发表于 2012-3-1 19:08:38 | 只看该作者
n牛逼
回复 支持 反对

使用道具 举报

21

主题

274

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3307
威望
1082
贡献
1863
兑换币
72
注册时间
2011-3-26
在线时间
181 小时
4#
发表于 2012-3-1 20:06:53 | 只看该作者
牛逼。。。希望共享撒
邮箱 1114664998@qq.com
回复 支持 反对

使用道具 举报

10

主题

150

帖子

0

精华

版主

Rank: 9Rank: 9Rank: 9

积分
4173

活跃会员奖章优秀会员奖章在线王奖章

QQ
威望
1826
贡献
1013
兑换币
564
注册时间
2012-3-1
在线时间
667 小时
5#
 楼主| 发表于 2012-3-1 20:42:42 | 只看该作者
xiangxiang8 发表于 2012-3-1 18:12
很棒。。我用C#写的。。。咱们可以交流下

嗯,C#是很不错的选择的,但是C#效率上可能是要比不上C++了。
回复 支持 反对

使用道具 举报

10

主题

150

帖子

0

精华

版主

Rank: 9Rank: 9Rank: 9

积分
4173

活跃会员奖章优秀会员奖章在线王奖章

QQ
威望
1826
贡献
1013
兑换币
564
注册时间
2012-3-1
在线时间
667 小时
6#
 楼主| 发表于 2012-3-1 20:44:44 | 只看该作者
zhu_xuekui 发表于 2012-3-1 20:06
牛逼。。。希望共享撒
邮箱

嗯,先再加点新的功能还有完善一下使用说明书,打包整理好后再发布吧。
回复 支持 反对

使用道具 举报

28

主题

210

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3929
QQ
威望
1227
贡献
2194
兑换币
102
注册时间
2011-6-21
在线时间
254 小时
7#
发表于 2012-3-1 20:51:14 | 只看该作者
这个只适用于摄像头的吧
回复 支持 反对

使用道具 举报

10

主题

150

帖子

0

精华

版主

Rank: 9Rank: 9Rank: 9

积分
4173

活跃会员奖章优秀会员奖章在线王奖章

QQ
威望
1826
贡献
1013
兑换币
564
注册时间
2012-3-1
在线时间
667 小时
8#
 楼主| 发表于 2012-3-1 21:05:47 | 只看该作者
guo296512521 发表于 2012-3-1 20:51
这个只适用于摄像头的吧

是的,只能用于摄像头组的,所以发布在这里了,至于光电组的,用网上一般的串口调试软件就大可满足需求了。
回复 支持 反对

使用道具 举报

25

主题

194

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4998
威望
3357
贡献
1111
兑换币
479
注册时间
2012-2-8
在线时间
265 小时
毕业学校
山东工商学院
9#
发表于 2012-3-2 10:24:03 | 只看该作者
327455748@qq.com 楼主威武,求共享,这里先谢过了。
回复 支持 反对

使用道具 举报

14

主题

210

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3230

优秀会员奖章热心会员奖章

QQ
威望
1261
贡献
1569
兑换币
7
注册时间
2011-8-12
在线时间
200 小时
10#
发表于 2012-3-2 11:51:18 | 只看该作者
期待发布啊
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-8 05:47 , Processed in 0.074706 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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