【STM32入门】这个项目绝了,用手势来产生波形,基于手势控制的波形发生器
大家好,我是張巧龍,之前有給實驗室學生出了一道關于STM32的題:基于手勢控制的波形產(chǎn)生題,題目簡單,但綜合性較強。
有些學生完成的還不錯,個人覺得此題用來?入門?STM32再合適不過了。
展示視頻:
【入門STM32】基于手勢控制的波形發(fā)生器設計
特此放上,設計報告中的部分段落。
01?
?題目要求
基于手勢控制的波形產(chǎn)生器
1.1 題目說明
以 C / C++ 為基礎,采用正點原子STM32單片機為開發(fā)平臺,編寫一個波 形發(fā)生器程序,通過手勢可以控制波形相應參數(shù)(頻率、幅值、相位)。
1.2 要求
1.2.1 基本部分?
(1)? 進入一級菜單后,在屏幕上至少顯示 3 欄以上信息:手勢識別結(jié)果、按鍵產(chǎn) 生波形、手勢產(chǎn)生波形,對功能進行選擇時,左側(cè)需要有明顯的光標(可用 符號*代替光標);
進入二級菜單時,至少顯示 3 欄以上的信息,分別命名 為相應功能(可參考框圖名字也可自行命名);子菜單可以返回上級菜單(二級返回一級、一級返回初始界面)。
(2)??完成一級菜單下的手勢識別功能;在二級菜單下,結(jié)合手勢識別模塊,完成 九種手勢識別:上、下、左、右、前、后、順時針、逆時針,識別結(jié)果顯示在屏幕上以及串口上位機,通過手勢可以控制開發(fā)板載LED亮滅。?
(3)? 完成一級菜單下的按鍵控制波形產(chǎn)生功能;在二級菜單下,結(jié)合 STM32 內(nèi) 置 DAC,完成波形產(chǎn)生功能(三角波、正弦波、方波),并通過按鍵可以 調(diào)整波形參數(shù)(頻率、幅值、相位)
1.2.2??發(fā)揮部分?
(1)??完成一級菜單下的手勢控制波形產(chǎn)生功能;在二級菜單下,結(jié)合 STM32 內(nèi) 置 DAC,完成波形產(chǎn)生功能(三角波、正弦波、方波),并通過手勢可以 調(diào)整波形參數(shù)(頻率、幅值、相位)
(2)??系統(tǒng)代碼簡短,注釋較多,可讀性強,界面美觀。?
(3)??自行發(fā)揮(此部分必須要體現(xiàn)出參賽人員多做了工作)
02?
?系統(tǒng)設計
2.1 系統(tǒng)簡介
系統(tǒng)包括LCD顯示屏模塊、ATK-PAJ7620手勢識別模塊、放大模塊、電源模塊、交互模塊、控制模塊。通過上述六大模塊實現(xiàn)正弦波、三角波、方波的產(chǎn)生與控制。
各模塊之間聯(lián)系如下圖所示,LCD顯示模塊、電源模塊、控制模塊、手勢識別模塊、交互模塊同時作用于整個系統(tǒng)。保證系統(tǒng)進行正確的界面顯示、系統(tǒng)控制和系統(tǒng)的正常運行。
放大模塊連接在STM32波形輸出端,用于放大輸出波形,提高波形輸出的調(diào)節(jié)范圍,增加系統(tǒng)實用價值。
系統(tǒng)簡介
系統(tǒng)實物圖
2.2? 系統(tǒng)總體設計思路
系統(tǒng)包括LCD顯示屏模塊、ATK-PAJ7620手勢識別模塊、放大模塊、電源模塊、交互模塊、控制模塊。通過上述六大模塊實現(xiàn)正弦波、三角波、方波的產(chǎn)生與控制。
各模塊之間聯(lián)系如下圖所示,LCD顯示模塊、電源模塊、控制模塊、手勢識別模塊、交互模塊同時作用于整個系統(tǒng),保證系統(tǒng)進行正確的界面顯示、系統(tǒng)控制和系統(tǒng)的正常運行。
放大模塊連接在STM32波形輸出端,用于放大輸出波形,提高波形輸出的調(diào)節(jié)范圍,增加系統(tǒng)實用價值。
系統(tǒng)總體設計思路
2.3??波形產(chǎn)生關鍵模塊
用DAC來產(chǎn)生波形,系統(tǒng)使用的是STM32F103自帶的DAC。為了提高DAC轉(zhuǎn)換的速度,使用DMA傳輸波形數(shù)據(jù),DMA的觸發(fā)傳輸使用的是定時器的中斷。
系統(tǒng)使用的正弦波波形數(shù)據(jù)是通過math.h函數(shù)計算得到的數(shù)組,三角波通過自定義函數(shù)計算波形數(shù)據(jù),這兩個波形一個周期內(nèi)采樣了250個數(shù)據(jù)點;
而方波的則不同,方波每個周期只改變兩次DAC的值。
當用戶通過交互界面改變幅值參數(shù)時,會重新計算波形數(shù)據(jù)數(shù)組。當用戶改變頻率參數(shù)時,會重新計算DMA定時器的周期。波形的輸出和關閉則是通過改變DMA定時器中斷使能和DMA傳輸使能實現(xiàn)。
DAC模塊運行過程
波形函數(shù)為void Wave_Form_Init(u16 v,float flo,int s,int xf)。
參數(shù)為v:頻率、flo:幅值、s:相位、xf:波形。
波形函數(shù)的作用是根據(jù)傳入的參數(shù)計算各波形的兩個周期的數(shù)據(jù),通過DMA傳輸給DAC進行數(shù)模轉(zhuǎn)換。
傳輸?shù)臄?shù)字信號范圍為0~4095,對應輸出的電壓為0~3.25V。系統(tǒng)將根據(jù)參數(shù)計算出250個數(shù)據(jù)作為一個周期的數(shù)據(jù),計算公式為:
其中wave為儲存數(shù)據(jù)的數(shù)組,A為幅值參數(shù)、t為時間。
調(diào)用此函數(shù)時需要傳遞相應參數(shù),函數(shù)會計算出兩個周期的數(shù)據(jù)點,然后經(jīng)過DMA將數(shù)據(jù)快速傳入DAC,從而可輸出不間斷的波形。
波形函數(shù)的執(zhí)行流程圖如下2-3所示:
波形函數(shù)運行流程圖
2.4? 手勢識別模塊
采用ATK-PAJ7620手勢識別模塊,用于識別手勢指令進行手勢控制。?
03?
?系統(tǒng)功能演示
3.1??菜單顯示演示
系統(tǒng)設計了多級菜單和初始化界面,界面美觀、合理,顯示內(nèi)容多樣。提升控制便捷性,顯示過程不閃屏。
菜單包括初始界面、一級菜單、二級菜單、三級功能界面。
展示如下:
3.2? 波形產(chǎn)生演示
系統(tǒng)波形產(chǎn)生穩(wěn)定,且可以在屏幕上顯示,但是由于波形頻率,峰值等參數(shù)調(diào)節(jié)范圍大,屏幕顯示需要不斷放大縮小。
3.3??相位移動演示
相位移動功能是通過與零相位波形比較才能在示波器中識別出,為此單片機將輸出兩個波形,其中標準波形相位恒為零,輸出波形相位隨參數(shù)調(diào)節(jié)而變化。
04?
?遇見的問題與解決方案
4.1?相位調(diào)節(jié)問題
第一是相位調(diào)節(jié)后的波形與原波形相似,無法判斷波形相位改變是否與調(diào)節(jié)位置一致。
第二是相位調(diào)節(jié)的實質(zhì)是將波形左右平移,相對于DAC來說就是將一個周期中波形數(shù)字信號起始位置改變。但操作起來較為麻煩、
未解決上述問題,系統(tǒng)打開兩個DAC通道,同時輸出波形,兩波形參數(shù)一直,但相位不同。對比波形相位不會改變,另一波形相位跟隨參數(shù)的變換而變化從而解決了相位改變無法觀測問題。
在計算波形數(shù)據(jù)時,250個數(shù)字信號為一個周期,系統(tǒng)定義的傳遞數(shù)字信號的數(shù)組為500個數(shù)字信號。前后250個數(shù)據(jù)是一樣的。
再使用DMC傳遞數(shù)組數(shù)據(jù)。但只傳輸250個,根據(jù)相位的變化改變傳輸?shù)钠鹗嘉恢脧亩鴮崿F(xiàn)了相位移動。
4.2 波形函數(shù)與LCD顯示函數(shù)內(nèi)存沖突
在調(diào)試系統(tǒng)過程中發(fā)現(xiàn)波形產(chǎn)生函數(shù),與LCD顯示函數(shù)存在內(nèi)存沖突問題,導致波形產(chǎn)生函數(shù)通過DMA傳遞的數(shù)據(jù)會被影響,改變,從而導致了輸出波形失真或不輸出波形。另外還存在一些其他函數(shù)會影響開發(fā)的波形產(chǎn)生函數(shù)。
為解決波形產(chǎn)生問題,系統(tǒng)將波形函數(shù)中傳輸數(shù)字信號的數(shù)字定義為靜態(tài)變量,在系統(tǒng)運行之前分配靜態(tài)儲存空間給該數(shù)組,使數(shù)值儲存空間不會受其他函數(shù)影響。
調(diào)整了波形函數(shù)調(diào)用位置,使該函數(shù)的調(diào)用皆在LCD顯示函數(shù)之后。采用上述解決方法后,波形產(chǎn)生正常。
05?
?最后
由于篇幅有限,過多的細節(jié)在此不放了,有需要詳細設計報告以及代碼的,請加微信:great_xiaolong,加好友記得備注。
精彩推薦:點擊圖片即可跳轉(zhuǎn)閱讀
帶學生參加電賽,5個國一,2個國二!15個省獎!
大快人心,盜版串口芯片CH340的被判刑了,公司被罰400萬!
模塊化編程到底有多重要?
電烙鐵焊錫到底有沒有毒?
-END-
我是張巧龍,一名教電子的大學老師,歡迎關注!
總結(jié)
以上是生活随笔為你收集整理的【STM32入门】这个项目绝了,用手势来产生波形,基于手势控制的波形发生器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: warframe白金充值比例(Warfr
- 下一篇: 作恶多端!315晚会曝光水军操盘直播间诱