Articole similare

BobRemote - Telecomanda pentru PC

BobRemote permite controlul PC-ului cu orice telecomanda IR (Infra Rosu). Aplicatia care ruleaza pe PC, comunica cu modulul de receptie conectat la portul serial al calculatorului. Fiecare buton de pe telecomanda se poate asocia cu o serie de comenzi care pot fi executate cate una sau in ordine. In acest mod se pot simula tastatura si mouse-ul,se pot lansa aplicatii, trimite mesaje spre anumite fereste tinta, se pot controla aplicatii Windows (ex. Winamp,MediaPlayer,...),etc..

Caracteristici

  • Recunoaste majoritatea telecomenzilor IR de TV, VCR, Audio, TUNER, etc.
  • Conectare pe portul serial al PC-ului (RS-232, mufa 9 pini)
  • LED indicator al semnalului de telecomanda
  • Compatibil cu aplicatii Windows care lucreaza cu dispozitive similare (ex: BobRemote, Girder, PcRemote , IrAssistant,..)

Schema eletronica si PCB

BobRemote IR are doua componente pricipale: receptorul si telecomanda IR. Telecomanda este folosita de utilizator pentru a transmite semnale IR (infra-rosu) codificate. Receptorul, care este conectat la calculator pe unul din porturile seriale RS232, primeste semnale IR de la telecomanda, le decodifica si le transmite mai departe la calculator. Receptorul BobRemote este un sistem cu microcontroler. Sistemul are rol de conversie intre diferitele protocoale de comunicatie, folosite de telecomenzile IR, si protocolul RS232 folosit de calculator pentru comunicatia pe portul serial. Algoritmul de decodificare a codurilor IR este optimizat pentru protocolul RC5 sau variante ale acestuia, intalnite la majoritatea telecomenzilor IR.

Sistemul are 3 blocuri functionale: sursa de alimentare, receptorul IR si interfata RS232. Microcontrolerul folosit este de tip PIC12C509A sau PIC12F629 si foloseste un rezonator de 4MHz. Blocul de alimentare foloseste tensiunea de +9..12V a semnalului DTR al portului serial, pentru a obtine o tensiune de +5V pentru microcontroler si senzorul IR. Iesirea senzorului IR comanda si un LED, care indica prezenta semnalului IR de la telecomanda. Interfata cu portul serial are rol de convertor de semnal RS232-TTL, pentru protejarea microcontrolerului.

Pentru functionarea circuitului ca receptor IR, este necesar ca microcontrolerul sa fie programat cu firmware-ul (programul care ruleaza pe microcontroler) disponibil mai jos.

Pentru programare se poate folosi programatorul BobProg prezentat pe acest site.

Conform firmware-ului, la apasarea unui buton al telecomenzii, sistemul receptioneaza codul IR corespunzator, i-l decodifica si-l trimite la PC. Aplicatia care ruleaza pe PC, compara codul primit si daca apartine unei comenzi predefinite de utilizator, o executa.

Receptorul BobRemote IR este compatibil cu majoritatea aplicatilor Windows care lucreaza cu dispozitive similare (ex: BobRemote, Girder, PcRemote , IrAssistant, uICE, ...).

Performanta receptorului nu depinde de tipul de telecomanda folosit. Algoritmul de decodificare folosit de acest sistem asigura recunoasterea 100% a codurilor IR si nu incurca comenzile intre ele, spre deosebire de alte receptoare fara microcontroler care pot fi gasite pe web.

Download firmware

  •  (include firmware pentru PIC12C509A, schema electronica in format PDF)
  •  (include firmware pentru PIC12F629, schema electronica si cablaj in format PDF)

Receptor pentru Girder

Aceasta este o alta varianta de receptor pentru telecomanda IR, care functioneaza numai cu aplicatia Girder. Am modificat schema initala, proiectata de Igor Cesko, pentru a proteja portul serial al PC-ului si pentru a creste fiabilitatea circuitului.

Pentru a functiona cu aplicatia Girder, acest circuit are nevoie de plug-in-ul IgorPlug.dll.

Avantajul circuitului, in comparatie cu BobRemote IR, este pretul mai mic, deoarece nu se mai foloseste un microcontroler pt decodificarea semnalului IR. Rolul microcontrolerului este preluat insa de PC si implicit CPU-ul va fi folosit pentru decodificare.

Dezavantajele acestui circuit sunt mai multe: nu este compatibil cu toate aplicatiile de telecomanda pt PC (numai cu Girder), in comparatie cu BobRemote, recunoaste mai putine tipuri de telecomenzi. Insa cel mai mare dezavantaj este instabilitatea, recunoasterea gresita a comenzilor IR. Destul de des se intampla sa incurce comenzile intre ele.

Intregul circuit incape intr-o carcasa de mufa cu 9 pini pentru portul serial. Pentru a creste sensibilitatea la semnalul IR, senzorul IR poate fi conectat printr-un cablu astfel incat sa fie fixat in partea frontala a PC-ului, pe monitor de exemplu. In acest caz, condensatorul C2 de 100nF trebuie lipit cat mai aproape de senzorul IR.

comentarii

  • Andrei

    Am realizat circuitul cu microcontroler, dar nu functioneaza cu convertor USB-RS232 (nu am port serial la laptop).
    Ce trebuie modificat sa functioneze ?

    2011-11-16 21:27:17

    Raspunde

    • Radu

      Convertoarele USB-RS232 au tensiuni de iesire mai mici decat portul serial standard, iar dioda zenner de 5V e polarizata cu un curent prea mic.
      O solutie ar fi sa micsorezi rezistorul de 1K (R1), la 100-220 ohmi si/sau sa inlocuiesti dioda 1N4148 (D1) cu una de tip Schottky, pe care cade o tensiune mai mica (0.3V vs 0.7V).
      Daca ai acces direct la iesirea de 5V a convertorului USB (folosesti un cablu de date de telefon mobil cu PL-2303), atunci se poate elimna R1, D1, D2 si legi alimentarea circuitului direct la 5V de la convertorul USB.

      2011-11-16 21:50:40

      Raspunde

  • nicolae

    Buna
    Am realizat si eu acest montaj, mai mult ca sa vad daca functioneaza un programator. E primul PIC pe care il scriu, problema ca nu functioneaza montajul. Deci sa dau ceva explicatii.
    Mai am un montaj de acela simplu fara PIC care functioneaza cu girder - concluzia este ca girder functioneaza portul functioneaza,
    Am realizat acest montaj cu PIC, problema este ca nu am toate piesele, deci nu am montat inca Q1, LED si R4 (cred ca functioneaza si fara), in loc de dioda zener D2 si D3 am montat dioda zene dar de valoare 5V6 in loc de 5V1, nu gasesc. Tensiunea de alimentare este 4,8V in loc de 5V.
    Cam acestea ar fi datele problemei, am verificat senzorul infrarosu si primeste semnal. Picul l-am programat cu PICPgm si spune ca e corect incarcat. Si acum intrebarea: sa fie tensiunea de alimentare prea mica, diodele zener sau picul eventual softul.
    Ceva idei, solutii suntbinevenite.
    Nu sunt AS in electronica, asa ca sunt nevoit sa solicit ajutor sunt doar un mic pasionat.
    Ma multumesc anticipat !

    2012-04-17 21:56:26

    Raspunde

    • Radu

      ...sa fie tensiunea de alimentare prea mica, diodele zener sau picul eventual softul. Ceva idei, solutii suntbinevenite...

      Este posibil ca portul serial sa nu aiba destul curent pentru alimentarea circuitului. Se vedem intai daca functioneaza corect circuitul:
      1. Foloseste aplicatia SerialWatcher http://www.bobtech.ro/download/comunicatii/9-serialwatcher
      2. Debifeaza DTR si RTS
      3. Conecteaza circuitul la portul serial,9600bps, 8N1, in modul ASCII si deschide portul
      4. Bifeaza DTR si RTS, eventual redeschide portul. Ar trebui sa vezi mesajul "OK". Asta inseamna ca softul ruleaza pe microcontroler si poate comunica pe serial.
      5. Schimba modul de afisare in HEX si apasa butoane de la telecomanda (incearca mai multe tipuri de telecomenzi daca ai). Ar trebui ca la fiecare apasare sa-ti afiseze un grup de 6 bytes in hex. Asta inseamna ca si senzorul IR si partea de decodare functioneaza.
      6. Verifica setarile driverului in Girder, eventual da-mi detalii daca treci de pasii de mai sus.

      2012-04-17 22:45:23

      Raspunde

  • nicolae

    Multumesc foarte mult pentru raspunsul foarte promt.
    am incercat cu serial watcher si nu prea merge, in sensul ca, am montat Q1, led si R4, care nu erau montate, cand bifez DTR ledul clipeste, cand apas pe telecomanda ledul clipeste la fiecare apasare. Cu celalalt montaj mai simplu girder functioneaza, se executa comanda, cu acest montaj ledul clipeste la montaj dar la girder nu se activeaza bulina verde, deci portul de la pc functioneaza, girder functioneaza, telecomanda functioneaza. Cred ca e de vina Picul sau softul nu e incarcat corespunzator, o sa incerc sa il sterg si sa il rescriu cu alt soft de programare, mergand pe varianta ca softul postat e functional.

    2012-04-18 20:42:08

    Raspunde

    • Radu

      ...Cu celalalt montaj mai simplu girder functioneaza, se executa comanda, cu acest montaj ledul clipeste la montaj dar la girder nu se activeaza bulina verde, deci portul de la pc functioneaza, girder functioneaza, telecomanda functioneaza...

      Iesirea senzorului IR face LED-ul sa palpaie, nu programul din PIC. Plugin-ul sau driverul pt Girder folosit la circuitul fara PIC sigur NU functioneaza si la varianta cu PIC, aici trebuie alt plugin, ceva gen General Port Driver (nu stiu sigur care). Uita de Gider pana vedem daca functioneaza acest circuit, foloseste doar SerialWatched pt asta. Curent este daca se aprinde LED-ul si tensiunea ramane la 4.8V. Deci pote nu e programat corect PIC-ul. Ce PIC folosesti si cu care din cele doua variante de soft l-ai programat ? Ambele sunt testate si functionale.

      2012-04-19 09:38:50

      Raspunde

      • nicolae

        ...Cu celalalt montaj mai simplu girder functioneaza, se executa comanda, cu acest montaj ledul clipeste la montaj dar la girder nu se activeaza bulina verde, deci portul de la pc functioneaza, girder functioneaza, telecomanda functioneaza...

        Iesirea senzorului IR face LED-ul sa palpaie, nu programul din PIC. Plugin-ul sau driverul pt Girder folosit la circuitul fara PIC sigur NU functioneaza si la varianta cu PIC, aici trebuie alt plugin, ceva gen General Port Driver (nu stiu sigur care). Uita de Gider pana vedem daca functioneaza acest circuit, foloseste doar SerialWatched pt asta. Curent este daca se aprinde LED-ul si tensiunea ramane la 4.8V. Deci pote nu e programat corect PIC-ul. Ce PIC folosesti si cu care din cele doua variante de soft l-ai programat ? Ambele sunt testate si functionale.


        Nicolae
        Multumesc inca o data ca incerci sa ma ajuti.
        Am uitat esentialul, picul este PIC 12 F 629, incarcat cu bobremote v2. Programatorul este de aici JMD - programator pentru microcontrolere, deci e primul PIC pe care incerc sa il scriu. La scrierea picului a cerut sa schimbe osccal si am bifat NO, poate e de aici, poate ca e dus picul ca am incercat sa il mai scriu de cateva ori si a dat eroare. O alta problema este ca la mine in acest super oras nu gasesc nimic, deci trebuie sa ma deplasez la Cluj sa cumpar alt pic sa incerc si sunt aproximativ 100km. Nu prea merita pentru un pic, asa ca pana mai am drum pe acolo ma mai joc cu acest pic. O sa mai incerc sa il rescriu, undeva este o mica problema, ca doar schema e simpla, dar asta mai spre seara ca acum sunt la munca.

        2012-04-19 12:05:44

        Raspunde

  • nicolae

    Va multumesc ca incercati sa ma ajutati in realizarea acestui montaj, cu scuzele de rigoare fac o observatie pe care doar acum am vazut-o, respectiv schema de pe aceasta pagina difera de schema din fisierul atasat bobremote v2.zip (sunt alti pini conectati si in alta parte la portul serial). Care dintre scheme e functionala, sau sunt functionale ambele scheme cu acelasi soft pentru PIC ???

    2012-04-19 12:36:27

    Raspunde

    • Radu

      ...Care dintre scheme e functionala, sau sunt functionale ambele scheme cu acelasi soft pentru PIC ???

      Schema din v2 e pentru softul de PIC12F629. Pentru PIC12C509A se foloseste schema si softul pentru v1. Ti-am trimis pe mail codul sursa in asamblare la programul pentru PIC12F629.

      2012-04-19 21:36:36

      Raspunde

    • Radu

      La programare, bifeaza PWRT, MCLR si oscilator XT. La intrebarea cu "...vrei sa rescri OSCCAL" alegi DA.

      2012-04-19 21:42:09

      Raspunde

  • nicolae

    Va multumesc foarte mult pentru ajutor, am modificat schema conform variantei 2 si instructiunilor date si acum totul functioneaza ferfect, asta era problema nu am observat ca sunt doua variante in functie de pic. O zi buna tuturor si multe realizari.

    2012-04-20 08:59:14

    Raspunde

    • Radu

      Va multumesc foarte mult pentru ajutor, .. acum totul functioneaza perfect...

      Ma bucur ca ai rezolvat.
      Te invit sa publici pe site propriile tale realizari, in genul celor existente, cu imagini si ceva text din care sa invete si altii.
      E simplu, iti faci un cont, adaugi un articol nou si de acolo e ca in Office. Te ajut unde nu te descurci. Cand e gata un articol, trimiti un mail si-l facem public.

      O idee pentru BobRemote: acum ca ai codul sursa, modifica-l astfel incat pe pinul ramas liber sa comande ceva (ex: statia audio on/off) cand detecteaza o anume secventa de la telecomanda, fara a avea nevoie de PC (trebuie doar sa fie alimentat).

      2012-04-20 22:24:05

      Raspunde

  • nicolae

    Multumesc inca o data pentru ajutor, ma bucur foarte mult de acest montaj, deoarece e primul montaj realizat cu PIC si functioneaza.
    Urmatorul proiect o sa fie un frecventmetru cu PIC, o sa vedem ce o sa iasa.

    2012-04-21 16:36:14

    Raspunde