携帯液晶ゲーム「デジタルモンスター」と通信するためのライブラリです。 初期の育成ギアやデジヴァイス系の玩具で使用されていた2端子コネクタの通信にのみ対応しています。 D-3が発売されたころはこの2端子コネクタの通信をD-Linkと呼んでいたらしいのでライブラリにもその名称を使用させていただきました。
AVRマイコンと携帯液晶ゲームのデジモンとの通信が行えます。
バトルの結果を固定にして通信すれば必ず勝てるサンドバッグが作成できます(これはサンプルにも入ってます)。 また、通信内容を使ってデジモンアナライザのようなものを作ることも可能です。 通信データの内容等に関しては以下のページで解説してますのでそちらを参照してください。
http://botamochi.github.io/articles/analysis.html
次の3つのファイルをプロジェクトに追加してください。
- dlink.h
- dlink.c
- dlink-config.h
戻り値 : なし
説明 : 入出力ポートの初期化を行います。
frame
: 送信するデータ
戻り値 : なし
説明 : データを送信します。送信には130msほど時間がかかります。
timeout
: タイムアウト時間(ミリ秒)です。0を指定した場合はタイムアウト無しです。
戻り値 : 受信したデータを返します。受信に失敗した場合は0を返します。
使用するポートやピンを変更する場合はdlink-config.h内で定義しているマクロを編集します。
ポートBを使用する場合は「B」、ポートDを使用する場合は「D」としてください。
使用するピンのビット番号を指定してください。PB2やPD2の場合は「2」としてください。
サンプルとして以下のプログラムがtestsフォルダ内に入ってます。 コマンドラインからavr-gccが使える環境でしたらmakefileでhexファイルを生成できます。
- 00_serialtest.c
- 01_receive.c
- 02_sandbag.c
tests/schematicフォルダにサンプルプログラムを実行するための回路図が入ってます。 atmega328、attiny2313、attiny13でそれぞれ回路図を用意してますが、電源とSerialとD-Linkの3つを配線するだけなのでどれもほとんど変わりません。
回路を組む前に1つだけ注意があります。 USBシリアル変換モジュールとマイコンは3.3Vで駆動していますが、デジモン側はボタン電池なので3V駆動です。 電子回路では電源電圧の違うもの同士を接続するのは基本的にNGなのでこの回路は少々危険です。 私はこの回路で動作を確認しており、今のところ問題は発生していませんが、下手したら壊れる可能性もあるので試す場合は自己責任でお願いします。
PCとの通信ができるか確認するプログラムです。デジモンとの通信は行いません。次の手順で動作を確認します。
- PCでターミナルソフト(Tera Termなど)を起動してポートを開く。
- PC側から何か文字を送信する。
- 送信した文字とそれを16進数変換した数値がPC側に返される。
受け取ったデータをPC側に表示します。手順は次の通りです。
- ターミナルソフトでポートを開く。
- デジモン側からデータを送る(バトル画面でBボタンを押す)。
- 受信したデータを16進数に変換した値がPCに表示される。
デジモンとバトルして必ず勝たせます。次の手順で実行します。
- ターミナルソフトでポートを開く。
- デジモン側をバトル画面にしておく(Bボタンは押さないでください)。
- PC側から何か文字を送信する。
- バトル通信が完了し、受信したデータがPC側に16進数で表示される。