ポケコンで音を鳴らす

PC-Gシリーズのポケコンでは、音を出すために前準備としてブザーを取り付ける必要があります。
ここでは、ブザーの取り付け方とBEEP命令について紹介します。

(1) ポケコンとブザー(圧電ブザー)の接続

1.用意するもの
  圧電ブザー 1個
  (電子部品屋さんで100円~。オマケのゲーム機から取り出しても可)

2.必要な工具
  特になし。
  ポケコンに内臓する場合は、ハンダこてなどが必要。

  注意:ポケコンを分解すると、メーカーの保障は受けられません。故障の原因にもなります。改造する場合は、自己責任でおねがいします。

(2) 圧電ブザーの取り付け

圧電ブザーを、ポケコン左の11ピンコネクタの3番・7番の間に接続します。

圧電ブザーの接続

【ポケコンへ内臓した例 (PC-G830)】
ポケコンへの内臓例
※クリックすると拡大します。

接続が完了したら、ポケコンに次のように「BEEP 1」と入力し、Enterキーを押します。
RUN MODE
BEEP 1
Enterキーを押すと、音が1回鳴ります。
圧電ブザーから音が出れば成功です。


(3) BEEP命令について

PC-Gシリーズのポケコンには、BEEP命令が存在します。
BEEP命令の書式は、次のとおりです。
BEEP 回数[,音の高さ,音の長さ]

回数:1~65535の整数で指定。純粋に回数を指定。
音の高さ:1~255の整数で指定。値が小さければ音が高く、値が小さければ音が低い。
          (1300000÷22÷周波数-166÷22で求められる)
音の長さ:1~65535の整数で指定。値が小さければ短く、値が大きければ長い。
          (1秒間鳴動させるには、周波数と同値を指定する)


また、C言語対応機種の場合、beep関数が利用できます。
void beep(int 音の高さ,int 音の長さ,int 回数);

※BASICと引数の順序が違います。また、引数は省略できません。
※音の高さ・音の長さはBASICと共通です。

次の表は、音階を抜き出したものです。
(音の長さは1秒間。周波数は小数点第3位を四捨五入、音の高さ・音の長さは小数点第1位を四捨五入し整数にしてあります)

音階 周波数 音の高さ 音の長さ 音階 周波数 音の高さ 音の長さ
C4  261.63Hz 218 262 C6 1046.50Hz 49 1047
C4#  277.18Hz 206 277 C6# 1108.73Hz 46 1109
D4  293.66Hz 194 294 D6 1174.66Hz 43 1175
D4#  311.13Hz 182 311 D6# 1244.51Hz 40 1245
E4  329.63Hz 172 330 E6 1318.51Hz 37 1319
F4  349.23Hz 162 349 F6 1396.91Hz 35 1397
F4#  369.99Hz 152 370 F6# 1479.98Hz 32 1480
G4  392.00Hz 143 392 G6 1567.98Hz 30 1568
G4#  415.30Hz 135 415 G6# 1661.22Hz 28 1661
A4  440.00Hz 127 440 A6 1760.00Hz 26 1760
A4#  466.16Hz 119 466 A6# 1864.66Hz 24 1865
B4  493.88Hz 112 494 B6 1975.53Hz 22 1976
C5  523.25Hz 105 523 C7 2093.00Hz 21 2093
C5#  554.37Hz 99 554 C7# 2217.46Hz 19 2217
D5  587.33Hz 93 587 D7 2349.32Hz 18 2349
D5#  622.25Hz 87 622 D7# 2489.02Hz 16 2489
E5  659.26Hz 82 659 E7 2637.02Hz 15 2637
F5  698.46Hz 77 698 F7 2793.83Hz 14 2794
F5#  739.99Hz 72 740 F7# 2959.96Hz 12 2960
G5  783.99Hz 68 784 G7 3135.96Hz 11 3136
G5#  830.61Hz 64 831 G7# 3322.44Hz 10 3322
A5  880.00Hz 60 880 A7 3520.00Hz 9 3520
A5#  932.33Hz 56 932 A7# 3729.31Hz 8 3729
B5  987.77Hz 52 988 B7 3951.07Hz 7 3951
※音階はアルファベットが音程、数字がオクターブを示します。
  (C:ド D:レ E:ミ F:ファ G:ソ A:ラ B:シ)

サンプルコード(BASIC)
C5~C6を1秒ずつ鳴らすサンプル(「'」以降はコメント。入力不要です)

100: BEEP 1,105, 523 'ド(C5)
110: BEEP 1, 93, 587 'レ(D5)
120: BEEP 1, 82, 659 'ミ(E5)
130: BEEP 1, 77, 698 'ファ(F5)
140: BEEP 1, 68, 784 'ソ(G5)
150: BEEP 1, 60, 880 'ラ(A5)
160: BEEP 1, 52, 988 'シ(B5)
170: BEEP 1, 49,1047 'ド(C6)
180: END
実行例(C5~C6までBEEP音が鳴ります。ディスプレイには特に表示されません)
RUN MODE
RUN


サンプルコード(C言語)
C5~C6を1秒ずつ鳴らすサンプル(「/* */」部分はコメント。入力不要です)

100: int main(void)
110: {
120:   beep(105, 523,1); /* ド(C5) */
130:   beep( 93, 587,1); /* レ(D5) */
140:   beep( 82, 659,1); /* ミ(E5) */
150:   beep( 77, 698,1); /* ファ(F5) */
160:   beep( 68, 784,1); /* ソ(G5) */
170:   beep( 60, 880,1); /* ラ(A5) */
180:   beep( 52, 988,1); /* シ(B5) */
190:   beep( 49,1047,1); /* ド(C6) */
200:   return 0;
210: }
実行例(C5~C6までBEEP音が鳴ります。ディスプレイには特に表示されません)
*EXIT (210)

(C)2000 - 2010 Kazuchi Software All Rights Reserved.