プチコンで遊ぼう! (はてなブログ版)

任天堂3DSのプチコンで遊ぼう! [twitter:@eida_s]

はてなダイアリーから移行しました。 はてなダイアリーのURLを開いても自動的にこちらにリダイレクトされますのでご了承ください。

プチコン3号の通信について

プチコン3号については、プチコンmkIIにあったQRコード読み込みは廃止となり、3DSが外部とプログラムをやり取りするには、スマイルブームのサーバを経由しなければならない、とされている。

ここで問題となると思われるのは、以下の場合。

・mkIIからのプログラムおよびデータの移行(現状ではおそらくできない)
・パソコンなどで編集したデータ等を取り込みたい場合
著作権などが若干グレーで仲間内だけでプログラムをやりとりしたい場合

これらについて考えてみた。


上記の3つ例に関して言えば、パソコンから何らかの方法でデータを取り込みできれば解決可能と言える。
また、他のプチコンユーザーと直接会ってプログラムを交換するということは初代・mkIIともできたので、これは実現したい。

よって、パソコンと3DSの間の相互のデータ交換、および、3DS同士の近距離データ交換の方法を考えることになる。


3DS同士の近距離データ交換

これはワイヤレス通信を使えば比較的簡単にできると考えられる。


◆パソコンと3DSの間の相互のデータ交換

これに関しては想定できる方法としては以下が挙げられる。

(1)SDカードの中のTXTファイルを直接、パソコンと転送しあうことができる。(可能性小)
(2)外部入力を使ってのパソコンからの入力。(方法次第でできそう)

まず、(1)ができればプログラミングの必要はないが、できる可能性は低い。
こればかりは発売されて具体的な仕様が判明しないとわからない。
しかし、一応できる可能性もないではない(明確に否定はされていない)ので発売を待つことにしよう。

仮に(1)がダメな場合、(2)をプログラミングで実装することになる。

◇パソコン⇒3DS
まず、パソコン⇒3DSへのデータ交換。
3DSが使うことのできる十字キーやボタン等以外の外部入力方法は以下のとおり。

・ワイヤレス通信
拡張スライドパッド
・マイク入力
・加速度センサー
ジャイロセンサー

上2つは、可能性としてはなくはないが、プロトコルの解析が必要となり、難易度が高い。
下2つも、実現可能性としては面白いが何らかの物理的な工作が必要になるという意味で難易度が高いほか、物理的な動作を必要とするので通信に時間がかかる。
すると一番早く実現できそうなのはマイク入力になる。

マイク入力は音声での入力ということになるが、パソコン側でなんらかの音声を出してそれを取り込むことになる。
この場合、データを音声にコードする方法はいくつかある

振幅変調(AM)
・周波数変調(FM)
・位相変調

最後の位相変調は計算方法等が若干ハードルが高いので、振幅変調か周波数変調を採用することにする。
振幅変調は、信号の違いを振幅の違いで送るもの。音声の場合は音量と思えばよい。
周波数変調は、信号を周波数の増減で送るもの。

プログラミングとしては、振幅変調の方がハードルは低いので、まずは振幅変調で作ってみるのがよいと思われる。

3DS⇒パソコン

3DS⇒パソコンの通信は以下が考えられる。

・ワイヤレス通信
・音声出力
3DSQRコードを生成

ワイヤレス通信は、前述のとおりプロトコル解析が必要なので、今回は外す。

ORコード出力は、プチコンまとめwikiに初代プチコン用にQRコード生成のソースコードが掲載されているので、それを使えば比較的簡単に実装可能。
しかし、大きなデータとなると1枚のQRコードに収めることはできないので、その場合は人手を介する必要が出てきてQRの枚数が増えるほど面倒になる。

音声での出力であれば、データのサイズが増えても時間が長くなるだけで、人間は放っておけばよいので多少効率が悪くなってもこちらの方が都合がよい。

この検討から、3DS⇒パソコンの通信でも音声出力がよさそう、ということになった。



具体的な実現方法については次回以降のエントリーで考えてみたい。