XBMC – безкоштовне ПЗ медіаплеєр для організації HTPC (домашнього театру) на базі персонального комп’ютера. У даній статті представлено проект контролера для XBMC додатків. Основні функції контролера – Забезпечення управління за допомогою ПДК, відображення інформації на LCD-екранчику, а також управління за допомогою енкодера.

Даний контролер розроблявся для останньої (на даний момент) версії XBMC 10.1 «Dharma», але я думаю зможе працювати і з більш пізніми версіями. Зі старими версіями контролер працювати не зможе, тому що розроблявся для XBMC – JSON RPC.

Серцем пристрою є мікроконтролер PIC18F4550 фірми Microchip. Він використовується для забезпечення зв’язку по USB-інтерфейсу, виведення даних на LCD екран, прийом і обробку інформації від пульта дистанційного управління та інших пристроїв введення (наприклад енкодер або кнопки). Контролер працює як USB HID пристрій.

Цей розроблявся для операційних систем Windows і тестувався під Windows XP і трохи під Windows XP Embedded. У прошивці МК PIC реалізована підтримка Sony SIRC 20bit ІК протоколу і прикладені ini файли сконфігуровані для пульта управління Sony RMT-V408.

Проект передбачає два software модуля:
1. Прошивка для PIC18F4550. Ісходник написаний на MikroC версії 4.60
2. Додаток під Windows. Написано на Delphi 7 і працює як служба Windows.

Перед тим, як почати працювати з цим пристроєм, користувач повинен налаштувати додаток для коректної роботи з ПДУ і програмою. Конфігураційний файл «mcci.ini» знаходиться в папці \ Controller \ release.

Цей файл містить три основні ini-секції: «xbmc», «device» і «keymap».

«xbmc»Містить три параметри:

Address: IP адреса на якому працює XBMC (у більшості випадків встановлено в 127.0.0.1)

Port: Порт, присвоєний для XBMC веб-інтерфейсу

Location: Повний шлях і ім’я виконуваного файлу

«device»Секція містить 2 параметри пов’язаних з USB контролером. Якщо використовується стандартна прошивка, то це VID = 33824 і PID = 1. Якщо ви в прошивці МК поміняли дані значення, то і не забудьте їх поміняти в даному ini-файлі.

«keymap»Використовується для відповідності клавіш ПДУ з інтерфейсом медіаплеєра XBMC. Більш докладний опис дивіться нижче:

Типи команд можуть бути наступними:

1 – посилає подія WM_KEYDOWN додатком XBMC. У параметрі має зазначатися ASCII значення клавіші, яку необхідно надіслати

2 – посилає подія WM_CHAR додатком XBMC. У параметрі вказується символьний код клавіші.

3 – преопределенность дії, що залежать від наступних параметрів:
1) збільшення гучності
2) зменшення гучності
3) повернутися на домашній екран XBMC
4) вимкнути звук (mute)

Підключення USB-контролера

У представленій до проекту друкованій платі передбачено 2 зовнішніх коннектора. J1 використовується для приєднання енкодера і двох кнопок, J2 – для USB підключення.

Для J2 використовується стандартний USB кабель з USB Male A роз’ємом.

Встановлення та налаштування

Мінімальна системна конфігурація:
Windows XP або більш нова ОС
XBMC 10.1 або новіша
USB 2.0 порт
ПДУ з підтримкою SIRC протоколу

Процес настройки наступний:
1. Запустіть XBMC натисніть на “System” і відкрийте вкладку »Network».
2. Під написом «Services» встановіть: Allow control of XBMC via HTTP: ON
Port: 80 Username: Password: (поля ім’я і пароль залиште порожніми)
3. Натисніть «Esc»
4. Закрийте XBMC.
5. Розархівуйте додається до даного проекту ПЗ та зробіть необхідні настройки у файлі mcci.ini.
6. Підключіть до комп’ютера. Якщо пристрій зібрано правильно, то windows автоматично його виявить
7. Відкрийте програму mcci.exe. Якщо все вірно налаштовано, то XBMC повинен буде стартувати автоматично.
8. Перевірте правильність функціонування енкодера, клавіш, пульта ДУ і екранчика.

Технічна специфікація пристрою:
USB Version : 2.0
Device Class : 0×0
Vendor ID : 0×8420
Product ID : 0×1
Manufacturer : Dilshan R Jayakody
Product : Media Center Control Interface
Product Version : 0.1
Power Mode : Self powered 100mA Max
USB interfaces : 0×3 — HID class

Принципова схема пристрою показана нижче:

В якості LCD-екранчика використовується MC1602.

Друкована плата пристрою:

Завантажити файли Eagle, програму для Windows (з вихідними кодами) і вихідний код прошивки PIC

Оригінал статті англійською мовою (переклад Колтик А.В. для сайту cxem.net)