Indoor airplane world
 





 インドアプレーンのコントロールには支障ないのですが、送信機のシリアルパルスが上の画像のように所々で欠落するのがどうしても気になります。

 送信機のシリアルパルスはAudioTrackで再生していますが、javaソースを何度もみなおしてようやくこの問題を解決することができました。
 
// 必要となるバッファサイズを計算
int bufSize = android.media.AudioTrack.getMinBufferSize(
  44100,
  AudioFormat.CHANNEL_OUT_MONO,
  AudioFormat.ENCODING_PCM_16BIT);

//AudioTrackクラスの作成と初期化
track = new AudioTrack(
  AudioManager.STREAM_MUSIC,
  44100,
  AudioFormat.CHANNEL_OUT_MONO,
  AudioFormat.ENCODING_PCM_16BIT,
  bufSize,
  AudioTrack.MODE_STREAM);

 当初バッファサイズを44100に設定していましたが、必要なバッファサイズを計算してその値に設定することで、更新レートが早くなりました。

 そしてそれよりも3チャンネル分のシリアルパルスを1フレーム送り出す度に、AudioTrackクラスの作成とリリースを繰り返していたので、その分で時間がとられてパルスが欠落していたようです。

 AudioTrackクラスの作成部分を別の場所に移動して解決しました。



 その結果パルスの欠けは全くなくなり、更新レートも約12msと飛躍的に早くなりました。



 Nexus7でもインドアプレーンを飛ばしてみましたが、片手で操作するには少し大きすぎて使いにくいです。

 その点P-1Dはサイズ的によい感じですが、たまたまPCとつないでデバッグ中に電話がかかってきてあわてたことがあり、電話はしばらく前のガラケーを使うことにして、P-1Dをアプリ開発専用にしました。

コメント ( 2 ) | Trackback (  )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする


« テラスモール... Andoid赤外線... »
 
コメント
 
 
 
Unknown (松下)
2013-03-23 00:14:02
問題の解決おめでとうございます。
これからも頑張ってください。
 
 
 
ありがとうございます (toko)
2013-03-23 12:33:31
やり始めるとすぐにのめりこんでしまいます(笑)。
取りあえず赤外線送信機は一段落で、次のテーマを何にするか考えています。
 
コメントを投稿する
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。