Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9144

Obnizと圧電スピーカーで日が暮れたら「ゆうやけこやけ」を流して切なくなってみた

$
0
0

まずは完成形

CdSセル(照度センサ)で暗くなると、ゆうやけこやけが流れます。
この曲聞くと切なくなるな。。

使った部品

・Obniz Board 1Y
・圧電スピーカー(PKM13EPYH4000-A0)
・CdSセル(MI527/MI5527)
・カーボン抵抗 1/2W330Ω(CFS50J330RB)
・ミニブレッドボード(BB-601)
・ブレッドボード・ジャンパーワイヤ(オス-オス)(BBJ-20)

接続図

image.png

コード

.js
constObniz=require('obniz');constobniz=newObniz('0000-0000');// Obniz_ID// 任意の秒数待つことができる関数// 参考: https://qiita.com/suin/items/99aa8641d06b5f819656constsleep=(msec)=>newPromise(res=>setTimeout(res,msec));// 音階constKey={"":261.626,"":293.665,"":329.628,"ファ":349.228,"":391.995,"":440.000,"":493.883,"ド2":523.251,"レ2":587.330}obniz.onconnect=asyncfunction(){// ディスプレイ表示obniz.display.clear();obniz.display.print('TEST');// スピーカーconstspeaker=obniz.wired('Speaker',{signal:0,gnd:1});// 照度センサobniz.io9.output(true);// io9電圧を5Vに(電源+)obniz.io11.output(false);// io11電圧を0Vに(電源−)// setIntervalで一定間隔で処理setInterval(asyncfunction(){// io10をアナログピンに(照度センサーの値を取得)varvoltage=awaitobniz.ad10.getWait();console.log(`changed to ${voltage} v`);if(voltage<0.3){// 暗くなったら「ゆうやけこやけ」を流すspeaker.play(Key[""]);awaitsleep(1000);speaker.stop();awaitsleep(100);speaker.play(Key[""]);awaitsleep(500);speaker.stop();awaitsleep(100);speaker.play(Key[""]);awaitsleep(500);speaker.stop();awaitsleep(100);speaker.play(Key[""]);awaitsleep(500);speaker.stop();awaitsleep(100);speaker.play(Key[""]);awaitsleep(500);speaker.stop();awaitsleep(100);speaker.play(Key[""]);awaitsleep(500);speaker.stop();awaitsleep(100);speaker.play(Key[""]);awaitsleep(500);speaker.stop();awaitsleep(100);speaker.play(Key[""]);awaitsleep(500);speaker.stop();awaitsleep(100);speaker.play(Key[""]);awaitsleep(500);speaker.stop();awaitsleep(100);speaker.play(Key[""]);awaitsleep(500);speaker.stop();awaitsleep(100);speaker.play(Key[""]);awaitsleep(500);speaker.stop();awaitsleep(100);speaker.play(Key[""]);awaitsleep(1500);speaker.stop();awaitsleep(500);speaker.play(Key[""]);awaitsleep(1000);speaker.stop();awaitsleep(100);speaker.play(Key[""]);awaitsleep(500);speaker.stop();awaitsleep(100);speaker.play(Key[""]);awaitsleep(500);speaker.stop();awaitsleep(100);speaker.play(Key[""]);awaitsleep(500);speaker.stop();awaitsleep(100);speaker.play(Key["ド2"]);awaitsleep(500);speaker.stop();awaitsleep(100);speaker.play(Key["ド2"]);awaitsleep(500);speaker.stop();awaitsleep(100);speaker.play(Key[""]);awaitsleep(500);speaker.stop();awaitsleep(100);speaker.play(Key[""]);awaitsleep(500);speaker.stop();awaitsleep(100);speaker.play(Key[""]);awaitsleep(500);speaker.stop();awaitsleep(100);speaker.play(Key[""]);awaitsleep(500);speaker.stop();awaitsleep(100);speaker.play(Key[""]);awaitsleep(500);speaker.stop();awaitsleep(100);speaker.play(Key["ド2"]);awaitsleep(1500);speaker.stop();awaitsleep(500);}},20000);// 20秒(約1曲分は待つ)}

やってみた感想

圧電スピーカーは周波数で音階を決められるので、曲を流すのは割と簡単でした。
参考:音階周波数

今回、圧電スピーカーで曲を流してみたかっただけですが、なかなか面白かった。ハマりそうです。。スピーカーを複数繋げれば、和音も表現できそうで曲の幅が広がりそうで、時間があったらやってみたい。


Viewing all articles
Browse latest Browse all 9144

Trending Articles