gmc-no

Arduinoで作るGMC-4互換機です。
むしろFXマイコン互換機と言うべきかも。

スケッチ

別途pitches.hが必要です。

回路図

シールドの回路図です。見やすいように3つに分割しました。

メイン部分


7セグLEDはアノードコモンです。小数点も使います。
抵抗は使うLEDによって調整してください。

キーパッド部分


途中を省略していますが、ボタンは全部で21個です。"0"から"F"までは順番どおりに並びます。
抵抗も各ボタンの間に1個ずつ入ります。抵抗値は1kΩと10kΩとかの組み合わせでも良いです。
"CLEAR"はハードウェアリセットボタンのことです。RESETキーと紛らわしいので勝手に名前をつけました。スケッチの中でもこの名前を使っています。

オーディオ出力部分


この部分の回路構成とか定数は、使うスピーカに合わせて調整すると良いでしょう。
ここを変更してもマイコンとしての動作には影響しません。
ただ単にD5とGNDの間に圧電スピーカを入れるだけでも、とりあえず音は出ます。

使い方

ほぼGMC-4と同じです。内蔵プログラムもすべて実装されています。違うところは以下の通り。
  • LEDはすべてスタティック点灯なので、ちゃんとしたPOVができます。
  • FXマイコンにならって、オーディオ出力は中央のバイナリLEDと共用しているので、中央のLEDの状態が変わるときにもプチッという音が出ます。
  • スピーカが小さいと低音があんまり出ないので、電子オルガンなどの音はGMC-4よりも1オクターブ高くしてあります。
  • GMC-4で削除されていたCAL INPT命令(E3)が使えます。(動作がFXマイコンと違うかも?)
互換性を保ちつつ、機能が拡張されています。上位互換なので、既存のプログラムはそのまま動くはずです。
  • [3][RUN][番号]で、メモリの内容をセーブできます。0番~3番だとEEPROM内の各スロットに保存、4番以上だとシリアル通信でテキストデータとして送信します。
  • [7][RUN][番号]で、メモリの内容をロードできます。0番~3番だとEEPROM内の各スロットから読み込み、4番以上だとシリアル通信でテキストデータとして受信します。各種シミュレータのデータ形式(.hex,.dmp,.fxp)にも対応しています。
  • [9][RUN]の電子オルガンでは、[0]と[F]でキーを半音ずつ変えられます。
  • [A][RUN]の自動演奏では、最大データサイズが255ニブルに増えています。また[F][番号]でキーを変更できるので半音も出せます。指定できる番号は1~Eで、1がデフォルトです。
  • [D][RUN]のテニスゲームでは、[F]を押すと7セグの小数点が点灯し、コンピュータと対戦できます。
  • [F][RUN]のモールス符号自動送信では、最大データサイズが256ニブルに増えています。
  • メモリ空間は256ニブルに拡張されています。アドレスの8ビット目は7セグの小数点で表します。
  • 拡張命令が16個追加されています。

サブページ (1): gmc-noの拡張機能
ċ
gmc_no.pde
(37k)
nsh,
2010/06/19 17:59
Comments