2015年12月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

最近のトラックバック

GMC-4

2009年8月17日 (月)

GMC-4 ちょっと応用(脱線?)編 その2

さらに、GMC-4をオルガンモードにして、Loaderから曲データを流し込み、 Ievan Polkkaを演奏させてみました。

http://nicovideo.jp/watch/sm7932304

以下、流し込んだ曲データです。適当な耳コピなのでご容赦。 音の長さに対応させるのが面倒だったので、 全部音階データで音の長さは、一定です。

/9!
44B011B044B0113344B011B044B0113344B011B044B0113344B011B044B0444
44B011B044B0113344B011B044B0113344B011B044B0113344B011B044B0BBB
114044456640444655303335664044441140444566404446888766556640444
888877665033333577776655604444468888776650333335777766556040444
114044456640444655303335664044441140444566404446888766556640444
888877665033333577776655604444468888776650333335777766556040444
400010304000103040003010400010004000103040001030400030104000100
44B011B044B0113344B011B044B0113344B011B044B0113344B011B044B0BBB
114044456640444655303335664044441140444566404446888766556640444
888877665033333577776655604444468888776650333335777766556040444
114044456640444655303335664044441140444566404446888766556640444
888877665033333588887766503333358888776688887766888888888888888
114044456640444655303335664044441140444566404446888766556640444
888877665033333577776655604444468888776650333335777766556040444
400010304000103040003010400010004000103040001030400030104000100
400010304000103040003010400010004000103040001030400030104000400

データロードにはテキサスさんが調べてくれた範囲で、タイミングを出来る限り速くした方がいいのですが、演奏するには速すぎだったようで、後からLoaderのファームを変更して、全体のタイミングを変えられるコマンドを追加しました。
(暫定ファームなので、当面非公開です。すみません。)

GMC-4 ちょっと応用(脱線?)編 その1

さて、前にGMC-4でLCD表示をやりましたが、 これを応用して、ニコニコ動画でおなじみ?のネギ振りをやってみました。

結局2文字しか表示できないので、「-」と「`」を交互表示になるよう、 LCDの初期化コマンドで、通常文字を書いたら右にカーソル移動するところを カーソルは動かず、画面全体が左にスクロールするように設定しています。

なので、最初は何も表示されず、 そのうち書き込まれた文字が右から左へと流れるように出てきます。 そこに左上の1文字ぶんが見えるように切り抜いたイラストを置いて完成。

http://nicovideo.jp/watch/sm7913274

プログラムの変更点は、スピードを上げるために、ウェイトを減らした所だけです。

  • アドレス 2C:値 1→0 (TIAのイミディエイト値、この後のCAL TIMRで使用)

後はデータ部分の変更で、

  • アドレス 54:値 E→C (カーソル右移動→左スクロール 設定)
  • アドレス 59~5C:値 4 7 3 4 → 6 0 2 D (「G4」→「`-」)

以下、ダンプリストです。

00:A F 8 0 4 A E 8
08:3 4 E D 8 2 A 5
10:E 1 E C E 2 E C
18:9 F F 1 0 8 0 A
20:D 4 3 5 A E 4 E
28:D A 5 8 0 E 1 E
30:C E 2 E C A D 5
38:9 1 C 9 F 4 6 A
40:F 8 1 4 8 9 C D
48:F 1 F 8 9 F 1 F
50:2 2 8 0 C 0 7 0
58:1 6 0 2 D 0 3 0

2009年8月11日 (火)

GMC-4 MSXからプログラムロード

Loadermsx Loadermsxic Gmc4loadermsxv010

今度は、プリンタポートを使ったLoaderの実験をしてみました。 Windowsでプリンタポートを直接制御するのは、ちょっと難しいので(^^; 実験用にMSXを使用してます。

アンフェノール14PINからブレッドボード、キーマトリックス操作モジュール経由でGMC-4にキーストロークを送り込んでいます。(写真左)

キーマトリックス操作は前回と同じ74HC4051×2を使用。プリンタに送られるストローブ信号は、非常に短いので 74HC123の半分を使って0.1秒程に伸ばしています。
また、GMC-4にキーを送った後、未入力期間を同程度取りたかったので、 74HC123のもう半分を使って、ストローブを受け取ってから約0.2秒間パソコンにBUSY信号を返しています。
今回使ったMSX(MSX2)FS-A1は、プログラム終了時に余分な改行コードを吐いてくるので、 ORを使って0x00~0x1Fのコードを無効にしています。 手元にあったのが、たまたま4入力の74HC4072でしたが、 もちろん3入力ORで用が足ります。

写真中は、手前が74HC123、奥が74HC4072です。右図が回路図になります。

簡易な実験なので、文字→キーの読替が前回と違います。

MSX → GMC-4

  • 0~9 → 0~9
  • :;<=>? → ABCDEF
  • L → ADR SET
  • H → INCR
  • D → RUN
  • @ → RESET

この他にも、イメージで使用できる文字がありますが(^^;

サンプルプログラム for MSX

10 CLS
20 PRINT "Now Loading to GMC-4"
30 LPRINT "@"
40 LPRINT ";H1H6H4H>H;H?H0H0H"
50 LPRINT "@1D"
60 PRINT "Hit any key to STOP"
70 IF INKEY$="" GOTO 70
80 LPRINT "@"

大人の科学マガジン Vol.24本誌の「乱数音楽再生」 をGMC-4にロード後自動実行します。

この方式なら、Windowsでもプログラムさえ作れば、仲介するマイコン無しにGMC-4ローダーが作れそうですね。

なお、実験ではコンデンサ放電用ダイオードは付けませんでしたが、電源OFF時のIC保護として、ダイオードを付けた方が良いようです。

こちらもニコニコ動画にアップしました。http://www.nicovideo.jp/watch/sm7909728

2009年8月10日 (月)

GMC-4 LCDに文字出力

V101 Lcd_demo_v100 Lcd_demo

「大」改造GMC-4のスタティック化回路を使って液晶ディスプレー(LCD)に文字を出力してみました。

スタティック化回路の2進LED側も74HC564に換装して、正論理出力に修正、これをLCDに接続しています。このあたりは既に作ってあるものを利用するだけなので簡単にできました。

問題はソフトの方です。メモリを目いっぱい使って2文字を出すのが関の山でした(^^;

00:A F 8 0 4 A E 8
08:3 4 E D 8 2 A 5
10:E 1 E C E 2 E C
18:9 F F 1 0 8 0 A
20:D 4 3 5 A E 4 E
28:D A 5 8 1 E 1 E
30:C E 2 E C A D 5
38:9 1 C 9 F 4 6 A
40:F 8 1 4 8 9 C D
48:F 1 F 8 9 F 1 F
50:2 2 8 0 E 0 6 0
58:1 4 7 3 4 0 3 0

59番地からの4ニブルで表示する文字を指定します。

アセンブラのリストは、以下の通りです。

    TIY 0FH
    TIA 0
    AM
    TIY 0EH
    TIA 3
    AM

    CAL DSPR
    TIA 2
    TIY 5
L00:
    CAL SETR
    CAL TIMR
    CAL RSTR
    CAL TIMR

    AIA 0FH
    JUMP L00

L01:
    TIA 0
L02:
    TIY 0DH
    AM
    CY

    MA
    TIY 0EH
    AM

    CAL DSPR
    TIY 5
    TIA 1
    CAL SETR
    CAL TIMR
    CAL RSTR
    CAL TIMR

    TIY 0DH
    MA
    AIA 1
    CIA 09H
    JUMP L04

    TIY 0FH
    TIA 1
    AM
    TIA 09H
L04:
    CIA 0DH
    JUMP L02
    TIA 9
    JUMP L02

※全角スペースを半角スペース2文字に置き換えて使ってください。

ニコニコ動画にアップしました。http://www.nicovideo.jp/watch/sm7898208

2009年8月 9日 (日)

GMC-4 Loader(USB) v1.01

Loader Loader_2 Gmc4loaderusbv101_2

少々出遅れた感もありますが、GMC-4用のプログラムローダーです。

使用しているマイコンは、AtmelのAVRマイコンATTiny2313です。フラッシュROMが2Kバイト、RAMが128バイトと小容量ですが、今回の工作には十分ですしパッケージも20PIN-DIPと自作には使いやすいサイズです。

パソコンとの接続は秋月のAE-UM232Rを使っています。USBで接続して、ハイパータームなどのターミナルエミュレータから仮想COMポートを通してLoaderにデータを送信します。このモジュールが一番高く秋月で950円です。USB-シリアル変換ケーブルを持っている場合、ここをRS232Cレベルコンバータに置き換えると、多少安くできるでしょう。その場合でもファームウェアの修正は要りません。

キーマトリックスの操作は、74HC4051×2で行っています。これは、8チャンネルのアナログマルチプレクサで、入力(A,B,Cの3ビット)をセットしてX0~X7のいずれかのピンを選択、有効(IH)をLoにすると選択されたピンとXピンが繋がるというものです。それを行選択と列選択に1つずつ使いXピン同士を接続することで、目的のキーを押した事と同様の電気的経路を作り出しています。

ファームウェアの作成には AVR-Studio 4.15 ,WinAVR-20081205 を使いました。下にソースを掲載しておきます。ターミナルエミュレータの設定は下記のとおりです。

19200bps, データ8ビット, ノンパリティ, 1ストップビット, ハードウェアフローコントロール

ATTiny2313はRAMが小さくバッファがあまり大きくできません。ところがパソコンからの転送速度に比べて、GMC-4の操作速度は速くできないので、どうしてもフロー制御は必要です。エコーバック(マイコンからPC)はそれほど負荷も掛からないと思うので、フロー制御していません。

接続する手順ですが、

  1. GMC-4の電源を入れる前にLoaderとGMC-4を接続
  2. Loaderとパソコンを接続(USBからLoaderに電源が供給され、仮想COMポートが有効になる)
  3. パソコンでターミナルエミュレータを立ち上げる
  4. Loaderのリセットスイッチを押す(バージョン情報が表示される)
  5. GMC-4の電源を入れる

の様にしてください。GMC-4の電源を先に入れLoaderが後からパソコンに接続されると、直後GMC-4がちょっと変な挙動をします(^^;

接続ができたら、ターミナルエミュレータでキーボードからキーを打つとそれに応じたキーがLoaderからGMC-4に送られます。対応するキーは以下の通り。

パソコン → GMC-4

  • 0~9 → 0~9
  • A~F → A~F
  • a~f → A~F
  • S,s,:(半角のコロン) → ADR SET
  • I,i,16進キー直後の スペースor改行(0x0d) → INCR
  • G,g,!(半角のエクスクラメーション) → RUN
  • R,r,/(半角のスラッシュ) → RESET

これによって、ターミナルエミュレータで、所定のダンプリストを転送すれば自動的にGMC-4のプログラミングができます。

ダンプリスト例(大人の科学マガジン本誌の電子サイコロ)

00:A 1 3 1 3 B 1 D
08:7 F 0 E A 1 0 F
10:0 2 F 0 E

アドレス2桁の直後にコロン、その後プログラムコードとスペースを交互に書き、行末はスペースを入れずに改行してもOKです。これをテキストファイルに書いておいて、ターミナルエミュレータから転送してください。またテキストファイルの末尾に /1! を書いておくと、プログラミング直後に自動でプログラムが実行されます。

回路図:「gmc4_loaderusb_v1.01.CE3」をダウンロード

ソースコード:「gmc4_loader_farm_v2.01.zip」をダウンロード

もし、これを見て作られた方がいらっしゃったら、感想を書き込んでください。よろしくお願いします。

2009年8月 8日 (土)

GMC-4 小改造 キーマトリックス取り出し

Photo Photo_2 V101

しばらくぶりの更新ですが、今回は小改造です。

「大」改造した時には、思いつかなかったのですが、外部に信号を取り出すための配線は、ランドに穴をあけて裏から回した方がきれいに出来ますね。特にキーマトリックスからの取り出しに使うランドは比較的大きいので、この方法が良さそうです。

という訳で今回の改造です。写真左は穴をあけたランドに裏から線の先端を出してハンダ付けした所です。写真中は裏面です。左上に信号引き出しようのヘッダピンを付けました。右端が1番ピンになっています。最初はヘッダピンを直接基板に接着してみたのですが、使っている内に抜けたり引っ込んだりして配線が切れそうな感じだったので、切った基板にハンダ付けしてその基板を接着しました。ヘッダピンを基盤にハンダ付けしたり、そこへ配線をハンダ付けする場合、ピンにコネクタを付けておくと、熱でピンを固定するプラスチックが溶けて曲がるのを防げます。また、のちのちのメンテナンスが楽になるように、スピーカーコードも着脱できるように、してあります。

右の図の点線部分が今回の改造です。前回の図では、引き出したポイントと、信号内容が合っていませんでした。申し訳ありません。こちらの図が正解です。

2009年7月18日 (土)

GMC-4「大」改造 大型LED表示基板編

Led Led_2 Led_3

こちらは「大」改造の顔とも言える大型LED表示基板です。

目を引く7セグLEDは、秋葉原の鈴商で買いました。1,800円でした。
2進表示用のLEDは、同じく秋葉原の千石の特価品1個70円。
コネクタのピン割り当てはATMELのSTK-500やサンハヤトのVPORTを意識したものです。
回路図では2進LEDについて2パターンありますが、点線内は改装予定の回路です。
こちらに修正すれば、スタティック化回路のICを両方とも74HC564にすることができます。

2009年7月17日 (金)

GMC-4「大」改造 LED12V駆動基板編

Led12v

Led12v_2

Led12v_3

ある意味「大」改造の心臓部、LED12V駆動回路です。

12V電源から大型16進LEDへ電力を供給。
一方スタティック化された16進LEDの点灯信号を受け取り、
トランジスタアレーで12V電源→大型LED→抵抗→GNDと流れる電流を制御します。
トランジスタアレーは、TD62083を使用。

GMC-4以外に転用した際を考慮し、DP(小数点)も使えるようにしています。
大型LEDは小数点のみLED数が違う場合があり、
集合抵抗とは別の抵抗をスライドスイッチで選択できます。

2009年7月14日 (火)

GMC-4「大」改造 スタティック化基板編

Photo_8 Photo_9 Photo_10

本誌にも書いてありますが、GMC-4の2進LED,16進LEDは、ダイナミック点灯になっています。このままでは、外部に機器を繋いで制御するには使いにくいので、この基板でスタティック化させます。

74HC574、74HC564は、いずれもD型FFのバスインターフェースで、74HC564は反転出力タイプです。

GMC-4はアノードコモンのLEDを使っていて、各ポートの出力は負論理で出ています。そこで、スタティック化と同時に、出力を反転させると正論理の信号を取り出せます。ところが、突貫工事で作った大型2進LED表示部を、GMC-4と同じアノードコモンにしてしまったので、片方を74HC574で、スタティック化のみ行っています。

いずれ、大型2進LED表示部もカソードコモンに直して、両方を74HC564にする予定です。

大人の科学マガジン Vol.24 4ビットマイコン GMC-4 解析回路図

Gmc4_v012

既に、オフィシャルサイトの記事に回路図が含まれたPDFが上がっていますが、独自に作成した回路図もありますので、公開します。本ブログの改造記事を読む時や、皆さんの改造の参考などにご利用ください。

モールドされたチップの基盤下方向に引き出し線がないので、右下を一番ピンとして数えた番号をピン番号としています。チップトランジスタの向きも、基盤の配置と同じになるようにしました。

BSch3用ファイル「gmc4_v0.12.CE3」をダウンロード

より以前の記事一覧

その他のカテゴリー