資料介紹
描述
所以我在 Sparkfun 網(wǎng)站上閱讀了關(guān)于在他們的網(wǎng)站上生產(chǎn)和銷售你的小工具和小工具的能力。我真的很喜歡 Particle Photon,喜歡像 Sparkfun 這樣的網(wǎng)站,因?yàn)樗鼈児膭?lì)創(chuàng)造力。?
輸入利用 Particle 固件中的 tone() 功能的想法。一旦我看到它,我就知道我需要提高我在 EagleCad 中的技能,并學(xué)習(xí)一兩件關(guān)于設(shè)計(jì)我的第一個(gè) PCB 的事情。
盡管 Sparkfun 可能實(shí)際上不接受這篇文章作為提交,但我想與社區(qū)分享我的項(xiàng)目。
步驟 1. 設(shè)計(jì) PCB
我使用 EagleCad 設(shè)計(jì)我的電路和 PCB。這個(gè)概念是,拿到這個(gè)防護(hù)罩的人可以輕松地將它與從 Sparkfun 購買的現(xiàn)有光子防護(hù)罩一起使用。
因此,如果您有一個(gè)電池保護(hù)罩,也許還有一個(gè)原型板,現(xiàn)在您想要輕松地將音樂融入您的項(xiàng)目中,您可以做到。
因此,我進(jìn)行了大量研究和修補(bǔ),或多或少地復(fù)制了 Sparkfun 銷售的現(xiàn)有防護(hù)罩的規(guī)格。當(dāng)我在做的時(shí)候,我盡可能地遵循了他們的提交指南。任何購買過 Sparkfun 的 Photons shield 的人都知道 D0 和 D1 是為 I2C 保留的。所以我放置了一些焊接跳線,讓用戶可以選擇將蜂鳴器分配給哪個(gè)引腳。
在這一點(diǎn)上,我發(fā)現(xiàn)了一個(gè)名為 OSHPark 的服務(wù)。他們是最酷的 PCB 服務(wù)。在 EagleCad 中完成 PCB 設(shè)計(jì)后,我將 brd 文件上傳到 OSHPark,然后等了不到三周就拿到了實(shí)際的 PCB。不到 11.00 美元就不錯(cuò)了!
我從他們那里訂購了一些 12 針母頭和一些 12 毫米壓電蜂鳴器并將其焊接起來。
Step 2. 音樂時(shí)間
因此,起初我復(fù)制并粘貼了有關(guān)使用 tone() 的文檔中的示例代碼。果然一打開就發(fā)出了很酷很短的小曲子!
// EXAMPLE USAGE
// Plays a melody - Connect small speaker to analog pin A0
int speakerPin = A0;
// notes in the melody:
int melody[] = {
1908, 2551, 2551, 2273,
2551, 0, 2024, 1908
}; //C4,G3,G3,A3,G3,0,B3,C4
// note durations: 4 = quarter note, 8 = eighth note, etc.
int noteDurations[] = {
4, 8, 8, 4,
4, 4, 4, 4
};
void setup(){
// iterate over the notes of the melody:
for(int thisNote = 0; thisNote < 8; thisNote++){
// to calculate the note duration, take one second
// divided by the note type.
//e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int noteDuration = 1000/noteDurations[thisNote];
tone(speakerPin, melody[thisNote], noteDuration);
// to distinguish the notes, set a minimum time between them.
// the note's duration + 30% seems to work well:
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
// stop the tone playing:
noTone(speakerPin);
}
}
然后我想進(jìn)一步發(fā)揮這個(gè)小項(xiàng)目的能力。所以我用谷歌搜索了 MarioBros 的音符,結(jié)果發(fā)現(xiàn)有人已經(jīng)將它編碼為可以在 Teensy 和 Arduino 上使用!所以我借用了代碼并修改了它在 Photon 上的工作。?
抱歉,我找不到用于借用代碼的站點(diǎn)...
這是改編:
#define NOTE_B0 31
#define NOTE_C1 33
#define NOTE_CS1 35
#define NOTE_D1 37
#define NOTE_DS1 39
#define NOTE_E1 41
#define NOTE_F1 44
#define NOTE_FS1 46
#define NOTE_G1 49
#define NOTE_GS1 52
#define NOTE_A1 55
#define NOTE_AS1 58
#define NOTE_B1 62
#define NOTE_C2 65
#define NOTE_CS2 69
#define NOTE_D2 73
#define NOTE_DS2 78
#define NOTE_E2 82
#define NOTE_F2 87
#define NOTE_FS2 93
#define NOTE_G2 98
#define NOTE_GS2 104
#define NOTE_A2 110
#define NOTE_AS2 117
#define NOTE_B2 123
#define NOTE_C3 131
#define NOTE_CS3 139
#define NOTE_D3 147
#define NOTE_DS3 156
#define NOTE_E3 165
#define NOTE_F3 175
#define NOTE_FS3 185
#define NOTE_G3 196
#define NOTE_GS3 208
#define NOTE_A3 220
#define NOTE_AS3 233
#define NOTE_B3 247
#define NOTE_C4 262
#define NOTE_CS4 277
#define NOTE_D4 294
#define NOTE_DS4 311
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_FS4 370
#define NOTE_G4 392
#define NOTE_GS4 415
#define NOTE_A4 440
#define NOTE_AS4 466
#define NOTE_B4 494
#define NOTE_C5 523
#define NOTE_CS5 554
#define NOTE_D5 587
#define NOTE_DS5 622
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_FS5 740
#define NOTE_G5 784
#define NOTE_GS5 831
#define NOTE_A5 880
#define NOTE_AS5 932
#define NOTE_B5 988
#define NOTE_C6 1047
#define NOTE_CS6 1109
#define NOTE_D6 1175
#define NOTE_DS6 1245
#define NOTE_E6 1319
#define NOTE_F6 1397
#define NOTE_FS6 1480
#define NOTE_G6 1568
#define NOTE_GS6 1661
#define NOTE_A6 1760
#define NOTE_AS6 1865
#define NOTE_B6 1976
#define NOTE_C7 2093
#define NOTE_CS7 2217
#define NOTE_D7 2349
#define NOTE_DS7 2489
#define NOTE_E7 2637
#define NOTE_F7 2794
#define NOTE_FS7 2960
#define NOTE_G7 3136
#define NOTE_GS7 3322
#define NOTE_A7 3520
#define NOTE_AS7 3729
#define NOTE_B7 3951
#define NOTE_C8 4186
#define NOTE_CS8 4435
#define NOTE_D8 4699
#define NOTE_DS8 4978
int melodyPin = D2;
int marioMelody[] = {
2637, 2637, 0, 2637,
0, 2097, 2637, 0,
NOTE_G7, 0, 0, 0,
NOTE_G6, 0, 0, 0,
NOTE_C7, 0, 0, NOTE_G6,
0, 0, NOTE_E6, 0,
0, NOTE_A6, 0, NOTE_B6,
0, NOTE_AS6, NOTE_A6, 0,
NOTE_G6, NOTE_E7, NOTE_G7,
NOTE_A7, 0, NOTE_F7, NOTE_G7,
0, NOTE_E7, 0, NOTE_C7,
NOTE_D7, NOTE_B6, 0, 0,
NOTE_C7, 0, 0, NOTE_G6,
0, 0, NOTE_E6, 0,
0, NOTE_A6, 0, NOTE_B6,
0, NOTE_AS6, NOTE_A6, 0,
NOTE_G6, NOTE_E7, NOTE_G7,
NOTE_A7, 0, NOTE_F7, NOTE_G7,
0, NOTE_E7, 0, NOTE_C7,
NOTE_D7, NOTE_B6, 0, 0
};
int tempo[] = {
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
9, 9, 9,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12,
9, 9, 9,
12, 12, 12, 12,
12, 12, 12, 12,
12, 12, 12, 12
};
int underworldmelody[] = {
NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4,
NOTE_AS3, NOTE_AS4, 0,
0,
NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4,
NOTE_AS3, NOTE_AS4, 0,
0,
NOTE_F3, NOTE_F4, NOTE_D3, NOTE_D4,
NOTE_DS3, NOTE_DS4, 0,
0,
NOTE_F3, NOTE_F4, NOTE_D3, NOTE_D4,
NOTE_DS3, NOTE_DS4, 0,
0, NOTE_DS4, NOTE_CS4, NOTE_D4,
NOTE_CS4, NOTE_DS4,
NOTE_DS4, NOTE_GS3,
NOTE_G3, NOTE_CS4,
NOTE_C4, NOTE_FS4, NOTE_F4, NOTE_E3, NOTE_AS4, NOTE_A4,
NOTE_GS4, NOTE_DS4, NOTE_B3,
NOTE_AS3, NOTE_A3, NOTE_GS3,
0, 0, 0
};
//Underwolrd tempo
int underworldtempo[] = {
12, 12, 12, 12,
12, 12, 6,
3,
12, 12, 12, 12,
12, 12, 6,
3,
12, 12, 12, 12,
12, 12, 6,
3,
12, 12, 12, 12,
12, 12, 6,
6, 18, 18, 18,
6, 6,
6, 6,
6, 6,
18, 18, 18, 18, 18, 18,
10, 10, 10,
10, 10, 10,
3, 3, 3
};
void setup(){
delay(1000);
}
void loop(){
for(int thisNote = 0; thisNote < 78; thisNote++){
int noteDuration = 1500/tempo[thisNote];
tone(melodyPin, marioMelody[thisNote], noteDuration);
int pause = noteDuration * 1.33;
delay(pause);
noTone(melodyPin);
}
delay(2000);
for(int thisNote = 0; thisNote < 56; thisNote++){
int noteDuration = 1300/underworldtempo[thisNote];
tone(melodyPin, underworldmelody[thisNote], noteDuration);
int pause = noteDuration * 1.33;
delay(pause);
noTone(melodyPin);
}
}
?可以肯定的是,它會(huì)同時(shí)播放這兩種曲調(diào),而且聆聽它們真的很有趣。從這里開始,我計(jì)劃讓它變得更加智能。例如,假設(shè)您想要觸發(fā)聲音,因?yàn)榉孔訉?duì)面的另一個(gè) Photon 發(fā)布了一個(gè)事件。
?
- AN1176–驅(qū)動(dòng)壓電蜂鳴器的設(shè)計(jì)注意事項(xiàng)
- 使用arduino和壓電蜂鳴器制作簡單的驅(qū)蚊器 2次下載
- 使用連接到Bolt WiFi模塊的簡單壓電蜂鳴器
- Arduino圣誕壓電蜂鳴器項(xiàng)目
- 帶有BBC micro:bit的壓電蜂鳴器
- 華能電子 壓電蜂鳴器 MLT-9018數(shù)據(jù)手冊(cè)
- 用于sparkfun板的開發(fā)和使用 0次下載
- 適用于壓電式蜂鳴器的技術(shù)規(guī)格 4次下載
- 壓電陶瓷和壓電蜂鳴器的原理及特點(diǎn)、應(yīng)用 24次下載
- 基于RE46C317/18帶升壓轉(zhuǎn)換器的壓電蜂鳴器驅(qū)動(dòng)器
- 基于RE46C108下的壓電蜂鳴器驅(qū)動(dòng)器和穩(wěn)壓器
- 基于RE46C101下的壓電蜂鳴器驅(qū)動(dòng)器和LED驅(qū)動(dòng)器電路
- 基于RE46C117下的DC/DC轉(zhuǎn)換器和壓電式蜂鳴器驅(qū)動(dòng)
- 壓電蜂鳴器驅(qū)動(dòng)電路之RE46C100產(chǎn)品手冊(cè)
- 蜂鳴器介紹 0次下載
- 光子集成芯片和光子集成技術(shù)是什么 747次閱讀
- 蜂鳴器的發(fā)聲原理 蜂鳴器電路圖分享 1.1w次閱讀
- 蜂鳴器型號(hào)及參數(shù)規(guī)格 4310次閱讀
- 蜂鳴器的介紹 如何控制蜂鳴器的工作? 2178次閱讀
- 單片機(jī)控制蜂鳴器報(bào)警原理 4138次閱讀
- 新能源汽車高壓電纜編織屏蔽及其屏蔽效能的研究 1461次閱讀
- 蜂鳴器聲音大小和什么有關(guān) 2.2w次閱讀
- 壓電蜂鳴器的發(fā)聲機(jī)制是什么? 4776次閱讀
- 電磁式蜂鳴器和壓電式蜂鳴器的工作原理及區(qū)別 1.7w次閱讀
- 壓電式蜂鳴器的選擇和優(yōu)點(diǎn) 3624次閱讀
- 電磁式蜂鳴器和壓電式蜂鳴器的區(qū)別 1.2w次閱讀
- 電磁式和壓電式蜂鳴器的區(qū)別 2.6w次閱讀
- 三分鐘看懂壓電蜂鳴器工作原理及應(yīng)用 6.5w次閱讀
- 基于vhdl蜂鳴器程序設(shè)計(jì)詳解 2.1w次閱讀
- 單片機(jī)蜂鳴器控制程序和驅(qū)動(dòng)電路典型設(shè)計(jì)案例 6473次閱讀
下載排行
本周
- 1XL4015+LM358恒壓恒流電路圖
- 0.38 MB | 137次下載 | 1 積分
- 2elmo直線電機(jī)驅(qū)動(dòng)調(diào)試細(xì)則
- 4.76 MB | 9次下載 | 6 積分
- 3PCB布線和布局電路設(shè)計(jì)規(guī)則
- 0.40 MB | 3次下載 | 免費(fèi)
- 4ADL-GPIB IEEE 488命令集函數(shù)參考手冊(cè)
- 0.67 MB | 2次下載 | 5 積分
- 5DTSD1352導(dǎo)軌式多功能電能表安裝使用說明書 V2.15
- 1.19 MB | 1次下載 | 免費(fèi)
- 6BQ79616-Q1和BQ75614-Q1 GUI用戶指南
- 4.51MB | 1次下載 | 免費(fèi)
- 7TPS6287B25降壓轉(zhuǎn)換器評(píng)估模塊
- 3.46MB | 1次下載 | 免費(fèi)
- 8INA226EVM用戶指南
- 4.7MB | 1次下載 | 免費(fèi)
本月
- 1XL4015+LM358恒壓恒流電路圖
- 0.38 MB | 137次下載 | 1 積分
- 2新概念模擬電路第四冊(cè)信號(hào)處理電路電子書免費(fèi)下載
- 10.69 MB | 60次下載 | 免費(fèi)
- 3800VA純正弦波逆變器的參考設(shè)計(jì)
- 2.96MB | 34次下載 | 免費(fèi)
- 4純電動(dòng)汽?的主要部件及?作原理
- 5.76 MB | 15次下載 | 5 積分
- 5JESD79-5C_v1.30-2024 內(nèi)存技術(shù)規(guī)范
- 2.71 MB | 10次下載 | 免費(fèi)
- 6elmo直線電機(jī)驅(qū)動(dòng)調(diào)試細(xì)則
- 4.76 MB | 9次下載 | 6 積分
- 7明偉電源模塊RSP-3000圖紙
- 0.30 MB | 8次下載 | 免費(fèi)
- 8使用BQ76PL102系列電量計(jì)進(jìn)行BQ78PL114的快速入門指南
- 4.04MB | 7次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935115次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191366次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183329次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73805次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65985次下載 | 10 積分
評(píng)論
查看更多