【MFKyoto2020】オリジナルメロディ名刺をつくる 後編
この記事はMaker Faire Kyoto Onlineに参加しています。前編の続きです。
ハードウェア解説
といっても大体ただのマイコンボードだが…
電源部分
USBから5Vを供給する。この前『USBはお手軽5V電源じゃねえ!!!』みたいなツイートを見た気がするがここでは気にしないことにする。
RLOADという抵抗が付いているが、これはマイコンの低消費電力が仇となって、電源供給側(モバイルバッテリー等)が漏れ電流と判断してしまい出力をカットするのを防ぐ為の負荷抵抗である。状況に応じて付けて欲しい。
また、写真を見ると分かるが、何故か基板の裏表にUSBのパターンが出ており、そのまま刺すとUSBの外装に端子が触れてショートするというとんでもない設計をしてしまった(アホ)。配布データでは裏しか出さないように修正しているので大丈夫のはず。
USB端子への刺さり具合を調整するのが結構難しく、基板が薄すぎると接続が安定せず、厚すぎると端子にダメージを与えてしまう。ホームセンターで売ってるクッションテープを使うといい感じに刺さる事が分かったのでショート防止も兼ねて表側に貼っつけている。
マイコン周辺回路
本体と発振子
DILパッケージのATMEGA328P-PUあるいはQFPパッケージのATMEGA328-AUを選んで取り付けできる。基板の場所を取るので必要性は人によると思うが、意外と僕は役に立っている。Arduino Uno互換機は沢山あったほうが良い。
発振子もリードタイプと表面実装タイプのセラロックを選べる。一応、水晶発振子用のコンデンサを付けるパターン(ラジアルリードのみ)もあるが、部品配置が微妙なので使わないほうが良いかもしれない…
リセットSW
JP1をショートするか、S1を付けるか選択できる。今思えばパワーオンリセット用にコンデンサとか付けておけばよかった…
シリアル通信まわり
FT232RLを使用。また、Arduino Pro Mini互換のUSARTピンが基板下部にあるので、Arduino Pro Miniで使えるシリアル変換モジュールがあればそちらも使える。
どうやって書き込むんだ?
今回お見せした構成では、ピンヘッダの類が付いておらず基板実装した後ではQFPのATMEGA328にプログラムを書き込むのは不可能…という程ではないが結構面倒臭い。
そこで、aitendoで販売されているQFPでいいのというボードを使用してプログラムを書き込んでから基板に実装するようにした。
上に付いてるQFP変換ソケットで無限に遊べるので非常にオススメ。
ブザー周辺回路
ブザーにはUGCT7525AN4を使用。
R2・R3・TR1(FET)を付けてJP2を2-3側にショートさせるとFETでの駆動、JP2の1-2側、JP3をショートさせるとマイコンから直接ブザーを駆動させる。またJP4をショートさせる代わりにVR1を付ければ音量調節が可能に。
ソフトウェア解説
実際のコードの内容については配布ページを参照して欲しい。あまり良くできたものではないが…
音源について
前編でも述べた通り、Akiyoshi Kamide氏のPWMDAC_Synthライブラリを使用させて頂いた。非常にお手軽にポリ音源が使えるのでオススメ。
矩形波だけでなく三角波正弦波等色々出せるのだが使用した今回のブザーでは音がかなり小さくなってしまうので断念。
配布データには入っていないので自分で作る場合は別途ダウンロードして欲しい。
MMLについて
対応コマンド
CDEFGAB+-^O><T、2・4・8・16・32分音符に対応してます。
データの準備
MMLを直で打つのはちょっと面倒臭いので、loveemu氏のPetiteMMを使ってMIDIをMMLに変換した。多謝。
用意したMMLはチャンネル毎に分割してdata_chx配列にそれぞれ入れている。
正直ソフトウェアについては殆どボリュームが無いのでそれほど解説する事が無い。