找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3511|回復: 0
打印 上一主題 下一主題
收起左側

總結

[復制鏈接]
跳轉到指定樓層
樓主
ID:73477 發(fā)表于 2015-2-10 14:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

        用了一個星期的時間,現(xiàn)學了另外一種GUI設計工具,把軟件重寫了一番,使它能夠在Windows上面工作。
        繪圖時調用的是matplotlib,這是一個基于Python的開源項目,旨在為Python提供一個數(shù)據(jù)繪圖包,差不多可以當成MATLAB用。手頭暫時還沒有傳感器,先用Arduino UNO模擬了一下。
        寫完進行測試的時候,軟件不僅卡頓,還時不時拋出異常。畢竟幾乎軟件的每個過程都依賴著經(jīng)由串口回傳的數(shù)據(jù),數(shù)據(jù)一出問題,牽扯太多。經(jīng)過一番優(yōu)化,異;疽呀(jīng)處理掉了,卡頓也有了些許改善。盡管可以用于測量,但繪圖的時候還是讓人看得揪心。
        大概是當初的設計思路就有問題。目前的工作過程是這樣:上位機(電腦)下達一個命令,下位機(單片機)就驅動相應的傳感器測量數(shù)據(jù),然后回傳;上位機再下達另一命令,下位機繼續(xù)測量、回傳。十二個都接上的話,一個循環(huán)電腦就要下達12次命令,要等待接收12次數(shù)據(jù)。這樣的話,再加上實時更新圖象、訪問數(shù)據(jù)庫,軟件就比較忙。而且只要下位機回傳一個錯誤數(shù)據(jù),上位機軟件測量進程就會停止。
        改進的話大概可以這樣設計:上位機軟件只下達一次命令,然后下位機逐個驅動接在上面的傳感器進行測量,一個周期后,一次性回傳數(shù)據(jù)。上位機軟件只需要在線程里面檢測數(shù)據(jù)緩存區(qū)就可以了,負擔大大減輕。這樣設計的話,容錯的能力也會好很多。甚至還想過下位機直接用Arduino,但是,幾乎就是推倒重來……況且,將數(shù)據(jù)庫中的數(shù)據(jù)保存到excel中的腳本才剛寫好,還沒整合進軟件,加之windows這邊的軟件打包也需要時間去學習,估計我是不會再去弄一遍了。
       最開始只有一個傳感器,目的也比較簡單,能讀出數(shù)據(jù)就可以了。也是邊用邊學,所以,目的簡單,過程不簡單。后來有了三個,按照原來的思路,軟件不用負擔太多,繪圖也只是簡簡單單一股腦把所有傳感器的數(shù)據(jù)在一張圖上畫出來,沒有坐標的變化,所以只能從圖上看到一段時間內的變化趨勢。再加上設計硬件,幾乎也就沒考慮過軟件的問題了,F(xiàn)在要接入12個,繪圖也開始單獨處理數(shù)據(jù)了,切換的時候,卡頓現(xiàn)象嚴重。
      自主學習新知識的習慣是需要用到才學、邊用邊學。這樣的話會走好多彎路,目的達成后,一反思盡是郁悶。畢竟,更多的時候想做的是一個系統(tǒng),盡管比較小,但也不是僅僅習得一方面的知識能夠完成的。所以,盡管覺得這種習慣或者方法不好,但是囿于時間、精力,甚至是積極性,估計以后還是會保持下去。
      貼張圖。

        
         



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表