• I






      
           

Научно-популярный образовательный ресурс для юных и начинающих радиолюбителей - Popular science educational resource for young and novice hams

Основы электричества, учебные материалы и опыт профессионалов - Basics of electricity, educational materials and professional experience

КОНКУРС
language
 
Поиск junradio

Радиодетали
ОК
Сервисы

Stock Images
Покупка - продажа
Фото и изображений


 
Выгодный обмен
электронных валют

Друзья JR



JUNIOR RADIO

 

Использование HDMI-CEC на Raspberry Pi

 

 

В этом руководстве мы покажем вам, как управлять телевизором с помощью HDMI-CEC и Raspberry Pi. HDMI-CEC - это специальный протокол, предназначенный для связи телевизора с другим устройством по кабелю HDMI. Этот протокол позволяет телевизору управлять другим устройством, а также позволяет этому устройству управлять телевизором. В большинстве современных телевизоров реализована поддержка этого протокола, но ее часто приходится включать в настройках телевизора. Поиск модели вашего телевизора должен помочь вам найти то, что называется этой настройкой.

 

 

Используя протокол HDMI-CEC, вы можете использовать Raspberry Pi для управления телевизором множеством различных способов, таких как включение и выключение или изменение громкости.

Установка cec-client на Raspberry Pi

В этом разделе мы покажем вам простые шаги по установке cec-clientпрограммного обеспечения на Raspberry Pi. cec-client - это программный пакет, который мы будем использовать на Raspberry Pi для управления устройством по протоколу HDMI-CEC.

1. Наша первая задача - обновить список пакетов на Raspberry Pi, а также обновить установленные в данный момент пакеты.

Мы можем решить эту задачу, выполнив следующие две команды.

sudo apt update

sudo apt upgrade

Первая команда обновит список пакетов. Вторая команда обновит установленные пакеты.

2.Наш следующий шаг - установить cec-utilsпакет. Этот пакет содержит cec-clientпрограммное обеспечение, которое мы будем использовать позже в этом руководстве. Мы можем установить этот пакет на наш Raspberry Pi, выполнив следующую команду.

sudo apt install cec-utils

Используя инструменты, предоставляемые этим пакетом, мы сможем отправлять команды с помощью CEC через кабель HDMI, подключенный к нашему Raspberry Pi.

 Взаимодействие с телевизором через HDMI-CEC с помощью Raspberry Pi

В этом разделе мы покажем вам различные способы использования cec-clientпрограммного обеспечения для взаимодействия с другими устройствами. В этом разделе вы заметите, что на каждом этапе мы будем делать несколько вещей. Первый - это использование echoи pipe ( |). Мы используем эти две вещи, чтобы передать команду напрямую cec-clientпрограммному обеспечению без необходимости его запуска. Кроме того, мы используем в программном обеспечении как опции, так -sи -dопции cec-client. Эта -sопция сообщает программе, что мы собираемся выполнить одну команду. Программное обеспечение запустится, выдаст команду и сразу же выйдет. -d 1Параметр устанавливает уровень отладки для программного обеспечения. Если установить его 1, cec-clientпрограмма будет отображать только ошибки. Этот параметр значительно уменьшает объем текста, который будет заливать консоль.

Сканирование устройств HDMI-CEC с вашего Raspberry Pi

1. Первое, что вам нужно сделать, это просканировать доступные устройства, которые заявляют, что имеют возможность CEC. Выполните поиск устройств с поддержкой HDMI-CEC, выполнив следующую команду на своем Raspberry Pi.

echo 'scan' | cec-client -s -d 1

2. С помощью этой команды вы должны увидеть список устройств, к которым ваш Raspberry Pi теперь имеет доступ. Вам необходимо определить устройство, с которым вы хотите взаимодействовать. Обычно поля « os string:» и « vendor:» помогут вам определить устройство, с которым вы хотите взаимодействовать. После того, как вы определили правильное устройство, запишите « address:» или номер устройства .

opening a connection to the CEC adapter...

requesting CEC bus information ...

CEC bus information

===================

device #0: TV

address:       0.0.0.0

active source: no

vendor:        Sony

osd string:    TV

CEC version:   1.4

power status:  standby

language:      eng

 

 

device #1: Recorder 1

address:       1.0.0.0

active source: no

vendor:        Pulse Eight

osd string:    CECTester

CEC version:   1.4

power status:  on

language:      eng

 

 

device #4: Playback 1

address:       3.0.0.0

active source: no

vendor:        Sony

osd string:    PlayStation 4

CEC version:   1.3a

power status:  standby

language:      ???

Обратите внимание, что « device #1: Recorder 1» в этом примере - это собственное CEC-соединение Raspberry Pi, поэтому мы можем игнорировать его.

3.Например, если мы хотим управлять нашим телевизором Sony TV , мы можем увидеть, что номер устройства будет « 0», а адрес устройства - « 0.0.0.0». Как только у вас будет номер или адрес устройства , вы можете начать посылать ему команды.

Отправка команды включения через HDMI-CEC

Использование cec-clientдля включения устройства - относительно простой процесс.

echo 'on <DEVICEADDRESS>' | cec-client -s -d 1

Как видно из вышеизложенного, все, что нам нужно сделать, это отправить команду, onза которой следует адрес устройства или номер устройства.

Пример включения устройства через HDMI-CEC

Например, если мы хотим включить телевизор Sony с адресом « 0.0.0.0», мы воспользуемся командой, как показано ниже.

echo 'on 0.0.0.0' | cec-client -s -d 1

Отправка команды режима ожидания через HDMI-CEC

Если вы хотите выключить телевизор (перевести его в режим ожидания) с помощью Raspberry Pi, вы также можете легко сделать это с помощью HDMI-CEC.

echo 'standby <DEVICEADDRESS>' | cec-client -s -d 1

Чтобы перевести телевизор в режим ожидания, все, что вам нужно сделать, это отправить команду « standby», за которой следует адрес или номер устройства.

Пример выключения устройства через HDMI-CEC

Использовать эту команду относительно просто.

Чтобы перевести телевизор Sony в режим ожидания, все, что нам нужно сделать, это отправить « standby», а затем адрес нашего устройства « 0.0.0.0».

echo 'standby 0.0.0.0 | cec-client -s -d 1

Получение статуса питания через HDMI-CEC

Вы даже можете использовать его HDMI-CECна своем Raspberry Pi для получения статуса питания устройства.

echo 'pow <DEVICEADDRESS>' | cec-client -s -d 1

С помощью powкоманды вы можете узнать, включено ли устройство, к которому вы подключаетесь, или находится в режиме ожидания. Эта команда может быть полезна при принятии решения о том, нужно ли вам включать или выключать телевизор, особенно при удаленном управлении устройством.

Пример получения статуса питания через HDMI-CEC

Как и большинство команд HDMI-CEC, это относительно легко использовать. Все, что вам нужно сделать, это ссылка, powза которой следует адрес устройства.

echo 'pow 0.0.0.0' | cec-client -s -d 1

Если ваше устройство находится в режиме ожидания, вы увидите в своем терминале что-то вроде того, что показано ниже.

opening a connection to the CEC adapter...

power status: standby

Получение дополнительных команд CEC-Client

Если вы хотите проверить, какие другие команды вы можете отправить на свой телевизор с Raspberry Pi с помощью HDMI-CEC, вы можете использовать следующую команду.

echo 'h' | cec-client -s -d 1

Эта команда извлекает доступные команды, которые cec-clientпрограмма умеет обрабатывать. Из этой команды вы должны получить список команд, как показано ниже.

================================================================================

Available commands:

 

[tx] {bytes}              transfer bytes over the CEC line.

[txn] {bytes}             transfer bytes but don't wait for transmission ACK.

[on] {address}            power on the device with the given logical address.

[standby] {address}       put the device with the given address in standby mode.

[la] {logical address}    change the logical address of the CEC adapter.

[p] {device} {port}       change the HDMI port number of the CEC adapter.

[pa] {physical address}   change the physical address of the CEC adapter.

[as]                      make the CEC adapter the active source.

[is]                      mark the CEC adapter as inactive source.

[osd] {addr} {string}     set OSD message on the specified device.

[ver] {addr}              get the CEC version of the specified device.

[ven] {addr}              get the vendor ID of the specified device.

[lang] {addr}             get the menu language of the specified device.

[pow] {addr}              get the power status of the specified device.

[name] {addr}             get the OSD name of the specified device.

[poll] {addr}             poll the specified device.

[lad]                     lists active devices on the bus

[ad] {addr}               checks whether the specified device is active.

[at] {type}               checks whether the specified device type is active.

[sp] {addr}               makes the specified physical address active.

[spl] {addr}              makes the specified logical address active.

[volup]                   send a volume up command to the amp if present

[voldown]                 send a volume down command to the amp if present

[mute]                    send a mute/unmute command to the amp if present

[self]                    show the list of addresses controlled by libCEC

[scan]                    scan the CEC bus and display device info

[mon] {1|0}               enable or disable CEC bus monitoring.

[log] {1 - 31}            change the log level. see cectypes.h for values.

[ping]                    send a ping command to the CEC adapter.

[bl]                      to let the adapter enter the bootloader, to upgrade

                          the flash rom.

[r]                       reconnect to the CEC adapter.

[h] or [help]             show this help.

[q] or [quit]             to quit the CEC test client and switch off all

                          connected CEC devices.

================================================================================

 

На этом этапе вы должны были узнать, как использовать cec-clientRaspberry Pi для управления устройствами, поддерживающими HDMI-CECпротокол.

 




Необходимо добавить материалы...
Результат опроса Результаты Все опросы нашего сайта Архив опросов
Всего голосовало: 373



          

Радио для всех© 2024