Androidから米粒AVRにデータを送る方法
(まだ編集中です)
soundIR-modemライブラリを使って、Androidから米粒AVRにデータを送る方法
Android側のプログラム
1.初期化(端末の音量設定、ライブラリ初期化)
2.データ送信
3.後処理(端末の音量を元に戻す、ライブラリ後処理)
端末の音量設定
サウンドの音量を最大に設定する。
音量が小さいと正しく送信できないので、最大に設定してしまう。
また、終了時に音量を元に戻すため、現在の音量を保存しておく。
アクティビティを使ったアプリであれば、onResumeで最大化、onPauseで復元がいいかと思う。
<br /> ⁝<br /> private int mVolume=0;<br /> ⁝<br /> protected void onResume()<br /> {<br /> ⁝<br /> AudioManager am = (AudioManager) getSystemService(AUDIO_SERVICE);<br /> mVolume = am.getStreamVolume(AudioManager.STREAM_MUSIC);<br /> int max=am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);<br /> am.setStreamVolume(AudioManager.STREAM_MUSIC,max, 0);<br /> ⁝<br /> }<br />
ライブラリ初期化
ライブラリの初期化は、OnCreate等の中で呼び出す
<br /> ⁝<br /> private SoundIRModemService soundIR=null;<br /> ⁝<br /> protected void onCreate(Bundle savedInstanceState)<br /> {<br /> ⁝<br /> soundIR = new SoundIRModemService();<br /> soundIR.initTransmit();<br /> ⁝<br /> }<br />
位相の指定(必要に応じて)
端末によって、イヤホン端子の+-が逆の場合があるので、その場合は反転指定の必要があります。
<br /> ⁝<br /> soundIR.setPolarityReversalTransmit(true);<br /> ⁝<br />
データ送信
データは随時transmit()を呼び出すことで送信可能。
<br /> ⁝<br /> soundIR.transmit(new byte[]{ 0x01, 0x00, 0x00, 0x01 });<br /> ⁝<br />
ライブラリ終了処理
ライブラリを使った後は、必ずcleanUpTransmit()を呼び出す。
<br /> protected void onDestroy()<br /> {<br /> ⁝<br /> if(soundIR!=null)<br /> {<br /> soundIR.cleanUpTransmit();<br /> }<br /> ⁝<br /> }<br />
端末の音量を元に戻す
最大化した音量を、アプリの終了と共に元に戻す。
<br /> protected void onPause()<br /> {<br /> super.onPause();<br /> <br /> AudioManager am = (AudioManager) getSystemService(AUDIO_SERVICE);<br /> am.setStreamVolume(AudioManager.STREAM_MUSIC,mVolume, 0);<br /> }<br />
米粒AVR側のプログラム
を参照してください。
回路例
を参照してください。
公開日: