SlideShare a Scribd company logo
1 of 32
lirc или домашний медиацентр легко Бутько А.В. [email_address]
Введение Для многих из нас компьютер давное уже заменил все аудио и видео устройства в доме.  У большинства из представителей професии, в том числе и у вашего покорного слуги, в доме отсутствует  даже телевизор.  Но согласитесь, общение с компьютером как с медиацентром происходит совсем другим образом нежелисдругими устройствами. Хоть способ сей нам привычен и понятен,он все же не очень удобен.
Введение Удобно было бы использовать для управления медиацентром пульт. Проблему сию частично решают беспроводные мыши и клавиатуры, но и они громоздки. На проприетарном рынке имеется предложение от Logitech и  Microsoft. Цена вопроса начинается где-то с 10$ .
Введение Хотя цена сия могла бы исчисляться копейками. Пробежавшись по форумам я ожидаемо узрел в адрес Microsoft Remote Control кучу фраз «Не работает!» И ведь для создания медиацентра вовсе не нужен Windows Media, есть масса решений для Linux ― их рассмотрим позже. В массовом сознании устойчиво сложился стериотип, что вся мультимедия живет под форточками, а в Linux это черезвычайно сложно  и не вполне красиво. Стериотипы нужно ломать!
Введение В Linux имеется мощный инструмент работы с ПДУ lirc  (Linux Infrared Remote Control). В первую очередь для работы с пультом требуется ИК приемник. Подойдет практически любой ИК порт или TV тюнер (список поддерживаемых устройств можно найти  на сайте проекта  http://lirc.org/html/table.html ). Однако, если такого устройства нет под рукой нет никакой необходимости бежать его покупать. ИК приемник, позволяющий работать с любым пультом, можно изготовить самому. Для этого потребуется лишь инфракрасный датчик от телевизора или любой подобный, расчитанный на напряжение 5 вольт.
Схемотехника Для подключения датчика к компьютеру потребуется 1-я ножка последовательного порта DCD ― Carrier Detect. Для питания схемы необходимо подать 5 вольт на вывод питания датчика.
Схемотехника Питание можно подать непосредственно с порта ― с 7-го выаода RTS ― Request to Send. Для этого понадобится диод для отсечки обратного тока и стабилизатор напряжения на 5 вольт.
Схемотехника Такое решение является наиболее простым и доступным, однако COM порт в наше время уже исчезающий вид, посему более привлекательными выглядят USB приемники. Для его изготовления потребуется микроконтроллер.
Схемотехника
Схемотехника Приемник базируется на микроконтроллере PIC 18F2455, который может работать с USB портом и является меньшей и более дешевой версией 18F2550. Семейство 18F можно программировать при помощи универсального PIC-программатора. Периферийные устройства для USB требуют внешнюю частоту 20 МГц (Q1, C5-6), для чего используется конденсатор 220 мкФ. Устройство питается от шины USB, и требует дополнительного источника питания.
Схемотехника Программное обеспечение написано на С с использованием свободной демонстрационной версии компилятора C18 от Microchip. Использовалась версию 2.3 стека протоколов для USB от Microchip, чтобы создать последовательный USB порт, использующий уже установленные во многих системах драйверы.  Реализация протокола UIR/IRMAN/IRA/CTInfra/Hollywood+ просто отвечает ‘OK’ на букву ‘R’. Это должно удовлетворять всем требованиям подтверждения связи любой реализации этого протокола.
LIRC Большинство дистрибутивов на сегодняшний день уже имеют в своих репозиториях lirc, остальные могут скачать пакет с сайта проекта  http://lirc.org . Процесс установки пакета стандартен для своего дистрибутива. При установке из исходников имеется возможность выбора конкретного драйвера.
LIRC В состав пакета входит: драйверы различных устройств (модули ядра) демон  lircd , преобразующий ИК сигналы, полученные от драйвера, в стандартные сообщения, которые прикладные программы могут получить через сокет демон  lircmd , получающий сообщения от lircd и имитирующий мышку в X Windows irexec   - запуск программ по нажатию кнопки ДУ irxeven  t - посылка X Windows сообщения по нажатию кнопки ДУ irpty   - псевдотерминал, запускает программу и имитирует нажатие клавиш клавиатуры вспомогательные программы для отладки и настройки  irrecord   - утилита для записи сегналов пульта и создания lircd.conf irw   - читает сообщения с сокета lircd и выдает на stdout; в качестве параметра можно указать имя сокета  ircat   - отладочная программа для конфигурационного файла ~/.lircrc; в качестве параметра указывается имя программы (точнее имя описывающей её секции); по нажатию кнопки на пульте ДУ ircat выводит на stdout строку, привязанную к этой кнопке mode2  , smode2, xmode2 - осциллоскоп для инфракрасных сигналов irsend   - посылает команды на инфракрасные приемники (если позволяет оборудование)
Конфигурация Полсе подключения ИК приемника к последовательному порту порт необходимо освободить  setserial /dev/ttyS0 uart none , а затем загрузить модуль ядра  lirc_serial . Если все было сделано правильно  lsmod | grep lirc  покажет что-то вроде: lirc_serial  12020  1  lirc_dev  10548  1 lirc_serial
Конфигурация А  dmesg  выведет: lirc_dev: IR Remote Control driver registered, at major 61  kernel: lirc_dev: lirc_register_plugin: sample_rate: 0  kernel: lirc_serial: auto-detected active low receiver
Конфигурация Теперь можно проверить, работает ли приемник  вызвыв  mode2  и понажимав клавиши на пульте. При нажатии клавиш будут возникать строки: ~$ mode2 space 3078511 pulse 9025 space 4417 pulse 663 space 454
Конфигурация Если при нажатии кнопок появляются эти символы, значит приемник исправно работает. Файл  /etc/lirc/hardware.conf  должен содержать следующие строки: LOAD_MODULES=true  MODULES="lirc_serial" LIRCD_CONF="/etc/lirc/lircd.conf"
Крнфигурация Готовую конфигурацию для lircd можно найти на  http://lirc.sourceforge.net/remotes/  Однако, если нужного пульта там нет, можно научить lirc понимать его сигналы при помощи  irrecord irrecord -d /dev/lirc0 ~/lircd.conf
Конфигурация Далее необходимо нажимать на клавиши, чтобы программа могла изучить последовательности сигналов пульта. Затем вводится имя кнопки, после чего указанная конпка нажимается на пульте.  Главное при создании конфиuf пульта не медлить, если программа не дождется от вас действий в течении 5 сек, то она оборвет запись. После создания конфигурации lirc следует перезавпустить.
Конфигурация Проверить правильность можно утилитой  irw # irw 00000000768910ef 00 KEY_PLAY SONY 000000007689c03f 00 KEY_FF SONY 00000000768940bf 00 KEY_REV SONY 00000000768940bf 01 KEY_POWER SONY 00000000768909f6 00 KEY_RIGHT SONY
Конфигурация Все настройки команд хранятся в файле  ~/.lircrc или /etc/lirc/lircrc , имеющий следующий формат: begin button = (имя кнопки) prog = (имя приложения) config = (команда приложения) repeat = (повторять действие, когда удерживается кнопка, 0 - не повторять) end
Конфигурация prog  = имя программы, к которой относится данный блок remote  = имя приемника (по умолчанию - *, т.е. любой) button  = имя клавиши repeat  = число (что делать, если клавиша нажата несколько раз; по умолчанию - 0, т.е. игнорировать повторы, иначе учитывать каждое n-е нажатие) delay  = число (по умолчанию - 0; сколько повторений пропустить прежде чем начать обработку директивы repeat) config  = строка, передаваемая приложению (если задано несколько директив config, то значение каждой строки передается приложению по очереди при нажатии той же клавиши; непечатные символы записываются как в C -  или FF)
Конфигурация mode  = переход в указанный режим (если имя режима совпадает с именем приложения, то оно переходит в данный режим при запуске; действия по переключениям режимов выполняются для всех клиентских программ независимо от значения prog (и похоже, что независимо от текущего режима); все приложения рекомендуется запускать одновременно, чтобы избежать рассогласования режимов) flags  =  startup_mode  (при запуске приложение сразу переходит в указанный в директиве режим) mode  (покинуть режим; только для блоков внутри поименованного режима) once  (только в сочетании с директивой mode; строка config передается приложению только при входе и выходе из режима) quit  (прекратить разбор блоков)
Конфигурация В нем можно настроить вызов  irexec  и выполнить любую команду, также многие мультимкдийные приложения (Amarok, Mplayer) имеют интерфейс работы с  lirc. В одном блоке может быть задана последовательность директив remote и button, в этом случае для передачи строки приложению требуется последовательное нажатие указанных кнопок (удобно для задания пароля для poweroff). Если приложение может управляться событиями X Windows, то интерфейс между Lirc и приложением осуществляется с помощью утилиты irxevent (в качестве параметра может задаваться имя файла конфигурации; irxevent надо запускать в начале сеанса вместе с другими lirc-приложениями)
ELISA
ELISA Медиацентр написанный на языке Python, что позволяет легко расширять его плагинами. Есть плагины для просмотра видео с YouTube, фотографий с flickr, Picasa, прослушивания потокового радио. Т.к. базируется на GStreamer, то есть поддержка большинства популярных медиа форматов. Имеется нтеграция с LIRC для управления пультом, можно настроить и использовать тачскрин. Настройка происходит в основном в конфигурационном файле, через меню можно лишь менять темы. Для первоначальной настройки достаточно лишь добавить адреса каталогов в которых хранятся медиа файлы в секции  Данный медиацентр имеет огромное количество настроек, все они находятся в конфигурационном файле.
XBMC
XBMC Интересный медиацентр, изначально написанный под xbox, но позже портированный на Linux, Mac OS X, Windows. Имеет множество красивых тем, и большое множество готовых скриптов. Скрипты представляют собой Python код и WindowXML. Среди скриптов есть как простые плагины для сервисов, так и довольно сложние приложения, например почтовый клиент, разнообразные игры. Есть поддержка DVD. Управление клавиатурой, мышкой (т.к. курсор используется свой и довольно большой, пользоваться мышкой довольно удобно), также можно использовать LIRC. Все настройки находятся в меню, и их довольно много, кроме настроек через стандартное меню есть веб интерфейс, однако использование его ― дело неблагодарное. Изобилует багами и имеет очень серьезные проблемы со стабильностью.
MythTV
MythTV Пожалуй, лучший медиацентр для linux. Умеет работать с tv-тюнером, вести записи передач, работает с потоковым видео, радио, поддерживает ленты новостей и многое другое Необходима база данных MySQL. Управление с клавиатур и через LIRC, управления мышью нет. Над конфигурацией придется попотеть, но оно того стоит! Поддерживает распределение на множество серверов, кодирование видео, имеет огромное количество плагинов.
MythTV В обычной конфигурации MythTV состоит из следующих компонентов: MythBrowser   Оболочка MythTV MythDVD   Воспроизведение DVD и запись MythGallery   Галерея фотографий MythTV MythGame   Игровой эмулятор ROM MythMusic   Воспроизведение и запись музыки MythNews   Поддержка RSS-потоков MythPhone   Поддержка SIP MythVideo   Поддержка воспроизведения видео, не связанного с MythTV MythWeather   Модуль вывода прогноза погоды MythWeb   Модуль web-браузера MythTV
Итог MythTV Windows MCE Открытый исходный код. Закрытый код. Нужно покупать, Можно менять кодеки  кодеки нельзя менять Поддержка программного и аппаратного кодирования Нет поддержки программного кодирования Запись в DivX и MPEG2 Нельзя записывать в DivX или MPEG2 Работает на Linux и MacOS, переносится под Windows Работает только под Windows Очень низкие системные требования Ощутимые системные требования Поддерживает плагины третьих сторон Не поддерживает плагины Гибкая и масштабируемая сетевая архитектура (сервер/клиенты) Простая поддержка сети TCP/IP Можно записывать, перекодировать и передавать видео Записывать и воспроизводить можно только локально

More Related Content

What's hot

Гирлянда для программистов
Гирлянда для программистовГирлянда для программистов
Гирлянда для программистовGetDev.NET
 
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Mikhail Kurnosov
 
Стресс тестирование процессора plug-компьютера
Стресс тестирование процессора plug-компьютераСтресс тестирование процессора plug-компьютера
Стресс тестирование процессора plug-компьютераSQALab
 
описание процессор спутник
описание процессор спутникописание процессор спутник
описание процессор спутникАндрей Марин
 
Реализация Voip в системах Samsung OfficeServ
Реализация Voip в системах Samsung OfficeServРеализация Voip в системах Samsung OfficeServ
Реализация Voip в системах Samsung OfficeServEugene Yakhno
 
Базовая настройка Ipecs e mg80
Базовая настройка Ipecs e mg80Базовая настройка Ipecs e mg80
Базовая настройка Ipecs e mg80Eugene Yakhno
 
HighLoad++ 2018 Высоконагруженная распределенная система управления современн...
HighLoad++ 2018 Высоконагруженная распределенная система управления современн...HighLoad++ 2018 Высоконагруженная распределенная система управления современн...
HighLoad++ 2018 Высоконагруженная распределенная система управления современн...Vadim Podolniy
 
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...Mikhail Kurnosov
 
1 процессорные серверы
1 процессорные серверы1 процессорные серверы
1 процессорные серверыMikhail Ostroverkhiy
 
Базовая настройка систем Samsung OfficeServ
Базовая настройка систем Samsung OfficeServБазовая настройка систем Samsung OfficeServ
Базовая настройка систем Samsung OfficeServEugene Yakhno
 
01. Вводная лекция
01. Вводная лекция01. Вводная лекция
01. Вводная лекцияKamlachPV
 
11. ЦАП STM32
11. ЦАП STM3211. ЦАП STM32
11. ЦАП STM32KamlachPV
 
Корпоративные Voip сети в системах Samsung OfficeServ
Корпоративные Voip сети в системах Samsung OfficeServКорпоративные Voip сети в системах Samsung OfficeServ
Корпоративные Voip сети в системах Samsung OfficeServEugene Yakhno
 
Модуль доверенной загрузки "Соболь". Новая версия флагманского продукта
Модуль доверенной загрузки "Соболь".  Новая версия флагманского продукта  Модуль доверенной загрузки "Соболь".  Новая версия флагманского продукта
Модуль доверенной загрузки "Соболь". Новая версия флагманского продукта Security Code Ltd.
 
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...Mikhail Kurnosov
 
IVR и Voice Mail сервисы в системах Samsung OfficeServ
IVR и Voice Mail сервисы в системах Samsung OfficeServIVR и Voice Mail сервисы в системах Samsung OfficeServ
IVR и Voice Mail сервисы в системах Samsung OfficeServEugene Yakhno
 

What's hot (20)

Teltonika workbench
Teltonika workbenchTeltonika workbench
Teltonika workbench
 
Гирлянда для программистов
Гирлянда для программистовГирлянда для программистов
Гирлянда для программистов
 
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
 
Стресс тестирование процессора plug-компьютера
Стресс тестирование процессора plug-компьютераСтресс тестирование процессора plug-компьютера
Стресс тестирование процессора plug-компьютера
 
описание процессор спутник
описание процессор спутникописание процессор спутник
описание процессор спутник
 
Реализация Voip в системах Samsung OfficeServ
Реализация Voip в системах Samsung OfficeServРеализация Voip в системах Samsung OfficeServ
Реализация Voip в системах Samsung OfficeServ
 
Базовая настройка Ipecs e mg80
Базовая настройка Ipecs e mg80Базовая настройка Ipecs e mg80
Базовая настройка Ipecs e mg80
 
HighLoad++ 2018 Высоконагруженная распределенная система управления современн...
HighLoad++ 2018 Высоконагруженная распределенная система управления современн...HighLoad++ 2018 Высоконагруженная распределенная система управления современн...
HighLoad++ 2018 Высоконагруженная распределенная система управления современн...
 
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
 
1 процессорные серверы
1 процессорные серверы1 процессорные серверы
1 процессорные серверы
 
12. spi
12. spi12. spi
12. spi
 
Базовая настройка систем Samsung OfficeServ
Базовая настройка систем Samsung OfficeServБазовая настройка систем Samsung OfficeServ
Базовая настройка систем Samsung OfficeServ
 
02. gpio
02. gpio02. gpio
02. gpio
 
01. Вводная лекция
01. Вводная лекция01. Вводная лекция
01. Вводная лекция
 
11. ЦАП STM32
11. ЦАП STM3211. ЦАП STM32
11. ЦАП STM32
 
Корпоративные Voip сети в системах Samsung OfficeServ
Корпоративные Voip сети в системах Samsung OfficeServКорпоративные Voip сети в системах Samsung OfficeServ
Корпоративные Voip сети в системах Samsung OfficeServ
 
Модуль доверенной загрузки "Соболь". Новая версия флагманского продукта
Модуль доверенной загрузки "Соболь".  Новая версия флагманского продукта  Модуль доверенной загрузки "Соболь".  Новая версия флагманского продукта
Модуль доверенной загрузки "Соболь". Новая версия флагманского продукта
 
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
 
Theme 07
Theme 07Theme 07
Theme 07
 
IVR и Voice Mail сервисы в системах Samsung OfficeServ
IVR и Voice Mail сервисы в системах Samsung OfficeServIVR и Voice Mail сервисы в системах Samsung OfficeServ
IVR и Voice Mail сервисы в системах Samsung OfficeServ
 

Viewers also liked (8)

Tiroteo en el Empire State
Tiroteo en el Empire StateTiroteo en el Empire State
Tiroteo en el Empire State
 
Usability za pinezki
Usability za pinezkiUsability za pinezki
Usability za pinezki
 
Teleshakespeare Power Point
Teleshakespeare Power PointTeleshakespeare Power Point
Teleshakespeare Power Point
 
Como contar una historia
Como contar una historiaComo contar una historia
Como contar una historia
 
Graficos ppt
Graficos pptGraficos ppt
Graficos ppt
 
Cátedra Datos UBA - Legales Cursada NTI 2012
Cátedra Datos UBA - Legales Cursada NTI 2012Cátedra Datos UBA - Legales Cursada NTI 2012
Cátedra Datos UBA - Legales Cursada NTI 2012
 
Real - Virtual - Las narrativas en el narrowcasting
Real - Virtual - Las narrativas en el narrowcastingReal - Virtual - Las narrativas en el narrowcasting
Real - Virtual - Las narrativas en el narrowcasting
 
Marketing Essentials for Startup Teams
Marketing Essentials for Startup TeamsMarketing Essentials for Startup Teams
Marketing Essentials for Startup Teams
 

Similar to Lirc или домашний медиацентр

Занятие № 7. Общая характеристика и понятия Windows. Файловые системы ОС семе...
Занятие № 7. Общая характеристика и понятия Windows. Файловые системы ОС семе...Занятие № 7. Общая характеристика и понятия Windows. Файловые системы ОС семе...
Занятие № 7. Общая характеристика и понятия Windows. Файловые системы ОС семе...Aibek9
 
UAFPUG6 - PureMVC
UAFPUG6 - PureMVCUAFPUG6 - PureMVC
UAFPUG6 - PureMVCmandrew182
 
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha DmitryUafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha DmitryMax Rozdobudko
 
Sencha Complete: Kharkiv JS #1
Sencha Complete: Kharkiv JS #1Sencha Complete: Kharkiv JS #1
Sencha Complete: Kharkiv JS #1Illya Klymov
 
TMPA-2013 Smirnov
TMPA-2013 SmirnovTMPA-2013 Smirnov
TMPA-2013 SmirnovIosif Itkin
 
загрузка Linux
загрузка Linuxзагрузка Linux
загрузка LinuxPaul Serikov
 
C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.Igor Shkulipa
 
Стек протоколов для IoT. Пример использования SNMP
Стек протоколов для IoT. Пример использования SNMPСтек протоколов для IoT. Пример использования SNMP
Стек протоколов для IoT. Пример использования SNMPIntersog
 
01 готовимся к экзамену по информатике. теория. задачи 2002
01  готовимся к экзамену по информатике. теория. задачи 200201  готовимся к экзамену по информатике. теория. задачи 2002
01 готовимся к экзамену по информатике. теория. задачи 2002dfdkfjs
 
Обратная разработка бинарных форматов с помощью Kaitai Struct
Обратная разработка бинарных форматов с помощью Kaitai StructОбратная разработка бинарных форматов с помощью Kaitai Struct
Обратная разработка бинарных форматов с помощью Kaitai StructPositive Hack Days
 
Олег Антонян
Олег АнтонянОлег Антонян
Олег АнтонянForkConf
 
IoT Protocols #iotconfua
IoT Protocols #iotconfuaIoT Protocols #iotconfua
IoT Protocols #iotconfuaAndy Shutka
 
MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik
MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik
MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik Naim Shafiev
 
Отладка и оптимизация многопоточных OpenMP-программ
Отладка и оптимизация многопоточных OpenMP-программОтладка и оптимизация многопоточных OpenMP-программ
Отладка и оптимизация многопоточных OpenMP-программTatyanazaxarova
 

Similar to Lirc или домашний медиацентр (20)

Кратко о Linux
Кратко о LinuxКратко о Linux
Кратко о Linux
 
Занятие № 7. Общая характеристика и понятия Windows. Файловые системы ОС семе...
Занятие № 7. Общая характеристика и понятия Windows. Файловые системы ОС семе...Занятие № 7. Общая характеристика и понятия Windows. Файловые системы ОС семе...
Занятие № 7. Общая характеристика и понятия Windows. Файловые системы ОС семе...
 
Net framework
Net frameworkNet framework
Net framework
 
UAFPUG6 - PureMVC
UAFPUG6 - PureMVCUAFPUG6 - PureMVC
UAFPUG6 - PureMVC
 
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha DmitryUafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
 
PureMVC and Papervision
PureMVC and PapervisionPureMVC and Papervision
PureMVC and Papervision
 
Sencha Complete: Kharkiv JS #1
Sencha Complete: Kharkiv JS #1Sencha Complete: Kharkiv JS #1
Sencha Complete: Kharkiv JS #1
 
TMPA-2013 Smirnov
TMPA-2013 SmirnovTMPA-2013 Smirnov
TMPA-2013 Smirnov
 
загрузка Linux
загрузка Linuxзагрузка Linux
загрузка Linux
 
C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.
 
Стек протоколов для IoT. Пример использования SNMP
Стек протоколов для IoT. Пример использования SNMPСтек протоколов для IoT. Пример использования SNMP
Стек протоколов для IoT. Пример использования SNMP
 
01 готовимся к экзамену по информатике. теория. задачи 2002
01  готовимся к экзамену по информатике. теория. задачи 200201  готовимся к экзамену по информатике. теория. задачи 2002
01 готовимся к экзамену по информатике. теория. задачи 2002
 
Обратная разработка бинарных форматов с помощью Kaitai Struct
Обратная разработка бинарных форматов с помощью Kaitai StructОбратная разработка бинарных форматов с помощью Kaitai Struct
Обратная разработка бинарных форматов с помощью Kaitai Struct
 
Олег Антонян
Олег АнтонянОлег Антонян
Олег Антонян
 
IoT Conf UA 2016
IoT Conf UA 2016IoT Conf UA 2016
IoT Conf UA 2016
 
IoT Protocols #iotconfua
IoT Protocols #iotconfuaIoT Protocols #iotconfua
IoT Protocols #iotconfua
 
MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik
MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik
MUM Построение сети доступа на основе технологий DHCP + Radius на Mikrotik
 
11.pptx
11.pptx11.pptx
11.pptx
 
Отладка и оптимизация многопоточных OpenMP-программ
Отладка и оптимизация многопоточных OpenMP-программОтладка и оптимизация многопоточных OpenMP-программ
Отладка и оптимизация многопоточных OpenMP-программ
 
типы и классификация
типы и классификациятипы и классификация
типы и классификация
 

More from Транслируем.бел

Руководство по видео, трансляциям и премьерам (Youtube 2020)
Руководство по видео, трансляциям и премьерам (Youtube 2020)Руководство по видео, трансляциям и премьерам (Youtube 2020)
Руководство по видео, трансляциям и премьерам (Youtube 2020)Транслируем.бел
 
Корпоративный новый год онлайн
Корпоративный новый год онлайнКорпоративный новый год онлайн
Корпоративный новый год онлайнТранслируем.бел
 
Руководство для малого и среднего бизнеса по использованию цифровых решений
Руководство для малого и среднего бизнеса по использованию цифровых решенийРуководство для малого и среднего бизнеса по использованию цифровых решений
Руководство для малого и среднего бизнеса по использованию цифровых решенийТранслируем.бел
 
Онлайн-трансляции в соцсетях
Онлайн-трансляции в соцсетяхОнлайн-трансляции в соцсетях
Онлайн-трансляции в соцсетяхТранслируем.бел
 
Как организовать трансляцию в Facebook
Как организовать трансляцию в FacebookКак организовать трансляцию в Facebook
Как организовать трансляцию в FacebookТранслируем.бел
 
Что сделать, чтобы сто раз все не переделывать
Что сделать, чтобы сто раз все не переделыватьЧто сделать, чтобы сто раз все не переделывать
Что сделать, чтобы сто раз все не переделыватьТранслируем.бел
 
Когда сказать нет. Арсений Кравченко
Когда сказать нет. Арсений КравченкоКогда сказать нет. Арсений Кравченко
Когда сказать нет. Арсений КравченкоТранслируем.бел
 
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособие
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособиеSMM учебник. Как продвигать банк в социальных сетях. Наглядное пособие
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособиеТранслируем.бел
 
методы монетизации интернет проектов
методы монетизации интернет проектовметоды монетизации интернет проектов
методы монетизации интернет проектовТранслируем.бел
 
Эффективный маркетинг в Instagram
Эффективный маркетинг в InstagramЭффективный маркетинг в Instagram
Эффективный маркетинг в InstagramТранслируем.бел
 

More from Транслируем.бел (20)

Медицинские трансляции
Медицинские трансляцииМедицинские трансляции
Медицинские трансляции
 
Vinteo
VinteoVinteo
Vinteo
 
Руководство по видео, трансляциям и премьерам (Youtube 2020)
Руководство по видео, трансляциям и премьерам (Youtube 2020)Руководство по видео, трансляциям и премьерам (Youtube 2020)
Руководство по видео, трансляциям и премьерам (Youtube 2020)
 
Корпоративный новый год онлайн
Корпоративный новый год онлайнКорпоративный новый год онлайн
Корпоративный новый год онлайн
 
Unofficial guide to vmix by streamgeeks
Unofficial guide to vmix by streamgeeksUnofficial guide to vmix by streamgeeks
Unofficial guide to vmix by streamgeeks
 
Руководство для малого и среднего бизнеса по использованию цифровых решений
Руководство для малого и среднего бизнеса по использованию цифровых решенийРуководство для малого и среднего бизнеса по использованию цифровых решений
Руководство для малого и среднего бизнеса по использованию цифровых решений
 
Sennheiser ew100 g2
Sennheiser ew100 g2Sennheiser ew100 g2
Sennheiser ew100 g2
 
Sony mcs 8m
Sony mcs 8mSony mcs 8m
Sony mcs 8m
 
Сравнение поколений Y и Z
Сравнение поколений Y и ZСравнение поколений Y и Z
Сравнение поколений Y и Z
 
Онлайн-трансляции в соцсетях
Онлайн-трансляции в соцсетяхОнлайн-трансляции в соцсетях
Онлайн-трансляции в соцсетях
 
Как организовать трансляцию в Facebook
Как организовать трансляцию в FacebookКак организовать трансляцию в Facebook
Как организовать трансляцию в Facebook
 
The ultimate guide to facebook live for your event
The ultimate guide to facebook live for your eventThe ultimate guide to facebook live for your event
The ultimate guide to facebook live for your event
 
Guide to facebook live
Guide to facebook liveGuide to facebook live
Guide to facebook live
 
Comdi player
Comdi playerComdi player
Comdi player
 
Что сделать, чтобы сто раз все не переделывать
Что сделать, чтобы сто раз все не переделыватьЧто сделать, чтобы сто раз все не переделывать
Что сделать, чтобы сто раз все не переделывать
 
Когда сказать нет. Арсений Кравченко
Когда сказать нет. Арсений КравченкоКогда сказать нет. Арсений Кравченко
Когда сказать нет. Арсений Кравченко
 
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособие
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособиеSMM учебник. Как продвигать банк в социальных сетях. Наглядное пособие
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособие
 
методы монетизации интернет проектов
методы монетизации интернет проектовметоды монетизации интернет проектов
методы монетизации интернет проектов
 
Belarus internet users discovery
Belarus internet users discoveryBelarus internet users discovery
Belarus internet users discovery
 
Эффективный маркетинг в Instagram
Эффективный маркетинг в InstagramЭффективный маркетинг в Instagram
Эффективный маркетинг в Instagram
 

Lirc или домашний медиацентр

  • 1. lirc или домашний медиацентр легко Бутько А.В. [email_address]
  • 2. Введение Для многих из нас компьютер давное уже заменил все аудио и видео устройства в доме. У большинства из представителей професии, в том числе и у вашего покорного слуги, в доме отсутствует даже телевизор. Но согласитесь, общение с компьютером как с медиацентром происходит совсем другим образом нежелисдругими устройствами. Хоть способ сей нам привычен и понятен,он все же не очень удобен.
  • 3. Введение Удобно было бы использовать для управления медиацентром пульт. Проблему сию частично решают беспроводные мыши и клавиатуры, но и они громоздки. На проприетарном рынке имеется предложение от Logitech и Microsoft. Цена вопроса начинается где-то с 10$ .
  • 4. Введение Хотя цена сия могла бы исчисляться копейками. Пробежавшись по форумам я ожидаемо узрел в адрес Microsoft Remote Control кучу фраз «Не работает!» И ведь для создания медиацентра вовсе не нужен Windows Media, есть масса решений для Linux ― их рассмотрим позже. В массовом сознании устойчиво сложился стериотип, что вся мультимедия живет под форточками, а в Linux это черезвычайно сложно и не вполне красиво. Стериотипы нужно ломать!
  • 5. Введение В Linux имеется мощный инструмент работы с ПДУ lirc (Linux Infrared Remote Control). В первую очередь для работы с пультом требуется ИК приемник. Подойдет практически любой ИК порт или TV тюнер (список поддерживаемых устройств можно найти на сайте проекта http://lirc.org/html/table.html ). Однако, если такого устройства нет под рукой нет никакой необходимости бежать его покупать. ИК приемник, позволяющий работать с любым пультом, можно изготовить самому. Для этого потребуется лишь инфракрасный датчик от телевизора или любой подобный, расчитанный на напряжение 5 вольт.
  • 6. Схемотехника Для подключения датчика к компьютеру потребуется 1-я ножка последовательного порта DCD ― Carrier Detect. Для питания схемы необходимо подать 5 вольт на вывод питания датчика.
  • 7. Схемотехника Питание можно подать непосредственно с порта ― с 7-го выаода RTS ― Request to Send. Для этого понадобится диод для отсечки обратного тока и стабилизатор напряжения на 5 вольт.
  • 8. Схемотехника Такое решение является наиболее простым и доступным, однако COM порт в наше время уже исчезающий вид, посему более привлекательными выглядят USB приемники. Для его изготовления потребуется микроконтроллер.
  • 10. Схемотехника Приемник базируется на микроконтроллере PIC 18F2455, который может работать с USB портом и является меньшей и более дешевой версией 18F2550. Семейство 18F можно программировать при помощи универсального PIC-программатора. Периферийные устройства для USB требуют внешнюю частоту 20 МГц (Q1, C5-6), для чего используется конденсатор 220 мкФ. Устройство питается от шины USB, и требует дополнительного источника питания.
  • 11. Схемотехника Программное обеспечение написано на С с использованием свободной демонстрационной версии компилятора C18 от Microchip. Использовалась версию 2.3 стека протоколов для USB от Microchip, чтобы создать последовательный USB порт, использующий уже установленные во многих системах драйверы. Реализация протокола UIR/IRMAN/IRA/CTInfra/Hollywood+ просто отвечает ‘OK’ на букву ‘R’. Это должно удовлетворять всем требованиям подтверждения связи любой реализации этого протокола.
  • 12. LIRC Большинство дистрибутивов на сегодняшний день уже имеют в своих репозиториях lirc, остальные могут скачать пакет с сайта проекта http://lirc.org . Процесс установки пакета стандартен для своего дистрибутива. При установке из исходников имеется возможность выбора конкретного драйвера.
  • 13. LIRC В состав пакета входит: драйверы различных устройств (модули ядра) демон lircd , преобразующий ИК сигналы, полученные от драйвера, в стандартные сообщения, которые прикладные программы могут получить через сокет демон lircmd , получающий сообщения от lircd и имитирующий мышку в X Windows irexec - запуск программ по нажатию кнопки ДУ irxeven t - посылка X Windows сообщения по нажатию кнопки ДУ irpty - псевдотерминал, запускает программу и имитирует нажатие клавиш клавиатуры вспомогательные программы для отладки и настройки irrecord - утилита для записи сегналов пульта и создания lircd.conf irw - читает сообщения с сокета lircd и выдает на stdout; в качестве параметра можно указать имя сокета ircat - отладочная программа для конфигурационного файла ~/.lircrc; в качестве параметра указывается имя программы (точнее имя описывающей её секции); по нажатию кнопки на пульте ДУ ircat выводит на stdout строку, привязанную к этой кнопке mode2 , smode2, xmode2 - осциллоскоп для инфракрасных сигналов irsend - посылает команды на инфракрасные приемники (если позволяет оборудование)
  • 14. Конфигурация Полсе подключения ИК приемника к последовательному порту порт необходимо освободить setserial /dev/ttyS0 uart none , а затем загрузить модуль ядра lirc_serial . Если все было сделано правильно lsmod | grep lirc покажет что-то вроде: lirc_serial 12020 1 lirc_dev 10548 1 lirc_serial
  • 15. Конфигурация А dmesg выведет: lirc_dev: IR Remote Control driver registered, at major 61 kernel: lirc_dev: lirc_register_plugin: sample_rate: 0 kernel: lirc_serial: auto-detected active low receiver
  • 16. Конфигурация Теперь можно проверить, работает ли приемник вызвыв mode2 и понажимав клавиши на пульте. При нажатии клавиш будут возникать строки: ~$ mode2 space 3078511 pulse 9025 space 4417 pulse 663 space 454
  • 17. Конфигурация Если при нажатии кнопок появляются эти символы, значит приемник исправно работает. Файл /etc/lirc/hardware.conf должен содержать следующие строки: LOAD_MODULES=true MODULES="lirc_serial" LIRCD_CONF="/etc/lirc/lircd.conf"
  • 18. Крнфигурация Готовую конфигурацию для lircd можно найти на http://lirc.sourceforge.net/remotes/ Однако, если нужного пульта там нет, можно научить lirc понимать его сигналы при помощи irrecord irrecord -d /dev/lirc0 ~/lircd.conf
  • 19. Конфигурация Далее необходимо нажимать на клавиши, чтобы программа могла изучить последовательности сигналов пульта. Затем вводится имя кнопки, после чего указанная конпка нажимается на пульте. Главное при создании конфиuf пульта не медлить, если программа не дождется от вас действий в течении 5 сек, то она оборвет запись. После создания конфигурации lirc следует перезавпустить.
  • 20. Конфигурация Проверить правильность можно утилитой irw # irw 00000000768910ef 00 KEY_PLAY SONY 000000007689c03f 00 KEY_FF SONY 00000000768940bf 00 KEY_REV SONY 00000000768940bf 01 KEY_POWER SONY 00000000768909f6 00 KEY_RIGHT SONY
  • 21. Конфигурация Все настройки команд хранятся в файле ~/.lircrc или /etc/lirc/lircrc , имеющий следующий формат: begin button = (имя кнопки) prog = (имя приложения) config = (команда приложения) repeat = (повторять действие, когда удерживается кнопка, 0 - не повторять) end
  • 22. Конфигурация prog = имя программы, к которой относится данный блок remote = имя приемника (по умолчанию - *, т.е. любой) button = имя клавиши repeat = число (что делать, если клавиша нажата несколько раз; по умолчанию - 0, т.е. игнорировать повторы, иначе учитывать каждое n-е нажатие) delay = число (по умолчанию - 0; сколько повторений пропустить прежде чем начать обработку директивы repeat) config = строка, передаваемая приложению (если задано несколько директив config, то значение каждой строки передается приложению по очереди при нажатии той же клавиши; непечатные символы записываются как в C - или FF)
  • 23. Конфигурация mode = переход в указанный режим (если имя режима совпадает с именем приложения, то оно переходит в данный режим при запуске; действия по переключениям режимов выполняются для всех клиентских программ независимо от значения prog (и похоже, что независимо от текущего режима); все приложения рекомендуется запускать одновременно, чтобы избежать рассогласования режимов) flags = startup_mode (при запуске приложение сразу переходит в указанный в директиве режим) mode (покинуть режим; только для блоков внутри поименованного режима) once (только в сочетании с директивой mode; строка config передается приложению только при входе и выходе из режима) quit (прекратить разбор блоков)
  • 24. Конфигурация В нем можно настроить вызов irexec и выполнить любую команду, также многие мультимкдийные приложения (Amarok, Mplayer) имеют интерфейс работы с lirc. В одном блоке может быть задана последовательность директив remote и button, в этом случае для передачи строки приложению требуется последовательное нажатие указанных кнопок (удобно для задания пароля для poweroff). Если приложение может управляться событиями X Windows, то интерфейс между Lirc и приложением осуществляется с помощью утилиты irxevent (в качестве параметра может задаваться имя файла конфигурации; irxevent надо запускать в начале сеанса вместе с другими lirc-приложениями)
  • 25. ELISA
  • 26. ELISA Медиацентр написанный на языке Python, что позволяет легко расширять его плагинами. Есть плагины для просмотра видео с YouTube, фотографий с flickr, Picasa, прослушивания потокового радио. Т.к. базируется на GStreamer, то есть поддержка большинства популярных медиа форматов. Имеется нтеграция с LIRC для управления пультом, можно настроить и использовать тачскрин. Настройка происходит в основном в конфигурационном файле, через меню можно лишь менять темы. Для первоначальной настройки достаточно лишь добавить адреса каталогов в которых хранятся медиа файлы в секции Данный медиацентр имеет огромное количество настроек, все они находятся в конфигурационном файле.
  • 27. XBMC
  • 28. XBMC Интересный медиацентр, изначально написанный под xbox, но позже портированный на Linux, Mac OS X, Windows. Имеет множество красивых тем, и большое множество готовых скриптов. Скрипты представляют собой Python код и WindowXML. Среди скриптов есть как простые плагины для сервисов, так и довольно сложние приложения, например почтовый клиент, разнообразные игры. Есть поддержка DVD. Управление клавиатурой, мышкой (т.к. курсор используется свой и довольно большой, пользоваться мышкой довольно удобно), также можно использовать LIRC. Все настройки находятся в меню, и их довольно много, кроме настроек через стандартное меню есть веб интерфейс, однако использование его ― дело неблагодарное. Изобилует багами и имеет очень серьезные проблемы со стабильностью.
  • 30. MythTV Пожалуй, лучший медиацентр для linux. Умеет работать с tv-тюнером, вести записи передач, работает с потоковым видео, радио, поддерживает ленты новостей и многое другое Необходима база данных MySQL. Управление с клавиатур и через LIRC, управления мышью нет. Над конфигурацией придется попотеть, но оно того стоит! Поддерживает распределение на множество серверов, кодирование видео, имеет огромное количество плагинов.
  • 31. MythTV В обычной конфигурации MythTV состоит из следующих компонентов: MythBrowser Оболочка MythTV MythDVD Воспроизведение DVD и запись MythGallery Галерея фотографий MythTV MythGame Игровой эмулятор ROM MythMusic Воспроизведение и запись музыки MythNews Поддержка RSS-потоков MythPhone Поддержка SIP MythVideo Поддержка воспроизведения видео, не связанного с MythTV MythWeather Модуль вывода прогноза погоды MythWeb Модуль web-браузера MythTV
  • 32. Итог MythTV Windows MCE Открытый исходный код. Закрытый код. Нужно покупать, Можно менять кодеки кодеки нельзя менять Поддержка программного и аппаратного кодирования Нет поддержки программного кодирования Запись в DivX и MPEG2 Нельзя записывать в DivX или MPEG2 Работает на Linux и MacOS, переносится под Windows Работает только под Windows Очень низкие системные требования Ощутимые системные требования Поддерживает плагины третьих сторон Не поддерживает плагины Гибкая и масштабируемая сетевая архитектура (сервер/клиенты) Простая поддержка сети TCP/IP Можно записывать, перекодировать и передавать видео Записывать и воспроизводить можно только локально