IR-kaukosäätimen korvaaminen

Kaukosäätimestä alkoi kadota näppäimiä ja tilalle tuli hankittua geneerinen ohjain, mutta
sen kanssa oli ongelmia joidenkin näppäimien ohjelmoinnissa. Eli piti keksiä uusi ratkaisu ja keksinkin, että taloudessa on vanhoja videoiden kaukosäätimiä lähes samalla lay-out:illa, kuin mitä olisi tarvis digiboksin ohjaamiseen. Siispä tutkimaan ja hetken ihmeteltyäni, kytkettyäni IR-vastaanottopiirin avr:lle, että mitähän koodia se tuottaa(oli invertoitu tulossa, eli mielen vinksauttaminen kohdalleen hankaloitettua! :)
https://arduino-info.wikispaces.com/IR-RemoteControl
-selvisi, että molemmat ohjaimet tuottaa itse asiassa japani-koodia, jossa lähetetään
itse asiassa laitteen id(addr) ja tämän jälkeen komento 32 bittisenä numerona. Numerosta puolet sisältää samat tiedot invertoituna, eli on virheen havaitseminenkin mahdollista. Eli avr:lle koodi, joka näyttää bit-patternit koodista 32 bittisenä ja selvisi yllättäen, että lähettävät itse asiassa samoja "cmd" koodeja! Ainostaan addr-osa koodista on eri(totta kai, tarkoitushan on lähettää tiedot eri laitteille häiritsemättä muita).
https://github.com/z3t0/Arduino-IRremote/wiki/Types-of-IR-codes
Rakentelin siis avr:lle koodin, joka kuuntelee ensin IR-lähetyksen, sitten vaihtaa sen addr-osaan oikeat bitit ja lähettää sen uudelleen 3x. Ja nyt voin käyttää jälleen kaikkia kaken nappeja! Eli osittain hyvää säkää, kun ei tarvinnut keksiä, mitä toimimattomien nappien koodit mahtoivat olla.. kyllä senkin testaa, koska japanialaisessa kaukosäätimessä on eri koodeja 256 kappaletta. No, pitää tietysti toivoa, ettei kyseessä ole extended-moodin kaukosäädin.. sitten niitä on paljon.. irdb voi toki auttaa tässä.
31230
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

Voihan sitä käyttää kännykkääkin ohjaukseen. Ei tarvi viritellä.

Äänestä
  • Mikähän mahtaa olla palstan idea?

    Äänestä

Jatkokehittelin ideaa, ja nyt saan ladattua sarjaportin kautta irdb:stä (https://irdb.tk) koodit, joita lähettää.
IR-rx helpoin tapa toteuttaa on muuten käyttää esim 16 bittistä timer1:stä ja lukea ICR1 nastalta pulssien alas menevät reunat, joita on 34 kpl. Tämän jälkeen timeri on n. 1ms kohdalla ja koodin saa katki tutkimalla, koska se menee yli tuon loppukohdan jonkin verran. Timeria voi pyörittää hyvin CTC-moodissa, jolloin ylivuodon tapauksessa voi päivittää timeriin arvon, joka on jonkin verran yli tuon 0-1ms välisen ajan. Tällöin aloitusarvo laskurissa on aina järkevä, eikä tuota vahingossa spurious-koodeja, kun vastaanoton alkaessa nollaa laskurin.
Sopivasti skaalaamalla laskunopeutta saa tehtyä version, jossa laskurin arvolla mitattu bitin pituus on sellainen, että riittää ottaa ylin bitti. Formaatiksi siis tulee START 32bit_ir_koodi STOP. Eli koodin tulkintaa varten riittää 256-alkioinen taulukko id/addr kenttä, jolla tunnistetaan koodi omaksi.
IR-tx onnistuu PWM:n avulla taas helposti, koska signaali on moduloitu 38kHz kantoaaltoon. Kannattaa käydä katsomassa irdb:stä NEC1-koodia, ja muistaa, että arvot ovat laskuriarvoja pulssien kummallekin reunoille ja etumerkki kertoo signaalin tilan, arvot mikrosekunteina.
Ja voihan tätä käyttää omissa projekteissakin, joihin saa kaken käyttöön!

Äänestä

Kommentoi aloitusta


infrapunalla kirjoitti:

Kaukosäätimestä alkoi kadota näppäimiä ja tilalle tuli hankittua geneerinen ohjain, mutta
sen kanssa oli ongelmia joidenkin näppäimien ohjelmoinnissa. Eli piti keksiä uusi ratkaisu ja keksinkin, että taloudessa on vanhoja videoiden kaukosäätimiä lähes samalla lay-out:illa, kuin mitä olisi tarvis digiboksin ohjaamiseen. Siispä tutkimaan ja hetken ihmeteltyäni, kytkettyäni IR-vastaanottopiirin avr:lle, että mitähän koodia se tuottaa(oli invertoitu tulossa, eli mielen vinksauttaminen kohdalleen hankaloitettua! :)
https://arduino-info.wikispaces.com/IR-RemoteControl
-selvisi, että molemmat ohjaimet tuottaa itse asiassa japani-koodia, jossa lähetetään
itse asiassa laitteen id(addr) ja tämän jälkeen komento 32 bittisenä numerona. Numerosta puolet sisältää samat tiedot invertoituna, eli on virheen havaitseminenkin mahdollista. Eli avr:lle koodi, joka näyttää bit-patternit koodista 32 bittisenä ja selvisi yllättäen, että lähettävät itse asiassa samoja "cmd" koodeja! Ainostaan addr-osa koodista on eri(totta kai, tarkoitushan on lähettää tiedot eri laitteille häiritsemättä muita).
https://github.com/z3t0/Arduino-IRremote/wiki/Types-of-IR-codes
Rakentelin siis avr:lle koodin, joka kuuntelee ensin IR-lähetyksen, sitten vaihtaa sen addr-osaan oikeat bitit ja lähettää sen uudelleen 3x. Ja nyt voin käyttää jälleen kaikkia kaken nappeja! Eli osittain hyvää säkää, kun ei tarvinnut keksiä, mitä toimimattomien nappien koodit mahtoivat olla.. kyllä senkin testaa, koska japanialaisessa kaukosäätimessä on eri koodeja 256 kappaletta. No, pitää tietysti toivoa, ettei kyseessä ole extended-moodin kaukosäädin.. sitten niitä on paljon.. irdb voi toki auttaa tässä.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu