資料介紹
1:背景
![pYYBAGOImh6AWYIaAABrrOSlpLI815.png](https://file.elecfans.com/web2/M00/7F/B7/pYYBAGOImh6AWYIaAABrrOSlpLI815.png)
演奏連續(xù)音符是印度斯坦音樂不可分割的一部分。演奏這種類型的音符需要有多種表達(dá)方式。有像小提琴、西塔琴或長笛這樣的樂器可以做到這一點(diǎn)。典型的鍵盤只能彈奏離散的音符,而在高端鍵盤中,提供了一個(gè)彎音輪,可以將音符在正側(cè)或負(fù)側(cè)彎曲到典型的 2 個(gè)半音(此值是可調(diào)的,但將其設(shè)置得非常高可能會(huì)很困難準(zhǔn)確地使用它)。這不是一種非常直觀的音樂播放方式。市場上有各種鍵盤,如 Haken Continuum Board、ROLI seaboard。這些是一種功能強(qiáng)大的儀器,可以很好地完成這項(xiàng)工作。您可以在相應(yīng)儀器的網(wǎng)站上找到更多詳細(xì)信息。
受上述儀器的啟發(fā),我之前嘗試過制作一個(gè)簡單的基于 Arduino 的觸摸鍵盤。更多細(xì)節(jié)可以在instructable of the same中找到。該項(xiàng)目使用了大約 14 個(gè)板(低精度)和使用 Arduino 音調(diào)庫產(chǎn)生的聲音。由于它的聲音只是一個(gè)方波,所以聽起來一點(diǎn)也不悅耳。
這些是從我以前的項(xiàng)目中學(xué)到的,我試圖在這里改進(jìn)。
- Tone library 的聲音生成太差了,所以我在這里使用了 MIDI 按摩質(zhì)量可以提高,
- 由于尺寸較大,板數(shù)較少,板的定位精度太低。在這里,我?guī)缀鯇⒏袘?yīng)板的數(shù)量增加了兩倍,并將其寬度減半。
- 舊項(xiàng)目也沒有使用壓力數(shù)據(jù),因?yàn)橐粽{(diào)庫無法調(diào)制音量。使用 MIDI 為所有這些可能性打開了大門。
- 電容感應(yīng)不是一種非??煽康姆椒?。它可能會(huì)因接地、木板吸收的濕氣,甚至是您在玩耍時(shí)穿的鞋子而受到影響。在這里,我們需要解決這個(gè)問題,因?yàn)槠渌椒葟?fù)雜又/或昂貴。
2:概念
![poYBAGOJSHeAYz16AABi0NQP-yQ314.jpg](https://file.elecfans.com/web2/M00/7F/42/poYBAGOJSHeAYz16AABi0NQP-yQ314.jpg)
整體工作流程如下:
傳感:
我發(fā)現(xiàn)了兩種可行的方法。一種是基于霍爾效應(yīng)傳感器(用于 Haken Continuum 板),它非常準(zhǔn)確但相對(duì)復(fù)雜。這需要一些精確的機(jī)制來獲得準(zhǔn)確的輸出。但是,如上一節(jié)(步驟)所述,我發(fā)現(xiàn)非常方便的方法是利用電容感應(yīng)。如果我們?nèi)ル娙莞袘?yīng),我們不需要任何傳感器組件,我們可以簡單地將金屬板連接到任何 Arduino 引腳上,它就變成了電容傳感器。還有一個(gè)可用于電容感應(yīng)的庫可以直接使用的。有關(guān)此庫工作的更多詳細(xì)信息,請(qǐng)參見上述鏈接。總之,此方法檢查金屬板通過電阻器從 0V 充電到 5V 所需的時(shí)間。該時(shí)間值代表電容。我們獲得的另一個(gè)優(yōu)勢是我們還可以通過使用數(shù)據(jù)來測量壓力。我們按得越用力,手指與板接觸的面積就越大,電容就會(huì)增加。所以這就是我們不會(huì)只有接近感應(yīng)的方式,但我們會(huì)得到一些關(guān)于我們按壓力度的數(shù)字。
處理數(shù)據(jù):
Arduino 捕獲并處理數(shù)據(jù)。它根據(jù)預(yù)設(shè)值計(jì)算觸摸位置、壓力值。它還將所需的平滑應(yīng)用于所有這些值。MIDI 消息只不過是我們需要編寫的串行消息。Arduino 基本上控制四個(gè)信號(hào)。首先是打開和關(guān)閉任何音符。另外兩個(gè)信號(hào)彎音和壓力值在任何音符打開時(shí)連續(xù)計(jì)算和傳輸。
聲音生成:
來自 Arduino 的傳輸數(shù)據(jù)在 FL Studio 中用于生成所需的聲音。它需要各種軟件來插入 FL studio 中的 MIDI 信號(hào)。
3:準(zhǔn)備硬件
![poYBAGOJSHqAeLPtAADSDyUZKn8126.jpg](https://file.elecfans.com/web2/M00/7F/42/poYBAGOJSHqAeLPtAADSDyUZKn8126.jpg)
制作過程可以直接復(fù)制我之前的項(xiàng)目。詳細(xì)信息可在我的舊教程中找到:https://www.instructables.com/DIY-Arduino-Based-Co ...。
但是,在制作時(shí)需要考慮一些更改。板的寬度減少到 6 毫米(相對(duì)于之前的 12 毫米)。選擇尺寸的原因是,當(dāng)我們以最小壓力接觸表面時(shí),所創(chuàng)建的貼片的尺寸約為 8-9 毫米。所以當(dāng)我觸摸任何關(guān)鍵手指時(shí),至少會(huì)接觸到兩個(gè)板。
在這里,我還需要覆蓋 2 個(gè)八度音階,每個(gè)鍵由兩個(gè)鋁箔板組成。我們總共需要 48 個(gè)盤子。
電氣連接:
從上圖中可以看出,每個(gè)板都直接連接到公共引腳(編號(hào) 13)。它還通過一個(gè)電阻器連接到一個(gè)單獨(dú)的引腳。我們?nèi)绾螌⑺羞@些引腳連接到感應(yīng)板沒有任何限制,因?yàn)?a href='http://www.delux-kingway.cn/analog/' target='_blank' class='arckwlink_none'>模擬和數(shù)字引腳都支持電容感應(yīng)。根據(jù)您的連接,需要修改代碼。
筆記:
在切割板或焊接時(shí),您必須確保所有板彼此電氣隔離。
4:Arduino 軟件/代碼
- 所有板都聲明為電容傳感器,所有連接都需要正確映射到代碼上。對(duì)我來說,引腳 13 是通用引腳。
CapacitiveSensor p1 = CapacitiveSensor(13,12); CapacitiveSensor p2 = CapacitiveSensor(13,11);
CapacitiveSensor p3 = CapacitiveSensor(13,10);
.
.
.
CapacitiveSensor p48 = CapacitiveSensor(13,9);
2. 最初捕獲所有傳感器的電容值。“raw_cap()”函數(shù)將捕獲值并存儲(chǔ)在全局聲明的數(shù)組中。
void raw_cap(){
raw[1]=p1.capacitiveSensor(resolution);
raw[2]=p2.capacitiveSensor(resolution);
raw[3]=p3.capacitiveSensor(resolution);
.
.
raw[48]=p48.capacitiveSensor(resolution);
}
3. 捕獲完整數(shù)據(jù)后,將執(zhí)行另一個(gè)名為“data_process()”的函數(shù)。這不僅會(huì)處理數(shù)據(jù),還會(huì)將 MIDI 消息發(fā)送到計(jì)算機(jī)。這個(gè)函數(shù)的流程如下。
- 識(shí)別出最大幅度的鍵,
- 觸摸的準(zhǔn)確位置是在最大幅度值前一鍵和后一鍵計(jì)算的。(這就是為什么我們需要讓手指在任何時(shí)候至少觸摸兩個(gè)鍵)。
- 存儲(chǔ)鍵和壓力值的最后 30 個(gè)值
- 如果觸摸壓力值超過預(yù)定義值,Arduino 會(huì)發(fā)送數(shù)據(jù)以打開音符。
- 在觸摸打開期間,Arduino 不斷發(fā)送彎音和壓力值。
- 如果 Key 釋放,它會(huì)發(fā)送信號(hào)關(guān)閉音符。
此代碼還捕捉按鍵觸摸。例如,您在 7.25(在鍵 7 上稍微向右)觸摸,它只會(huì)播放鍵 7(純音符)。在該觸摸會(huì)話期間,它將是幻燈片的基礎(chǔ)值。此功能可以輕松放置純音符。如果沒有這一點(diǎn),將很難做到這一點(diǎn)。
完整的代碼可供下載。如果您打算做類似的事情,您可能需要花費(fèi)大量時(shí)間來調(diào)整代碼和各種值(如分辨率和觸摸閾值)
要了解 MIDI 消息,您可以參考此鏈接:
https://www.instructables.com/Send-and-Receive-MID ...
5:聲音生成
生成聲音需要三個(gè)軟件:
1. 無毛 MIDI:這是 MIDI 橋的串行。arduino 傳輸?shù)娜魏螖?shù)據(jù)都被該軟件捕獲。
2. LoopMIDI:這個(gè)軟件從 hairlessMIDI 捕獲數(shù)據(jù),并作為 FL studio(或您使用的任何軟件)的 MIDI 設(shè)備
3.FL studio:在FL studio的設(shè)置中,您可能需要選擇LoopMIDI作為設(shè)備。默認(rèn)情況下,此代碼提供 +8 到 -8 個(gè)半音之間的彎音(軟件中的默認(rèn)值為 +2 到 -2)。這需要在儀器的設(shè)置中手動(dòng)設(shè)置。除此之外,您還需要將壓力值分配給體積。
6:常見問題
這是我在開發(fā)過程中遇到的問題列表。
- 電容感應(yīng)的一個(gè)非常常見的問題是正確接地。如果用戶赤腳接觸地面,靈敏度會(huì)增加。如果我們將筆記本電腦插入電源,靈敏度也會(huì)增加。但是,打開充電器可能會(huì)給數(shù)據(jù)增加噪音。因此,如果您為某些條件設(shè)置閾值,它可能適用于其他條件,也可能不適用。
- 鋁箔之間的連接很關(guān)鍵,容易松動(dòng),如果松動(dòng),很多時(shí)候設(shè)備可能會(huì)出現(xiàn)故障。
- 直接觸摸板、線或引腳可能會(huì)給出完全錯(cuò)誤的數(shù)據(jù),也會(huì)破壞采樣率。演奏時(shí),只能使用塑料覆蓋的部分。所有暴露的金屬都應(yīng)適當(dāng)絕緣以避免意外接觸。
- 如果您將鋁箔直接粘貼到木塊上(使用水性粘合劑),可能需要幾個(gè)小時(shí)或幾天才能完全干燥。在潮濕條件下,由于板通過水通道相互連接,它會(huì)給出錯(cuò)誤的輸出。
- 鋼琴老師:Arduino+LEDs+MIDI鍵盤+MuseScore
- 帶Ableton的Arduino MIDI控制器
- 基于樹莓派的自制MIDI鍵盤 1次下載
- Arduino 101藍(lán)牙MIDI開源分享
- Arduino MIDI控制器開源分享
- 基于Arduino Nano R3的MIDI音序器—Cthulhinho 0次下載
- 帶有FL Studio的Arduino LED MIDI控制器
- 基于Arduino的MIDI音序器Cthulhinho 0次下載
- 鍵盤控制的Arduino汽車
- 基于Arduino UNO構(gòu)建小型midi解碼器
- Arduino MIDI鼠標(biāo)控制器
- Cantor風(fēng)琴轉(zhuǎn)換為VPO的MIDI控制器
- 兆易創(chuàng)新AN014 GD32微控制器在Arduino中的應(yīng)用
- MIDIFART迷你袖珍MIDI控制器
- 一種復(fù)音MIDI鍵盤控制器的設(shè)計(jì) 35次下載
- 簡述控制器的多種工作模式 2690次閱讀
- 基于MM32F0160微控制器的機(jī)械鍵盤 1241次閱讀
- 如何使用Arduino Leonardo和MPU6050制作一個(gè)有線的手勢控制器 2966次閱讀
- 采用ispLSI1016芯片實(shí)現(xiàn)4×5鍵盤控制器設(shè)計(jì) 2374次閱讀
- 如何使用通用單片機(jī)制作MIDI鍵盤 7100次閱讀
- dfrobotDFRduino Pro Mini控制器簡介 2200次閱讀
- dfrobotDFRduino Pro MiniV1.3控制器簡介 1398次閱讀
- dfrobotArduino Leonardo 控制器介紹 2425次閱讀
- dfrobotArduino兼容控制器介紹 1411次閱讀
- dfrobotCheapduino控制器介紹 1496次閱讀
- dfrobotDFRduino Nano 3.0控制器介紹 2753次閱讀
- dfrobotRomeo 三合一Arduino兼容控制器介紹 2580次閱讀
- 沁恒股份USB轉(zhuǎn)MIDI芯片:CH345概述 3673次閱讀
- arduino連接顯示屏方法詳解 4.7w次閱讀
- 基于FPGA的矩陣鍵盤控制器的設(shè)計(jì) 5050次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論