1 февраля 2024 г.
И года не прошло, как я закончил-таки изучать возможности купленных в осенью 2023-го года универсальных пультов SONY. И могу представить их небольшой обзор, возможно кому-то это будет полезно/интересно.
Я так понял, что отдельно такие пульты не продавались. Они шли в комплекте с усилителями или ресиверами.
SONY STR-D2020 + RM-P301.
SONY TA-AV501 + RM-P302.
SONY GX60ES + RM-P303
Насколько хорошие это устройства мы оставим за скобками. Нас интересует только функционал пультов и тут есть что интересного рассказать. Начну с того, что это не единственная серия таких пультов. Их много от разных ресиверов и усилителей. Вот список других моделей, что я смог найти для примера: RM-P311; RM-P312; RM-P322; RM-P332; RM-P550; RM-P750; RM-P950; RM-P1000; RM-P2000…
Похожих пультов можно найти еще больше, но у них уже кардинально другая раскладка, а значит другая плата, и, возможно, другой контроллер с другими особенностями и ограничениями. (не изучал)
Несмотря на такое разнообразие мне понравились только пульты RM-P301, RM-P302 и RM-P303.
Функционал у всех этих пультов примерно одинаковый. Основные отличия – это раскладка заводских команд. Перепрограммировать можно либо все, либо почти все кнопки. Основным ограничением тут выступает объем памяти. У всех 300-х моделей одинаковые «куриные» мозги в которые можно упихнуть 50-60 команд. У пульта RM-P2000 памяти побольше и инструкция говорит, что туда можно упихать до 90 команд (возможно RM-P1000 тоже имеет более расширенную память, но в инструкции к нему не сказано, сколько команд можно в него записать). Это может показаться даже много, но имеются ввиду команды стандарта Sony12. Команды пультов других производителей, как правило, требуют больше места в памяти этого пульта. Например, RM-P302 в состоянии запомнить либо 57 команд Sony12, либо 26 команд NEC1, либо 19 команд Panasonic. Ситуация уже не такая радужная, но не будем отчаиваться.
Для понимания, почему мне больше всего понравились пульты RM-Р30x нужно описать для чего я собирюсь их использовать.
Есть у меня 3 кассетные деки от SONY. И глядя на цены оригинальных пультов от этих кассетных дек (как DAT, так и обычных) нетрудно понять, что за стоимость пульта иной раз можно купить деку целиком. Я еще могу понять, что пульт от DAT деки, где много кнопок, еще хоть как-то может оправдать стоимость юаней в 200-300 за функционал и аутентичный внешний вид, но, когда их продают дороже 500 – я оправдания не нахожу. И уж подавно не нахожу никакого оправдания ценам за пульты от обычных кассетных дек, где всего 14 кнопок (без учета кнопок для управления ПКД) и ценник от 500 юаней если повезет. Причем оба этих пульта не имеют каких-то дисплеев, особенных кнопок или необычных органов управления, как на пультах от видеомагнитофонов. Нет – это обычные пульты с кнопками!
Оригинальные пульты для моих дек выглядят вот так.
В итоге:
Вот мне и пришла в голову идея, а почему бы не попробовать взять один из программируемых пультов SONY и не сделать из него пульт для управления моими кассетными деками. Внешний вид этих пультов довольно симпатичный, да и кнопок на нем достаточно. Теперь, держа это все в голове наконец-то можно приступить к обзору.
Пульты RM-P30x хороши тем, что их можно использовать даже без перепрограммирования. Помимо своего прямого назначения по управлению усилителем-ресивером (ID 12, 16), они сразу могут управлять:
Само собой, все это оборудование должно быть бренда SONY. Да, управление самое базовое, но все же лучше, чем ничего. Возможно кому-то уже и такого функционала будет достаточно. Учитывая на порядок более низкую цену, чем у оригинальных пультов – уже не плохо. Но я решил, что хочу больше. Пульты RM-P30x – одни из немногих пультов (не только из списка выше), которые изначально делались для управления в том числе и DAT декой. И мой выбор был обусловлен не только более низкой ценой, но и тем, что частично нужный мне функционал у пульта уже есть. На момент покупки я не знал, насколько удачным будет эксперимент, но как минимум пульт не будет полностью бесполезным в случае провала. В итоге я купил два пульта: RM-P301 и RM-P302. После нескольких попыток правильно понять, что производитель написал в инструкции, я приступил к экспериментам.
Пользоваться пультом предполагается следующим образом. Есть две раскладки кнопок. Стандартная, которую разработала для данного пульта сама Sony, и пользовательская. Пока мы ничему пульт не обучили, обе раскладки идентичные. На пользовательской раскладке кнопки можно перепрограммировать. Раскладки можно переключать между собой, т.е. заводские команды пульта всегда останутся доступны. Обучается пульт довольно просто и проблем обычно не возникает. Если пульт неправильно запомнил команду, ее можно переписать, но только, до тех пор, пока у пульта не кончится память. Как только память у пульта заканчивается то у нас 2 варианта, либо пользоваться как получилось, либо все сбросить и начать сначала. Выборочно стереть команды с кнопок для того, чтобы освободить память – нельзя. Процесс обучения следующий: переводим пульт в режим learn; зажимаем на программируемом пульте кнопку, которую хотим запрограммировать; как только зажигается красный индикатор, зажимаем на другом пульте ту кнопку, команду которой хотим записать и держим (обе кнопки) до тех пор, пока красный индикатор не погаснет.
Что я выяснил помимо очевидных вещей, описанных в инструкции:
Сканы команд
Key
Device ID
Command
RAW-Data
RM-P301
RM-P302
POWER SECTION
SYSTEM OFF
sequence ✔ ✔
16 47 0x82F 1 47 0x0AF 2 47 0x12F 7 47 0x3AF 11 47 0x5AF 6 47 0x32F LDP 6 21 0x315 ✔ ✔ VTR TAPE/DAT/VTR SECTION TV 1 21 0x095 ✔ ✔ AUDIO 16 21 0x815 ✔ ✔ TV SECTION TV/VIDEO 1 37 0x0A5 ✔ ✔ VOL+ 1 18 0x092 ✔ ✔ VOL- 1 19 0x093 ✔ ✔ CH+ 1 16 0x090 ✔ ✔ CH- 1 17 0x091 ✔ ✔ 1 1 0 0x080 ✔ ✔ 2 1 1 0x081 ✔ ✔ 3 1 2 0x082 ✔ ✔ 4 1 3 0x083 ✔ ✔ 5 1 4 0x084 ✔ ✔ 6 1 5 0x085 ✔ ✔ 7 1 6 0x086 ✔ ✔ 8 1 7 0x087 ✔ ✔ 9 1 8 0x088 ✔ ✔ 0 1 9 0x089 ✔ ✔ ENTER 1 11 0x08B ✔ ✔ AMPLIFIER FUNCTION SECTION CD 16 37 0x825 ✔ ✔ TUNER 16 33 0x821 ✔ ✔ PHONO 16 32 0x820 ✔ ✔ TAPE 16 35 0x823 ✔ ✔ DAT 16 70 0x846 ✔ ✔ DIGITAL 16 68 0x844 ✔ ✘ VIDEO1 16 34 0x822 ✔ ✔ VIDEO2 16 30 0x81E ✔ ✔ VIDEO3 16 66 0x842 ✔ ✔ VIDEO4 16 67 0x843 ✘ ✔ PHONO SECTION START 16 40 0x828 ✘ ✔ STOP 16 41 0x829 ✘ ✔ TUNER SECTION INDEX SELECT 13 82 0x6D2 ✔ ✘ + 13 80 0x6D0 ✔ ✘ - 13 81 0x6D1 ✔ ✘ SHIFT 13 51 0x6B3 ✔ ✔ PRESET+ 13 16 0x690 ✔ ✔ PRESET- 13 17 0x691 ✔ ✔ TUNER SECTION S. ON/OFF 12 63 0x63F ✔ ✘ S. MODE 12 70 0x646 ✔ ✘ S. T.TONE 18 74 0x94A ✔ ✘ EQ. ON/OFF 18 44 0x92C ✔ ✘ MAIN 12 118 0x676 ✔ ✘ SUB 12 116 0x674 ✔ ✘ EQ 12 124 0x67C ✔ ✘ MODE 12 119 0x677 ✔ ✘ C.C. UP 12 120 0x678 ✔ ✘ C.C. DOWN 12 121 0x679 ✔ ✘ C.C. LEFT 12 122 0x67A ✔ ✘ C.C. RIGHT 12 123 0x67B ✔ ✘ S.FIELD MODE 18 54 0x936 ✔ ✘ LINK 13 87 0x6D7 ✔ ✘ USER/PRESET 18 126 0x97E ✔ ✘ DOLBY 12 57 0x639 ✘ ✔ HALL 12 58 0x63A ✘ ✔ SIMULATED 12 59 0x63B ✘ ✔ OFF 12 56 0x638 ✘ ✔ DELAY 12 68 0x644 ✘ ✔ CENTER_LEVEL+ 18 84 0x954 ✔ ✘ CENTER_LEVEL- 18 85 0x955 ✔ ✘ REAR_LEVEL+ 12 66 0x642 ✔ ✔ REAR_LEVEL- 12 67 0x643 ✔ ✔ DBFB 12 49 0x631 ✔ ✔ MUTING 16 20 0x814 ✔ ✔ MASTER_VOL+ 16 18 0x812 ✔ ✔ MASTER_VOL- 16 19 0x813 ✔ ✔ CDP/LDP SECTION (2 SWITCHABLE SECTIONS) CDP CONTINUE 17 29 0x89D ✔ ✔ SHUFFLE 17 53 0x8B5 ✔ ✔ PGM 17 31 0x89F ✔ ✔ D.SKIP 17 62 0x8BE ✔ ✔ PLAY 17 50 0x8B2 ✔ ✔ PREV 17 48 0x8B0 ✔ ✔ NEXT 17 49 0x8B1 ✔ ✔ STOP 17 56 0x8B8 ✔ ✔ REW 17 58 0x8BA ✔ ✔ FF 17 59 0x8BB ✔ ✔ LDP CONTINUE EMPTY SHUFFLE EMPTY PGM EMPTY D.SKIP EMPTY PLAY 6 26 0x31A ✔ ✔ PREV 6 53 0x335 ✔ ✔ NEXT 6 52 0x334 ✔ ✔ STOP 6 24 0x318 ✔ ✔ REW 6 27 0x31B ✔ ✔ FF 6 28 0x31C ✔ ✔ TAPE/DAT/VTR SECTION (6 SWITCHABLE SECTIONS) DECK A ANT/TV/VTR EMPTY CH+ EMPTY CH- EMPTY REW 16 51 0x833 ✔ ✔ FF 16 52 0x834 ✔ ✔ STOP 16 56 0x838 ✔ ✔ PLAY_REV 16 55 0x837 ✔ ✔ PLAY 16 50 0x832 ✔ ✔ PAUSE 16 57 0x839 ✔ ✔ REC_REV 16 58 0x83A ✔ ✔ REC 16 53 0x835 ✔ ✔ VTR_POWER EMPTY DECK B ANT/TV/VTR EMPTY CH+ EMPTY CH- EMPTY REW 14 27 0x71B ✔ ✔ FF 14 28 0x71C ✔ ✔ STOP 14 24 0x718 ✔ ✔ PLAY_REV 14 32 0x720 ✔ ✔ PLAY 14 26 0x71A ✔ ✔ PAUSE 14 25 0x719 ✔ ✔ REC_REV 14 33 0x721 ✔ ✔ REC 14 29 0x71D ✔ ✔ VTR_POWER EMPTY DAT ANT/TV/VTR EMPTY CH+ EMPTY CH- EMPTY REW 28 59 0xE3B ✔ ✔ FF 28 60 0xE3C ✔ ✔ STOP 28 56 0xE38 ✔ ✔ PLAY_REV EMPTY PLAY 28 58 0xE3A ✔ ✔ PAUSE 28 57 0xE39 ✔ ✔ REC_REV EMPTY REC 28 62 0xE3E ✔ ✔ VTR_POWER EMPTY VTR 1 ANT/TV/VTR 2 42 0x12A ✔ ✔ CH+ 2 16 0x110 ✔ ✔ CH- 2 17 0x111 ✔ ✔ REW 2 27 0x11B ✔ ✔ FF 2 28 0x11C ✔ ✔ STOP 2 24 0x118 ✔ ✔ PLAY_REV EMPTY PLAY 2 26 0x11A ✔ ✔ PAUSE 2 25 0x119 ✔ ✔ REC_REV EMPTY REC 2 29 0x11D ✔ ✔ VTR_POWER 2 21 0x115 ✔ ✔ VTR 2 ANT/TV/VTR 7 42 0x3AA ✔ ✔ CH+ 7 16 0x390 ✔ ✔ CH- 7 17 0x391 ✔ ✔ REW 7 27 0x39B ✔ ✔ FF 7 28 0x39C ✔ ✔ STOP 7 24 0x398 ✔ ✔ PLAY_REV EMPTY PLAY 7 26 0x39A ✔ ✔ PAUSE 7 25 0x399 ✔ ✔ REC_REV EMPTY REC 7 29 0x39D ✔ ✔ VTR_POWER 7 21 0x395 ✔ ✔ VTR 3 ANT/TV/VTR 11 42 0x5AA ✔ ✔ CH+ 11 16 0x590 ✔ ✔ CH- 11 17 0x591 ✔ ✔ REW 11 27 0x59B ✔ ✔ FF 11 28 0x59C ✔ ✔ STOP 11 24 0x598 ✔ ✔ PLAY_REV EMPTY PLAY 11 26 0x59A ✔ ✔ PAUSE 11 25 0x599 ✔ ✔ REC_REV EMPTY REC 11 29 0x59D ✔ ✔ VTR_POWER 11 21 0x595 ✔ ✔
Как уже было ранее сказано, памяти в этом пульте всего на 57 команд Sony12. И даже если у нас будет использоваться исключительно старая техника от Sony, очевидно, что ни 150, ни 137 команд переназначить мы не сможем. Но нам этого и не нужно, ведь часть необходимых команд в пульте уже есть. Нужно только подумать и грамотно выбрать те кнопки и те команды, которые нужно перезаписать. Т.ч. для начала давайте изучим те два пульта, которые я не хочу покупать.
Поскольку позаимствовать мне эти пульты не у кого, я решил найти команды этих пультов в интернете. Все что мне нужно, я нашел на трех сайтах.
Начнем с пульта от обычной кассетной деки. Качаем с LIRC единственную подходящую конфигурацию пульта – RM-J701. Исправляем ошибки, сравниваем с SonyRCC и конвертируем в более-менее читабельный вид. Тут всего 20 кнопок.
Key | Device ID | Command |
OPEN/CLOSE | 14 | 22 |
DISPLAY | 14 | 75 |
RESET | 14 | 15 |
MEMORY | 14 | 14 |
MONITOR | 14 | 23 |
PREV | 14 | 48 |
NEXT | 14 | 49 |
RECORD | 14 | 30 |
REWIND | 14 | 27 |
FORWARD | 14 | 28 |
REC_MUTE | 14 | 31 |
STOP | 14 | 24 |
PLAY | 14 | 26 |
PAUSE | 14 | 25 |
CD_PAUSE | 17 | 57 |
CD_PREV | 17 | 48 |
CD_NEXT | 17 | 49 |
CD_STOP | sequence | |
CD_START | sequence | |
CD_STANDBY | 17 | 50 |
Protocol: Sony12 |
Из этого списка можно смело убирать последние 6 команд для управления ПКД. Во-первых, мне оно не актуально, т.к. у меня нету ПКД от SONY. Во-вторых, даже если он появится, то половина из этих команд на универсальном пульте уже и так есть. Зеленым в таблице отмечены команды, которые уже есть в универсальном пульте, красным – которые мне не нужны, желтым – которые нужны. Итого – из 20-ти команд мне нужно только 8.
Так же в SonyRCC можно найти команды, которые я на пультах не встречал, но они работают с моими деками. Самой интересной мне показалась команда 35 Rewind and Play.
Key | Device ID | Command |
REW&PLAY | 14 | 35 |
Protocol: Sony12 |
Следующий пульт от DAT деки. Тут конфигураций на LIRC доступно побольше. Как минимум есть пульты RM-D2100, RM-D55A и RM-D57A. В теории мне должен подойти любой, но мне захотелось их сравнить. Расшифровав все странные названия, которые придумали по пиктограммам пользователи, загрузившие конфиги с командами на сайт, получилась следующая табличка.
RM-D2100 | RM-D55A | RM-D57A | ||||
Key | Device ID | Command | Device ID | Command | Device ID | Command |
OPEN/CLOSE | 28 | 32 | 28 | 32 | 28 | 32 |
DISPLAY_MODE | 28 | 75 | 28 | 75 | 28 | 75 |
START_ID_AUTO | 28 | 80 | 28 | 80 | 28 | 80 |
START_ID_WRITE | 28 | 81 | 28 | 81 | 28 | 81 |
START_ID_RENUMBER | 28 | 83 | 28 | 83 | 28 | 83 |
START_ID_ERASE | 28 | 82 | 28 | 82 | 28 | 82 |
SKIP_ID_WRITE | 28 | 84 | 28 | 84 | 28 | 84 |
SKIP_ID_ERASE | 28 | 85 | 28 | 85 | 28 | 85 |
END_ID_WRITE | 28 | 88 | 28 | 88 | 28 | 88 |
END_ID_ERASE | 28 | 89 | 28 | 89 | 28 | 89 |
KEY_1 | 28 | 0 | 28 | 0 | 28 | 0 |
KEY_2 | 28 | 1 | 28 | 1 | 28 | 1 |
KEY_3 | 28 | 2 | 28 | 2 | 28 | 2 |
KEY_4 | 28 | 3 | 28 | 3 | 28 | 3 |
KEY_5 | 28 | 4 | 28 | 4 | 28 | 4 |
KEY_6 | 28 | 5 | 28 | 5 | 28 | 5 |
KEY_7 | 28 | 6 | 28 | 6 | 28 | 6 |
KEY_8 | 28 | 7 | 28 | 7 | 28 | 7 |
KEY_9 | 28 | 8 | 28 | 8 | 28 | 8 |
KEY_0 | 28 | 20 | 28 | 20 | 28 | 20 |
CLEAR | 28 | 30 | 28 | 30 | 28 | 30 |
MUSIC_SCAN | 28 | 108 | 28 | 108 | 28 | 108 |
RMS_CHECK | 28 | 29 | 28 | 29 | 28 | 29 |
RMS_ENTER | 28 | 27 | 28 | 27 | 28 | 27 |
REPEAT_1/ALL | 28 | 54 | 28 | 54 | 28 | 54 |
REPEAT_A/B | no button | 28 | 55 | no button | ||
TIME_SEARCH | 28 | 107 | no button | no button | ||
MARGIN_RESET | 28 | 78 | 28 | 78 | 28 | 78 |
SKIP_PLAY | 28 | 91 | 28 | 91 | 28 | 91 |
DATE_RECORDED | 28 | 42 | no button | 28 | 42 | |
DATE_PRESENT | 28 | 41 | no button | 28 | 41 | |
COUNTER_MODE | 28 | 33 | 28 | 33 | 28 | 33 |
COUNTER_RESET | 28 | 34 | 28 | 34 | 28 | 34 |
COUNTER_MEMORY | 28 | 35 | no button | no button | ||
RECORD | 28 | 61 | 28 | 61 | 28 | 61 |
REC_MUTE | 28 | 63 | 28 | 63 | 28 | 63 |
FADER | 28 | 95 | 28 | 95 | 28 | 95 |
PREV_ID | 28 | 104 | 28 | 104 | 28 | 104 |
NEXT_ID | 28 | 105 | 28 | 105 | 28 | 105 |
STOP | 28 | 56 | 28 | 56 | 28 | 56 |
PLAY | 28 | 58 | 28 | 58 | 28 | 58 |
PAUSE | 28 | 57 | 28 | 57 | 28 | 57 |
REWIND | 28 | 59 | 28 | 59 | 28 | 59 |
FORWARD | 28 | 60 | 28 | 60 | 28 | 60 |
CD_PAUSE | 17 | 57 | 17 | 57 | 17 | 57 |
CD_PREV | 17 | 48 | 17 | 48 | 17 | 48 |
CD_NEXT | 17 | 49 | 17 | 49 | 17 | 49 |
CD_STOP | sequence | sequence | sequence | |||
CD_START | sequence | sequence | sequence | |||
CD_STANDBY | 17 | 50 | 17 | 50 | 17 | 50 |
Protocol: Sony12 |
И действительно, те кнопки, которые имеют схожие названия или пиктограммы – совпадают. Но вот количество кнопок на пультах разное. Результат предсказуемый, на команды тех трех кнопок, которые отсутствуют на оригинальном пульте для моей деки – дека никак не реагирует.
Я провел небольшое дополнительное исследование всех пультов, которые смог найти для DAT дек от SONY и сравнил полученные результаты с SonyRCC и boehmel. Удалось найти несколько интересных команд, которые могут отсутствовать на передних панелях дек и редко встречаются на пультах, но работают с моей декой.
Key | Device ID | Command |
DIM_HIGH | 28 | 110 |
DIM_MID | 28 | 111 |
DIM_LOW | 28 | 112 |
FREQ_MAP | 28 | 113 |
ID6 | 28 | 115 |
SERVICE_MODE | 28 | 86 |
Protocol: Sony12 |
ID6 Displays the copy information of the tape currently inserted. | ||
00 (copying permitted) ; 10 (copying prohibited) ; 11 (one generation copy only). |
Таблицы раскрашены аналогично предыдущим. Итого, как и с прошлым пультом я отказался от ПКД команд, выбрал 20 команд с пульта + команду service mode и ID6, и так же отказался от 14-ти команд (11 из них – это работа с ID метками, 2-е команды RMS и команда Music scan). (на самом деле RMS и Music scan мне хотелось добавить, но пришлось идти на компромисс)
На данном этапе в пульт надо записать 31 команду. Тут возникнет закономерный вопрос, а почему я отказался от такого большого количества DAT команд? Ведь кнопок на пульте еще много, да и памяти с запасом. На это есть две причины. Первая – я использую DAT деку в основном только для прослушивания и поскольку весь необходимый функционал для записи есть на самой деке, то дублировать его на пульт я для себя не вижу смысла. Вторая причина – я хочу, чтобы этот пульт полноценно управлял еще и моим видиком.
И тут дело не в том, что у меня нет пульта для видика. Он есть, причем оригинальный, комплектный. Но SONY была бы не SONY если бы не придумала довольно интересное решение. На оригинальном пульте нет кнопок трекинга. Включить ручной трекинг можно только на панели видика, а вот переключить обратно на автоматический нельзя – ну это если верить инструкции. Там прям так и написано, что если вы хотите снова активировать авто трекинг, то извлеките кассету и вставьте ее снова… ага… удобно блин. Но я решил проверить, а вдруг… и действительно, с пульта от более старого видика Sony, команды трекинга без проблем работают, и команда на переключение авто трекинга тоже. В общем решение странное как не посмотри, но допустим. Можно было бы просто пользоваться пультом от старого видика, но, на нем не хватает других кнопок, т.к. старый видик был не Hi-Fi. Следовательно, отсутствует кнопка выбора звуковой дорожки и кнопка даббинга линейной дорожки. И поскольку основной функционал по управлению видиком у универсального пульта уже есть, я решил добавить еще 26 команд, чтобы можно было управлять видиком практически полноценно. Да, JOG на универсальный пульт я установить не смогу, но да я им не то, чтобы часто пользуюсь. В общем список команд для видика получился вот такой.
Key | Device ID | Command |
EJECT | 11 | 22 |
REWIND | 11 | 27 |
FORWARD | 11 | 28 |
SEARCH FF | 11 | 41 |
SEARCH REW | 11 | 40 |
STOP | 11 | 24 |
PLAY | 11 | 26 |
PAUSE | 11 | 25 |
AUDIO DUB | 11 | 104 |
RECORD | 11 | 29 |
INPUT SELECT | 11 | 79 |
AUTO TRACKING | 11 | 39 |
TRACKING+ | 11 | 68 |
TRACKING- | 11 | 69 |
COUNTER RESET | 11 | 70 |
COUNTER MODE | 11 | 65 |
TAPE SPEED | 11 | 88 |
STANDBY | 11 | 21 |
DISPLAY | 11 | 90 |
AUDIO MONITOR | 11 | 23 |
MENU | 11 | 77 |
OK | 11 | 81 |
CURSOR_UP | 11 | 66 |
CURSOR_DOWN | 11 | 67 |
CURSOR_LEFT | 11 | 98 |
CURSOR_RIGHT | 11 | 97 |
Protocol: Sony12 |
Итого мы имеем 54 команды. Кнопок вроде хватает, памяти тоже, но хочется добить на полную, чтобы память была забита до упора полезным функционалом.
Что еще можно придумать?
В итоге должно получиться очень здорово… раскатал губу блин…
Сел я думать, как теперь расположить все мои хотелки на пульте так, чтобы оно все влезло, и чтобы было удобно пользоваться. После некоторых прикидок я остановился вот на таких раскладках.
От части желаемых команд я отказался. В секции LDP я добавил команды на кнопки "пустышки". Пусть LDP у меня нет и не предвидится, зато эти команды можно будет перехватывать для управления DVD рекодером. Из бесполезных кнопок тут осталась кнопка standby телевизора. Формально телевизор SONY у меня есть. Кнопка VTR осталась без изменеий, т.к. мои кассетные деки не умеют в standby. Так же без изменений осталась кнопка SYSTEM OFF. Есть еще некоторые эстетические проблемы с кнопками, на которых сверху нанесена шелкография. Я постарался их обыграть, но получилось не везде.
Поскольку процесс программирования подразумевает удержание кнопок пульта, которым мы пытаемся его обучить, использовать эмулятор пульта в телефоне в большинстве случаев невозможно. Возможно есть какой-нибудь софт, если не под android, то под более старые телефоны, где эмуляция удержания кнопки работает корректно. Однако я решил пойти другим путем и совместно с Михаилом и @Walhi, получилось сделать достаточно точный эмулятор на Arduino.
Использована библиотека IRremote, версия 4.2.1.
Sketch code
#define DECODE_SONY
#include "PinDefinitionsAndMore.h"
#include <IRremote.hpp> // include the library
#define KEY_PIN 4
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
pinMode(KEY_PIN, INPUT_PULLUP);
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);
Serial.begin(115200);
Serial.setTimeout(50); // по умолч. секунда, долго.
Serial.println(F("START " __FILE__ " from " __DATE__ "\r\nUsing library version " VERSION_IRREMOTE));
Serial.print(F("Send IR signals at pin "));
Serial.println(IR_SEND_PIN);
Serial.print(F("Ready to receive IR signals of protocols: "));
printActiveIRProtocols(&Serial);
Serial.println(F("at pin " STR(IR_RECEIVE_PIN)));
}
const String Digits = "0123456789";
String strData = "";
boolean recievedFlag;
unsigned long startTime;
unsigned long endTime;
uint8_t debugEnable = true;
uint16_t sAddress = 14;
uint8_t sCommand = 22;
void loop() {
if (digitalRead(KEY_PIN) == LOW) {
// Посылка команды
if (debugEnable) {
Serial.println();
Serial.print("Send now: ");
Serial.print("Address = ");
Serial.print(sAddress);
Serial.print("; Command = ");
Serial.println(sCommand);
Serial.flush();
}
while (digitalRead(KEY_PIN) == LOW) {
startTime = millis();
IrSender.sendSony(sAddress, sCommand, 0);
// Ожидание интервала между пакетами
endTime = millis();
while ((endTime - startTime) < 45) {
endTime = millis();
}
}
} else if (IrReceiver.decode()) {
// Обработка полученных сигналов
IrReceiver.printIRResultShort(&Serial);
//IrReceiver.printIRSendUsage(&Serial);
Serial.print("Address = ");
Serial.print(IrReceiver.decodedIRData.address);
Serial.print("; Command = ");
Serial.println(IrReceiver.decodedIRData.command);
if (IrReceiver.decodedIRData.protocol == UNKNOWN) {
Serial.println(F("Received noise or an unknown (or not yet enabled) protocol"));
// We have an unknown protocol here, print more info
IrReceiver.printIRResultRawFormatted(&Serial, true);
}
Serial.println();
IrReceiver.resume(); // Enable receiving of the next value
} else {
// Обработка ввода с терминала
if (Serial.available() > 0){
String bufString = Serial.readString();
byte dividerIndex = bufString.indexOf('A');
String buf_1 = bufString.substring(0, dividerIndex);
String buf_2 = bufString.substring(dividerIndex + 1);
sAddress = buf_1.toInt();
sCommand = buf_2.toInt();
Serial.println();
Serial.print("New config: ");
Serial.print("Address = ");
Serial.print(sAddress);
Serial.print("; Command = ");
Serial.println(sCommand);
}
}
}
Ниже показана схема ИК эмулятора на базе Arduino и его фотография в сборе.
Принцип работы такой: в монитор последовательного порта пишем через A адрес и желаемую команду (например 14A22). Нажатием на кнопку эмитируем работу этой команды. ИК-приемник используется для отладки. Он декодирует и отправит результат в последовательный порт как эмулируемую команду, так и команду с программируемого пульта для проверки.
Конечно все-все желаемые команды согласно новым раскладкам записать не удастся. Я пока остановился на том, что пользоваться буду пультом RM-P301. В него влезли все команды за исключением команд по управлению колонками (блок AUDIO). Управлять колонками я буду через репитер, который будет как бы подменять заводские команды пульта RM-P301 командами пульта от моих колонок. Тоже самое будет сделано и для управления DVD рекодером в режиме LDP. Репитер будет описан в отдельной статье.
Теперь остался последний этап - нанести layout на пульт. Но перед тем, как заказывать печать в типографии, я решил попользоваться пультом и понять, насколько это удобно. Поэтому временно я напечатал на этикеточном принтере новые обозначения. Получилось неплохо. И что-то мне подсказывает, что фраза "нет ничего более постоянного чем временное" в этом проекте будет как никогда актуальна.
RM-P301 Operating Instructions