Skip to content

Battle with Digimon V-Pet using AVR 8bit microcontrollers

Notifications You must be signed in to change notification settings

botamochi/avr-dlink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AVRマイコン用D-Linkライブラリ

携帯液晶ゲーム「デジタルモンスター」と通信するためのライブラリです。 初期の育成ギアやデジヴァイス系の玩具で使用されていた2端子コネクタの通信にのみ対応しています。 D-3が発売されたころはこの2端子コネクタの通信をD-Linkと呼んでいたらしいのでライブラリにもその名称を使用させていただきました。

できること

AVRマイコンと携帯液晶ゲームのデジモンとの通信が行えます。

バトルの結果を固定にして通信すれば必ず勝てるサンドバッグが作成できます(これはサンプルにも入ってます)。 また、通信内容を使ってデジモンアナライザのようなものを作ることも可能です。 通信データの内容等に関しては以下のページで解説してますのでそちらを参照してください。

http://botamochi.github.io/articles/analysis.html

使い方

次の3つのファイルをプロジェクトに追加してください。

  • dlink.h
  • dlink.c
  • dlink-config.h

関数

dlink_init()

戻り値 : なし
説明 : 入出力ポートの初期化を行います。

dlink_send_frame(dframe frame)

frame : 送信するデータ
戻り値 : なし
説明 : データを送信します。送信には130msほど時間がかかります。

dlink_recv_frame(unsigned long timeout)

timeout : タイムアウト時間(ミリ秒)です。0を指定した場合はタイムアウト無しです。
戻り値 : 受信したデータを返します。受信に失敗した場合は0を返します。

設定

使用するポートやピンを変更する場合はdlink-config.h内で定義しているマクロを編集します。

DLINK_CFG_IOPORTNAME

ポートBを使用する場合は「B」、ポートDを使用する場合は「D」としてください。

DLINK_CFG_OUTPUT_BIT

使用するピンのビット番号を指定してください。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なのでこの回路は少々危険です。 私はこの回路で動作を確認しており、今のところ問題は発生していませんが、下手したら壊れる可能性もあるので試す場合は自己責任でお願いします。

00_serialtest.c

PCとの通信ができるか確認するプログラムです。デジモンとの通信は行いません。次の手順で動作を確認します。

  1. PCでターミナルソフト(Tera Termなど)を起動してポートを開く。
  2. PC側から何か文字を送信する。
  3. 送信した文字とそれを16進数変換した数値がPC側に返される。

01_receive.c

受け取ったデータをPC側に表示します。手順は次の通りです。

  1. ターミナルソフトでポートを開く。
  2. デジモン側からデータを送る(バトル画面でBボタンを押す)。
  3. 受信したデータを16進数に変換した値がPCに表示される。

02_sandbag.c

デジモンとバトルして必ず勝たせます。次の手順で実行します。

  1. ターミナルソフトでポートを開く。
  2. デジモン側をバトル画面にしておく(Bボタンは押さないでください)。
  3. PC側から何か文字を送信する。
  4. バトル通信が完了し、受信したデータがPC側に16進数で表示される。

About

Battle with Digimon V-Pet using AVR 8bit microcontrollers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published