とりあえず、送れるということが確認できた。
現状はこんな感じ。
うしろの表示はブラウザ。テキストボックスにフォーカスしてキー入力すると、それを音声として出力。プチコン側でそれを受けてリアルタイムで信号を解析している。
まだサンプリングバッファの境界処理などに問題がある。入力速度については、プチコン側の確認用グラフィック表示をしなければ単純にもう少し早くなる。
現在のところ、8180Hzでのサンプリングに対して、1bitを4サンプルで送信している。論理値としては2045bpsということになるかな?誤り訂正は4サンプルでの多数決。ノイズが少ないことを前提に、ある振幅以上の入力は信号を表すものとしている。表現はパルスの振幅の違いで0と1を表現。なので、可能性としては0と1以外の表現も可能。また、もっと高いサンプリングレートでもいけるかもしれない。送信側は Web Audio API を使用。
入力には先日買っといた、GS-MHA01-BKという4極端子をマイクとヘッドホンに分けるものを使用。この方式だと本体内蔵マイクでの通信は無理だと思う。