P/SEND — ver0.0.1

  • tags
    • petitcom
    • tool
  • last modified2015-03-27
  • created2015-01-29

P/SENDについて

転送速度を改善したP/SEND2を公開しています.

P/SENDは音声を用いてプチコン3号にデータを送信するプログラムです. 受信側のプログラムはP/RECVといいます. 通信速度は送信側のサンプリングレートやデータにより多少変動しますが,概ね1.2kB/s(9600bps)程度です. 目安として,500行くらいのプチコンのプログラムが6秒,512x512の画像が7分,256色に収まるなら3分半ほどで送信可能です.

色数や文字の種類を数えて,可能であればデータを半分にして送る(16bit→8bit)ので少し便利です. この処理ではデータは劣化しませんが,他にもプチコン3号内部の画像形式にあわせて16bitカラー(32階調)に色を変換したり, 透明ピクセルの色情報を削ったりするので,画像については多少劣化します(但しこれらは実機上で表現できない情報です)

注意事項

  • P/SEND, P/RECVは永久にベータ版です.何が起きても保証しません(できません)
  • P/SENDは大変不快な音を再生します.スピーカーや耳に悪影響を及ぼす恐れがあるので直接聴かないようご注意ください.
  • Firefox35 / Chrome39 で動作確認を行っています.自分の環境以外で動作するかは解りません.

プチコン3号用 受信プログラム P/RECV

P/RECV ver0.0.1 NDEDS3ND

使い方

  • 送信側(PCなど)のライン出力を,3DSのイヤホンジャックに接続する
    • このツールを使う上で1番面倒な部分

      一部うごメモユーザーの間では"3DSライン"と呼ばれている,4極ミニプラグ(CITA)のマイクとライン出力を繋ぐケーブルが必要になります.

      ただ,市販のケーブルでは相性というか仕様というかがありまして,プチコン3号で上手く認識されないことがあるようです. 僕も試したことが無いので「これは使える」というものが解りません.

      確実なのは,ケーブルを自作してちゃんと抵抗とコンデンサを入れたものを用意することなんですが—それ程難しい工作というわけでもないんですが—道具も必要になりますし,おすすめしづらいです. 作ってみたい方は gust_notchさんのマイク端子についての覚書がとても参考になると思います. 僕は先の記事とOBONOさんの制作記事を参考に,100均で買ったスマホ用マイクと延長ケーブルを切断して,間に4.7μFのコンデンサと2.2kΩの抵抗を入れて作成しました.

  • P/RECV側で「はけいを みる」を選んでから,下にある「テスト信号」を鳴らして送信側の音量を調節する
    • 赤いラインに波形が掛からない程度まで音量を上げてください
    • 次の画像ぐらいを参考にしてください
      音量調節参考用スクリーンショット
    • 大きすぎるよりは,多少小さいぐらいの方が失敗しづらいかも
  • P/SENDでファイルを選択する
    • 画像などは時間がかかるので,テストはプログラムなどテキストファイルがおすすめです.
    • プチコン3号のエディタは漢字は表示できませんが,ひらがなカタカナは表示できるので,テストには使えます
  • P/RECVで「ふぁいるを じゅしんする」を選び,準備ができたらP/SENDの送信ボタンを押す.
    • 最初の方ででる「しきいち」は150くらいが目安
    • 画像などはそこそこ時間がかかるのでお茶でもどうぞ
    • 環境にもよりますが,送信中にPCを操作して音を鳴らしたり音飛びがあったりすると失敗してしまいます. 今のところあまり操作は行わない方が良いかも
  • ファイルを保存する
    • ファイル名が気に入らない時は,キャンセルすれば別名をつけて保存可能
    • キャンセルしてから別名を入力せずにENTER/Aボタンを押すと,受信したデータを破棄するか選べます

仕様など

  • ファイルサイズは1Mまでです.それより大きなファイルも送信できますが,受信途中でエラーになります.
  • 一般的なテキスト形式の他に,拡張子が.bas/.sb3であればテキストとして読み込みます.
  • テキストデータは改行コードがLF(CHR$(10))に統一されます.
  • テキストデータの文字コードはutf-8を推奨します.それ以外の文字コードの場合,文字化けが発生する場合があります.
  • 画像は縦・横ともに512ピクセルまでです.はみ出た部分は送信されません.
  • 画像は自動的に16bitカラー(RGB5A1)に変換されます.
  • αチャンネルが255以外のピクセルは透明色として扱い,オプションで指定の無い場合は黒(0)になります.

通信の仕様など技術的な内容については以下の記事を参照してください

テスト信号

音量調節にご利用ください.

データ送信

今後の予定など

データ圧縮対応(deflateあたり)とバグ修正のみ予定しています. あと少しだけ通信速度改善のネタがあるので,気が向いたらそれも.

当初はプチコン3号側からの送信も考えていたのですが, 思っていたより波形の品質が良くなかったので今回のプログラムでは見送ることにしました. こちらについては必要になったら別の方法を試してみたいと思ってます.

バージョン

  • 2015-01-29P/SEND, P/RECV ver0.01
    • initial release

参考にしたもの

その他

表記上はP/SENDですが,全部アルファベットで書くとPiSENDっす.P/ECE (©AQUAPLUS)マジリスペクトっす.