電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Sparkfun壓電蜂鳴器光子屏蔽原型

Sparkfun壓電蜂鳴器光子屏蔽原型

2023-01-05 | zip | 0.01 MB | 次下載 | 免費(fèi)

資料介紹

描述

所以我在 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)目中,您可以做到。

?
?
poYBAGO0F5uAInVNAAEHm7z5V4c040.png
?
1 / 2 ?壓電式蜂鳴器防護(hù)罩
?

因此,我進(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è)事件。

?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1XL4015+LM358恒壓恒流電路圖
  2. 0.38 MB   |  137次下載  |  1 積分
  3. 2elmo直線電機(jī)驅(qū)動(dòng)調(diào)試細(xì)則
  4. 4.76 MB   |  9次下載  |  6 積分
  5. 3PCB布線和布局電路設(shè)計(jì)規(guī)則
  6. 0.40 MB   |  3次下載  |  免費(fèi)
  7. 4ADL-GPIB IEEE 488命令集函數(shù)參考手冊(cè)
  8. 0.67 MB   |  2次下載  |  5 積分
  9. 5DTSD1352導(dǎo)軌式多功能電能表安裝使用說明書 V2.15
  10. 1.19 MB   |  1次下載  |  免費(fèi)
  11. 6BQ79616-Q1和BQ75614-Q1 GUI用戶指南
  12. 4.51MB   |  1次下載  |  免費(fèi)
  13. 7TPS6287B25降壓轉(zhuǎn)換器評(píng)估模塊
  14. 3.46MB   |  1次下載  |  免費(fèi)
  15. 8INA226EVM用戶指南
  16. 4.7MB   |  1次下載  |  免費(fèi)

本月

  1. 1XL4015+LM358恒壓恒流電路圖
  2. 0.38 MB   |  137次下載  |  1 積分
  3. 2新概念模擬電路第四冊(cè)信號(hào)處理電路電子書免費(fèi)下載
  4. 10.69 MB  |  60次下載  |  免費(fèi)
  5. 3800VA純正弦波逆變器的參考設(shè)計(jì)
  6. 2.96MB   |  34次下載  |  免費(fèi)
  7. 4純電動(dòng)汽?的主要部件及?作原理
  8. 5.76 MB   |  15次下載  |  5 積分
  9. 5JESD79-5C_v1.30-2024 內(nèi)存技術(shù)規(guī)范
  10. 2.71 MB   |  10次下載  |  免費(fèi)
  11. 6elmo直線電機(jī)驅(qū)動(dòng)調(diào)試細(xì)則
  12. 4.76 MB   |  9次下載  |  6 積分
  13. 7明偉電源模塊RSP-3000圖紙
  14. 0.30 MB   |  8次下載  |  免費(fèi)
  15. 8使用BQ76PL102系列電量計(jì)進(jìn)行BQ78PL114的快速入門指南
  16. 4.04MB   |  7次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935115次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420061次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233084次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191366次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183329次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73805次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65985次下載  |  10 積分