○Piezoオブジェクトを作成する
ピエゾ素子(圧電ブザー)を制御するには、Piezoオブジェクトを使います。Piezoオブジェクトは、物理的なボードに接続された単一のピエゾ素子を表すオブジェクトです。Piezoオブジェクトを作成するには、Piezoクラスのコンストラクタを使います。引数には、ピエゾ素子のプラス端子を接続するデジタルピンの番号を指定します。
new five.Piezo(ピン番号);
|
オプションの「pin」プロパティでピン番号を指定する場合は、次のように書きます。
new five.Piezo ({
pin: ピン番号
})
|
○ピエゾ素子で曲を再生する
ピエゾ素子で曲を再生するには、「play」メソッドを使います。コールバック関数には、曲の再生完了時に実行する関数を指定します。コールバック関数は省略できます。
play(曲のオブジェクト, コールバック関数)
|
曲のオブジェクトは、「song」プロパティに曲の音符の配列を、「tempo」オプションにテンポを指定します。曲の音符の配列の配列要素「0」にはノート(コード)または周波数を、配列要素「1」にはビートを指定します。指定できるノートは次のとおりです。
たとえば、「C4」を1/4ビート、「D4」を1/2ビート、「null」を1ビート、「F4」を1ビートの順に、テンポ100で再生するには、次のように書きます。
ノート
|
周波数(Hz)
|
ノート
|
周波数(Hz)
|
ノート
|
周波数(Hz )
|
null(-)
|
0
|
C3
|
131
|
C6
|
1047
|
C0
|
16
|
C#3
|
139
|
C#6
|
1109
|
C#0
|
17
|
D3
|
147
|
D6
|
1175
|
D0
|
18
|
D#3
|
156
|
D#6
|
1245
|
D#0
|
19
|
E3
|
165
|
E6
|
1319
|
E0
|
21
|
F3
|
175
|
F6
|
1397
|
F0
|
22
|
F#3
|
185
|
F#6
|
1480
|
F#0
|
23
|
G3
|
196
|
G6
|
1568
|
G0
|
25
|
G#3
|
208
|
G#6
|
1661
|
G#0
|
26
|
A3
|
220
|
A6
|
1760
|
A0
|
28
|
A#3
|
233
|
A#6
|
1865
|
B0
|
31
|
B3
|
247
|
B6
|
1976
|
C1
|
33
|
C4
|
262
|
C7
|
2093
|
C#1
|
35
|
C#4
|
277
|
C#7
|
2217
|
D1
|
37
|
D4
|
294
|
D7
|
2349
|
D#1
|
39
|
D#4
|
311
|
D#7
|
2489
|
E1
|
41
|
E4
|
330
|
E7
|
2637
|
F1
|
44
|
F4
|
349
|
F7
|
2794
|
F#1
|
47
|
F#4
|
370
|
F#7
|
2960
|
G1
|
49
|
G4
|
392
|
G7
|
3136
|
G#1
|
52
|
G#4
|
415
|
G#7
|
3322
|
A1
|
55
|
A4
|
440
|
A7
|
3560
|
A#1
|
58
|
A#4
|
466
|
A#7
|
3729
|
B1
|
62
|
B4
|
494
|
B7
|
3951
|
C2
|
65
|
C5
|
523
|
C8
|
4186
|
C#2
|
69
|
C#5
|
554
|
C#8
|
4435
|
D2
|
73
|
D5
|
587
|
D8
|
4699
|
D#2
|
78
|
D#5
|
622
|
D#8
|
4987
|
E2
|
82
|
E5
|
659
|
E8
|
5274
|
F2
|
87
|
F5
|
698
|
F8
|
5588
|
F#2
|
93
|
F#5
|
740
|
F#8
|
5920
|
G2
|
98
|
G5
|
784
|
G8
|
6272
|
G#2
|
104
|
G#5
|
831
|
G#8
|
6645
|
A2
|
110
|
A5
|
880
|
A8
|
7040
|
A#2
|
117
|
A#5
|
932
|
A#8
|
7459
|
B2
|
124
|
B5
|
988
|
B8
|
7902
|
たとえば、「C4」を1/4ビート、「D4」を1/2ビート、「null」を1ビート、「F4」を1ビートの順に、テンポ100で再生するには、次のように書きます。
var five = require("johnny-five");
var board = new five.Board();
board.on("ready", function()
{
// Piezoオブジェクトを作成
// (3ピンを信号出力用に設定)
var
piezo = new five.Piezo(3);
// 曲を再生
piezo.play({
// 曲の配列(第1引数:コード、第2引数:ビート)
song: [
["C4", 1 / 4],
["D4", 1 / 2],
[null,
1],
["F4", 1]
],
tempo: 100
});
});
|
「song」プロパティの曲は、文字列で指定することもできます。この場合、ノートの文字列をスペースで区切って記述します。1つのノートは、「beats」プロパティに指定したビート長で再生されます。つまり、「beats」プロパティに「1 / 4」に指定したときに、D4を「1 / 2」ビートで再生したい場合「D4 D4」、F4を1ビートで再生した場合は、「F4 F4 F4 F4」と書きます。
// 文字列表現で曲を設定
piezo.play({
song: "C4 D4 D4 - - - - F4 F4 F4 F4",
beats: 1 / 4,
tempo: 100
});
|
・配線図
○ピエゾ素子で指定の周波数・長さで音を再生するには
ピエゾ素子で指定の周波数、長さで音を再生するには、「frequency」メソッドを使います。周波数はHz単位、持続時間はミリ秒単位で指定します。
frequency(周波数, 持続時間)
|
たとえば、「587」Hz(D5)を1秒(1000ミリ秒)間再生するには、次のように書きます
var five = require("johnny-five");
var board = new five.Board();
board.on("ready", function()
{
// Piezoオブジェクトを作成
// (3ピンを信号出力用に設定)
var
piezo = new five.Piezo(3);
// D4を1秒間再生
piezo.frequency(587, 1000);
});
|
0 件のコメント:
コメントを投稿