================================= Come usare lo USB IR Toy con LIRC ================================= :CreationDate: 2012-10-08 10:49:07 :Id: SW/usb-ir-toy-lirc :tags: - software - configs Mi son comprato un `telecomando universale a forma di cacciavite sonico `_ (il sito è orrendo e difficile da navigare…). Chiaramente voglio poterci controllare il mio PC! Per farlo, mi serviva un ricevitore IR e `LIRC `_. Visto che mi piace complicarmi la vita, ho comprato lo `USB Infrared Toy `_ da `Dangerous Prototypes `_, che permette di inviare e ricevere qualsiasi sequenza di impulsi a infrarossi. Convincere i tre pezzi (telecomando, Toy, LIRC) a funzionare assieme è stato più complicato di quel che avrei gradito, per cui descrivo qua quel che ho fatto, per aiutare i prossimi. Aggiornare il firmware ====================== Il vostro IR Toy ha probabilmente una versione vecchia del firmware. Se usate Windows, le `instruzioni fornite `_ potrebbero anche funzionare; altrimenti, bisogna studiarci un po'. I sorgenti del programma ``fw_update`` che potete ottenere da quelle pagine (o dal `repository Subversion `_) non compilano neppure (si sono "scordati" di includere metà degli header che servono), e quando riuscite a compilarli, vanno in segfault. L'utente "JessH" dei forum di Dangerous Prototypes `ha postato una versione che funziona `_ (`questa è la patch `_ se la volete vedere, dovrebbe applicarsi alla versione SVN). .. note:: Sì, lo so che sto puntando ai sorgenti per il 18F24J50, ma il chip sul IR Toy dice "18F2550". Che ci posso fare, così funziona! Dopo averlo compilato, sono finalmente riuscito ad aggiornare il firmware alla versione 22:: $ echo '$' > /dev/ttyACM0 $ ./fw_update -e -w -v -m all -vid 0x04D8 -pid 0xFD0B \ -ix ~/src/dangerous-prototypes-open-hardware/USB_IR_Toy/package/firmware/USBIRToy.v22.hex Stacca, ri-attacca, e siamo pronti. Patch per LIRC ============== .. note:: ``lircd`` 0.10 supporta nativamente lo "USB IR Toy", usando il driver ``irtoy`` LIRC può usare lo IR Toy in modalità compatibile ``irman``, ma a me serviva la funzione completa di invio segnali, per programmare il cacciavite. Ho trovato `una patch per aggiungere il supporto completo `_, grazie a Peter Kooiman. Se usate Gentoo, potete aggiungere `la mia overlay `_ e installare `LIRC già modificato `_. Configurare LIRC ================ Questo dovrebbe essere scritto da qualche parte, ma non sono riuscito a trovare usa spiegazione usabile, per cui mostro quel che ho fatto: 1) mi son procurato un set completo di codici Philips RC-5 dal `repository di telecomandi LIRC `_ 2) ho assegnato, arbitrariamente, i primi 39 codici ai 13 gesti su 3 banchi di memoria del cacciavite:: begin remote name sonic # snip begin codes b1_tap_top 0x1000 b1_tap_left 0x1001 #etc etc Programmare il telecomando ========================== Ho scritto `un semplice programma Perl per inviare i codici IR `_. Eseguitelo mentre ``lircd`` è in esecuzione, e con ``irsend`` nel path. Quando dice ``Ready to send $something``, premete "enter" per inviare il codice, ``a`` per tornare al codice precedente (utile se il cacciavite non l'ha ricevuto), ``n`` per saltare al codice successivo senza inviare nulla. Ho messo il cacciavite in modalità programmazione, ho eseguito i 39 gesti uno alla volta, e li ho programmati tutti. LIRC ora usa nomi sensati per tutti e 39 i gesti. Usarlo ====== Finalmente, ho ri-compilato `vlc `_ col supporto LIRC, e ho scritto `un |lircrc| per vlc `_. A questo punto, posso controllare ``vlc`` col cacciavite sonico! .. |lircrc| replace:: ``~/.lircrc``