Включение Rаspberry с пульта ДУ и кнопки

Категория: Бытовые приборы
Автор: Александр Беглецов Просмотров: 1681

 

faceПрограмма предназначена для управления включением и отключением платы Raspberry с микроконтроллера для исключения запуска (загрузки) ОС сразу после подачи питания, а так же для включения и отключения Raspberry только одной (единой), заранее запрограммированной кнопкой пульта ДУ.

 

Первая проблема в том, что Raspberry загружается сразу после подачи на неё питания, а не по команде пользователя.

А вторая проблема, что после отключения, т.е. выгрузки ОС Raspberry не видит пульт ДУ. Предложенные в интернет решения в виде запуска Raspberry по любой кнопке пульта ДУ меня не удовлетворяют, т.к. в таком случае Raspberry запускается от любого пульта, т.е. будут ложные включения, скажем при желании включить телевизор.

В конце статьи я кратко опишу, как я применил данный миникомпьютер на плате RaspberryPi3 для построения довольно навороченного домашнего медиацентра.

Схема устройства

sh

  

Подключение:

1. Необходимо подключить выход с ИК приёмника, идущий одновременно к порту RB0 МК, к соответствующему пину платы Raspberry, по умолчанию это пин GPIO18, но в случае использования шины I2S следует переназначить вход на GPIO26 и подключить ИК приёмник к нему. Переназначение см.ниже.

2. Подпаяться к +5 вольт идущие к разъёму USB и подключить их ко входу RA4 МК. (PS. я пересмотрел и перепробовал множество вариантов, в т.ч. по схемам Raspberry и не нашёл иного способа "индикации" рабочего состояния Raspberry)

3. Подключить питание платы Raspberry +5 вольт через реле Rel_1 (OUT1)


Алгоритм работы:

При подаче питания (включения в сеть) питание поступает только на микроконтроллер, Raspberry и остальные платы, а так же HDD, при его наличии, обесточены.

При нажатии кнопки «сеть» на пульте ДУ или физической кнопки «сеть» подаётся питание на Raspberry, при этом появляется +5 вольт на USB, наличие которых контролируются МК и означает для МК успешный запуск и работу платы Raspberry. После приёма первой посылки команды пульта ДУ дальнейшие команды игнорируются МК вплоть до отключения Raspberry, при этом эти самые команды принимаются Raspberry и если они были заранее прописаны, то исполняются ОС в Raspberry.

При повторном нажатии кнопки «сеть» на пульте ДУ команда принимается платой Raspberry и последняя выгружается, при этом снимается питание с USB, что для МК означает отключение Raspberry, далее даётся некоторое время на остановку и с Raspberry полностью снимается питание.

МК снова готов принять команду от пульта ДУ на включение.

В программе сделаны два дополнительных вывода, которые можно использовать для задержки подачи питания на другие платы или HDD, например, для корректного определения HDD после загрузки ОС. Время задержки задаётся перед прошивкой МК путём установки значений в 6-й и 7-й ячейке EEPROM. 6-я ячейка привязана к порту МК RA1, 7-я ячейка к порту RA3 (реле по схеме Rel_2 (OUT2) и Rel_3 (OUT3)). Порт МК RA0 и соответствующее ему реле Rel_1, используются для включения Raspberry (без задержки). При использовании этих дополнительных выводов с задержкой, перед прошивкой МК следует внести нужные значения в ячейки ЕЕПРОМ, значения заносятся в шестнадцатеричной системе, (32 в HEX, это 50, а 50 – это задержка 5 секунд, 1(единица) = 0,1 сек.) Калькулятор DEC-HEX прилагается.

EEPROM

Прошивка кнопки пульта ДУ: 

После прошивки МК, при первом включении необходимо прописать кнопку включения Вашего пульта ДУ. Для этого физическая кнопка «сеть» удерживается около 10 секунд, пока светодиод «сеть» не начнёт мигать. После этого следует однократно нажать кнопку «сеть» пульта ДУ, код запишется в EEPROM микроконтроллера и будет использоваться для включения. При необходимости код можно перезаписывать сколько угодно раз, например, для смены пульта ДУ. Поддерживается большинство "китайских" и подобных пультов, LG, Samsung, Sony под вопросом, не проверял.

Для отключения Raspberry, пульт ДУ должен быть «пришит» с ОС, используемой в Raspberry, Автором данная платка Raspberry используется в качестве медиацентра на ОС LibreELEC на основе KODI, для пришивки Вашего пульта к ОС рекомендую обратиться в интернет, например с поисковым запросом «пульт ДУ для LibreElec» или «LIRC ДЛЯ KODI»

Совет:

При использовании внешнего ЦАП через I2S, следует переназначить ножки контроллера малинки, делается это дописыванием строк в config.txt, без этого ЦАП и вместе с ним IR сигнал не будет принят «малинкой».


Дописываются следующие строки (код), PS. сравните уже существующие строки в config.txt и допишите нужные.


# decode_MPG2=0x00000000
# decode_WVC1=0x00000000
# audio interfaces
dtoverlay=hifiberry-dacplus
dtdebug=1
# optional hardware interfaces
dtparam=i2s=on
# lirc-rpi
dtoverlay=lirc-rpi
dtparam=gpio_out_pin=16
dtparam=gpio_in_pin=26
dtparam=gpio_in_pull=down
# End of default configuration

Медиацентр:

Я давно размышлял о варианте собрать всё медиа в одну кучу и иметь возможность «рулить» музыкой дистанционно.
В данный момент я могу управлять всей медиатекой с любой точки дома и даже моего двора со смартфона, в т.ч. изменять громкость, ставить на паузу, выбирать композиции и т.д.

Rasp

DAC

Для построения были заказаны на Али Экспресс плата Raspberry Pi 3 и ЦАП на чипе PCM5152 (поисковый запрос на АлиЭкспресс:

плата - «Raspberry Pi 3»

АЦП - «Raspberry Pi 3 HiFi ЦАП I2S»

 

 

 

 

Для Raspberry потребуется два радиатора. Так же потребуется источник питания 5 вольт и током 1 ампер (рекомендуют 2 ампера, но думаю это запас для USB портов). Ну и нужна флешка micro-SD, для загрузки ПО Медиацентра.
Сам медиацентр построен на основе KODI, я для себя выбрал LibreELEC.
Здесь я не буду углубляться, т.к. в интернет достаточно подробно описан процесс установки на флешку и настроки данного ПО. Кроме LibreELEC есть ещё несколько популярных Медиаоболочек для KODI.


Вся музыка у меня хранится на сетевом диске, подключенном к домашнему роутеру (Zyxel Keenetic Extra II), на который я могу спокойно складывать все файлы с домашнего компютера.
Raspberry подключена к домашней сети по Wi-Fi, указан путь в сетевому диску, откуда Медиацентр проигрывает музыку. Управлять М/Ц можно через родной пульт телевизора, который подключен по HDMI к Raspberry или, что более мобильно, со смарта, через бесплатные приложения Kore или Yatse.
ЦАП я расположил в стороне от платки, сделав переходник, а для нормального монтажа всего в корпус заказал там же на Али 30 см удлинители USB, HDMI, а питание +5 вольт припаял непосредственно к плате. На этом всё. Всем удачи!

Видео:

 

 

Архив для скачивания 

Ссылка для скачивания доступна только авторизованным пользователям сайта !
 

Возникшие вопросы можно задать на форуме

 


Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2018 © ChipMK.ru

ChipMk.ru Яндекс Метрика