記事一覧

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Johnny-Fiveでマイコン制御23 - ピエゾ(圧電ブザー)

○Piezoオブジェクトを作成する

 ピエゾ素子(圧電ブザー)を制御するには、Piezoオブジェクトを使います。Piezoオブジェクトは、物理的なボードに接続された単一のピエゾ素子を表すオブジェクトです。Piezoオブジェクトを作成するには、Piezoクラスのコンストラクタを使います。引数には、ピエゾ素子のプラス端子を接続するデジタルピンの番号を指定します。

new five.Piezo(ピン番号);

 

 オプションの「pin」プロパティでピン番号を指定する場合は、次のように書きます。

new five.Piezo ({

  pin: ピン番号

})

 

 ピエゾ素子で曲を再生する

 ピエゾ素子で曲を再生するには、「play」メソッドを使います。コールバック関数には、曲の再生完了時に実行する関数を指定します。コールバック関数は省略できます。

play(曲のオブジェクト, コールバック関数)

曲のオブジェクトは、「song」プロパティに曲の音符の配列を、「tempo」オプションにテンポを指定します。曲の音符の配列の配列要素「0」にはノート(コード)または周波数を、配列要素「1」にはビートを指定します。指定できるノートは次のとおりです

ノート

周波数(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」、F41ビートで再生した場合は、「F4 F4 F4 F4」と書きます。

  // 文字列表現で曲を設定

  piezo.play({

    song: "C4 D4 D4 - - - - F4 F4 F4 F4",

    beats: 1 / 4,

    tempo: 100

  });

 

・配線図

2016080804.png 

 

ピエゾ素子で指定の周波数・長さで音を再生するには

 ピエゾ素子で指定の周波数、長さで音を再生するには、「frequency」メソッドを使います。周波数はHz単位、持続時間はミリ秒単位で指定します。

frequency(周波数, 持続時間)

 

 たとえば、「587Hz(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);

 

  // D41秒間再生

  piezo.frequency(587, 1000);

});

 

スポンサーサイト

コメント

コメントの投稿

非公開コメント

ads

プロフィール

Author:部員3号
FC2ブログへようこそ!

kindle本

最新コメント

温度計

ads

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。