找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3065|回复: 0
打印 上一主题 下一主题
收起左侧

总结

[复制链接]
跳转到指定楼层
楼主
ID:73477 发表于 2015-2-10 14:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

        用了一个星期的时间,现学了另外一种GUI设计工具,把软件重写了一番,使它能够在Windows上面工作。
        绘图时调用的是matplotlib,这是一个基于Python的开源项目,旨在为Python提供一个数据绘图包,差不多可以当成MATLAB用。手头暂时还没有传感器,先用Arduino UNO模拟了一下。
        写完进行测试的时候,软件不仅卡顿,还时不时抛出异常。毕竟几乎软件的每个过程都依赖着经由串口回传的数据,数据一出问题,牵扯太多。经过一番优化,异常基本已经处理掉了,卡顿也有了些许改善。尽管可以用于测量,但绘图的时候还是让人看得揪心。
        大概是当初的设计思路就有问题。目前的工作过程是这样:上位机(电脑)下达一个命令,下位机(单片机)就驱动相应的传感器测量数据,然后回传;上位机再下达另一命令,下位机继续测量、回传。十二个都接上的话,一个循环电脑就要下达12次命令,要等待接收12次数据。这样的话,再加上实时更新图象、访问数据库,软件就比较忙。而且只要下位机回传一个错误数据,上位机软件测量进程就会停止。
        改进的话大概可以这样设计:上位机软件只下达一次命令,然后下位机逐个驱动接在上面的传感器进行测量,一个周期后,一次性回传数据。上位机软件只需要在线程里面检测数据缓存区就可以了,负担大大减轻。这样设计的话,容错的能力也会好很多。甚至还想过下位机直接用Arduino,但是,几乎就是推倒重来……况且,将数据库中的数据保存到excel中的脚本才刚写好,还没整合进软件,加之windows这边的软件打包也需要时间去学习,估计我是不会再去弄一遍了。
       最开始只有一个传感器,目的也比较简单,能读出数据就可以了。也是边用边学,所以,目的简单,过程不简单。后来有了三个,按照原来的思路,软件不用负担太多,绘图也只是简简单单一股脑把所有传感器的数据在一张图上画出来,没有坐标的变化,所以只能从图上看到一段时间内的变化趋势。再加上设计硬件,几乎也就没考虑过软件的问题了。现在要接入12个,绘图也开始单独处理数据了,切换的时候,卡顿现象严重。
      自主学习新知识的习惯是需要用到才学、边用边学。这样的话会走好多弯路,目的达成后,一反思尽是郁闷。毕竟,更多的时候想做的是一个系统,尽管比较小,但也不是仅仅习得一方面的知识能够完成的。所以,尽管觉得这种习惯或者方法不好,但是囿于时间、精力,甚至是积极性,估计以后还是会保持下去。
      贴张图。

        
         



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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