#概要
- obnizのサンプルプログラムを試してみたの圧電スピーカー編.
- 「Parts Library for obniz」に掲載されているものをそのままやってみただけ.
- サンプルに「指定した周波数の音を鳴らします」とあったので、周波数を変えながら音を出してみた.
- ドレミファソラシドをできるように追記.
#試したパーツ
- 圧電スピーカー
#圧電スピーカー
周波数を1000hzから100ずつ下げながら、0.5秒ずつ鳴らす.
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://obniz.io/js/jquery-3.2.1.min.js"></script>
<script src="https://unpkg.com/obniz@1.9.2/obniz.js" crossorigin="anonymous"></script>
</head>
<body>
<div id="obniz-debug"></div>
<h1>obniz instant html</h1>
<div id="print"></div>
<script>
var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function () {
// Javascript Example
var speaker = obniz.wired("Speaker", {signal:0, gnd:1});
speaker.play(1000); //1000hz
await obniz.wait(500);
speaker.play(900); //900hz
await obniz.wait(500);
speaker.play(800); //800hz
await obniz.wait(500);
speaker.play(700); //700hz
await obniz.wait(500);
speaker.play(600); //600hz
await obniz.wait(500);
speaker.stop();
}
</script>
</body>
</html>
obnizで圧電スピーカーから音を出すhttps://t.co/kerUMPc68k#obniz #IoT #電子工作 #JavaScript #圧電スピーカー
— m (@getapojim) 2018年8月9日
#追記 ドレミファソラシド
周波数を変えていくと音が変わることが分かったので、どうすればドレミファソラシドになるのか調べてみた.
ド 262Hz レ 294Hz ミ 330Hz ファ 349Hz ソ 392Hz ラ 440Hz シ 494Hz ド 523Hz
だそうです.
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1053868595
やってみた.
obnizで圧電スピーカーからドレミファソラシドhttps://t.co/LPaQJ8GcgR#obniz #IoT #電子工作 #JavaScript #圧電スピーカー
— m (@getapojim) 2018年8月9日
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://obniz.io/js/jquery-3.2.1.min.js"></script>
<script src="https://unpkg.com/obniz@1.9.2/obniz.js" crossorigin="anonymous"></script>
</head>
<body>
<div id="obniz-debug"></div>
<h1>obniz instant html</h1>
<div id="print"></div>
<script>
var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function () {
var speaker = obniz.wired("Speaker", {signal:0, gnd:1});
// tone()関数
// frequency : 周波数(Hz)
// duration : 音を鳴らす時間(ミリ秒)
async function tone(frequency, duration){
speaker.play(frequency);
await obniz.wait(duration);
speaker.stop();
}
// ドレミファソラシドの周波数データを配列化
var sounds = ['262', '294', '330', '349', '392', '440', '494', '523'];
// tone()関数を使って演奏する
for(var i=0; i<sounds.length; i++){
tone(sounds[i], 500);
}
}
</script>
</body>
</html>
speaker.play()をズラズラ書いていくのも何なので、演奏データは配列化し、演奏処理は関数にした.
「演奏」と書くとなんだか大げさな気がしますが。。。
以下の投稿が参考になった.
[WIP] Arduinoで音を出したい(メモ)
#参考
obniz
https://obniz.io/
[WIP] Arduinoで音を出したい(メモ)
https://qiita.com/tadfmac/items/7fb26596fe6240959c48
Arduino Reference
tone()
https://www.arduino.cc/reference/en/language/functions/advanced-io/tone/