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

基于A(yíng)RM+Linux的模擬電子琴設(shè)計(jì)

2020-07-04 02:15:25胡淼元何文德楊鳳年
電腦知識(shí)與技術(shù) 2020年15期

胡淼元 何文德 楊鳳年

摘要:采用以ARMCortex-A8架構(gòu)的s5pv210處理器為核心的硬件平臺(tái),以嵌入式Linux為軟件平臺(tái),開(kāi)發(fā)了一款模擬電子琴軟件。打開(kāi)模擬電子琴程序后,演奏者可在液晶屏上顯示的琴鍵通過(guò)觸摸屏彈奏樂(lè)曲。此外,模擬電子琴系統(tǒng)中內(nèi)置了數(shù)十首中外流行的樂(lè)曲,演奏者選中某首樂(lè)曲后,可在液晶屏上顯示其簡(jiǎn)譜或五線(xiàn)譜,電子琴還可自動(dòng)演奏所選中的樂(lè)曲。

關(guān)鍵詞:嵌入式Linux;電子琴;圖片顯示;音符發(fā)聲

中圖分類(lèi)號(hào):TP319 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2020)15-0253-02

嵌人式系統(tǒng)的廣泛應(yīng)用令家電以及玩具產(chǎn)業(yè)日新月異,同時(shí)也極大提高了電子產(chǎn)品的設(shè)計(jì)效率和產(chǎn)品品質(zhì)。電子琴屬于嵌入式系統(tǒng)產(chǎn)品范疇,其種類(lèi)很多,通常適合5歲以上兒童以及成人的學(xué)習(xí)和演奏,價(jià)格一般在幾千元乃至數(shù)萬(wàn)元。然而,對(duì)于培養(yǎng)和啟發(fā)兒童和青少年的音樂(lè)興趣來(lái)說(shuō),不必拘泥于價(jià)格昂貴且不太便于攜帶的電子琴,一款價(jià)格親民的具備模擬電子琴功能的平板電腦,或許就能滿(mǎn)足普通家庭的需求。因此,融合計(jì)算機(jī)技術(shù)和嵌入式系統(tǒng)技術(shù)的模擬電子琴的研究及設(shè)計(jì)開(kāi)發(fā)受已受到了業(yè)界的關(guān)注。這類(lèi)模擬電子琴基于便攜式的硬件平臺(tái),能通過(guò)寓教于樂(lè)的方式培養(yǎng)青少年的音樂(lè)興趣、普及樂(lè)理知識(shí),深受人們的青睞。

1系統(tǒng)方案設(shè)計(jì)

電子琴通常采用振蕩器和分頻器獲得音頻信號(hào),再經(jīng)過(guò)運(yùn)放電路放大,最后驅(qū)動(dòng)揚(yáng)聲器發(fā)聲,鍵盤(pán)用于控制進(jìn)入揚(yáng)聲器信號(hào)的頻率,最終實(shí)現(xiàn)電子琴的功能。本文在實(shí)現(xiàn)模擬電子琴基本功能的基礎(chǔ)上,還增添了自動(dòng)演奏和樂(lè)譜提示等功能,使其更具有趣味性和益智性。該設(shè)計(jì)由硬件和軟件兩部分組成,硬件以ARM Cortex-A8架構(gòu)的s5pv210處理器為核心,結(jié)合內(nèi)存和Flash存儲(chǔ)器組成核心板,再加上液晶屏(LCD)、觸摸屏、揚(yáng)聲器等模塊構(gòu)成。

模擬電子琴包含兩種工作模式:(1)彈奏模式,為電子琴的基本工作模式,依次按下鍵盤(pán)區(qū)的1-8號(hào)按鍵時(shí),揚(yáng)聲器就會(huì)依次發(fā)出Do、Re、Mi、Fa、So、La、Si、高音段的Do等8個(gè)音符。(2)播放模式,播放系統(tǒng)內(nèi)置的音樂(lè),用戶(hù)可以通過(guò)觸摸屏按鍵選擇樂(lè)曲進(jìn)行播放,播放音樂(lè)時(shí)液晶顯示屏?xí)@示對(duì)應(yīng)的樂(lè)曲編號(hào)和名稱(chēng)。

2硬件和軟件平臺(tái)

硬件由基于A(yíng)RM Cortex-A8架構(gòu)的s5pv210為處理器的硬件平臺(tái)(處理器主頻為1GHz,核心板的內(nèi)存為1GB DDR2、存儲(chǔ)器為4GB iNAND),結(jié)合帶電容觸摸功能的8.0寸800*1280、全視角IPS液晶顯示模塊,以及音頻功放模塊(含放大器和揚(yáng)聲器)等主要模塊組成,用戶(hù)通過(guò)觸摸屏模塊輸入信息,核心處理器接收信息后作相應(yīng)處理,然后控制液晶顯示模塊和音頻模塊對(duì)輸人信息做出響應(yīng)。其硬件結(jié)構(gòu)如圖1所示。

軟件平臺(tái)采用開(kāi)源的Linux操作系統(tǒng),經(jīng)驅(qū)動(dòng)程序設(shè)計(jì)和內(nèi)核裁剪后移植到上述硬件平臺(tái),模擬電子琴是基于以上軟硬件平臺(tái)的應(yīng)用程序,采用c語(yǔ)言開(kāi)發(fā),交叉編譯環(huán)境使用arm-linux-gec。

3模擬電子琴軟件開(kāi)發(fā)

3.1關(guān)鍵技術(shù)

3.1.1 LCD上顯示bmp格式圖片

Linux系統(tǒng)中一切操作皆作為文件處理,故Linux操作LCD模塊就是一個(gè)對(duì)LCD模塊文件的讀寫(xiě),使用mmap(1來(lái)簡(jiǎn)化操作,這是一種內(nèi)存映射文件的方法,即將一個(gè)文件或者其他對(duì)象映射到進(jìn)程的地址空間,這樣進(jìn)程就可以讓用戶(hù)程序直接訪(fǎng)問(wèn)設(shè)備內(nèi)存,而不必再調(diào)用readO、writeO等系統(tǒng)調(diào)用函數(shù)。使用完后也必須使用munmap()解除映射。

電子琴琴鍵等圖形界面是通過(guò)bmp格式圖片在LCD上顯示的實(shí)現(xiàn)的。首先用lseekO函數(shù)分別定位到圖片的長(zhǎng)寬以及像素?cái)?shù)組并讀取,然后對(duì)像素?cái)?shù)組進(jìn)行解碼,由24位變成32位,再對(duì)屏幕上每個(gè)點(diǎn)進(jìn)行顏色賦值。源代碼的關(guān)鍵是先實(shí)現(xiàn)在LCD屏幕坐標(biāo)為(i,j)的點(diǎn)上顯示指定的顏色color的函數(shù)void led_display_pointont i,int j,int color),最后實(shí)現(xiàn)void lcd_dis-play_bmp(char*bmpname,intx,int y)函數(shù),其中,x、y為在LCD屏幕上圖片顯示位置的坐標(biāo),bmpname為帶路徑的bmp圖片的文件名。

3.1.2觸摸屏輸入事件處理

Linux觸摸屏驅(qū)動(dòng)一般采用input子系統(tǒng)驅(qū)動(dòng)框架實(shí)現(xiàn),因此應(yīng)用層接口要遵循input框架的接口。觸摸事件在文件中用結(jié)構(gòu)體struct input_event來(lái)描述,其結(jié)構(gòu)成員包括time(按鍵時(shí)間)、type(事件類(lèi)型)、code(事件鍵值)、value(值),以此來(lái)對(duì)事件進(jìn)行判斷。如果事件類(lèi)型為EV_KEY,則相應(yīng)的code值為按鍵狀態(tài),1為按下,0為彈起;如果是事件類(lèi)型為EV_ABS,相應(yīng)code的值為對(duì)應(yīng)的坐標(biāo)軸x、y。按鍵事件的判斷可以設(shè)立標(biāo)志位flag,先置為0,當(dāng)按鍵狀態(tài)為1H.flag=0時(shí),即為按下。然后將flag置為1;當(dāng)按鍵狀態(tài)為0且flag=l時(shí),即為彈起。然后將flag置為0,就可以實(shí)現(xiàn)對(duì)觸摸屏按鍵事件的判斷。

3.1.3音符發(fā)聲

madplay是一個(gè)開(kāi)源mp3解碼庫(kù),對(duì)mp3解碼算法做了很多優(yōu)化,本文基于madplay庫(kù)實(shí)現(xiàn)音符發(fā)聲。當(dāng)用戶(hù)按下一個(gè)琴鍵后,主進(jìn)程創(chuàng)建一個(gè)子進(jìn)程來(lái)使用madplay播放相應(yīng)的音頻文件,設(shè)置“分離屬性”,讓子進(jìn)程在madplay播完后,實(shí)現(xiàn)資源自我回收。若madplay尚未播放完,又有按鍵事件發(fā)生,就又會(huì)產(chǎn)生一個(gè)新進(jìn)程,而此時(shí)播放器正在被上一個(gè)madplay進(jìn)程占用,使得新進(jìn)程進(jìn)入阻塞態(tài)等待狀態(tài)。因此,當(dāng)按鍵事件結(jié)束后,仍在發(fā)聲。為此,可以在進(jìn)程函數(shù)中,加入killall系統(tǒng)命令來(lái)終止上一個(gè)madplay,然后再播放本音符。

3.2軟件總體設(shè)計(jì)

模擬電子琴程序是Linux的應(yīng)用程序,它啟動(dòng)后先進(jìn)行LCD液晶顯示屏和觸摸屏初始化,隨后進(jìn)入程序主界面,提醒用戶(hù)選擇工作模式,用戶(hù)可以選擇彈奏模式或自動(dòng)演奏模式。在這兩種模式下,用戶(hù)都可將從樂(lè)曲庫(kù)中選擇的樂(lè)曲的簡(jiǎn)譜或五線(xiàn)譜顯示在LCD上,并在主界面設(shè)有退出按鈕,系統(tǒng)根據(jù)用戶(hù)的選擇進(jìn)入工作模式切換或退出程序,程序除主界面外的其他界面都設(shè)有返回按鈕,以方便用戶(hù)操作。其活動(dòng)圖如圖2所示。

4總結(jié)

為了培養(yǎng)青少年的音樂(lè)興趣,本文采用以ARM Cortex-A8架構(gòu)的s5pv210為處理器的硬件平臺(tái),嵌入式Linux作為軟件平臺(tái),用C語(yǔ)言開(kāi)發(fā)了一款模擬電子琴,對(duì)其硬件架構(gòu)和軟件設(shè)計(jì)進(jìn)行了闡述,重點(diǎn)闡述了其軟件設(shè)計(jì)方法,對(duì)嵌入式系統(tǒng)初學(xué)者有一定的參考價(jià)值。該模擬電子琴具有彈奏和自動(dòng)演奏兩種工作模式,可以提高青少年的音樂(lè)興趣,加深他們對(duì)樂(lè)理知識(shí)的理解和認(rèn)知。在后續(xù)的工作中團(tuán)隊(duì)將著重在軟件方面做出改進(jìn),使模擬電子琴發(fā)聲的音色種類(lèi)更加豐富、聲音更加悅耳,令其用戶(hù)體驗(yàn)更出色。

主站蜘蛛池模板: 久久精品娱乐亚洲领先| 无码专区国产精品一区| 国产91精品调教在线播放| 亚洲天堂.com| 亚洲人成网址| 在线观看亚洲人成网站| 亚洲视频免| 91偷拍一区| 激情爆乳一区二区| 无码'专区第一页| 成年女人a毛片免费视频| 国产va在线| 欧美亚洲欧美| 国产精品高清国产三级囯产AV| 青青草欧美| 又大又硬又爽免费视频| 91精品国产一区| 国产香蕉国产精品偷在线观看| 国产成人亚洲综合A∨在线播放| 成年片色大黄全免费网站久久| 中文无码日韩精品| 久草性视频| 亚洲国产精品VA在线看黑人| 99精品伊人久久久大香线蕉| 国产91精选在线观看| 亚洲大尺度在线| 就去色综合| 91无码人妻精品一区二区蜜桃| 色妞www精品视频一级下载| 91精品伊人久久大香线蕉| 91青青草视频| 无码高清专区| 91福利国产成人精品导航| 亚洲综合婷婷激情| 99久久性生片| 日本高清有码人妻| 亚洲成a人片| 国产欧美日韩在线一区| 久久久久久国产精品mv| 久久永久免费人妻精品| 久久精品国产精品一区二区| 亚洲色欲色欲www在线观看| 一级毛片免费不卡在线| 亚洲无卡视频| 香蕉久人久人青草青草| 狠狠做深爱婷婷久久一区| 免费一级毛片在线播放傲雪网| 欧美成人第一页| 欧美成人h精品网站| 蝴蝶伊人久久中文娱乐网| 99久久国产综合精品2020| 亚洲丝袜中文字幕| 丰满少妇αⅴ无码区| 国产一国产一有一级毛片视频| 国产超碰在线观看| 美女无遮挡免费视频网站| 久久激情影院| 久久香蕉国产线看精品| 国产美女精品一区二区| 精品无码国产一区二区三区AV| 精品国产欧美精品v| 91亚洲精品第一| 在线国产三级| 日韩高清一区 | 伊人久久久久久久久久| 国产亚洲男人的天堂在线观看| 无码一区二区波多野结衣播放搜索| 国产成人AV男人的天堂| 国产精品久线在线观看| 人妻一区二区三区无码精品一区 | 亚洲男人天堂网址| 91九色视频网| 亚洲精品国产成人7777| 欧美丝袜高跟鞋一区二区| 亚洲欧美在线综合一区二区三区| 亚洲无线观看| 成人国产精品2021| www.99在线观看| 强奷白丝美女在线观看 | 热99re99首页精品亚洲五月天| 国产一区二区人大臿蕉香蕉| 高清国产va日韩亚洲免费午夜电影|