2016年10月31日月曜日

ちょうど100円玉サイズ!NXP LPC824を使ったとっても小さなWAV File Player「Micro Sound Module」を作りました!

■KiCadへの移行

2016年2月にCADをEAGLEからKiCadに移行する練習を兼ねて、何か実際に作ってみようと考えていました。でも、あまり大きな設計はしたくない。そこで小ピンでも何か面白いことが出来そうなマイコンを使うことを考え、LPC824を使ったとっても小さなWAV Player「Micro Sound Module」を作ることにしました。こちらが完成品。じゃん!


EAGLEからKiCadに移行する人の中には、独特なユーザーインターフェースに戸惑いを感じる事もあるようですが、OrCADなどの業務でも使われているCADに馴染みのある人にとっては、逆に自然に移行できるのかも。私の場合、KiCadへの移行に合わせて、回路図、基板、3Dモデルを3画面で同時に見れるようにPC環境を更新しました。これはとても便利。


パッド名やネット名の確認が簡単に出来たり、リアルタイムでルールチェックを行なってくれるところも素敵です。EAGLEの場合には後からデザインルールチェックをかけるわけですが、これを忘れてしまうととんでもない状態で基板を作ってしまう事になります。そういう事は起こらないのが良いなぁと思いました。


私が使ったKiCadのバージョンでは、フットプリント側で配線禁止エリアや配置禁止エリアを指定できず、これはちょっと困ったことになりましたが、この苦しい制限があってもEAGLEには戻れない気持ちになっています。そのうちこの苦しい状況も改善されるでしょうと期待。

■Micro Sound Moduleの企画

マイコンがそもそも小さいのでコンパクトに面白いことができそう、と企画したのがMicro Sound Moduleです。本体のデザインは以下のようなもの。


Micro Sound Moduleですが、とにかく小さくて便利な機能満載!と行きたかったのですが、現状でROMがパンパンでI2Cスレーブ機能が入りません。苦し紛れにI2C端子をGPIにしてスイッチで制御出来るようにしました。


Micro Sound Moduleプロジェクトの副産物。
某企業さんに行ったプレゼンテーション資料の中で何故か好評だったシリアル通信の説明文・・・。




■ファームウェア

ファームウェアには色々な仕掛けが施されていて、面白いことが出来るので何処かでお見せできるように準備したいなぁと考えています。コマンドの例を挙げると・・・

  • ディスクコマンド(マウント、アンマウント、情報取得)
  • ファイルコマンド(ディレクトリ指定、リスト取得、オープン、クローズ、情報取得)
  • トランスポートコマンド(再生、停止、ジャンプ、情報取得)
  • マーカーコマンド(設定、解除、ジャンプ、情報取得)
こんな感じでひととおりの制御が可能なコマンドを装備しています。
コマンドパーサーにはNT-Shell (Natural Tiny Shell)を使用する予定でしたが、ROM容量の都合であえなく断念し、新しくコンパクトなパーサーを書きました。そろそろこれも公開したい。