米粒AVRからAndroidにデータを送る方法

(まだ編集中です)

soundIR-modemを使って、米粒AVRからAndroidにデータを送る方法

 

Androidのパーミッション

<br />
<uses-permission android:name="android.permission.RECORD_AUDIO" /><br />

マイク端子から音を拾う為のパーミッションをマニフェスト(AndroidManifest.xml)に追加しておく。

 

Androidプログラム

1.初期化(ライブラリ初期化)
2.データ送信
3.後処理(端末の音量を元に戻す、ライブラリ後処理)

 

受信データを受け取るリスナーを作成

Activityとかにimplementsするのが便利かな・・・

public class MainActivity extends Activity implements OnClickListener, SoundIRModemListener<br />
{<br />
    ⁝<br />
}<br />

<br />
@Override<br />
public void onReceivedSoundIRModem(Byte[] data, int bitCount)<br />
{<br />
    ⁝<br />
}<br />

onReceivedSoundIRModem(Byte[] data, int bitCount)はデータを受信した時に呼び出される。この中で受信処理を行う。

 

リスナーをライブラリに登録

<br />
protected void onCreate(Bundle savedInstanceState)<br />
{<br />
        ⁝<br />
    soundIR = new SoundIRModemService();<br />
    soundIR.setListner(this);<br />
        ⁝<br />
}<br />

 

サウンドデータの解析の為の方式と閾値を登録

シュミットトリガー方式の場合、
void setSchmit(int highPercent,int lowPercent)

微分処理の場合
void setDifferential(int highPercent,int lowPercent)

それぞれ、閾値は%(パーセント)で-100~+100の間の数値で指定する。
指定する閾値の数値は、接続するデバイスの回路によって異なってくるので、こちらのアプリ(SoundIR Analyzer)で色々設定を変えて試しながら決定すると良い。

soundIR analyzer 設定画面

 

位相の指定(必要に応じて)

端末によってマイク端子の+-が逆の場合があるので、その場合は反転指定の必要があります。

<br />
    ⁝<br />
soundIR.setPolarityReversalReceive(true);<br />
    ⁝<br />

 

受信開始指定

<br />
protected void onResume()<br />
{<br />
    super.onResume();<br />
        ⁝<br />
    if(soundIR!=null)<br />
    {<br />
        soundIR.beginReceiveInfinite();<br />
    }<br />
        ⁝<br />
}<br />

無限に受信し続ける場合なら、onResume()で受信を開始して、onPause()で受信を停止すると良いと思う。(Activityなら)

 

受信終了

<br />
protected void onPause()<br />
{<br />
    super.onPause();<br />
        ⁝<br />
    if(soundIR!=null)<br />
    {<br />
        soundIR.stopReceive();<br />
    }<br />
        ⁝<br />
}<br />

受信を開始した場合、必ずstopReceive()を呼び出して受信処理を止めなければいけない。

 

米粒AVR側プログラム

米粒AVRでSoftModem的なこと

を参照してください。

 

回路例

米粒AVRでSoftModem的なこと

を参照してください。


公開日:

Arduinoで温湿度計 #2

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

Arduinoで温湿度計

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

ArduinoでSDカード

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

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

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

秋月の小型キャラクタLCD

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

PAGE TOP ↑