步驟1:需要的東西
* ELECTRONIC STUFF
#Arduino UNO R3
#SD卡屏蔽層
#USB電纜
#5 V適配器
#Micro SD卡
#壓電換能器(又名壓電磁盤)
#帶狀導(dǎo)線
#單芯屏蔽線。
#連接線。
#并行PCB。
#2個(gè)接觸跳線。
#3.5mm音頻插孔(公n母)
#電阻-1M和10K(每個(gè)約10個(gè))
#
*硬件雜物
#PVC管(3.5厘米,理想厚度)-3米
#PVC T型接頭
彎頭
聯(lián)軸器
塞子
#Thermocoal(實(shí)厚)。
#橡膠樣材質(zhì)(誠(chéng)實(shí)地不要使用它的花哨名稱。:)
任何具有求和剛度和彈跳力的材料。我是從鞋類制造商那里購(gòu)得的。它們被用來(lái)制造鞋子的靈魂。 )#Rexin(這種材料將是人造膜。我使用了類似材料的黑布
.u可以使用任何使其看起來(lái)很酷的東西.u甚至可以使用皮革
。這不會(huì)影響方式你的鼓聲。)??雌饋?lái)很酷的東西,讓你放進(jìn)去。(我用了一個(gè)舊的筆記本電腦
cooler-pad.n里面的房間看起來(lái)很棒。)
#
*需要工具
#焊接設(shè)備。
#切割鉗
#剝線鉗
#剪刀(重型物品)
#Thermocol切割器
#鋼鋸
#測(cè)量
#Fevicol SR&SH(印度木材和制鞋業(yè)用膠水制造商。您可以在您所在的國(guó)家或地區(qū)使用相同的膠水:P)
#絕緣膠帶。#Ducttape或大提琴膠帶或美紋紙膠帶。#砂紙(金屬的顆粒大小各不相同。)#M密封(可模制成任何尺寸和棒狀的材料) )##噴涂漆。(您的選擇。我用黑色。)
#
*需要軟件。
#Arduino編程環(huán)境。
#SOX (命令行格式轉(zhuǎn)換器)
#FL Studio。
*需要其他填充物。
#一臺(tái)用于對(duì)Arduino編程的PC。
#一個(gè)用于聽到聲音的放大器。
步驟2:工作

工作
在此步驟中,嘗試盡可能簡(jiǎn)單地解釋我們的E DRUM(或KIDU
)的工作。我只簡(jiǎn)單地談?wù)勚谱髅總€(gè)子系統(tǒng)的步驟,然后在下面不詳細(xì)介紹它們步驟。
由于我們正在處理電子鼓,因此需要將機(jī)械脈沖(在鼓上播放)覆蓋到電信號(hào)中。此任務(wù)由壓電圓盤完成。我們制造的鼓將包含1個(gè)這樣的壓電傳感器。
當(dāng)在磁盤上施加機(jī)械壓力時(shí),會(huì)產(chǎn)生電信號(hào),其強(qiáng)度與壓力成正比。
發(fā)送到Arduino模擬引腳(通過(guò)下拉電阻,稍后再解釋)。由于UNO上只有6個(gè)anaog引腳。,將使用的鼓和的數(shù)量限制為6個(gè)。
我們使用數(shù)字引腳觸發(fā)底鼓和扼流圈。
arduino還通過(guò)SPI引腳連接到SD卡屏蔽層。 。
(即引腳13到10)。
現(xiàn)在程序。如您所知,arduino的模擬引腳將其模擬輸入轉(zhuǎn)換為0到1024之間的值。這樣,如果該值超過(guò)特定的畫眉保持值,則從sd卡中提取相應(yīng)的
音頻文件,然后通過(guò)啟用PWM的引腳對(duì)其進(jìn)行播放。說(shuō)起來(lái)容易做起來(lái)難。如果我們需要不使用任何音頻解碼器直接播放SD卡中的音頻文件,則需要克服一些障礙。(稍后將對(duì)此進(jìn)行詳細(xì)說(shuō)明。)
KIDU的另一個(gè)優(yōu)勢(shì)是因?yàn)樗恍枰魏慰刂瓢粹o。
我已經(jīng)對(duì)其進(jìn)行了編程,以便可以使用鼓本身來(lái)
選擇擊鼓風(fēng)格。
步驟3:框架


制作框架
我不太擅長(zhǎng)機(jī)械領(lǐng)域的東西。.,但是我盡力了。
用于制造鼓和結(jié)構(gòu)或框架。它使用了某些材料(不是最好的材料),但是我使用它們是因?yàn)樗鼈円子谑褂茫⑶曳浅1阋饲逸p巧。
但是,這一步非常簡(jiǎn)單。任何一個(gè)具有低成像性的材料都可以制造。
請(qǐng)遵循結(jié)構(gòu)框架圖。
為了制作KIDU的框架,我使用了直徑為3.5厘米的PVC管。
需要大約3米長(zhǎng)我們需要將這3米長(zhǎng)的pvc轉(zhuǎn)換成如圖所示的結(jié)構(gòu)。
我可以給您精確測(cè)量框架部件的數(shù)量。但是
說(shuō)實(shí)話。,我從來(lái)沒(méi)有已經(jīng)將它們切成確切的長(zhǎng)度。我只剪了1米的pVC,并檢查了這是否是我需要的長(zhǎng)度。我認(rèn)為我測(cè)量到的它太多了,并做了一點(diǎn)標(biāo)記。我測(cè)量了我發(fā)現(xiàn)的高度
玩起來(lái)很舒服。我測(cè)量了4個(gè)這樣的支柱。他通過(guò)這種反復(fù)試驗(yàn)的方法來(lái)確定所有組件的長(zhǎng)度。但是令人驚訝的是,沒(méi)有浪費(fèi)任何東西。因?yàn)榭蚣艿乃薪M件都很小。并且在那里有很多連接。所以我使用了幾乎上升了2.7米。剩下的很少了。
這是我使用的方法(有趣的方式)。
但是對(duì)于那些不喜歡太多有趣的人,請(qǐng)?jiān)诹硪粡垐D上測(cè)量并標(biāo)記。
命名框架組件。
這很重要,因?yàn)?,?dāng)我們將它們組裝在一起時(shí),這非常有用。如果我們有很多組件并且沒(méi)有辦法知道哪個(gè)會(huì)很混亂。因此,我組成了一個(gè)結(jié)構(gòu)
框架裝配圖。每個(gè)組件都有一個(gè)名稱。
BL2-后左2
BL1-后左1
SL1-后左1
SL2-側(cè)向左2
FL2-前向左2
FL1-前向左1
GL-左向
ML-中向左
M-中向
MR-中向右
GR -GOINT RIGHT
FR1 -FRONT RIGHT 1
FR2 -FRONT RIGHT 2
SR1 -SIDE RIGHT 1
SR2 -SIDE RIGHT 2
BR1 -BA CK RIGHT 1
BR2 -BACK RIGHT 2
(我的關(guān)節(jié)拼寫錯(cuò)誤。但是我很想去:P)
現(xiàn)在將整個(gè)東西連接在一起,沒(méi)有鼓。 》使用噴漆進(jìn)行噴涂。
提示:#在管道內(nèi)部和外側(cè)命名組件。
以防被油漆覆蓋。
#噴涂時(shí)請(qǐng)記住至少要保持噴涂狀態(tài)從
workpice離開25厘米。在噴涂時(shí)一定要移動(dòng),以獲得良好的光潔度。
#將工件放在報(bào)紙上,以防止油漆破壞其他任何東西。
步驟4:制作鼓
制作鼓
我不太擅長(zhǎng)機(jī)械方面的事情。。但是我盡力了。
用于制造鼓和結(jié)構(gòu)或框架。它使用了一些材料
(不是最好的材料)但是我用它們是因?yàn)樗鼈円子谑褂?,并且非常便宜且輕巧。
如圖所示,該鼓共有3層。大部分鼓都充滿了我使用的是Thermocol(更好的剛性)。我對(duì)標(biāo)準(zhǔn)鼓組的鼓尺寸進(jìn)行了搜索。然后在大塊的Thermocol板上切成四個(gè)直徑的圓。如下圖所示。切下直徑相同的rexin和有彈性的材料,如圖所示?,F(xiàn)在,在Thermocol的中心切出一個(gè)圓柱狀的凹槽,使T結(jié)的tail部分緊緊地插入孔中。現(xiàn)在在Thermocol的t結(jié)部分附近標(biāo)記4個(gè)位置。(請(qǐng)注意,這只是為了獲得更大的強(qiáng)度。即使鼓手敲鼓,鼓也會(huì)掉落。
困難。)。
現(xiàn)在,您已經(jīng)知道連接處在鼓上了,
移除結(jié)點(diǎn)?,F(xiàn)在使用砂紙。,將Thermocol的側(cè)面
。這是為了消除切割時(shí)可能產(chǎn)生的任何變形。
沿軸在熱煤上形成一個(gè)凹槽。(軸是pvc管所在的假想線
。)
現(xiàn)在申請(qǐng)fevico l(SH級(jí))位于熱煤
和T形接合處的樹叢壁上。請(qǐng)勿使用SR級(jí)coz,因?yàn)樗鼘⑷刍療峥煽赡z。(fevicol是印度膠水制造商的名稱.ill也把圖片放在照片上。您可以在您所在的國(guó)家/地區(qū)使用wat。)然后用一根細(xì)繩子將T結(jié)和Thermocol綁在一起。將細(xì)繩串成一串,穿過(guò)我們?cè)赥hermocol上切開的小樹林。現(xiàn)在將其綁緊T結(jié)上的硬結(jié)。在串上接觸
SR fevicol時(shí)應(yīng)使其碰到PVC T結(jié)(不要在Thermocol上弄破SR。)SR會(huì)使PVC融化。 》然后將Thermocol固定在t結(jié)上。
現(xiàn)在拿一個(gè)壓電盤,用2股帶狀導(dǎo)線焊接(從10股帶狀導(dǎo)線的2條)
確保用絕緣膠帶將兩根引線絕緣?,F(xiàn)在將另一端的電線焊接到3.5mm音頻插孔上,用一塊小的塑料片擰緊插孔,并確保電線的長(zhǎng)度等于半徑
感光鼓。(我們不希望任何多余的電線從感光鼓中伸出。)
使用SR膠水,將壓電磁盤粘在我們先前切出的
bolson材料的中心。絕緣膠帶粘電線a
然后將磁盤放在圓上?,F(xiàn)在將包含壓電磁盤
的一側(cè)粘貼到thermocol上。確保3.5插孔正確放置??梢詮奈牡耐饷娌迦?/p>
(僅使用SH粘附在Thermocol上。)
現(xiàn)在使用SR膠將毒素粘附在有彈性的材料上。留待干燥。
現(xiàn)在用于噴涂感光鼓。我使用了噴漆(油漆-a-can)。問(wèn)題是您不能直接在Thermocol上使用此涂料。因?yàn)樗鼤?huì)產(chǎn)生與SR膠相同的效果。它會(huì)熔化整個(gè)物體。在將其噴涂之前,先在其頂部涂上膠帶。
我還先涂了一層新聞紙,然后涂了一層膠帶。
(不是必需的)。
涂上一層油漆??梢詮墓纳弦?5厘米遠(yuǎn),然后不斷地噴灑,以獲得良好的光潔度。否則,它可能會(huì)不均勻。
晾干。5分鐘后重復(fù)。
涵蓋了鼓的制作。但是制作making和踏板
將在下一步驟中進(jìn)行說(shuō)明。一個(gè)問(wèn)題是我無(wú)法拍攝br和腳踏板的制作。我也沒(méi)有一刻就把它們和我在一起。但是生病了我要盡快把它們照相并上傳。
立即加載步驟。
提示:#每當(dāng)您使用以前使用過(guò)的溶劑(如fevicol SH或SR)時(shí),始終在樣品上進(jìn)行測(cè)試
》將其應(yīng)用到原件上。
(我想強(qiáng)調(diào)這一點(diǎn),是因?yàn)槲以赥hermocol上使用
SR浪費(fèi)了1個(gè)大鼓。整件事融化成guie黏糊糊的泥漿:()
#插孔(固定壓電),請(qǐng)確保插孔
位于鼓的易于插入的區(qū)域。(您不希望插孔位于鼓的左側(cè)或右側(cè)。因?yàn)榭赡芎茈y另一個(gè)鼓側(cè)面出現(xiàn)。
#始終使用總和標(biāo)記來(lái)測(cè)量和標(biāo)記鼓上的參數(shù)。
#我們將一起削減所有4個(gè)鼓的重要性。 。
因此可以輕松地標(biāo)記出它們屬于哪個(gè)鼓及其軸。 》#在粘貼任何東西之前,請(qǐng)始終檢查其在框架上的狀態(tài)。
注意:-根據(jù)我搜索過(guò)的網(wǎng)站的標(biāo)準(zhǔn)鼓尺寸。
18 x 22英寸低音鼓
9 x 12和10 x 13英寸架子鼓
16 x 16英寸落地鼓
5.5 x 14英寸小軍鼓
步驟5:制作控制臺(tái)
制作控制臺(tái)。
基本上是將所有回路放置在一個(gè)漂亮的盒子中。
整齊地拼湊一種方法,可以與
在控制臺(tái)上,我使用了一個(gè)舊的USB供電的筆記本電腦冷卻器墊。我從墊子上取下了
風(fēng)扇,并用一小塊硬紙板粘了起來(lái)。將
SD卡護(hù)罩連接到arduino和將其擰緊到硬紙板上。
另一個(gè)重要的電路是下拉電阻。
如前所述,壓電磁盤產(chǎn)生的電信號(hào)對(duì)應(yīng)于施加在紙板上的壓力。當(dāng)我們將鼓與壓電
內(nèi)部粘在一起時(shí),即使不彈鼓也會(huì)產(chǎn)生信號(hào)。因此要克服這個(gè)問(wèn)題,我們放下了下拉電阻(1M?1.3M )
在壓電圓盤的帶電和接地引線之間。
我們可以將其放在橡皮泥中。但是我決定將所需的所有
下拉電阻器放到一個(gè)PCB上,然后將其放置在控制臺(tái)中。
此配置使必要時(shí)更容易進(jìn)行任何維護(hù)。
電路圖非常簡(jiǎn)單。
我將6個(gè)母跳線連接到并行PCB并使用了6個(gè)電阻器然后用掛鉤線將所有跳線公插針的1個(gè)引線短路。然后從每個(gè)跳線插銷中引出帶電引線和短路的引線1個(gè)(用于GND)并分別焊接到Ribbonwire的1端。我將一小部分連接線連接到Ribbon Line的末端(以使其更易于連接到Arduino)。并連接這些線。與模擬p將這些銷釘
暴露在外部,以便我們從外部進(jìn)行連接。
接下來(lái),將輸出音頻插座(3.5毫米母音頻)連接到控制臺(tái)。我們將2股帶狀導(dǎo)線焊接到地面并使其插在插座上,并使其另一端連接到連接導(dǎo)線。(以便于輕松連接到arduino。)現(xiàn)在在控制臺(tái)上再打一個(gè)孔以取下孔
我使用USB電纜對(duì)arduino進(jìn)行編程以為該設(shè)備供電。
這樣,我可以使用同一根電纜為該設(shè)備供電并對(duì)其進(jìn)行編程。我將USB電纜連接到一個(gè)用于供電的5V USB適配器。
這也減輕了控制臺(tái)的重量,這是因?yàn)槌林氐淖儔浩鲗?shí)現(xiàn)了降壓和更高的效率。
接下來(lái)是電纜系統(tǒng)。我使用的電纜系統(tǒng)是由
》單芯屏蔽罩,以獲得最佳音質(zhì)。每個(gè)鼓,cy和踏板都需要將電纜連接到控制臺(tái)。切開約1.3米的屏蔽罩先將焊絲的一端焊接到3.5mm的公頭插孔上,另一端焊接到跳線的母頭部分上。
步驟6:準(zhǔn)備SD卡
準(zhǔn)備SD卡。
對(duì)我來(lái)說(shuō),這是最困難,最耗時(shí)的步驟。但請(qǐng)上傳所有音頻文件的所有鏈接我已經(jīng)準(zhǔn)備好了,以便那些
很難遵循的人可以使用這些文件并跳過(guò)此步驟。
但是我必須警告您,ull會(huì)錯(cuò)過(guò)很多樂(lè)趣:)。
link ishttp ://www.4shared.com/rar/AoDU14Vy/KIDU_files.html
在觸摸sd卡之前,我們需要選擇我們希望鼓
聽起來(lái)像的聲音。為此,我使用了圖像行FL studio以Wave格式制作每個(gè)
Drum樣本。對(duì)于不熟悉Fl Studio的用戶,您可以簡(jiǎn)單地在Google上搜索并下載Drum樣本,即使這樣也太多了。 ,請(qǐng)繼續(xù)使用我也使用過(guò)的wav文件的鏈接:)。
一旦您決定了聲音,想聽。讓我們開始轉(zhuǎn)換。
正如我在工作中告訴您的那樣,如果沒(méi)有專用的音頻解碼器,播放音頻格式并不容易。如果我們有WAV防護(hù)罩,那本來(lái)是
easier。現(xiàn)在可以直接從sd卡播放音頻文件。我們使用稱為SimpleSDAudio.h的arduino庫(kù)。為此,庫(kù)要運(yùn)行,我們需要.RAW中的音頻文件。格式
和8.3命名格式的文件名,都存在于SD卡的根目錄中。
為了將wave文件轉(zhuǎn)換為原始文件,我找不到任何文件轉(zhuǎn)換器
支持wav到raw的軟件。(總視頻轉(zhuǎn)換器也不行。)
所以我使用了一個(gè)名為SOX的命令行轉(zhuǎn)換器。您可以將Audacity用作GUI。但是我使用了命令行技術(shù)。
首先,您需要安裝SOX?,F(xiàn)在將所有需要的文件
轉(zhuǎn)換到包含文件SOX.exe的相同目錄。
現(xiàn)在打開命令提示符,并將其定向到與SOX.exe相同的目錄
(或在其中創(chuàng)建一個(gè)記事本文件在目錄中,鍵入command.com并將其保存為任何內(nèi)容.bat。如果您打開此文件,則將打開命令提示符,并指向相同的目錄。)現(xiàn)在鍵入以下命令。
cd%?dp0
mkdir轉(zhuǎn)換為sox input.wav --norm = -1 -e unsigned-integer -b 8 -r 62500 -c 1 -t raw“ converted output.raw”
暫停
在上面的命令中將input.wav替換為您使用的文件名。將
&output.raw替換為8.3文件名。(8.3 simpy表示8個(gè)字母或更少的名稱,后跟
a‘ ?!?個(gè)字母的格式(例如numb.mp3)。因此,如果您選擇了要轉(zhuǎn)換的軍鼓聲音。
type。
cd%?dp0
mkdir轉(zhuǎn)換的是sox snare.wav- -norm = -1 -e無(wú)符號(hào)整數(shù)-b 8 -r 62500 -c 1 -t原始“ converted 1_snr.raw”
暫停
正如我之前提到的,沒(méi)有LCD顯示。所有選擇KIDU還敘述了
樣式和其他必要的東西。因此,所有這些
音頻文件也需要轉(zhuǎn)換并傳輸?shù)絊D卡。
對(duì)于這些音頻文件我還使用了FL Studio的語(yǔ)音合成器功能。您可以使用任何軟件并以Wave格式獲取語(yǔ)音音頻。
然后將其轉(zhuǎn)換為原始SOX。我還將上傳n個(gè)鏈接這些音頻文件。《
命名文件。
這樣做是為了使編程更容易一些。系統(tǒng)地記錄您所做的事情。
命名法
FORMAT _ .raw
我擁有的名稱二手:用于樣式計(jì)數(shù)1
1_snr.raw
1_tom1.raw
1_tom2.raw
1_ft.raw
1_cy.raw
1_kick.raw
1_ohh.raw
1_chh.raw
對(duì)于樣式計(jì)數(shù)2,將上述所有第一個(gè)字母替換為2,以此類推,以替換任意數(shù)量的樣式。
語(yǔ)音文件可以命名。
您可以使用原始格式的文件。我們可以將其傳輸?shù)絊D卡。為此,您可以使用內(nèi)置格式化程序中的Windows,但是我建議使用SD格式化程序。(請(qǐng)勿進(jìn)行快速格式化。) 2GB格式的SD卡
為FAT。其他所有格式均為FAT32。該庫(kù)支持兩個(gè)文件系統(tǒng)
現(xiàn)在將其從PC中取出,然后將其插入SD卡護(hù)罩中。
注意:在任何操作系統(tǒng)(MSDOS除外)上運(yùn)行的計(jì)算機(jī)將不能
播放這些RAW文件。擔(dān)心它在arduino中不能正常播放。如果您不相信它的真實(shí)性,您可以將這些文件轉(zhuǎn)換回wav或mp3并在您的計(jì)算機(jī)中播放。
步驟7:源代碼
//使用的變量和常量。
int snare;
int tom1;
int tom2;
int floortom;
int cymbal;
int highhat;
int stylecount = 0;
int select = 0;
int snarecount;
int tom1choose;
//////////////////////
const int snarepin = A0;
const int tom1pin = A1;
const int tom2pin = A2;
const int floortompin = A3;
const int cymbalpin = A4;
const int highhatpin = A5;
#include
void setup()
{
串行.begin(9600);
SdPlay.setSDCSPin(10);//芯片選擇
SdPlay.init(SSDA_MODE_FULLRATE | SSDA_MODE_MONO | SSDA_MODE_AUTOWORKER);
Serial.println(“ sd ready”);
SdPlay.setFile(“ startup.raw”);//播放啟動(dòng)音。
SdPlay.play();
}
void loop()
{
//////////////////////////////////讀取模擬引腳
snarecount = analogRead(snarepin);
tom1choose = analogRead(tom1pin);
tom2 = AnalogRead(tom2pin);
floortom = analogRead(floortompin);
ym = analogRead(cymbalpin);
highhat = analogRead(highhatpin);
/////////////////////////////////drum樣式選擇。
if(snarecount》 100)
{
SdPlay.setFile(“ slctdrm.raw“);//KIDU說(shuō)“選擇擊鼓風(fēng)格!”
SdPlay.play();
stylecount = stylecount + 1;
}
if(stylecount》 6)
{
stylecount = 1;
}
///////////////////////////////////////play鼓風(fēng)格的名稱。
如果(stylecount == 1)
{
SdPlay.setFile(“ 1_stdstl.raw”);//KIDU說(shuō)“已選擇標(biāo)準(zhǔn)鼓組!”
SdPlay.play();
}
如果(stylecount == 2)
{
SdPlay.setFile(“ 2_afrcon.raw” );//KIDU說(shuō)“選擇了非洲剛果風(fēng)格!”
SdPlay.play();
}
if(stylecount == 3)
{
SdPlay.setFile(“ 3_hiho.raw “);//KIDU說(shuō)“選擇了嘻哈風(fēng)格”
SdPlay.play();
}
if(stylecount == 4)
{
SdPlay.setFile(“ 4_indian.raw”);//KIDU說(shuō)“選擇了印度風(fēng)格”
SdPlay.play();
}
如果(stylecount == 5)
{
SdPlay.setFile(“ 5_funny.raw”);//KIDU說(shuō)“選擇了有趣的聲音”
SdPlay.play();
}
if(stylecount == 6)
{
SdPlay.setFile(“ 6_demo.raw”);//播放DEMO。
SdPlay.play();
}
///////____________________退出如果選擇(tom1choose》 50)
{
SdPlay.setFile(“ selected.raw”);
SdPlay.play();
select =選擇+ 1;結(jié)果,},點(diǎn)擊Serial.println( “stylecount =”);結(jié)果,Serial.println(stylecount);結(jié)果,Serial.println( “選擇=”);結(jié)果,Serial.println (選擇);
同時(shí)(選擇== 1)
{
/////////////////////////////////////將變量重新定義為鼓聲觸發(fā)器。
snare = analogRead(snarepin);
tom1 = analogRead(tom1pin);
tom2 = analogRead(tom2pin);
floortom = analogRead(floortompin);
ym = analogRead(cymbalpin);
highhat = analogRead(highhatpin);
if(snare》 50 && stylecount == 1)
{
SdPlay.setFile(“ 1_snare.raw”);
SdPlay.play();
Serial.println(“ snare”);
}
如果(tom1》 50 && stylecount = = 1)
{
SdPlay.setFile(“ 1_tom1.raw”);
SdPlay.play();
Serial.println(“ tom1”);
}
if(tom2》 50 && stylecount == 1)
{
SdPlay.setFile(“ 1_tom2.raw”);
SdPlay.play();
Serial.println(“ tom2”);
}
如果(floortom》 50 && stylecount == 1)
{
SdPlay.setFile(“ 1_ft.raw”);
SdPlay.play();
Serial.println(“ floortom”);
}
如果(cymbal》 50 && stylecount == 1)
{
SdPlay.setFile(“ 1_cy.raw”);
SdPlay.play();
Serial.println(“ cymbal”);
}
如果(highhat》 50 && stylecount == 1)
{
SdPlay.setFile(“ 1_ohh.raw”);
SdPlay.play();
串行。 println(“ open highhat”);
}
//////////////////////////////////////////style 2
if(snare》 50 && stylecount == 2)
{
SdPlay.setFile(“ 2_snare.raw”);
SdPlay.play ();
Serial.println(“ 2snare”);
}
如果(tom1》 50 && stylecount == 2)
{
SdPlay.setFile(“ 2_tom1.raw”) ;
SdPlay.play();
Serial.println(“ 2tom1”);
}
如果(tom2》 50 && stylecount == 2)
{
SdPlay.setFile(“ 2_tom2.raw”);
SdPlay.play();
Serial.println(“ 2tom2”);
}
如果(floortom》 50 && stylecount == 2)
{
SdPlay.setFil e(“ 2_ft.raw”);
SdPlay.play();
Serial.println(“ 2floortom”);
}
如果(cymbal》 50 && stylecount == 2)
{
SdPlay.setFile(“ 2_cy.raw”);
SdPlay.play();
Serial.println(“ 2cymbal”);
}
if(highhat》 50 && stylecount == 2)
{
SdPlay.setFile(“ 2_ohh.raw”);
SdPlay.play();
Serial.println(“ 2open highhat”);
}
//////////////////////////////////////////////style3
if(snare》 50 && stylecount == 3)
{
SdPlay.setFile(“ 3_snare.raw”);
SdPlay.play();
Serial.println( “ 3snare”);
}
如果(tom1》 50 && stylecount == 3)
{
SdPlay.setFile(“ 3_tom1.raw”);
SdPlay.play();
Serial.println(“ 3tom1”);
}
如果(tom2》 50 && stylecount == 3)
{
SdPlay.setFile(“ 3_tom2.raw”) ;
SdPlay.play();
Serial.println(“ 3tom2”);
}
if(floortom》 50 && stylecount == 3)
{
SdPlay.setFile (“ 3_ft.raw”);
SdPlay.play();
Serial.println(“ 3floortom”);
}
如果(cymbal》 50 && stylecount == 3)
{
SdPlay.setFile(“ 3_cy.raw”) ;
SdPlay.play();
Serial.println(“ 3cymbal”);
}
if(highhat》 50 && stylecount == 3)
{
SdPlay.setFile (“ 3_ohh.raw”);
SdPlay.play();
Serial.println(“ 3open highhat”);
}
//////////////////////////////////////////印度風(fēng)格
如果(snare》 50 && stylecount == 4)
{
SdPlay.setFile(“ 4_snare.raw”);
SdPlay.play();
Serial.println(“ 4snare”);
}
如果(tom1》 50 && stylecount == 4 )
{
SdPlay.setFile(“ 4_tom1.raw”);
SdPlay.play();
Serial.println(“ 4tom1”);
}
如果(tom2》 50 && stylecount == 4)
{
SdPlay.setFile(“ 4_tom2.raw”);
SdPlay.play();
Serial.println(“ 4tom2”);
}
if(floortom》 50 && stylecount == 4)
{
SdPlay.setFile(“ 4_ft.raw”);
SdPlay.play();
串行。 println(“ 4floortom”);
}
if(cymbal》 50 && stylecount == 4)
{
SdPlay.setFile(“ 4_cy.raw”);
SdPlay.play( );
Serial.println(“ 4cymbal”);
}
if(highhat》 50 && stylecount == 4)
{
SdPlay.setFile(“ 4_ohh.raw”);
SdPlay.play ();
Serial.println(“ 4open highhat”);
}
////////////STYLE 5 FUNNY
if(snare》 50 && stylecount == 5)
{
SdPlay.setFile(“ 5_snare.raw”);
SdPlay.play();
Serial.println(“ 5snare”);
}
如果( tom1》 50 && stylecount == 5)
{
SdPlay.setFile(“ 5_tom1.raw”);
SdPlay.play();
Serial.println(“ 5tom1”);
}
如果(tom2》 50 && stylecount == 5)
{
SdPlay.setFile(“ 5_tom2.raw”);
SdPlay.play();
串行.println(“ 5tom2”);
}
如果(floortom》 50 && stylecount == 5)
{
SdPlay.setFile(“ 5_ft.raw”);
SdPlay.play ();
Serial.println(“ 5floortom”);
}
if(cymbal》 50 && stylecount == 5)
{
SdPlay.setFile(“ 5_cy.raw”) ;
SdPlay.play();
Serial.println(“ 5cymbal”);
}
if(highhat》 50 && stylecount == 5)
{
SdPlay.setFile (“ 5_ohh.raw”);
SdPlay.play();
Serial.println(“ 5open highhat”);
}
如果(stylecount == 6)
{
SdPlay.setFile(“ demo.raw”);
SdPlay.play();
}
}
}
步驟8:源代碼工作
源代碼工作
我們用來(lái)播放sd卡音頻的庫(kù)是
SimpleSDAudio.h,其詳細(xì)信息已經(jīng)詳細(xì)說(shuō)明了準(zhǔn)備SD卡的主干。
現(xiàn)在在草圖中。我僅具有4個(gè)鼓和一個(gè)a片的程序。
因?yàn)槲疫€沒(méi)有講解腳踏板的制作方法?!段視?huì)盡我最大的努力盡快將其上傳。但是我已經(jīng)轉(zhuǎn)換了所有聲音(每個(gè)鼓風(fēng)格8個(gè)組件),即4個(gè)鼓,1個(gè)mb片,打開高帽和關(guān)閉高帽的聲音。
如前所述,該程序也使用鼓來(lái)觸發(fā)。
對(duì)我來(lái)說(shuō)這是一個(gè)很大的挑戰(zhàn)。但是我最終做到了。
您可能會(huì)在源代碼中注意到,我已經(jīng)進(jìn)行了兩次模擬讀取。
每次使用2個(gè)具有不同變量名稱的鼓。
第一次。我們使用小鼓和tom1鼓來(lái)選擇鼓風(fēng)格。
小鼓是用作樣式計(jì)數(shù)。計(jì)數(shù)從1到6
,并從1重復(fù)n。您可以添加與您使用的SD卡大小一樣多的樣式。您只需上傳所需的所有聲音即可。
還有另一種方法可以遍歷下一組模擬讀數(shù)。 br》這是選擇計(jì)數(shù)。如果您已經(jīng)用小鼓確定了計(jì)數(shù),我們將通過(guò)tom1鼓對(duì)其進(jìn)行確認(rèn)。一旦tom1鼓被擊中,
它將開始選擇計(jì)數(shù)。選擇計(jì)數(shù)為1(即第一次敲擊tom1鼓),鼓觸發(fā)循環(huán)開始。
鼓觸發(fā)循環(huán)非常簡(jiǎn)單。如果模擬讀數(shù)超過(guò)一個(gè)保持力,KIDU將發(fā)出相應(yīng)的聲音。循環(huán)不斷。
例如:如果Analogread值》 thrushold且stylecount == 1
,則播放小鼓的音頻文件1_snare.raw。
編例如:
如果(snare》 50 && stylecount == 1)
{
SdPlay.setFile(“ 1_snare.raw”);
SdPlay.play();
Serial.println(“ snare”) ;
}
現(xiàn)在該程序涉及kick ahd高帽游戲,它并不難。
我們要做的就是包括digita部分l讀取按鈕。
我們需要使用一個(gè)簡(jiǎn)單的單脈沖開關(guān)和一個(gè)反跳功能來(lái)進(jìn)行踢動(dòng)。
反跳功能在arduino編程環(huán)境和高禮帽的示例中都存在。 ,則去抖和切換部分相同。
if循環(huán)在打開和關(guān)閉時(shí)都會(huì)有一個(gè)額外的條件。
ie
如果(扼流圈==高&&高》 thrushold && stylecount == 1)
{
SdPlay.setFile(“ 1_chh.raw”);
SdPlay.play();
Serial.println(“ closed highhat”);
}
-
pcb
+關(guān)注
關(guān)注
4411文章
23901瀏覽量
424947 -
Arduino
+關(guān)注
關(guān)注
190文章
6526瀏覽量
197116
發(fā)布評(píng)論請(qǐng)先 登錄
激光焊接機(jī)在焊接篩鼓的工藝流程
DIY黨必看!華潤(rùn)微CD7377CZ/7388系列芯片,輕松搭建專屬你的高性價(jià)比電子系統(tǒng)
電解電容鼓包是什么原因造成的?如何預(yù)防?
電解電容鼓包是什么原因造成的?
PPEC電源DIY套件:圖形化算法編程,解鎖電力電子底層算法實(shí)踐
PPEC電源DIY套件:圖形化算法編程,解鎖電力電子底層算法實(shí)踐
Made with KiCad(136):DonCon2040 - 一款基于RP2040的太鼓達(dá)人街機(jī)控制器
激光焊接技術(shù)在焊接篩鼓的工藝應(yīng)用
聚徽——電容失效模式全解:鼓包、漏液、擊穿的「誘因與預(yù)防」
圖解單片機(jī)功能與應(yīng)用(完整版)
漫畫圖解 電感器 抗干擾元器件指南(全彩PDF版)
圖解:電子元器件知識(shí)大全
PCB封裝圖解
基于Arduino的MIDI架子鼓創(chuàng)建
自制電子鼓DIY圖解
評(píng)論