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側のプログラム

米粒AVRでSoftModem的なこと その2

を参照してください。

 

 

回路例

米粒AVRでSoftModem的なこと その2

を参照してください。

 

 


公開日:

Arduinoで温湿度計 #2

今回は、前回作った温湿度計にRTCモジュールとSDカードアダプタを

Arduinoで温湿度計

秋月電子の温湿度モジュールを使って、温湿度計を作ってみました。 以前

ArduinoでSDカード

電子工作で大量のデータを保存する方法を調べていると、 Arduin

秋月のリアルタイムクロック(RTC)モジュール

今回は秋月電子のI2C接続のリアルタイムクロック(RTC)モジュールを

秋月の小型キャラクタLCD

今回秋月電子で売られている小型のキャラクター液晶2種を買ったので、

PAGE TOP ↑