999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一款便攜式啟蒙電子鋼琴的設計與實現

2021-07-19 21:41:44田偉李玲香潘學文
電腦知識與技術 2021年15期

田偉 李玲香 潘學文

摘要:針對新手剛接觸電子鋼琴無法看懂五線譜,上手較為困難而易失去學習興趣。該文在傳統電子鋼琴基礎上,琴譜的部分則應用Qt技術來搭建界面,并將鋼琴五線譜的每個發音轉換成開發板中每個按鍵的位置得到簡化琴譜。簡化后的琴譜在開發板上顯示出來的12個按鍵,正好對應簡易琴譜上的每一個音。這樣,無論什么基礎的人都可以對照顯示屏的琴譜,順利彈奏出完整美妙的鋼琴曲。此外,該文電子鋼琴是在S5p6818開發板上實現的,攜帶方便而不占用大量空間資源。

關鍵詞:電子鋼琴;S5p6818;TFTP;線程

中圖分類號:TP311? ? ? 文獻標識碼:A

文章編號:1009-3044(2021)15-0212-03

1 背景

據調查分析,人們多數人認為自身會一種甚至多種樂器,會讓自己在社會中有更好的發展,更好地表現自己,現在越來越多的家長熱衷于青少年對樂器的學習和培養。

2019年初,卡西歐推出新一代輕薄便攜帶的電鋼琴,PX,CDP,EP系列[1]。該系列電子琴雖然在體積有所改觀,但出門攜帶仍有困難,而且價格不菲。其后,在針對電子鋼琴體積大,價格貴的問題,一些鋼琴制造商們又推出了可折疊式的電鋼琴,相比于傳統的電子鋼琴來說,其體積大大減小,價格也相對實惠,但折疊式電子鋼琴折疊后,仍然存在不便于隨身攜帶和占用空間的問題。比如一些大學生對電子鋼琴比較感興趣的就不能在宿舍隨時拿出,隨時彈奏。如今,基于C++的電子鋼琴,相比于前幾代的鋼琴系列,輕巧便攜,價格實惠。

2 系統總體設計

本文系統主控模塊采用S5p 6818芯片作為核心,用USB線將電腦與S5p 6818上的COMO端口相連接,再將電腦上的RJ45接口用網線與s5p 6818上的ETHERNET端口相連接,通過Tftp[2]將文件傳輸到S5p 6818上,開發板接收文件完畢后,通過SecureCRT 去控制終端的開發板,在開發板上對文件進行壓縮,再運行,能夠正常運行后,LED屏上會將文件中的內容顯示出來,達到顯示鋼琴鍵盤的效果。其系統總體框圖如圖3所示。

3 系統實現

3.1 部分硬件設計

3.1.1 外圍電源電路設計

電源供電采用DC 5V/3A提供給s5p6818供電,提供穩定的電壓,充足的電流,且電源電壓建立時間短,功耗消耗也低,能滿足供電電源的所有基本要求。其外圍供電電路設計如圖4所示。

3.1.2 數據收發模塊設計

數據收發模塊使用PHY芯片RTL8211E對以太網進行連接進行收發數據,其連接電路如圖5所示。

3.2 軟件實現

3.2.1 鋼琴界面實現

首先打開VMware-Workstation虛擬機,在虛擬機中左邊的框中選中安裝好的QtCreator,就可以創建一個新的Qt工程,其創建流程[3]如圖6所示。

本文Qt界面搭建,采用mainwindow.ui[4]。因為其十分的簡單,只需要在控鍵箱中找到自己需要的控鍵,然后拖拽到位于中心的設計區域即可。等在設計區域中把想要的界面搭建好后,編寫代碼設置一些特定按鈕的信號以及槽函數實現想要達到的功能。

visible = false;(visble是申明在頭文件中的一個布爾類型,在這將它賦值false)

ui->widget_datetime->setVisible(visible);(表示開始的時候將界面中命名為datatime的對象先隱藏起來)

connect(ui->btn_datetime,SIGNAL(clicked(bool)),this,SLOT(onShowOrHideWidget()));(連接點擊按鈕與當前界面類的信號與槽)

this->visible = !visible;

ui->widget_datetime->setVisible(visible);(判斷visible的值,達到可以連續按動按鈕,實現按鈕功能的重復使用的效果)

當代碼編寫完成后,點擊運行,就會把搭建好的界面顯示出來,如圖7所示。點擊設置的顯示琴譜按鈕,就會把琴譜顯示出來,點擊切換琴譜,就會切換到下一張琴譜。如圖8所示。

在Qt搭建的簡易琴譜界面中,簡易琴譜轉化思想是將鋼琴五線譜的每個發音轉換成開發板中每個按鍵的位置。琴譜中的1就對應按鍵中的第1個按鍵,2就對應按鍵中的第2個按鍵,以此類推。剛好簡譜是用阿拉伯數字1,2,3,4,5,6,7去表示音階的7個基本級,分別讀作Do,Re,Mi,Fa,Sol,La,Si,Do.而鋼琴按鍵部分的第一個按鍵正好是發Do的音,以此類推,后面的按鍵就是發Re,Mi,Fa,Sol,La,Si,Do的音,正好又可以對應上音階的7個基本級,所以可以達到讓用戶輕松識譜,輕松彈奏的目的。而琴譜中的0則表示在該處需要稍做停頓,可以達到表示該曲是幾幾拍的效果,使彈奏出來的效果更接近原鋼琴曲。

3.2.2 電子鋼琴程序實現

電子鋼琴軟件實現原理是將鋼琴的一些基礎發音和按鍵保存,存放到創建的鏈表中。按動琴鍵,就會由相應的進程去播放相應的音頻,從而達到,按動每個按鍵,彈出對應音調。

程序代碼編寫思想:首先編寫兩個帶頭結點的雙向鏈表,一個用來保存讀取到的圖片信息,一個用來保存鋼琴按鍵對應音調的文件。再編寫一個識別.bmp圖片和.mp3的代碼。因為在linux操作系統中,一切皆文件,它是根據文件內容來判斷的,而不只是單單依靠后綴名來判斷文件的格式的,當識別到.bmp和.mp3的文件后,會將文件的路徑保存到之前創建的鏈表中,然后根據.bmp圖片在linux操作系統的格式來對文件進行判斷,看是否真的是符合要求的.bmp格式的圖片,判斷函數如下:

char buf[2];

read(fd,buf,2);

if(buf[0] != 0x42 || buf[1] != 0x4d)

{

printf("NO\n");

close(fd);

return -1;

}

printf("Yes\n");

然后將LED顯示屏文件給打開并映射,(顯示屏相關文件存放的路徑為/dev/fb0)。

fd = open("/dev/fb0",O_RDWR);(打開顯示屏相關文件,申請LCD設備資源)

映射:

plcd = mmap(NULL,800*480*4,PROT_READ | PROT_WRITE,MAP_SHARED,fd,0);

if(plcd == MAP_FAILED)

{

perror("mmap error:");

return -1;

}

申請完顯示屏資源后,就可以在顯示屏上進行畫點,顯示出相應的圖片在顯示屏上。

void draw_point(int x,int y,int color)

{

*(plcd + 800*y + x) = color;

}

4 結束語

本文電子鋼琴在傳統電子鋼琴的基礎上,利用Qt技術搭建了一個琴譜界面顯示簡易琴譜,即使用戶看不懂鋼琴五線譜的情況下,也可根據簡化琴譜彈奏鋼琴曲,有良好的用戶體驗,并攜帶方便,還可支撐簡易譜和五線譜之間的切換,方便用戶后續學習和使用,但系統錄入的曲目數量有限。

參考文獻:

[1] 卡西歐推出新一代輕薄便攜電鋼琴,不忘初衷突破自我[J].樂器,2019(7):98-99.

[2] 孫曉曄,王程,成彬.基于TFTP協議實現STM32的IAP[J].微型機與應用,2016,35(7):76-78.

[3] 付嘉寧.基于Qt的顯控系統圖形顯示的研究[J].電子測試,2017(15):37-38.

[4] 趙北庚.Windows系統下Qt圖形界面集成開發環境搭建[J].科技經濟導刊,2016(9):20.

【通聯編輯:代影】

主站蜘蛛池模板: 国产精品久久久久久久伊一| 亚洲精品亚洲人成在线| 她的性爱视频| 亚洲综合中文字幕国产精品欧美| 免费看美女自慰的网站| 色妞www精品视频一级下载| 国产精品黄色片| 视频二区亚洲精品| 亚洲精品视频免费| 色噜噜在线观看| 呦女亚洲一区精品| 欧美a级完整在线观看| 97久久免费视频| 一级成人a做片免费| 国产一二三区在线| 久久综合五月| 激情午夜婷婷| 亚洲清纯自偷自拍另类专区| 亚洲黄色网站视频| 国产精品自在自线免费观看| 国产一区成人| 新SSS无码手机在线观看| 色哟哟色院91精品网站| 狠狠ⅴ日韩v欧美v天堂| 91偷拍一区| 黄色三级网站免费| 91在线国内在线播放老师| 欧美性色综合网| 99无码熟妇丰满人妻啪啪| 欧美日韩国产在线观看一区二区三区 | 国产欧美日韩另类精彩视频| 三上悠亚精品二区在线观看| 中文无码日韩精品| 91精品福利自产拍在线观看| 国内熟女少妇一线天| 午夜不卡视频| 国产欧美日本在线观看| 日韩一区精品视频一区二区| 一本色道久久88| 国产乱人伦AV在线A| 精品少妇人妻av无码久久| 免费国产无遮挡又黄又爽| 国产香蕉一区二区在线网站| 欧美va亚洲va香蕉在线| 精品视频一区在线观看| 日韩中文无码av超清| 日本三区视频| 五月天综合网亚洲综合天堂网| 日韩天堂网| 天天综合网色| 动漫精品中文字幕无码| 在线观看国产一区二区三区99| 久久久久久国产精品mv| 国产小视频a在线观看| 国产人人干| 一级爆乳无码av| 婷婷伊人久久| 国产精品成人不卡在线观看| 成人蜜桃网| 国产97视频在线观看| 亚洲v日韩v欧美在线观看| 国产91丝袜| 亚洲综合精品香蕉久久网| 在线无码九区| 久久久精品无码一区二区三区| 在线亚洲小视频| 福利在线不卡一区| 精品伊人久久久久7777人| 亚洲成人免费在线| 欧美成人h精品网站| AV老司机AV天堂| 国产欧美日韩视频怡春院| 亚洲资源在线视频| 91精品福利自产拍在线观看| 最新国产高清在线| 欧美国产综合视频| 亚洲男女天堂| 试看120秒男女啪啪免费| 国产美女在线观看| 在线综合亚洲欧美网站| 97青青青国产在线播放| 真实国产乱子伦视频|