Portál AbcLinuxu, 2. května 2025 05:46

LIRC snadno a rychle

28.12.2005 22:43 | Přečteno: 11543× | Linux | poslední úprava: 29.3.2007 18:34

Další moje mini How-To, tentokráte zprovozníme LIRC :), i když to není nikterak složité...

Hardware

Použijeme nejlevnější a nejjednodušší variantu přijímače. Připojuje se na sériový port a jeho stavbu snad zvládne každý kdo někdy držel v ruce pájku.

Seznam použitých součástek:
Položka Popis Cena
Konektor Canon 9 pin - samice 5 Kč
Krytka na konektor Kryt Canon 9 8 Kč
Stabilizátor 78L05 5 Kč
Rezistor 4k7 1 Kč
Dioda 1N4148 1 Kč
Kondenzátor 4,7μF 2,50 Kč
Infračervený přijímač SFH5110-36 31,50 Kč
Kablík cokoli co má tři vodiče, libovolné délky (do 5m) ?
Celková cena 54 Kč
Schéma zapojení:
Schéma

Realizaci zapojení nechám na každém z vás, všechny součástky lze napájet přímo na konektor a schovat do krytky a na konec kablíku pak připájet čidlo, tím je konstrukce hotová.

Dálkové ovládání lze použít libovolné, mám vyzkoušeno, že použitý snímač spolupracuje i s ovladači na jiných frekvencích, i odrazem o zeď.

Software

Prvním krokem bude stažení LIRC v aktuální verzi, nyní je to 0.8.0

Archiv rozbalíme a z konzole spustíme

./configure
přejdeme do
Driver configuration
zvolíme položku
Home-brew (16x50 UART compatible serial port)
zvolíme port ve kterém chceme náš hardware používat a potrvrdíme
v sekci Driver specific Options necháme zaškrtnuto jen
Sotware generated carrier
nyní zvolíme
Save configuration & run configure
následně
make
a jako superuživatel
make install

Test sestaveného hardware

Nyní přichází ten magický okamžik, zjitíme zda jsme pájeli správně :). Připojíme náš snímač do správného COM portu, a jako superuživatel provedeme následující kroky

setserial /dev/ttyS1 uart none
modprobe lirc_dev
modprobe lirc_serial
mode2 -d /dev/lirc0
Teď by se po stisku tlačítka dálkového ovladače měly vypisovat hodnoty snímaného signálu, pokud chceme hezké grafické znázornění tak nám poslouží (opět jej musíme spustit jako superuživatel)
xmode2 -d /dev/lirc0

/etc/lircd.conf

Tento soubor popisuje použité dálkové ovládání, kódy tlačítek a jejich označení, délku kódu atd. Vygenerujeme jej pomocí utilitky obsažené v lirc, spustíme ji příkazem (opět jako superuživatel)

irrecord -d /dev/lirc0 /etc/lircd
Postupujeme podle zobrazených instrukcí. Když máme nakonfigurovaná všechna tlačítka vyskoušíme, zda ovladač funguje správně. Do konzole jako root zadáme následujcí příkazy
lircd -d /dev/lirc0
irw
nyní po stisku tlačítka dálkového ovládání uvidíme kód tlačítka, počet opakování, popis tlačítka a název dálkového ovladače.

Emulace myši

Lirc nabízí i možnost na dálkovém ovladači emulovat myš. Její nastavení je popsáno v souboru /etc/lircmd.conf. Může vypadat například takto

#
# lircmd config file
#

PROTOCOL IntelliMouse
#PROTOCOL MouseSystems

# ACCELERATOR start max multiplier

ACCELERATOR 2 30 5

ACTIVATE * set
DEACTIVATE * +10
DEACTIVATE * 0

MOVE_N  * 2
MOVE_NE * 3
MOVE_E  * 6
MOVE_SE * 9
MOVE_S  * 8
MOVE_SW * 7
MOVE_W  * 4
MOVE_NW * 1
MOVE_IN * stop
MOVE_OUT * play

BUTTON1_CLICK * sleep
BUTTON1_CLICK * 5
BUTTON2_CLICK * timer
BUTTON3_CLICK * random

BUTTON1_TOGGLE * tuner_band
BUTTON2_TOGGLE * tuner_mode
BUTTON3_TOGGLE * geq

# BUTTONx_CLICK, BUTTONx_UP, BUTTONx_DOWN are also possible
Za hvězdičkou se nachází název tlačítka přiřazeného k dané funkci. Pro fungování v X je potřeba myš přidat do xorg.conf
Section "InputDevice"
    Identifier  "Mouse_lirc"
    Driver      "mouse"
    Option      "Protocol"      "IntelliMouse"
    Option      "Device"        "/dev/lircm"
    Option "SendCoreEvents"
    Option "Buttons" "5"
    Option "ZAxisMapping" "4 5"
EndSection
Je třeba ji ještě uvést v sekci "ServerLayout"
InputDevice "Mouse_lirc" "SendCoreEvents"

Startovací skript

#!/bin/bash
#/etc/rc.d/rc.lirc
#vogo

start() {
   echo "Starting lirc..."
   setserial /dev/ttyS1 uart none       #vypnuti serioveho portu
   /sbin/modprobe lirc_dev              #natazeni modulu
   /sbin/modprobe lirc_serial           #natazeni modulu
   /usr/local/sbin/lircd -d /dev/lirc0  #spusteni demona
   /usr/local/sbin/lircmd               #spusteni demona emulace mysi
   chmod 666 /dev/lircd                 #rw pro vsechny
}

stop() {
   echo "Stoping lirc..."
   /bin/killall -w lircmd               #zabiti demona
   /bin/killall -w lircd                #zabiti demona
   /sbin/rmmod lirc_serial              #vyrazeni modulu z jadra
   /sbin/rmmod lirc_dev                 #vyrazeni modulu z jadra
   setserial /dev/ttyS1 uart 16550A     #zapnuti portu
}

restart() {
   stop
   sleep 2
   start
}

case "$1" in
'start')
  start
  ;;
'stop')
  stop
  ;;
'restart')
  restart
  ;;
*)
  echo "usage $0 start|stop|restart"

pokud nechcete používat emulovanou myš, smažte příslušné řádky. Tím by byla konfigurace software hotova, a teď už jen stačí přiřadit správne funkce tlačítkům ovladače.

Nastavení činností k tlačítkům ovladače

Přiřazení lze zařídit buď v souboru ~/.lircrc, jeho základní struktura vypadá takto
begin
        remote = <remote control definition>
        button = <remote control button>
        prog =  <program to get input>
        config = <program parameter>
        repeat = <0 = ignore held down key, 1 = repeat action while key down>
end
Osobně ale používám velmi šikovnou aplikaci z KDE irkick, s jejíž pomocí lze pohodlně nadefinovat libovolnou akci, vybrat dcop příkazy a dokonce definovat režimy ovladače.

Stále se ptáte k čemu je to dobré?

No vlastně skoro k ničemu, pominu-li ty chvíle kdy pohodlně sedíte v gauči, posloucháte hudbu a chcete si zopakovat ještě jednou tu samou empétrojku :) a spousta podobných situací.

       

Hodnocení: 100 %

        špatnédobré        

Obrázky

LIRC snadno a rychle, obrázek 1 LIRC snadno a rychle, obrázek 2

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (3) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

29.12.2005 17:02 pholie | skóre: 4 | Košice
Rozbalit Rozbalit vše Re: LIRC snadno a rychle
Odpovědět | Sbalit | Link | Blokovat | Admin
Super navod, diky vyskusam to.
26.4.2007 12:42 yogiman3
Rozbalit Rozbalit vše Re: LIRC snadno a rychle
vazne je to super :d
6.9.2007 17:29 cert
Rozbalit Rozbalit vše Re: LIRC snadno a rychle
Odpovědět | Sbalit | Link | Blokovat | Admin
Bylo by mozne ten nakupni seznam trochu upresnit? Myslim, ze jsem schopen to zbastlit, i kdyz tomu vubec nerozumim, ale nejsem schopen koupit kondenzator, kdyz jich maji v GME tisic druhu a jeden je napr. SMD 4,7uF / 16V a druhy elyt 4,7uF/100V. Predpokladam, ze 100V je blbost, ale to neznamena, ze ten prvni je dobry. Muzete to prosim trochu doplnit, aby to byl schopen poskladat i prumerne zrucny laik?
vogo avatar 6.9.2007 17:38 vogo | skóre: 34 | blog: "Skládat papír"
Rozbalit Rozbalit vše Re: LIRC snadno a rychle
no myslím, že není moc co upřesňovat, rezistor je ten obyč malý uhlíkový, stabilizátor je podle čísla jeden jediný, snad jen ten kondík, v mém případě elektrolyt na 50V prostě rozměrově co nejmenší, aby se vešel do krytky
Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
4.10.2007 16:00 cert
Rozbalit Rozbalit vše Re: LIRC snadno a rychle
Na tom kondenzatoru je "+" ten kratsi nebo delsi pin?
vogo avatar 4.10.2007 16:24 vogo | skóre: 34 | blog: "Skládat papír"
Rozbalit Rozbalit vše Re: LIRC snadno a rychle
na pouzdře je označen záporný pól pruhem, jinak jestli se nepletu tak ta delší nožička je záporný pól
Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
28.2.2008 21:01 Krakonoš | skóre: 17 | Nová Ves v Horách
Rozbalit Rozbalit vše Re: LIRC snadno a rychle
Koupil bych radiální elyt na cca 12V (stačilo by 6V, já mám třeba na sériáku 5V). Regulátor není často potřeba (já ho nepotřebuji například :-)). SMD nekupuj, to jsou malí šmejdi na fakt malé desky. Pomalu se to nedá pájet a blbě se s tím manipuluje (i když to samozřejmě jde).

Vím, že je to malinko out-dated, ale kdyby někdo se pouštěl do stavby,.. :-)
7.2.2010 19:34 GeBu | skóre: 27 | blog: zápisky
Rozbalit Rozbalit vše Re: LIRC snadno a rychle
Odpovědět | Sbalit | Link | Blokovat | Admin
Nemáte někdo tip na stavbu nějakého HW pro USB - seriových portů nějak ubývá :(.
1.2.2011 15:28 GeBu | skóre: 27 | blog: zápisky
Rozbalit Rozbalit vše Re: LIRC snadno a rychle
Odpovědět | Sbalit | Link | Blokovat | Admin

Já jsem použil UPRAVENÝ IR přijímač na sériový port Igora Ceska (ten s přijímačem SFH 5110) a v EZK v Olomouci mě to vyšlo nějak přes 30 Kč.

Úprava spočívá v tom, že datový výstup přijímače se nepřipojuje na pin 6, ale na pin 1 - pak je možné použít návod, který je tady a není třeba lirc nijak nastavovat. Pokud by se pak používal Girder, tak je potřeba nastavení portu přepnout z DSR na DCD (což je výchozí nastavení lirc).

2.2.2011 11:58 GeBu | skóre: 27 | blog: zápisky
Rozbalit Rozbalit vše Re: LIRC snadno a rychle
Vlastně jsem použil ještě trochu jiné schéma a to úpravu s vyšší citlivostí s tím přepojením pinu 6 na pin 1.
3.2.2011 00:04 GeBu | skóre: 27 | blog: zápisky
Rozbalit Rozbalit vše Re: LIRC snadno a rychle
Odpovědět | Sbalit | Link | Blokovat | Admin

Netušíte někdo, co a jak zkonfigurovat, abych mohl sériový IR přijímač připojit pomocí převodníku USB-RS232 do USB (na notebooku)?

Jak jsem psal v jiném příspěvku, tak mám upravenou verzi sériového přijímače od Igora Češka, který mi se sériovým portem chodí a kabel-převodník Gembird UAS111 s čipem prolific 2303, který má podporu v jádře - připojí se jako /dev/ttyUSB0.

3.2.2011 16:35 GeBu | skóre: 27 | blog: zápisky
Rozbalit Rozbalit vše Re: LIRC snadno a rychle

Výpis dmesg pro ten kabel-převodník:

[ 2049.360055] usb 7-1: new full speed USB device using uhci_hcd and address 2

[ 2049.536609] usbcore: registered new interface driver usbserial

[ 2049.536623] USB Serial support registered for generic

[ 2049.536672] usbcore: registered new interface driver usbserial_generic

[ 2049.536674] usbserial: USB Serial Driver core

[ 2049.542799] USB Serial support registered for pl2303

[ 2049.543623] pl2303 7-1:1.0: pl2303 converter detected

[ 2049.555619] usb 7-1: pl2303 converter now attached to ttyUSB0

[ 2049.555639] usbcore: registered new interface driver pl2303

[ 2049.555641] pl2303: Prolific PL2303 USB to serial adaptor driver

Hlavním problémem je, že nejde natáhnout modul lirc_serial:

sudo modprobe lirc_serial

FATAL: Error inserting lirc_serial (/lib/modules/2.6.35-25-generic/kernel/drivers/staging/lirc/lirc_serial.ko): Invalid argument

3.2.2011 22:38 GeBu | skóre: 27 | blog: zápisky
Rozbalit Rozbalit vše Re: LIRC snadno a rychle

RTFM a to konkrétně bod 4.

Can I use a home-brew LIRC receiver with a Serial to USB adapter?

No, this won't work. But there is a project working on a dedicated USB transceiver or you can connect an IR receiver to a FTDI based USB chip. Using an Irman with USB adapter should work though.

Ještě další dobré komentáře:

http://web.archiveorange.com/archive/v/Xn95HKsmlAOtPVQdf0V1, kde se rozebírá, že továrně vyráběné (včetně Irman) fungovat budou, ale ty jednoduché domácí výroby ne.

http://www.mythtvtalk.com/need-help-converting-serial-ir-usb-ir-6134/, což je podobná diskuse a z ní cituji: My understanding is that it won't work. The IR reciever isn't actually using the real RS232 protocol that the port was designed for. Hence, when you use the converter, the signals don't get converted properly (it's not getting what it's expecting).

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.