Távirányító Androiddal

Samsung telefonok újabb típusaiban van infra adó, ennek a vezérlését szeretném bemutatni JAVA-ban.

Mivel jó néhány PIC-es projektemben van infra vevő, gondoltam elkészítek hozzá adót is. Csupán néhány sor kód az egész. Először engedélyeznünk kell a manifest file-ban a hozzáférést az infrához:


uses-permission android:name="android.permission.TRANSMIT_IR"

Az infrát a következő képpen érhetjük el az eszközünkön:


private ConsumerIrManager IR =(ConsumerIrManager)  getSystemService(Context.CONSUMER_IR_SERVICE);

A kód küldése:


if(IR.hasIrEmitter())      //Ellenőrizzük, hogy az eszközben van-e inra adó
{
   IR.transmit(38222,VolumeDown);
   Log.e(TAG, "Succesfull transmitt IR!\n");
}
else
{
   //Messagebox
   Toast.makeText(getApplicationContext(), "No IRDA", Toast.LENGTH_LONG).show();
   Log.e(TAG, "NO IR!\n");
}

Az IR.transmit első paramétere a vivő frekvencia, a második pedig egy tömb a magas és alacsony szint időkkel. Itt megjegyezném, hogy az android fejlesztő hivatalos oldalán félre érthetően van megadva:
„Parameters carrierFrequency The IR carrier frequency in Hertz. pattern The alternating on/off pattern in microseconds to transmit.”
Nem mikrosec időket tartalmaz a tömb, hanem a vivőfrekvenciából tudjuk kiszámolni a jel hosszát. Egy példa: a NEC IR szabvány 38222Hz vivő frequencián küldi ki a jelet. A start jel hossza 9ms amit 4,5ms szünet követ. 1/38222 az ~26uSec, tehát a jelsorozatunk első két eleme 341 és 170 (0x0155, 0x00AA).
A példaprogramot hamarosan felteszem.

Facebook Comments