各位工程師朋友,大家好!我是電子風清揚,本期“來實戰(zhàn)”項目《寵物自動喂食器》的執(zhí)行官。先做一個簡單的自我介紹,我是一名懷揣著夢想的新一代嵌入式軟件工程師,目前從事物聯(lián)網(wǎng)設(shè)備的開發(fā)。一路自學過來,走過很多的彎路,也曾經(jīng)無數(shù)次迷茫過,找不到學習的方向。我很了解一個電子初學者在剛剛開始時的艱辛,不知道學什么,怎么去學,不知道實際工作中需要具備什么能力。希望可以通過本次的項目來幫助更多的新人了解什么是真正的實戰(zhàn)項目,需要具備哪些能力,幫助更多的電子初學者找到學習的方向,更順利的進入這個行業(yè),為電子行業(yè)做出一份自己的貢獻。
我會在這次的項目中,逐步為大家分享一些工程項目的經(jīng)驗、調(diào)試技巧、如何打造一套屬于自己的嵌入式軟件開發(fā)平臺。也希望大家可以通過本次的項目找到以下這些問題在自己心目中的答案。
1、為什么很多電子初學者不會做項目?
初始階段掌握的技術(shù)還太少,沒有形成完整的知識體系,也并沒有見過真正的項目(涉及到保密問題,很多項目并不會開源)。僅有的技術(shù)完全限制了自己的想象力,一旦遇到自己不會的技術(shù)就會想盡辦法回避,不愿意去學習。久而久之造成了惡性循環(huán),思路越來越窄,越來越迷茫,最后走上了從入門到放棄的道路。
2、為什么說單片機只是一個工具?
在一個項目中,它只是代替人來處理各種電信號,處理數(shù)據(jù),完成對電路控制。它只是項目中的一部分,想完成一個完整的項目僅有單片機是遠遠不夠的。
3、真正的工程代碼應(yīng)該是什么樣的?
模塊化、層次分明、面向?qū)ο蟆⒘己玫臄?shù)據(jù)結(jié)構(gòu)、清晰的業(yè)務(wù)邏輯、可維護性。
4、項目的開發(fā)流程,以及人員分工?
· 實現(xiàn)哪些功能:確定需求
· 需要哪些器件:元器件選型
· 如何實現(xiàn)需求:編程(數(shù)據(jù)結(jié)構(gòu)、業(yè)務(wù)邏輯)
· 方案可行嗎?:軟硬件結(jié)合
· 產(chǎn)品可以投產(chǎn)么?:現(xiàn)場測試,老化
· 如何轉(zhuǎn)產(chǎn)?:整理整個項目的相關(guān)文件
· 賣出去了壞了怎么辦?:整理維修相關(guān)的技術(shù),形成標準文件
書歸正傳,開始介紹本次的項目。本次的項目希望打造一款寵物自動喂食器,解放鏟屎官。項目計劃按以下功能點來進行:
1、具備定時定量喂食功能(每周喂食曲線,每天喂食的時段,每個時段的百分比可調(diào)節(jié)),實現(xiàn)不同階段的喂食需求。
2、自動完成對喂食情況的統(tǒng)計,方便鏟屎官查看一段時間喂食的情況,結(jié)合寵物的體態(tài)信息進行健康判斷,以及調(diào)整喂食量減少浪費。
3、自動保持飲水盆中的飲水量,對每次的飲水量以及時間進行記錄。
4、對料倉中的喂料量進行監(jiān)測,在料倉中飼料量不足時提醒鏟屎官及時補充。
5、對水倉中的水量進行監(jiān)測,在水倉中飼喂量不足時提示鏟屎官及時補充。
6、警戒線的閾值可調(diào)。
7、良好的人機交互界面設(shè)計。
8、可以連接WIFI,將數(shù)據(jù)上傳到服務(wù)器。(視時間而定,如果時間緊張,延后開發(fā))
9、手機APP端完成信息查看,控制喂食。(視時間而定,如果時間緊張,延后開發(fā))
視頻內(nèi)容截圖:
項目設(shè)計
步驟1:確定項目電路原理圖
視頻內(nèi)容截圖:
相信LM2596是廣大電子愛好者熟悉的一款降壓型電源管理芯片了。LM2596系列是德州儀器(TI)生產(chǎn)的3A電流輸出降壓開關(guān)型集成穩(wěn)壓芯片,它內(nèi)含固定頻率振蕩器(150KHZ)和基準穩(wěn)壓器(1.23v),并具有完善的保護電路、電流限制、熱關(guān)斷電路等。利用該器件只需極少的外圍器件便可構(gòu)成高效穩(wěn)壓電路。提供的有:3.3V、5V、12V及可調(diào)(-ADJ)等多個電壓檔次產(chǎn)品。相關(guān)芯片數(shù)據(jù)手冊,請點擊文末“相關(guān)芯片與數(shù)據(jù)手冊”進行下載閱讀。
此外,我們項目需要用到的電源有3.3V、5V、12V,所以我們采用19V(15V-24V)筆記本充電電源供電以及電池組成的UPS系統(tǒng)進行供電。將設(shè)計兩個LM2596模塊,一個5V,一個12V。查詢數(shù)據(jù)手冊,我們得到Demo電路圖如下:
……
(由于篇幅限制只呈現(xiàn)部分內(nèi)容,點擊“閱讀原文”瀏覽完整項目方案)
步驟2:軟件平臺搭建
視頻內(nèi)容截圖:
第二個步驟給大家?guī)肀敬雾椖康那度胧杰浖脚_的建設(shè)思路,本次的嵌入式軟件平臺分為四層。
1、MyLib:底層驅(qū)動代碼—>硬件抽象層
本層在C語言的平臺下,盡可能的實現(xiàn)面向?qū)ο蟮乃枷搿1敬蔚钠脚_借鑒了高煥堂先生提出的OOPC的思想,并在此基礎(chǔ)上進行了改進,特此聲明。本次描述可能大家一開始看的不太清楚,后續(xù)我會出一個專題課程來講解本次的平臺設(shè)計思想,敬請期待。
本次平臺MyLib層,從兩個角度出發(fā),一個是個人角度,一個是公司角度。
個人:
· 個人技術(shù)以及研發(fā)經(jīng)驗的積累;
·減少重復(fù)性勞動,已經(jīng)開發(fā)好的模塊進行重復(fù)調(diào)用;
·加快個人的研發(fā)進度;
·提升自我的編程能力以及研發(fā)境界;
公司:
·平臺化代碼,集中全公司研發(fā)力量;
·實現(xiàn)公司業(yè)務(wù)代碼的積累,研發(fā)技術(shù)的積累;
步驟3:焊接和硬件測試
全網(wǎng)第一份手動移植TouchGFX視頻教程,不使用CubeMX!!!
在本次的項目中GUI采用了最新的TouchGFX,放棄了已經(jīng)使用多年的emwin。一個原因是因為TouchGFX以后的使用是免費的了,而且界面華麗酷炫;另一個原因也是對自己的一個挑戰(zhàn),在資料非常稀少的情況下能否挑戰(zhàn)成功。本期視頻我將介紹移植過程中的重點以及注意事項,帶領(lǐng)大家感受一下TouchGFX的威力。
很慶幸又一次堅持了下來,期間無數(shù)次想過放棄,最終還是靠著意志力堅持了下來。當成功的那一刻,我發(fā)覺自己又成長了。其實能力的提升就是在這一次次的挑戰(zhàn)中,查閱資料、仔細分析原因、查找解決方案。在這個過程中鍛煉自己的學習能力,不斷完善自己的知識體系。而當你完成了一次次的挑戰(zhàn)后,那么你將不再懼怕接觸新鮮的事物,離成為大佬又近了一步。
1、新建文件夾
2、添加必要的移植接口文件
3、添加touchgfx_lib
4、修改OSWrapper.cpp改為使用RT-Thread
5、修改BoardConfiguration.cpp
注意要開啟CRC,否則會進硬件錯誤!!!
初始化SDRAM
初始化LTDC
注意這里要編寫LTDC中斷服務(wù)函數(shù)
7、初始化touchgfx
修改DMA
8、觸摸移植
9、生成touchgfx工程
新建TouchGFX文件夾,用來存放touchgfx工程
……
……
(由于篇幅限制只呈現(xiàn)部分內(nèi)容,點擊“閱讀原文”瀏覽完整項目方案)
步驟4:開發(fā)項目需求和系統(tǒng)整體測試
關(guān)于上期視頻留下的“坑”,我這次也填上了!(關(guān)于編譯出現(xiàn)不通過的情況,我找到原因并解決了!)
Q:上次編譯為什么沒通過?
A:因為之前在刪除東西的時候,誤操作將環(huán)境變量也刪掉了,導(dǎo)致編譯不能通過。
Q:我是如何解決的呢?
A:重新給電腦裝了系統(tǒng),然后順手將軟件都重新安裝了一下,現(xiàn)在可以正常編譯通過。
本期視頻主要展示本次項目中圖形界面的最新進展。
我新增并實現(xiàn)了幾個交互效果,以此來對touchgfx在項目中的應(yīng)用進行一個評估,視頻里也有詳細得講解我是如何實現(xiàn)這些效果的。
接下來先用圖文為大家梳理一下本期重點:(此次采用自問自答的方式)
一、控件的種類是否足夠支撐項目的需求和使用
二、自定義控件如何使用
三、UI和硬件交互是否便捷,人機交互設(shè)計是否方便
……
(由于篇幅限制只呈現(xiàn)部分內(nèi)容,點擊“閱讀原文”瀏覽完整項目方案)
整個實際操作視頻如下:
步驟5:機器各結(jié)構(gòu)搭建與組裝
這期視頻為大家進一步講解在設(shè)計人機交互界面之前的準備工作。
為了完成字符以及數(shù)字的輸入,這里就需要用到鍵盤。
不過遺憾的是目前鍵盤控件還不能直接在TouchGFX_Designer中直接加入,需要我們通過代碼進行手動加入。
在官方提供的demo中只是把字符顯示在了鍵盤上的text控件上,并沒有提供對外的輸出接口,同時獲取輸入的時候也需要我們來實現(xiàn)。
那么讓我們開始這一期的知識點梳理吧!
1、添加文件到工程下
2、導(dǎo)入鍵盤素材
導(dǎo)入后可以在touchgfx_designer中看到
3、引用頭文件并創(chuàng)建鍵盤
4、UI界面設(shè)計
注冊回調(diào)函數(shù),來顯示鍵盤
因為鍵盤不支持拖動和隱藏,所以先創(chuàng)建鍵盤到看不見的地方
實現(xiàn)彈出效果和文本更新與保存
實現(xiàn)好了鍵盤之后,還需要我們實現(xiàn)一個拖動切換的菜單。
再一次需要表示遺憾的是:我們的TouchGFX_Designer中并不能完全完成設(shè)計工作,還是需要我們手動來完成圖標的更新。
從這些天的使用來看,這款GUI的設(shè)計器還有很長一段路要走,這一點相比于GUIX就要差了一些。
不過從長遠的角度來看,這款GUI有自己的特色,逐漸發(fā)展完善,相信它一定會成為人機交互開發(fā)的一把利器。
然后為我們所用!我們要做的就是此時此刻去“征服”它!
那么接下來還是手動去完成圖標的更新:
1、創(chuàng)建一個自定義控件
2、創(chuàng)建scrollList
3、設(shè)置參數(shù)
4、編寫代碼(由于篇幅有限,這里僅展示部分代碼)
整個流程如何操作的視頻如下:
下面開始我們本次項目的UI界面規(guī)劃
步驟6:硬件電路整體展示
本次給大家?guī)砦覀儭皩櫸锿妒称鳌钡挠布娐氛w的展示。
我解釋一下啊,由于采購部分器件的時候,發(fā)生缺料,我目前用3D展示給大家,直觀又好看~
本次電路的整體3D效果:
電源板的3D效果:
PCB板圖片
控制板拓展了網(wǎng)口、WIFI模塊接口、USB接口、串口可以滿足很多項目的開發(fā),可以將這個板作為開發(fā)板使用。
電源板
平時可以給主板供電,同時為電池進行充電,當外部電源被切斷時自動切換到電池供電,保證系統(tǒng)在意外斷電時可以正常工作。
關(guān)于更多細節(jié)部分的講解,請大家移步我最近更新的視頻里:
步驟7:人機交互界面規(guī)劃實現(xiàn)
責任編輯:lq
-
人機交互
+關(guān)注
關(guān)注
12文章
1240瀏覽量
56273 -
單片機
+關(guān)注
關(guān)注
6066文章
44946瀏覽量
648299 -
嵌入式軟件
+關(guān)注
關(guān)注
4文章
245瀏覽量
27221
原文標題:《來實戰(zhàn)》之寵物喂食器:交互界面控件設(shè)計與硬件電路整體演示(3D展示)
文章出處:【微信號:cirmall,微信公眾號:電路設(shè)計技能】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
飛凌嵌入式ElfBoard ELF 1板卡-Uboot
IAR發(fā)布云端平臺,助力現(xiàn)代嵌入式軟件開發(fā)團隊
打破技術(shù)壁壘!AWFlow讓嵌入式軟件開發(fā)觸手可及

嵌入式機器學習的應(yīng)用特性與軟件開發(fā)環(huán)境

一文了解嵌入式軟件開發(fā)的對象

你認為嵌入式軟件開發(fā)的盡頭是什么?

EsDA,一站式嵌入式軟件

七大嵌入式GUI盤點
嵌入式系統(tǒng)中的實時操作系統(tǒng)
嵌入式QT常見開發(fā)方式有哪些?
節(jié)點式、跨平臺開發(fā),AWFlow讓嵌入式開發(fā)變得更簡單

嵌入式軟件開發(fā)與AI整合

評論