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.

【通聯編輯:代影】

主站蜘蛛池模板: 国产精品999在线| 欧美视频在线不卡| 玖玖精品在线| 青青久视频| 久久成人18免费| 亚洲色图综合在线| 97久久免费视频| 中文无码精品A∨在线观看不卡 | 人妻丰满熟妇啪啪| 99久久精品免费观看国产| 亚洲国产成人精品无码区性色| 国产日本欧美在线观看| 国产91麻豆免费观看| 好吊色妇女免费视频免费| 欧美激情视频二区| 伊人久久大香线蕉影院| 精品综合久久久久久97超人| 国产尤物视频网址导航| 欧美高清三区| 色综合热无码热国产| 丁香六月综合网| 亚洲一区波多野结衣二区三区| 精品小视频在线观看| A级毛片无码久久精品免费| 日本三级欧美三级| 无码 在线 在线| 亚洲不卡av中文在线| 最新国产高清在线| 亚洲天堂精品视频| 欧美国产日韩在线| 欧美中文字幕一区| 久视频免费精品6| 欧美人与牲动交a欧美精品| 伊人久久综在合线亚洲91| 日本免费精品| 欧美中文字幕第一页线路一| 尤物国产在线| a在线观看免费| 婷婷激情亚洲| 少妇人妻无码首页| 久久黄色毛片| 人妻21p大胆| 久久91精品牛牛| 精品三级在线| 国产日韩欧美精品区性色| 日本免费一级视频| 青青久在线视频免费观看| 在线免费a视频| AV在线天堂进入| 日韩在线视频网站| 国产成人欧美| 亚洲AⅤ无码国产精品| 三级毛片在线播放| 中文字幕有乳无码| 国产呦精品一区二区三区下载| 国产欧美日韩精品第二区| 国产日产欧美精品| 亚洲欧美另类专区| 亚洲男人天堂2020| 成人在线不卡视频| 国产亚洲精久久久久久久91| 欧美日韩精品综合在线一区| 成人福利在线视频| 最新痴汉在线无码AV| 九九热精品视频在线| 色婷婷天天综合在线| 91久久精品日日躁夜夜躁欧美| 亚洲色图欧美| 国产簧片免费在线播放| 91视频免费观看网站| 国产天天射| 亚洲色图欧美视频| 国产97视频在线| 国产精品亚洲欧美日韩久久| 永久成人无码激情视频免费| 色天天综合| 国产av一码二码三码无码 | 91小视频在线观看免费版高清| 国产无码在线调教| 青青草原国产精品啪啪视频| 欧美另类图片视频无弹跳第一页| 亚洲成在线观看 |