智能车制作

标题: 专业智能车上位机调试软件 [打印本页]

作者: 小豹    时间: 2012-3-1 17:28
标题: 专业智能车上位机调试软件
本帖最后由 小豹 于 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  小豹
xuhongming251@163.com
世界上没有永远的陌生人,
只有还未认识的朋友!
[attach]18940[/attach]
[attach]18939[/attach]



补充内容 (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
作者: xiangxiang8    时间: 2012-3-1 18:12
很棒。。我用C#写的。。。咱们可以交流下
作者: tongyonghua123    时间: 2012-3-1 19:08
n牛逼
作者: zhu_xuekui    时间: 2012-3-1 20:06
牛逼。。。希望共享撒
邮箱 1114664998@qq.com
作者: 小豹    时间: 2012-3-1 20:42
xiangxiang8 发表于 2012-3-1 18:12
很棒。。我用C#写的。。。咱们可以交流下

嗯,C#是很不错的选择的,但是C#效率上可能是要比不上C++了。

作者: 小豹    时间: 2012-3-1 20:44
zhu_xuekui 发表于 2012-3-1 20:06
牛逼。。。希望共享撒
邮箱

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

作者: guo296512521    时间: 2012-3-1 20:51
这个只适用于摄像头的吧
作者: 小豹    时间: 2012-3-1 21:05
guo296512521 发表于 2012-3-1 20:51
这个只适用于摄像头的吧

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

作者: `美好时光    时间: 2012-3-2 10:24
327455748@qq.com 楼主威武,求共享,这里先谢过了。
作者: liaogao2    时间: 2012-3-2 11:51
期待发布啊
作者: xiangxiang8    时间: 2012-3-2 17:33
小豹 发表于 2012-3-1 20:42
嗯,C#是很不错的选择的,但是C#效率上可能是要比不上C++了。

C#就是类似JAVA  做一些小东西用的。。。做上位机完全够用的

作者: MagicG    时间: 2012-3-2 18:23
对于摄像头的数据量,串口基本上起不到什么作用



作者: christian    时间: 2012-3-2 19:42
强!期待发布!892818930@qq.com
作者: 小豹    时间: 2012-3-2 20:57
MagicG 发表于 2012-3-2 18:23
对于摄像头的数据量,串口基本上起不到什么作用

对于智能车采集赛道,数据量还算是比较少的了,串口把波特率设置得大一些,对于调车来说已经可以了。毕竟串口实现起来也不是很复杂,适合大众的选择。

作者: 小豹    时间: 2012-3-2 20:59
最近软件在加一个打开已保存位图,然后通过算法插件处理的这么一个功能,加完后会速度发布!
作者: luojihao24669    时间: 2012-3-2 22:50
等楼主啊
作者: nc2367334102    时间: 2012-3-3 05:48
不错。
作者: x_yang1989723    时间: 2012-3-3 09:40
太牛了,期待发布!769259129@qq.com
作者: zhenghongxinzhx    时间: 2012-3-3 10:46
学习中,串口现在都不会用
作者: 小豹    时间: 2012-3-5 21:09
[attach]19185[/attach][attach]19186[/attach]发两张图上来,表明还有进展。

作者: Arain    时间: 2012-3-6 00:36
期待发布。。。
作者: fieldsofstar    时间: 2012-3-6 17:46
跪求[url=mailto:!fieldsofstar@sina.com]![/url]
fieldsofstar@sina.com

作者: 热血寒江    时间: 2012-3-6 19:22
552430034@qq.com,霸气侧漏,楼主发一份把,先行谢过了
作者: lsp123963    时间: 2012-3-7 22:37
能给发一份么 823451785@qq.com  谢啦
作者: wllchq    时间: 2012-3-8 16:37

作者: zjl3369    时间: 2012-3-8 16:53
顶起!! 我在想上位机用于光电组
作者: 左右手    时间: 2012-3-8 20:33
楼主,希望帮一下新人,求共享。先谢了。510631009@qq.com
作者: 小豹    时间: 2012-3-9 00:36
最近真的是很忙,课比较多,周末还有双学位的课要上,也参加智能车的比赛,还有一些小项目要做。想快点完善,没想一周就又过了,汗…
作者: 锐jun1    时间: 2012-3-9 19:57
够牛的,求共享,谢谢,525219784@qq.com
作者: sonwendi    时间: 2012-3-9 23:47
LZ这是要开源么?
欢迎欢迎~
作者: lifei092    时间: 2012-3-12 18:37
牛。。。。
作者: 业界精英    时间: 2012-3-14 08:19
1179941457@qq .com求楼主共享下
作者: 风花雪月    时间: 2012-3-15 11:21
楼主厉害了,求共享呀。zhuangrui-kiss@163.com.非常感谢~~
作者: moonlight831    时间: 2012-3-15 17:52
楼主  大大大大哥~~~你太猛了   能给我发下么  我想用:'(:'(:'(:'(:'(  moonlight831@163.com
作者: 搜搜问问做达人    时间: 2012-3-15 19:15
谢谢了
作者: 仰望星空1    时间: 2012-3-15 21:43
内牛满面呀,,楼主太强大了
作者: qiuguodong    时间: 2012-3-18 15:02
摄像头组   求共享
作者: test111    时间: 2012-3-18 15:25
看一看
作者: leafly0719    时间: 2012-4-3 00:09
xiangxiang8 发表于 2012-3-1 18:12
很棒。。我用C#写的。。。咱们可以交流下

学习C#中,也在参加飞思卡尔,寻求交流。271232507
作者: 执子之手520    时间: 2012-4-19 16:03
求共享
作者: 广陵F3    时间: 2012-4-27 22:23
楼主,小弟靠你啦,求304123198@qq.com,给你顶
作者: z_7    时间: 2012-4-28 10:44
NB,同求啊,zhang_7@live.cn
作者: knight9874@163.    时间: 2012-5-8 10:30
楼主怎一个牛字了得
作者: linping9656    时间: 2012-5-8 10:42
小豹好强啊。我想变个电磁的上位机,可以无线传输数据 参数。可惜不会啊,以前没接触,只能自己摸索了。
作者: 小木偶    时间: 2012-5-9 23:21
878251413@qq.com
谢谢楼主
作者: 陈永胜    时间: 2012-5-9 23:30
楼主,求共享啊[url=mailto:……sdcys@qq.com]……sdcys@qq.com[/url]  
作者: 浅川的草1989    时间: 2012-5-23 20:50
为什么接上显示invalid port number?????
作者: 那年_夏天    时间: 2012-5-23 21:31
给我一份吧楼主,我下了一个都不知道怎么用634986023@qq.com谢谢!
作者: xinmengwangran    时间: 2012-5-23 22:45
很不错的上位机 帮了我很大忙
作者: zzh90513    时间: 2012-6-2 07:54
我也正在尝试写呢,学习一下
作者: 四轮前驱    时间: 2012-6-4 18:37
摄像头组主要用的是什么软件呀。开始的时候要做什么准备工作,哪位大神可以赐教一下谢谢啦
作者: 四轮前驱    时间: 2012-6-5 14:51
呵呵
作者: 公子    时间: 2012-7-17 22:02
谢谢楼主
作者: dongyunlong    时间: 2012-8-10 16:41
没有最好的 ,自己适合自己的 。还是自己写的好用。
作者: LINJIE123    时间: 2012-8-10 20:58

作者: melon_1    时间: 2012-8-11 16:57
多谢楼主分享。
作者: rivar    时间: 2012-8-17 21:16
谢谢,非常好
作者: zfenggo    时间: 2012-8-27 15:49
嘿嘿~~期待发布~~
作者: zhth20    时间: 2012-9-10 16:27
牛X  的说   顶个 先
作者: mtyterry    时间: 2012-9-14 01:36

作者: 大江东去    时间: 2012-9-23 10:22
用串口通信传输速度是不是太慢了啊???
作者: 玻璃中的太阳    时间: 2012-11-6 17:18
哎,开始学上位机吧。
作者: V_晓星    时间: 2012-11-9 17:57
不错~
作者: 中华旺仔    时间: 2013-10-3 11:29
期待发布。。。。
作者: 花样年华    时间: 2014-3-7 19:37
1003714790·qq.com
谢谢楼主
作者: 仪124    时间: 2014-5-25 13:19
楼主牛,多谢了,172538999@qq.com
作者: Cream    时间: 2015-4-2 21:05
LZ,我加不了你,你有没有别的联系方式?我想请教您几个问题
作者: 幽梦夕冉    时间: 2015-6-11 10:06
楼主,上位机的PID参数调节那个怎么用?
作者: yg1215629931    时间: 2015-9-30 19:14
这个软件你自己写的?东西已经发出来了吗?

作者: 栀子树下的等待    时间: 2016-9-7 18:04
~~~~~~~~~~~~~~~~~~~
作者: 南城北巷    时间: 2018-12-25 13:09
楼主牛逼





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2