Arduino IR Jammer



IR jammer postavený na Arduinu. Je schopný rušit většinu ovladačů k domácím multimediálním zařízením a některé datové infraporty.

Když jsem se dnes vrátil domů a přečetl si novinky na hackaday, proklikal pár linků a narazil na jednoduchou rušičku FM Rádia a pokusil se udělat její sestřičku s Aruinem (narazil jsem na taktovací frekvenci Arduina), napadlo mě, že bych mohl udělat rušičku televizního ovládání, jakou jsem viděl před několika lety spolu se spoustou úžasných (a úžasně předražených) vychytávek, které jsem fakt chtěl ;) v jednom Bathském geek-shopu (tenkrát jsem ještě nevěděl co znamená geek) při své první (a zatím poslední) návštěvě Spojeného království. Tenkrát samozřejmě stála tato krabička velikosti vědeckého kalkulátoru desítky liber. Dnes se již dá koupit levněji na internetu (na thinkgeek apod…), ale proč to dělat, když mám Arduino že?

V první řadě jsem potřeboval IR LEDku, tu jsem vyletoval ze starého ovladače (byl jsem líný vyndat pájku, tak jsem použil zapalovač ;) . Také nutno podotknout, že jsem se nejdříve pokoušel překonvertovat ten ovladač na rušičku přímo bez použití Arduina. Byl jsem na dobré cestě a ještě se mi to někdy možná podaří, bohužel jsem při úpravách plošného spoje zašel tak daleko, že jsem byl při neúspěchu líný tištěný spoj zas opravovat. Ale už mám trochu představu. Stačilo by jen donutit ovladač, aby nedělal pauzu před opakovaným odesláním kódu. Bohužel jsem odpojil špatný kondenzátor (samozřejmě to mi může vyjít jen pokud tato pauza není softwarově vypálená přímo v integrovaném obvodu, ale něco mi říká, že není).

Když jsem měl vypájenou IR LED, tak jsem přemýšlel, co takový jammer má vysílat, trochu jsem zagooglil a našel tento obrázek:

Jak vidíte, pro přenos se používá jednoduchá amplitudová modulace. Jinak řečeno logická 1 je blikání LEDky nosnou frekvencí po určitou dobu a logická 0 je tma. Potom jsem vygooglil popisy jiných rušiček a zjistil jsem, že používají střídavý proud 1 a 0, což příjmač není schopný dekódovat. Tak jsem tedy napsal program, co generuje chvíli obdelníkový průběh nosné frekvence a chvíli tmu. Další otázkou je nosná frekvence, ta se pohybuje typicky okolo 37/38 kHz, dočetl jsem se také 35 až 41 kHz a jedna rušička z e-shopu plynule přejížděla mezi frekvencemi 1-60 kHz. Můj zdrojový kód má tuto možnost také, používané frekvence jsem ověřil pokusy a fungují na všech IR zařízeních, která jsem doma našel. Vy samozřejmě máte možnost si kód upravit.

Také si všiměte hodnoty bitlen. Ta udává, kolik obdelníků nosné frekvence odpovídá jednomu bitu (hodnota ovlivňuje také délku “ticha”). Protože jsem neměl představu, jak by měl být impulz dlouhý, vyřešil jsem to takto (odkoukáno z obrázku a potom metoda pokus/omyl). To píšu jen proto, že může stát zato si s touto frekvencí také pohrát.

Pokud máte problémy s dosahem (například rušička funguje jenom na vzdálenost jednoho metru od příjimače, nebo až po přesném “zamíření”), můžete použít svítivější diodu, případně také zesilovač (stačí jeden tranzistor). Jednodušším řešením může být zakoupit v bazaru starý ovladač na konkrétní model televizoru (nebo můžete zkusit použít některý z “univerzálních” ovladačů) a LED si vyndat z něj, protože každá televize/etc může používat trochu jinou frekvenci světla (jinak řečeno barvu – ano i když ji nevidíte). “Profesionální” rušičky používají třeba 3 diody najednou (vyplatí se i více stejných LED). Možná také bude jen stačit si trochu pohrát s proměnnými v kódu.

Pokud si nejste jisti, že IR LED skutečně svítí, můžete si to ověřit, když se na ni podíváte třeba přes display digitálního fotoaparátu, protože jeho snímací čip je schopný vidět i toto pro člověka jinak neviditelné infračervené světlo. Což je také princip, na kterém fungují některé LEVNĚJŠÍ noktovizory. Samozřejmě jen levnější, protože libovolný nepřítel s libovolným jiným noktovizorem (nebo fotoaparátem ;) bude vidět vaši hlavu jako svítit reflektor a s radostí vás do ní střelí a určitě to bude dřív než vy uvidíte jeho. Na druhou stranu u průmyslových kamer se tato technologie používá běžně (to jsou všechny ty kamery, co mají kolem dokola okolo objektivu ledky, které “nesvítí”).

Zdrojový kód pro Arduino naleznete zde: IR_Jammer.c

Motto dne: Není jamming jako jamming…




Líbí se vám článek? Chcete se o něj podělit? Přidejte ho! (volba topclanky.cz nevyžaduje registraci)

15 Responses to “Arduino IR Jammer”

  1. p3p3_w0r3m1o Says:

    Ten TV-džamr jsem taky někde viděl, ale když jsem ho chtěl slepit dohromady, tak jsem zjistil, že jsem ještě nedovezl domů bednu se součástkama :(

  2. Harvie Says:

    p3p3_w0r3m1o: Musím upozornit, že tahle věc neruší přímo TV, ale jen dálkové ovladače, pokud by si to chtěl postavit někdo, kdo nemá Arduino, nebyl by problém koupit za pár desítek korun 2 hotové krystalové oscilátory – každý v jedné součástce (první by generoval 1/0 a druhý by generoval nosnou frekvenci). Tudíž na výstup oscilátoru na f cca 3.7kHz by se připojil 37kHz oscilátor a na jeho výstup IR diody. Tudíž 3 součástky, které se možná schovají s ovladačem i baterií i do tlustější propisky.

  3. Harvie Says:

    Ještě jedno pěkné zapojení rušičky se dvěma tranzistorama sem našel tady: http://www.aaroncake.net/CI...

  4. p3p3_w0r3m1o Says:

    Já vím, že je to spíš jammer ovladače, bych se hodně divil kdyby se příjem dal rušit IR ledkou, ale ve výsledku je podle mě mnohem zábavnější když se někdo znaží půlhodiny přepnout program než když z toho začne vycházet bílý šum :D

    Mně docela zaujalo TV-B-gone, např. na Invexu zcela jistě najde využití: http://www.tvbgone.com

  5. Harvie Says:

    p3p3_w0r3m1o: Na Invex uz se asi nechystam, leda ze by to bylo zase misto skoly ;D BTW TV-B-Gone je dalsi vec, na ktery zapracuju ;DD

  6. p3p3_w0r3m1o Says:

    Já jsem na Invexu ještě ani nebyl :D tak to chci napravit, abych si o něm udělal nějaký obrázek, ke všemu mi kamarád vykládal že když už nic, tak tam jsou hezký hostesky :D

    BTW: Potom se určitě s tým TVBgone nezapomeň pochlubit ;D

  7. Harvie Says:

    p3p3_w0r3m1o: Kamo hostesky sou na kazdy normalni vystave ;) nemusis jezdit do Brna. Na invexu muzes treba nasbirat naky zajimavy casaky a u par stanku videt neco zajimavyho – treba vystavu prvnich "mobilnich" telefonu. Jinak mi to pripada jako obsah libovolnyho popularniho IT casopisu rozmelnenej po celym arealu BVV.

  8. Hyna Says:

    Na Invexu jsem už nějaký ty dva roky nebyl, ale tentokrát musím. Udělal jsem si tvbgone tak ho tam půjdu prubnout. Beru aji digikameru :)

  9. Michal Says:

    cau, nemas prosim kontak na nekoho z arduino.cz? obednal jsem si ho a jeste mi neprislo potvrzeni, dik

  10. Harvie Says:

    Michal: Mam jenom Jabber (upozornuji, ze to neni email) bill@njs.netlab.cz.
    VS maji vetsinou jeste prazdniny a tak nemuzes cekat zadnou vetsi aktivitu u tak maleho obchodu… Taky nevim, jak je to dlouho, co jsi to posilal…

  11. Michal Says:

    Uz mi odpovedeli na mail tak mam radost, uz se tesimaz arduino prijde!

  12. Michal Says:

    ahoj , tak arduino uz mam doma a mam takovej problem , neprogramoval jsem si hada z peti LED diod a prvni z tech ledek sviti normalne a dalsi 4 tak napul, lae dyz zapnu kazdou zvlast(nastavim na ni blikani atp.) tak sviti normalne, nevis cim by to mohlo byt? diody mam zapojene bez odporu, dyztak tady videjko : http://www.youtube.com/watch?v=PM59rkFuFJ8

  13. Michal Says:

    jinak zdrojak vypada takhle :
    int ledPin = 1;
    int x = 100;

    void setup()
    {

    pinMode(ledPin, OUTPUT);
    }

    void loop()
    {
    while(true)
    {
    digitalWrite(ledPin, HIGH);
    delay(x);
    digitalWrite(ledPin, LOW);
    delay(x);
    ledPin++;

    if(ledPin>5) ledPin = 1;
    }
    }

  14. Harvie Says:

    2Michal:
    1.) na output si v setup() nastavil jenom pin 1
    2.) while(true) je zbytecny, pac loop() jede furt dokola
    3.) bacha, at omylem nezapises na neexistujici pin v naky smycce, tim se da prepsat bootloader a je potreba ho pak prepalit (staci jednoduchy kabel a paralelni port)

  15. Harvie Says:

    http://arduino.pastebin.com/f4ddafb8e Tady je nejaky muj prototyp toho, jak by mohl vypadat TV-B-Gone pro Arduino Diecimila, ale porad to nefunguje, coz muze byt nejpravdepodobneji zpusobeno jednou z nasledujicich veci:

    1.) mam spatnou vlnovou delku (“barvu”) IR ledky
    2.) jsou tam kody pro americke televize (zdanlive to nesouvisi, ale NTSC maji udajne jine IR kody, nez PAL)
    3.) v kodu je chyba v nastaveni PWM timeru (spatna nosna frekvence signalu)

Leave a Reply