国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種鋼琴按鍵動作自適應識別系統(tǒng)及方法與流程

      文檔序號:12474521閱讀:272來源:國知局
      一種鋼琴按鍵動作自適應識別系統(tǒng)及方法與流程

      本發(fā)明涉及音樂教育輔助領域。



      背景技術:

      隨著人民的生活水平的不斷提高,鋼琴教育在越來越多的家庭中流行起來,市場上出現(xiàn)很多的鋼琴教育輔助產品。幾乎所有的鋼琴教育輔助產品都需要提示用戶按鍵,以及檢測按鍵動作產生的音符是否為正確的音符。

      按鍵動作檢測的方法有很多,如采用拾音器采集音頻然后分析音頻頻率從而識別音符,識別單音比較準確,但在識別和弦音時準確率較低;采用機械開關式觸碰按鍵,按鍵動作時帶動開關動作從而檢測按鍵動作,穩(wěn)定可靠,但是需要調節(jié)開關高度及設備高度,使用極其不方便;也可采用光電式開關,使用光電開關檢測按鍵和開關的距離,按鍵動作時光電開關輸出電壓變化,通過識別電壓的變化檢測按鍵的動作,但是每次設備放置到琴鍵上時,開關和琴鍵的距離都不一樣,以及光照條件的不同使得光電開關輸出電壓的初始值每次都不一樣,這樣就很難設定開關電壓的閾值,造成設備的誤觸發(fā),使得音符識別的準確率很低。

      它們的不足之處在于:由于外部影響,如工頻干擾,大功率射頻干擾等,反射光電管輸出電壓會疊加一定的噪聲電壓,這樣在琴鍵按下或抬起的過程中會多次達到觸發(fā)條件,導致誤發(fā)多次抬起或按下的信號,影響正常使用。



      技術實現(xiàn)要素:

      本發(fā)明的目的是提供一種識別的準備率較高的鋼琴按鍵動作自適應識別系統(tǒng)及方法。

      本發(fā)明主要包括有按鍵檢測單元和主控單元。

      其中,在鋼琴的88個琴鍵中,最低的3個音符和最高的1個音符一般很少觸碰到,本發(fā)明包括七個檢測板組成的84個按鍵檢測單元,以及由藍牙模塊、供電模塊組成的主控單元。按鍵檢測單元與主控單元之間采用四根線連接,分別為電源VCC、電源GND、通信發(fā)送TX及通信接收RX。每個按鍵檢測單元包括一個檢測用MCU、5個黑鍵對射檢測光電管和7個白鍵檢測反射光電管,黑鍵檢測用對射光電管的電壓輸出直接和檢測用MCU的IO口相連,檢測用MCU通過判斷IO口的高低電平來判斷按鍵按下或抬起的狀態(tài),白鍵檢測用反射光電管輸出接單片機ADC輸入口,通過不斷掃描光電管輸出電壓來判斷按鍵狀態(tài),12個高灌電流IO口驅動LED用于提示按鍵位置。主控單位包括一個主控MCU、一個藍牙通信模塊和一個供電模塊組成,供電模塊用以降低電壓,主控模塊和藍牙模塊相連,用來接收上位機通過藍牙發(fā)出的指示命令并轉發(fā)送給檢測板上的提示模塊,主控模塊和檢測板相連,接收檢測板發(fā)來的按鍵狀態(tài)并通過藍牙轉交給上位機。

      基于鋼琴按鍵動作自適應識別系統(tǒng),鋼琴按鍵動作自適應識別方法具體步驟如下:

      (1)申請數(shù)組BOT[7],用于存儲白鍵在未按下時反射光電管輸出的電壓;申請數(shù)組TOP[7],用于保存白鍵在按下時反射光電管輸出電壓,申請數(shù)組VH[7],用于保存上升門限電壓;申請數(shù)組VL[7],用于保存下降門限電壓;

      (2)初始外圍設備,將系統(tǒng)時鐘配置為內部RC時鐘,頻率16MHz;串口波特率配置為115200;所有LED驅動IO設備為灌電流輸入,將所有反射光電管輸入的IO口設置為模擬輸入,內部ADC初始化;

      (3)掃描一次ADC值,將數(shù)值賦給數(shù)組BOT[i],其中i的范圍為0~6,表示第(i+1)個白鍵在未按下時反射光電管輸出電壓,同時將BOT[i]+6賦給TOP[i]作為初始值,將BOT[i]+4賦給VH[i]作為初始值,將BOT[i]+2賦給VH[i]作為初始值;

      (4)將所有LED逐漸點亮并關閉,提示設備已經準備好,并且防止設備開機時IO狀態(tài)不穩(wěn),LED被誤點亮;

      (5)設備進入工作狀態(tài),即循環(huán)掃描5個黑鍵的狀態(tài),以及7個白鍵的狀態(tài),掃描黑鍵時,檢測5個光電管輸出電平的高低,即MCU對應IO口的電平,即可確定黑鍵狀態(tài),如果檢測到黑鍵被按下,就通過UART串口發(fā)出給主控MCU,再通過藍牙上傳到上位機;

      (6)循環(huán)掃描7個白鍵的ADC值,存入本次掃描ADC數(shù)組,讀取每個ADC值時都讀取6次,然后做一次中值濾波,數(shù)值作為當次ADC值,如果本次ADC值大于按下狀態(tài)的ADC極值BOT[i],就將本次ADC值賦給BOT[i],并且更新上升門限數(shù)組VH[i]=BOT[i]+(TOP[i]-BOT[i])*2/3;下降門限閾值VL[i]=BOT[i]+(TOP[i]-BOT[i])*1/3;這樣每次按鍵按下時都會檢查按鍵按下的深度是否達到更深,如果更深則更新識別參數(shù),做到了越使用識別越準確;

      (7)如果本次ADC數(shù)值僅大于上升門限VH[i],則通過UART發(fā)送按鍵按下信號,如果ADC值小于下降門限VL[i],則發(fā)送按鍵抬起信號。回到步驟5進行下輪掃描。

      本發(fā)明與現(xiàn)有技術相比具有如下優(yōu)點:采用滯回比較的方法,抬起按鍵和按下按鍵反射光電管輸出電壓差值的1/3和2/3作為比較值,有效的解決誤觸發(fā)問題,準確率較高,穩(wěn)定可靠,使用方便。

      附圖說明

      圖1為本發(fā)明的鋼琴按鍵動作檢測系統(tǒng)的結構框圖;

      圖2為本發(fā)明的鋼琴按鍵動作自適應方法的流程圖。

      具體實施方式

      在圖1所示的本發(fā)明的示意簡圖中,本發(fā)明主要包括有按鍵檢測單元和主控單元。

      其中,在鋼琴的88個琴鍵中,最低的3個音符和最高的1個音符一般很少觸碰到,本發(fā)明包括七個檢測板組成的84個按鍵檢測單元,以及由藍牙模塊、供電模塊組成的主控單元。按鍵檢測單元與主控單元之間采用四根線連接,分別為電源VCC、電源GND、通信發(fā)送TX及通信接收RX。每個按鍵檢測單元包括一個檢測用MCU、5個黑鍵對射檢測光電管和7個白鍵檢測反射光電管,黑鍵檢測用對射光電管的電壓輸出直接和檢測用MCU的IO口相連,檢測用MCU通過判斷IO口的高低電平來判斷按鍵按下或抬起的狀態(tài),白鍵檢測用反射光電管輸出接單片機ADC輸入口,通過不斷掃描光電管輸出電壓來判斷按鍵狀態(tài),12個高灌電流IO口驅動LED用于提示按鍵位置。主控單位包括一個主控MCU、一個藍牙通信模塊和一個供電模塊組成,供電模塊用以降低電壓,主控模塊和藍牙模塊相連,用來接收上位機通過藍牙發(fā)出的指示命令并轉發(fā)送給檢測板上的提示模塊,主控模塊和檢測板相連,接收檢測板發(fā)來的按鍵狀態(tài)并通過藍牙轉交給上位機。

      在圖2所示的本發(fā)明的示意簡圖中,基于鋼琴按鍵動作自適應識別系統(tǒng),鋼琴按鍵動作自適應識別方法具體步驟如下:

      1、申請數(shù)組BOT[7],用于存儲白鍵在未按下時反射光電管輸出的電壓;申請數(shù)組TOP[7],用于保存白鍵在按下時反射光電管輸出電壓,申請數(shù)組VH[7],用于保存上升門限電壓;申請數(shù)組VL[7],用于保存下降門限電壓;

      2、初始外圍設備,將系統(tǒng)時鐘配置為內部RC時鐘,頻率16MHz;串口波特率配置為115200;所有LED驅動IO設備為灌電流輸入,將所有反射光電管輸入的IO口設置為模擬輸入,內部ADC初始化;

      步驟3,掃描一次ADC值,將數(shù)值賦給數(shù)組BOT[i],其中i的范圍為0~6,表示第(i+1)個白鍵在未按下時反射光電管輸出電壓,同時將BOT[i]+6賦給TOP[i]作為初始值,將BOT[i]+4賦給VH[i]作為初始值,將BOT[i]+2賦給VH[i]作為初始值;

      4、將所有LED逐漸點亮并關閉,提示設備已經準備好,并且防止設備開機時IO狀態(tài)不穩(wěn),LED被誤點亮;

      5、設備進入工作狀態(tài),即循環(huán)掃描5個黑鍵的狀態(tài),以及7個白鍵的狀態(tài),掃描黑鍵時,檢測5個光電管輸出電平的高低,即MCU對應IO口的電平,即可確定黑鍵狀態(tài),如果檢測到黑鍵被按下,就通過UART串口發(fā)出給主控MCU,再通過藍牙上傳到上位機;

      步驟6,循環(huán)掃描7個白鍵的ADC值,存入本次掃描ADC數(shù)組,讀取每個ADC值時都讀取6次,然后做一次中值濾波,數(shù)值作為當次ADC值,如果本次ADC值大于按下狀態(tài)的ADC極值BOT[i],就將本次ADC值賦給BOT[i],并且更新上升門限數(shù)組VH[i]=BOT[i]+(TOP[i]-BOT[i])*2/3;下降門限閾值VL[i]=BOT[i]+(TOP[i]-BOT[i])*1/3;這樣每次按鍵按下時都會檢查按鍵按下的深度是否達到更深,如果更深則更新識別參數(shù),做到了越使用識別越準確;

      步驟7,如果本次ADC數(shù)值僅大于上升門限VH[i],則通過UART發(fā)送按鍵按下信號,如果ADC值小于下降門限VL[i],則發(fā)送按鍵抬起信號?;氐讲襟E5進行下輪掃描。

      當前第1頁1 2 3 
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1