Na stiahnutie

... z Mekovej tvorby a mnoho iného

Diaľkové ovládanie PC cez USB ľubovoľným DO

Toto zariadenie umožňuje ovládať PC cez diaľkové ovládanie a zvládol som ho postaviť s minimálnym úsilím. Použitý je mikrokontrolér Atmel ATmega8A a pár ďalších polovodičov. Pripája sa cez USB a vo Windows sa tvári ako štandardné HID zariadenie. Na strane PC som použil Girder s pluginom, ktorý sa nachádza v balíčku na stiahnutie. Cez Girder sa dá jednoducho namapovať tlačidlá diaľkového ovládania na akcie, ktoré sa majú vykonať v PC. Funguje to s takmer hocijakým diaľkovým ovládačom, čo je výhoda oproti mnohým iným riešeniam, na ktoré som na internete narazil.

POZOR: Girder s DLL pluginom už nefungujú, viď nižšie.

OFICIÁLNA STRÁNKA - jej obsah je aj v balíčku, ktorý tu ponúkam na stiahnutie.

Ak si chceš postaviť toto zariadenie sám, odporúčam ti stiahnuť si balíček odo mňa a nie z pôvodnej stránky - v mojom balíčku je adresár "Solution", kde sú zdrojáky pre mikrokontrolér upravené tak, aby išli skompilovať v AtmelStudio 9. Pôvodné hádzali samé chyby. Na miestach, ktoré som upravoval, som nechal komentár "// by MEK". Nastavil som tam natvrdo typ MCU ATmega8A a frekvenciu 12 MHz. Na programovanie som použil AVR Dragon.

K oficiálnej dokumentácii by som dodal ešte zopár mojich postrehov, dôležitých vecí, ktoré tam nie sú uvedené a musel som ich zistiť sám (zastaralé informácie sú preškrtnuté, môžu sa hodiť ak to chceš prevádzkovať na zastaralom systéme):

Atmel Studio 9:

  • Fuses: Low 0xFF, High 0xC9 (zvoliť najrýchlejší Ext. Crystal/Oscillator)
  • CKOPT zaškrtnúť (treba kvôli frekvencii 12 MHz)

Hardware:

  • USB káblik: červená: 5V, čierna: GND, zelená: D+, biela: D-
  • ZD1 je v schéme 3V6, ale dal som 4V7, bez ZD1 mi to fungovalo len v USB 2.0 porte (v USB 3.0 porte Windows hlásil chybu zariadenia)
  • ZD2 je v schéme 3V6, ale dal som 3V3, funguje to - ale bez ZD2 Windows hlási zlyhanie zariadenia
  • IR prijímač môže byť TSOP1736 alebo hocijaký ekvivalent

Software:

  • Na prvotné vyskúšanie poslúži aplikácia Demo_Source\Releases\DLL_Demo_Console.exe - po jej spustení zvoliť hociktorý z dvoch ponúkaných režimov a potom Settings. Otvorí sa okno, v ktorom sa dajú sledovať prijímané kódy z diaľkového ovládania (v oficiálnej dokumentácii sú screenshoty - modré okno)
  • DLL súbor môže byť použitý ako plugin pre Girder, aj EventGhost, aj DVBViewer, a dokonca sa dá použiť aj vo vlastnej aplikácii (v balíčku je demo vo viacerých programovacích jazykoch - cool!) - len škoda, že nie je sprístupnený zdroják toho DLL súboru
  • Použi program MekIR, ktorý som sám naprogramoval. Nahrádza Girder a beží pod modernými operačnými systémami, narozdiel od Girderu. Nájdeš ho v balíčku na stiahnutie z tejto stránky (link je dole).

Girder:

  • Nakopírovať DLL súbor do adresára Plugins v Girderi (pozor, nie do Hardware, ani do Software, ale rovno do Plugins) a premenovať ho napr. na usbir.dll - pôvodný názov je asi veľmi dlhý a potom ho Girder nevie nájsť
  • Volume Change ovplyvňuje v moderných OS len hlasitosť Girdera, čo je nanič. Treba Girder spustiť v režime kompatibility XP SP3, vtedy Volume Change ovláda globálnu hlasitosť, tak ako má
  • Girder na stiahnutie - posledná free verzia je 3.2.9 - DLL plugin s ňou funguje bez problémov

POZOR: Girder s DLL pluginom už nefungujú, prestali fungovať po aktualizácii na Windows 10 verziou 1809. DLL plugin hádže chybu "Ungultige Zeigeroperation" a diaľkové ovládanie nereaguje. Napísal som vlastnú aplikáciu, ktorá nahrádza Girder. Volá sa MekIR a je v balíčku na stiahnutie.

Pozri si video, ako to funguje:

Riešenie s programom MekIR používam veľmi často a funguje u mňa k mojej spokojnosti už mnoho rokov.

Komentáre (6)

:} lol :D =) :o) :B 8-D :P :-)) :-< ;) :-/ :( :.( O.o ;o) :-* 8-| :-| 8)
Mek   2. februára 2019 14:50
Maybe... but I didn't dig into source code of the AVR very much to support this... I thought it was already supported (but never actually used it). I might look into it sometime in the future when I have time :)
bladem2003   2. februára 2019 14:03
you could not solve it like this?

if ircode = 0x1234 then
while ircode = 0
send key
wend
endif
Mek   2. februára 2019 13:54
I don't know why, but that didn't work for me. When I kept the button pressed, the code that was received from the device, always had flags = 0 (meaning there was no repetition). So there was no way to get the information about the button being pressed and not yet released.
bladem2003   2. februára 2019 13:44
It is possible that when pressing a button on the remote control, the command is sent until you release the button?

that is helpful if you scroll with it. You do not have to press and release the button several times
Mek   2. februára 2019 13:12
Hi,
I wasn't using the power-on function so I didn't program it (I also disabled it in the IR receiver module I built).
bladem2003   2. februára 2019 13:10
hallo,
how can you program the PowerOn function with MekIR?

Toplist