2015年2月8日日曜日

妖怪ウオッチ零式 プログラム編 メダルデータ出力

メダルデータの出力は、AVR2313のポートと
妖怪ウオッチのメダル識別SWをつないで行います。PORT出力”1”でSW ONです。
PORTDのPD0→S3
PORTDのPD1→S4
PORTDのPD2→S5
PORTDのPD3→S6
 メダル投入時にメダルパターンを4列分出力した後は
メダルぬき出しとして必ず先の逆の順序で4列のパターンを
出力してやらなければ、ウオッチは混乱してしまいます。
連続して妖怪を召還したいので、次のメダルパターンを出力する前に、ちょくぜんのメダルパターンを逆出力して、自動抜き出し動作することにします。
そのために、メダルパターンを取りだして置いておく場所を用意します。
//メダルSW出力メダルパターン格納バッファ
unsigned char pat_buff[4]={0,0,0,0b1010};
固定値のターミネータ0b1010は先に入れておきます。
先頭から3バイトには登録してあるメダルデータを取り出し格納します。
メダル投入(召還)、抜きだし処理は、ここのデータを参照してポートに出力します。

出力タイミングは以下のようにしました。
PORTD=pat_buff[0];
_delay_ms(60);
PORTD=0;
_delay_ms(60);
PORTD=pat_buff[1];
_delay_ms(60);
PORTD=0;
_delay_ms(60);
PORTD=pat_buff[2];
_delay_ms(60);
PORTD=0;
_delay_ms(60);
PORTD=pat_buff[3];
_delay_ms(60);
PORTD=0;

またメダルの抜き出し時には、抜き出し音声が発生するので。
抜き出し出力処理
_delay_ms(2000);
次の召還出力処理
 と言うように、抜き出し音声の終了を待ってから次の召還を行います。
戻る

2015年2月6日金曜日

妖怪ウオッチ零式 プログラム編 落とし穴

ボタン電池でテストするのはもったいないので、使い残りの単三電池3本を電池ボックスにいれ、ウオッチの電池ボックス端子に接続してテストしていました。
テストも終わり。蓋を閉じたら、最初の召還は出来るも次の召還でリセットがかかり
またはじめの妖怪が呼び出されました。
電池ぎれ?と思いメダルを通常通り入れてみると、ウオッチはちゃんと動作します。
散々ひねくりまわした末、ふと低電圧自動リセットと言う言葉が頭をよぎりました。
ヒューズビットが4.3Vリセット指定になっていました。電池電圧をはかってみたら
4.27V界隈原因判明です。 思い切って1.8Vリセットに書き換えました。2Vに落ちてウオッチが正常動作するかはわかりませんが、ここまで落ちたら電池交換でしょ。

2015年2月5日木曜日

妖怪ウオッチ零式 プログラム編 テスト

テストはブレッドボードに組んで行います。
CPU AVR ATtiny2313
S3、S4、S5、S6出力確認用LEDをつなぎます。
SWとLEDで動作確認を行います。


基板上のSWに結線して、ポートにつなぎます
ウオッチにつなぐ時にはLEDのグランド側の抵抗を外します。
電源はウオッチに合わせ単三3本から供給します。


この状態で単体テストを行います。
また、未知のメダルデータの解析も行います。





 後述の落とし穴での経験をふまえ
最低動作電圧を調べておきます。
今は使い古しの電池で4.26Vで動いています。


電圧を下げていくと、だいたい2.8Vを切ると
ウオッチは起動しなくなりました。
ですので単三2本でも動きました。
電池の消耗は、メダルの音声や、
メダルが押すS3,4,5,6SWの数によって
変わって来ます。
電池がなくなってきて、メダルによって反応しなくなることがあるのは
そのせいのようです。

戻る

2015年2月2日月曜日

妖怪ウオッチ零式 プログラム編 メダルデータ解析結果

持っているメダルのデータパターンはわかりますが、他の物はわかりません。
テスト用のプログラムをPCとUSBシリアル経由でつなぎ、PCから総当たりでパータンをウオッチに流してみて、メダルデータを洗い出してみました。
見落としや、妖怪の名前、種族など間違いがあるかもしれませんが、
一応現在受付可能なものを一覧にしてみました。
4バイト目は0b1010固定です。




 //1イサマシ族======================================
    {0b1100,0b0010,0b0001},//:イサマシ,S,鬼食い
    {0b1100,0b0101,0b0110},//:イサマシ,S,いのちとり
    {0b1100,0b0001,0b1111},//:イサマシ,A,焼きおに斬り
    {0b1100,0b0001,0b1110},//:イサマシ,A,万尾獅子
    {0b1100,0b0001,0b1101},//:イサマシ,B,フユニャン
    {0b1101,0b1011,0b0001},//:イサマシ,B,フユニャン
    {0b1110,0b0101,0b0111},//:イサマシ,C,メラメライオン
    {0b0111,0b0101,0b0010},//:イサマシ,C,ブリー隊長
    {0b1100,0b0001,0b1000},//:イサマシ,C,泥田坊
    {0b1100,0b0001,0b1001},//:イサマシ,C,ブリー隊長
    {0b1100,0b0001,0b0111},//:イサマシ,D,あかなめ
    {0b1100,0b0001,0b0010},//:イサマシ,E,獅子まる
    {0b1100,0b0001,0b0011},//:イサマシ,E,かたづ家来
    {0b1100,0b0001,0b1011},//:イサマシ,E,アライ魔将
    {0b1100,0b0001,0b0100},//:イサマシ,E,おこ武者

    //2フシギ族======================================
    {0b1100,0b0011,0b0010},//:フシギ,S,ぬえ
    {0b1100,0b0101,0b1000},//:フシギ,S,風魔猿
    {0b1110,0b0101,0b0110},//:フシギ,S,キュウビ
    {0b0110,0b0101,0b1000},//:フシギ,S,天狗
    {0b0011,0b0101,0b1111},//:フシギ,?,ミスタームービン,Zメダル
    {0b1100,0b0010,0b1101},//:フシギ,A,えんらえんら
    {0b1100,0b0010,0b1111},//:フシギ,A,あやまり倒し
    {0b1100,0b0010,0b1110},//:フシギ,A,おでんじん
    {0b1100,0b0011,0b0001},//:フシギ,A,うんがい三面鏡
    {0b1110,0b0101,0b1111},//:フシギ,B,セバスチャン
    {0b1100,0b0010,0b1011},//:フシギ,B,メゾンド・ワスレ
    {0b0011,0b0101,0b1100},//:フシギ,C,アペリカン
    {0b1100,0b0010,0b1001},//:フシギ,C,USO
    {0b1110,0b0101,0b1100},//:フシギ,C,ドクロ婆
    {0b1100,0b0010,0b0111},//:フシギ,D,のっぺら坊
    {0b1100,0b0010,0b1000},//:フシギ,D,一旦ゴメン
    {0b1100,0b0010,0b0100},//:フシギ,D,こえんら
    {0b1100,0b0010,0b0110},//:フシギ,E,化け草履
    {0b1100,0b0010,0b0011},//:フシギ,E,さかさっ傘

    //3ゴーケツ族======================================
    {0b1100,0b0101,0b0100},//:ゴーケツ,S,大やもり
    {0b1100,0b0100,0b0011},//:ゴーケツ,S,大ガマ
    {0b1110,0b0101,0b0001},//:ゴーケツ,A,ロボニャン
    {0b1100,0b0011,0b1111},//:ゴーケツ,A,ヒライ神
    {0b1100,0b0100,0b0001},//:ゴーケツ,A,ガマンモス
    {0b1100,0b0011,0b1101},//:ゴーケツ,B,だっせんしゃ
    {0b1100,0b0011,0b1110},//:ゴーケツ,B,プライ丼
    {0b1100,0b0011,0b1011},//:ゴーケツ,C,あせっか鬼
    {0b1100,0b0011,0b1000},//:ゴーケツ,D,雷蔵
    {0b1100,0b0011,0b1001},//:ゴーケツ,D,モノマネキン
    {0b1100,0b0011,0b0100},//:ゴーケツ,E,ドキ土器
    {0b1100,0b0011,0b0110},//:ゴーケツ,E,うらや飯
    {0b1100,0b0011,0b0111},//:ゴーケツ,E,迷い車
    
    //4プリチー族======================================
    {0b1100,0b0100,0b1111},//:S,プリチー,マスターニャーダ
    {0b1100,0b0101,0b0010},//:S,プリチー,水虎
    {0b0111,0b0101,0b1000},//:プリチー,アカマル
    {0b0110,0b0101,0b1011},//プリチー,ジバニャン
    {0b0110,0b0101,0b1101},//:プリチー,ジバニャン
    {0b0001,0b0101,0b0100},//:A,プリチー,スイカニャン
    {0b1111,0b0101,0b1110},//:A,プリチー,ロボコマ
    {0b1000,0b0101,0b1011},//:A,プリチー,ロボガッパ
    {0b1100,0b0100,0b1110},//:A,プリチー,河童
    {0b1100,0b0100,0b1101},//:B,プリチー,おバク様
    {0b0110,0b0101,0b1111},//:B,プリチー,トゲニャン
    {0b0001,0b0101,0b0110},//:B,プリチー,メロンニャン
    {0b1111,0b0101,0b0001},//:B,プリチー,ブドウニャン
    {0b1111,0b0101,0b0011},//:B,プリチー,ミカンニャン
    {0b1100,0b1001,0b1011},//:B,プリチー,ケマモン
    {0b0111,0b0101,0b0001},//:C,プリチー,ブチニャン
    {0b1100,0b0100,0b1001},//:C,プリチー,雨女
    {0b1100,0b0100,0b1011},//:C,プリチー,ばくそく
    {0b0110,0b0101,0b0011},//:D,プリチー,コマじろう
    {0b0110,0b0101,0b0001},//:D,プリチー,コマさん
    {0b0110,0b0101,0b1001},//:D,プリチー,コマさん
    
    {0b0111,0b0101,0b1110},//:D,プリチー,ノガッパ
    {0b1100,0b0100,0b0110},//:D,プリチー,一つ目小僧
    {0b1100,0b0100,0b0111},//:E,プリチー,びきゃく
    {0b1100,0b0100,0b1000},//:D,プリチー,つらがわり
    {0b1101,0b1001,0b1110},//:プリチー,ジバニャン??
    {0b1101,0b1001,0b1111},//:プリチー,ジバニャン??
    {0b1100,0b0101,0b1101},//:D,プリチー,コマじろう
    {0b1100,0b0101,0b1110},//:D,プリチー,コマさん
    {0b1110,0b0101,0b1101},//:D,プリチー,コマさん
    
    //5ポカポカ族======================================
    {0b0011,0b0101,0b1110},//:S,ポカポカ,イッカク
    {0b1100,0b0111,0b0011},//:S,ポカポカ,大くだん
    {0b1100,0b0111,0b0100},//:S,ポカポカ,麒麟
    {0b1100,0b0110,0b1111},//:A,ポカポカ,から傘魔神
    {0b1100,0b0111,0b0001},//:A,ポカポカ,ざしきわら神
    {0b1100,0b0111,0b0010},//:A,ポカポカ,お金ナイダー
    {0b1111,0b0101,0b1001},//:A,ポカポカ,ロボG
    {0b1100,0b0110,0b1101},//:B,ポカポカ,キズナース
    {0b1100,0b0110,0b1110},//:B,ポカポカ,大山砂夫
    {0b1100,0b0110,0b0100},//:C,ポカポカ,くだん
    {0b1100,0b0110,0b1001},//:C,ポカポカ,晴れ男
    {0b1100,0b0110,0b1011},//:C,ポカポカ,ワカメ☆スター
    {0b1110,0b0101,0b0100},//:C,ポカポカ,ホノボーノ
    {0b1100,0b0110,0b0111},//:D,ポカポカ,ざしきわらし
    {0b1100,0b0110,0b0001},//:E,ポカポカ,キズナメコ
    {0b1100,0b0110,0b0010},//:E,ポカポカ,から傘お化け
    {0b1100,0b0110,0b0011},//:E,ポカポカ,砂夫
    {0b1110,0b0101,0b1001},//:E,ポカポカ,ひも爺
    
    //6ウスラカゲ族======================================
    {0b1100,0b0101,0b0001},//:S,ウスラカゲ,きらめ鬼
    {0b1100,0b0100,0b0010},//:A,ウスラカゲ,百々目鬼
    {0b1100,0b0111,0b0110},//:E,ウスラカゲ,TETSUYA
    {0b1100,0b0111,0b1000},//:D,スラカゲ,かりパックン
    {0b1100,0b0111,0b1001},//:B,ウスラカゲ,草くいおとこ
    {0b1100,0b0111,0b1111},//:B,ウスラカゲ,ミツマタノヅチ
    {0b1100,0b1000,0b0001},//:B,ウスラカゲ,リー夫人
    {0b1100,0b1000,0b0010},//:B,ウスラカゲ,ガブニャン
    {0b1100,0b1000,0b0011},//:B,ウスラカゲ,KANTETSU
    {0b1100,0b1000,0b0100},//:B,ウスラカゲ,肉くいおとこ
    {0b1100,0b1000,0b0111},//:B,ウスラカゲ,どんどろ
    {0b1100,0b0111,0b1011},//:C,ウスラカゲ,まてんし
    {0b1100,0b0111,0b1101},//:C,ウスラカゲ,ひとまか仙人
    {0b1100,0b0111,0b1110},//:C,ウスラカゲ,りもこんかくし
    {0b0110,0b0101,0b1110},//:D,ウスラカゲ,ヒキコウモリ
    
    
    //7ブキミー族======================================
    {0b1100,0b1001,0b1000},//:S,ブキミー,土蜘蛛
    {0b0011,0b0101,0b1101},//:S,ブキミー,女郎蜘蛛
    {0b0110,0b0101,0b1100},//:A,ブキミー,ダークニャン
    {0b1100,0b1001,0b0110},//:A,ブキミー,ふさふさん
    {0b1100,0b1001,0b0111},//:A,ブキミー,呪野花子
    {0b1000,0b0101,0b1101},//:B,ブキミー,ロボメン犬
    {0b1100,0b1001,0b0010},//:B,ブキミー,ぶんぶん鳥
    {0b1100,0b1001,0b0011},//:B,ブキミー,のぼせトンマン
    {0b1100,0b1001,0b0100},//:B,ブキミー,爆音ならし
    {0b1100,0b1000,0b1110},//:C,ブキミー,じがじぃさん
    {0b1100,0b1000,0b1111},//:C,ブキミー,花子さん
    {0b1100,0b1001,0b0001},//:C,ブキミー,のらりくらり
    {0b1100,0b1000,0b1101},//:D,ブキミー,認MEN
    {0b1110,0b0101,0b0010},//:D,ブキミー,ドンヨリーヌ
    {0b1100,0b1000,0b1001},//:E,ブキミー,けうけげん
    {0b1100,0b1000,0b1011},//:E,ブキミー,おともらし
    
    //8ニョロロン族======================================
    {0b1110,0b0101,0b1000},//:S,ニョロロン,オロチ
    {0b0011,0b0101,0b1011},//:S,ニョロロン,イザナミ
    {0b1100,0b1011,0b1101},//:S,ニョロロン,八百比丘尼
    {0b0011,0b0101,0b1001},//:?,ニョロロン,スティーブ・ジョーズ
    {0b1100,0b1011,0b0111},//:A,ニョロロン,激ドラゴン
    {0b1100,0b1011,0b1000},//:A,ニョロロン,おもいだ神
    {0b1100,0b1011,0b1001},//:A,ニョロロン,こんがらギャル
    {0b0001,0b0101,0b0011},//:B,ニョロロン,ロボりゅーくん
    {0b1000,0b0101,0b1110},//:B,ニョロロン,ロボノコ
    {0b1100,0b1011,0b0110},//:B,ニョロロン,ホリュウ
    {0b1100,0b1011,0b0001},//:B,ニョロロン,つられたろう丸
    {0b1100,0b1011,0b0100},//:C,ニョロロン,ろくろ首
    {0b1100,0b1001,0b1111},//:D,ニョロロン,おもいだスッポン
    {0b1100,0b1011,0b0010},//:D,ニョロロン,ムカムカデ
    {0b1100,0b1011,0b0011},//:D,ニョロロン,にんぎょ
    {0b1100,0b1001,0b1101},//:E,ニョロロン,ねちがえる
    {0b1100,0b1001,0b1110},//:E,ニョロロン,からみぞん
    {0b1110,0b0101,0b0011},//:E,ニョロロン,ツチノコ
    
    //9カイマ族======================================
    {0b0111,0b0101,0b1111},//:カイマ,ヤッカイ
    {0b0111,0b0101,0b1100},//:カイマ,フカイ
    {0b0111,0b0101,0b0011},//:カイマ,ナンカイ
    {0b0111,0b0101,0b1001},//:カイマ,ゴウカイ
    {0b0111,0b0101,0b0110},//:カイマ,ハカイ
    {0b0111,0b0101,0b1011},//:カイマ,ドロタボウ・怪
    {0b1111,0b0101,0b1101},//:カイマ,えんらえんら・怪
    {0b1111,0b0101,0b1011},//:カイマ,河童・怪
    {0b1111,0b0101,0b0111},//:カイマ,から傘お化け・怪
    {0b1111,0b0101,0b1100},//:カイマ,ざしきわらし・怪
    {0b0111,0b0101,0b1101},//:カイマ,アカナメ・怪
    {0b1111,0b0101,0b0110},//:カイマ,くだん・怪
    {0b1111,0b0101,0b1000},//:カイマ,けうけげん・怪
    {0b1111,0b0101,0b0100},//:カイマ,にんぎょ・怪
    {0b1111,0b0101,0b0010},//:カイマ,ろくろ首・怪
    //10レジェンド族=================================
    {0b0001,0b0101,0b0111},//:レジェンド,フシギ,S,しゅらコマ
    {0b1100,0b1011,0b1110},//:レジェンド,ネタバレリーナ
    {0b1100,0b1011,0b1111},//:レジェンド,ウンチクマ
    {0b1100,0b1101,0b0001},//:レジェンド,やまタン
    //その他======================================

    {0b1101,0b1011,0b0010},//:その他,オメデトウゴザイマス
    {0b1101,0b1011,0b0011},//:その他,スゴイデスネヤルモンデスネ
    {0b1101,0b1011,0b0100},//:その他,コロコロコミック
    {0b1101,0b1011,0b0111},//:フシギ,召還であります
    {0b1101,0b1011,0b1000},//:ゴウケツ,召還であります
    {0b1101,0b1011,0b1001},//:プリチー,召還であります
    {0b1101,0b1011,0b1100},//:ポカポカ,召還であります
    {0b1101,0b1011,0b1110},//:ウスラカゲ,召還でありま
    {0b0111,0b0101,0b0100},//:カイマ,召還であります
    {0b1101,0b1100,0b0010},//:レジェンド,召還であります



注)本データを用いて生じたいかなる損害にも責任を負いません。