電子楽器の夢をみるのか -5ページ目

電子楽器の夢をみるのか

電子楽器製作をつづる。

なんでFM音源を使うのか

それは、つい最近FM音源のチップを入手したからです。
どこで入手したかと言うとこれ、

まさかのガチャガチャ。中身はFM音源のチップ。
東京ラジオデパート内にあるガチャガチャ。1Fの家電のけんちゃんが販売しております。
一回400円。ふつうのガチャガチャと比べると結構高い。でもICなら格安すぎる値段。回してみると

こんなの。全部YAMAHA製(というよりFM音源はYAMAHAが開発・販売したもの)

アーケードゲームやPCに使用されてたみたいです。
ジャンクだけどネットではちゃんと動かしている人がいるとのこと。
じゃあ動かしてみよう!という事ではじめました。
これも作る原因だけどYAMAHAのDXシリーズ(もちろんFM音源のチップを使ってる)の出す音が大好き。ちょっとチープな音だけどたまにある透き通った音色にあこがれます。ちなみに最近のシンセサイザーでは出せない音だったりします。そういう音色を自分で出してみたいね(´・ω・`)

でも、いきなりは出来ません。FM音源を動かす前にちょっと寄り道します。
とりあえず続く。


これまでの流れ

1.PICはどうなった?
結局、PICを使うのをやめました。ですがAVRを改めて使用することになりました。
なぜAVRかと言うと、
・早い。
PICと比べて処理が早いとのこと。同じ速さで動作させてもAVRのほうが数倍早いみたいです。
マイコンで音を扱う際にAVRが良いらしい。
・使ったことがある
実はとある部活に所属していた時に使ったことがあります。使ったことがあるならもしかしたらいけるかも?という安易な考え。
ちょうど一年前に改めで勉強し、それなりに使えるようになりました。今後マイコンを使う時はAVRを使っていきます。
2.今何をしてる?
昨年の7月に内定を頂き、現在千葉にいます。暇な時間がちょこちょこあるのでブログ書いてます。
とりあえずこんな感じ、まぁこのブログって自分の日記みたいなものだから自分だけわかりゃいいっか(´・ω・`)

前回の投稿から2年ちょい経過しました。久々に再開します。
何故、今になって再開したのかというと、このブログを電子楽器の製作日記としてつづっていこうと思ったからです。
いまのところゴールは「FM音源」を用いた電子楽器・機器を完成させること。
完成までの道のりをブログにupする予定です。

ところでFM音源とは周波数変調を使った音作りの方法の一つ。
まあ、いろんな波形をまぜまぜして音を作ろうってかんじ。
FM音源を使った有名なシンセサイザーと言えばYAMAHAのDX7。
当時の音楽にかなりの影響を与えています。
80'sの音楽はDX7が作り上げたといっても過言じゃないかも。

身の回りで言えば携帯の着メロ(古い?)で使われてます。
また昔のアーケードゲームやPC98・PC88も流れる曲もFM音源ですね。

また改めてこれまでの経過をupします

さて、ここ1週間放置してました


気を取り直して今回はPICで使う命令についてです

前回のプログラムを参考にします


長くなりそうなので初期設定だけ

;LED点滅プログラム

LIST P=PIC16F84
INCLUDE P16F84A.INC

__CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF

R1  EQU 0Ch
R2  EQU 0Dh
R3  EQU 0Eh

ORG 0


BSF STATUS,RP0
CLRF TRISB

BCF STATUS,RP0

さて何書いているか全くわかりません

一個づつ調べてみました

まず最初はこの行

LIST P=PIC16F84
INCLUDE P16F84A.INC

LIST~には自分が使うPICの指定をします.今回使うのはPIC16F84
なのでそのまま記入

INCLUDE~はMPLABで用いる設定ファイルの指定をするようです.

イマイチ分かってません.のちのち調べます


__CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF

ここではPICの動作モードを指定します

特に変更する点はないようです

ただし,使う水晶発振子(PICにおけるメトロノームみたいなもの)が4MHz以下を用いる場合は_HS_OSCを_XT_OSCに変更します


R1  EQU 0Ch

この行ではEQU命令を使っています.

EQU命令ではデータバンク(数値を保存できるハコ)に名前を付けることができます.

別にしなくてもいいんじゃない?と思いますが,名前をつけることで簡単にそのハコを呼び出せたり,

そのハコが何をさせてるかわかることができます.

ここでは「0C(16進数)」の場所に「R1」という名前をつける,ことをしてます.


ORG 0

ここではORG命令をつかっています.

ORG命令はプログラムをどの場所から書き込むか指定します.

0と指定しているので0番地から書き込むように指定しています


BSF STATUS,RP0
CLRF TRISB

BCF STATUS,RP0
ここではPICのピン(RA0~RA5,RB0~RB7)の入出力設定を行います.

今回はLEDを点灯させるので出力とします.また使わないピンも誤動作を防ぐため出力とします.

ちなみにここもよくわかってません^^;


とりあえずつづきます



さて、部品が届きました

今回はPICへの書き込みです

最初にAKI-PIC2プログラマボードをパソコンにつなげます
次に忘れかけてた(おい!)PICkit2を開きます


開いた直後はこんな感じ.次にプログラムボードにPICを接続します
 
このときPICの向きを確認してください(手前側にへこみがある)
次に[Device Family]-[Midrange]-[Standard]をクリック!
 
DeviceにPIC16F84Aが表示されました!
ちなみにプログラムボードにPICをつなげた状態から起動しても同じ様になります
さて書き込みが可能になりました.次に書き込むファイルを読み込ませます
[File]-[Import Hex]から前回つくったHEXファイル[LED.asm]を開きます.これで読み込み完了です
ではPICに書き込みます.真ん中ちょい上の[Write]をクリック
 
書き込みが完了です.今回はLEDを点滅する回路でしたので確認します
 点灯時

 消灯時

PICの書き込み環境をつくることができました!
とりあえずPICの勉強しなきゃ・・・・