12 применений, которые можно найти raspberry pi
Содержание:
Запуск системы ROPI
Хотя он претендует на универсальную систему, ROPI в основном ориентирован на развлечения (эмуляция игр и мультимедийный центр), поэтому его необходимо подключить к ТВ, кроме того необходимо подключить клавиатуру или джойстик USB (из коробки поддержаны беспроводные девайсы от Xbox360, и ещё кучка разных). Соединяем всю конструкцию, и, кстати, лучше сразу подключить Ethernet c работающим DHCP
Первый запуск начнется в системе Armbian (не в OpenELEC) и займет больше времени, чем более поздние , так как распределяет память для охвата всего SD / eMMC, и выполняются различные конфигурации (например, генерация ключей SSH).
Следует отметить, что по умолчанию RetrorangePi не запускает рабочий стол Armbian , он сразу же запускает оболочку Emulation Station (ES), и внутри ES вы уже можете запустить рабочий стол Armbian, если захотите. Поэтому, как только первый процесс загрузки будет завершен, откроется станция эмуляции.
Первое, что нас попросят сделать, это настроить джойстик USB (поэтому нам нужно запустить систему уже с подключенным джойстиком или можно использовать клавиатуру), просто нажмите и удерживайте любую кнопку на пульте дистанционного управления (или клавишу на клавиатуре) …
Как только это будет сделано, система должна обнаружить USB-устройство, и откроется меню для настройки кнопок, где необходимо задать каждую кнопку, если на вашем меньше кнопок, чем на 360, просто пропустите отсутствующие “длинным нажатием” на любую из кнопок вашего джойстика.
После настройки кнопок нажмите «ОК» и откройте главный экран ES , откуда мы сможем перемещаться между различными эмуляторами. “Искаробки” можно запустить Doom и Quake, а вот “ромы” придется загрузить. Это можно сделать, переключившись в режим десктопа, но в дистрибутив включена Samba, так что ромы можно перекинуть по сети.
Музыка на Raspberry Pi
Раз уж мы решили использовать Raspberry Pi в качестве единого медиацентра, то логично установить на него аудиоплеер с удаленным управлением. На эту роль лучше всего подходит MPD (Music Player Daemon).
Мы запустим его на Raspberry Pi так, чтобы он постоянно висел в фоне и был готов играть музыку. А на ноутбук, домашний комп и смартфон установим MPD-клиент, с помощью которого и будем выбирать и запускать музыку.
Устанавливаем:
1 | $sudo apt install mpd |
Скопируем дефолтовый конфиг:
1 |
$mkdir.config/mpd $cp/etc/mpd.conf.config/mpd/ |
Изменим несколько строк:
1 |
## Каталог с музыкой music_directory/media/pi/Elements/download ## Каталог с плей-листами playlist_directory/media/pi/Elements/playlists ## Пользователь, от имени которого будет работать демон user»pi» ## Слушаем подключения на всех адресах bind_to_address»0.0.0.0″ |
В данном примере я использовал в качестве каталога с музыкой. Это каталог на диске WD Elements, подключенном по USB. Если вы используете флешку или жесткий диск, он также будет подключен куда-то к , но, естественно, под другим именем.
Чтобы не иметь заморочек с правами доступа, нам нужно запускать MPD как пользовательский процесс. Для этого необходимо отключить системный сервис MPD и создать пользовательский. Первая задача выполняется так:
1 |
$sudo systemctl stop mpd.socket $sudo systemctl disable mpd.socket |
Чтобы решить вторую, создадим каталог для пользовательских сервисов SystemD:
1 | $mkdir-p.config/systemd/user/ |
В нем создаем файл следующего содержания:
1 |
Unit Description=Music Player Daemon Service ExecStart=/usr/bin/mpd—no-daemon Install WantedBy=default.target |
Сохраняем, активируем и запускаем:
1 |
$systemctl—user enable mpd.service $systemctl—user start mpd.service |
Теперь MPD будет автоматически запускаться от имени пользователя после загрузки.
Клиентов для MPD существует множество для самых разных платформ, включая Linux, Windows, macOS, Android и iOS. Лично я предпочитаю использовать консольный ncmpc на ноутбуке с Linux и MPD Control на Android.
Да, чуть не забыл — MPD не умеет подхватывать файлы сразу. Чтобы он их увидел, необходимо обновить базу композиций. Это можно сделать с помощью соответствующей кнопки или хоткея в клиенте.
Ncmpc: консольный клиент MPD
Лезем под капот: несколько интересных трюков для медиацентра
AirPlay в XBMC
AirPlay — это стандарт для потокового вещания аудио и видео на устройствах Apple. В последней версии XBMC была добавлена начальная поддержка этой технологии, но по умолчанию она выключена. Чтобы включить ее, зайди в System → Services → Airplay. Теперь ты сможешь передавать таким образом музыку с яблочных устройств. Видео тоже работает, но крайне нестабильно. Пользователи Android могут использовать для AirPlay плеер DoubleTwist.
Убираем ненужное
Для последующих трюков потребуется вернуться в Raspbmc Settings и посмотреть раздел сервисов: System Configuration → Service Management.
Во-первых, нам понадобится cron. Во-вторых, в зависимости от твоей конфигурации сети можно отключить сервер Samba и FTP, хотя ресурсов это, конечно, много не высвободит.
Далее подключимся к нашему медиацентру по SSH. Логин — pi, пароль — raspberry.
Выбор платформы
Есть три основных дистрибутива: Raspbmc, XBian и OpenELEC. Принципиально отличается в данном случае последний — это традиционный дистрибутив для встраиваемых систем, поэтому работа с ним напоминает альтернативные прошивки для роутеров. Выбор дополнительного ПО ограничен, и ковыряться во внутренностях будет не очень комфортно. С другой стороны, это более стабильное решение.
Выбор между Raspbmc и XBian уже более сложный. Оба являются полноценными дистрибутивами, оба имеют схожий функционал, но отличаются философией. Raspbmc — аккуратно собранный XBMC поверх Raspbian, из которого было выброшено все лишнее. XBian — проект, фокусирующийся на bleeding edge, что приводит к модификации отдельных пакетов. Советую попробовать оба, но лично я выбрал Raspbmc — более старый проект, к тому же использующий пакетную базу Raspbian, поддерживаемую огромным сообществом.
Инструкция
Изменяем файл Script.bin
1. Создаем резервный файл на случай ошибки:
sudo cp /boot/script.bin /boot/script.bak
2. Преобразовываем двоичный файла в формат fex редактируемого текста:
sudo bin2fex /boot/script.bin /boot/script.fex
3. Редактируем файл fex:
sudo nano /boot/script.fex
Часть интересующего нас файла находится в разделах и .
В :
Изменяем строку disp_mode: Устанавливает используемые параметры отображения. Может принимать следующие значения от 0 до 4.
0 — соответствует конфигурации экрана screen01 — соответствует конфигурации экрана screen12 — dualhead (screen0, screen1, fb0, fb1) (2 экрана, 2 видео-буфера)
3 — xinerama (screen0, screen1, fb0) (2 экрана, один большой видео-буфер)
4 — clone (screen0, screen1, fb0) (2 экрана, один стандартный видео-буфер)(он показывает то же самое на обоих экранах)
Установим конфигурацию в значение 1, чтобы она отобразила конфигурации экрана screen1:
disp_mode = 1
Изменяем строчку screen1_output_type, которая устанавливает тип отображения (0 – нет, 1 – LCD, 2 – TV, 3 – HDMI и 4 – VGA ) и screen1_output_mode (0-10 различные разрешения экрана, 11 – выход PAL и 14 – NTSC). Поэтому устанавливаем тип телевизионного экрана с режимом вывода PAL:
screen1_output_type = 2 screen1_output_mode = 11
В :
Включим ТВ-выход, для этого устанавливаем 1 в tv_used (0 – Off и 1 – On):
tv_used = 1
Часть файла будет выглядеть следующим образом (остальные строки могут иметь другие значения, это зависит от используемого дистрибутива):
disp_init_enable = 1 disp_mode = 1 screen0_output_type = 3 screen0_output_mode = 5 screen1_output_type = 2 screen1_output_mode = 11 fb0_format = 0 fb0_width = 0 fb0_height = 0 fb1_format = 0 fb1_width = 0 fb1_height = 0 hdmi_used = 1 hdmi_power = "vcc-hdmi-18" tv_used = 1 tv_dac_used = 1 tv_dac_src0 = 0
Можно видеть в предыдущей части файла, что screen0 установлен на HDMI с разрешением 720p, но мы выбрали в disp_mode использовать только вывод screen1, поэтому эти параметры пропускаются системой.
Но если никогда не будет использоваться HDMI, то он может быть отключен путем ввода в разделе в строчке hdmi_used значение 0.
4. Закрываем файл, сохранив его с таким же именем:
Ctrl X, Y (Yes), Enter
5. Преобразовываем отредактированный файл fex в двоичный формат:
sudo fex2bin /boot/script.fex /boot/script.bin
- Отредактируем файл загрузочных модулей:
sudo nano /etc/modules
Включаем «tv» в последней строке файла:
2. Закрываем файл, сохранив его с таким же именем:
Ctrl X, Y (Yes), Enter
3. Перезапускаем систему, чтобы изменения вступили в силу:
sudo reboot
Суть проблемы
Чтобы нафаршировать телевизор мультимедийным функционалом, есть несколько путей. Можно купить так называемый умный телевизор. Однако на сегодняшний день производители просят за такие опции серьезные деньги, не предлагая при этом ничего поражающего сознание. Можно купить медиаплеер, но тогда столкнешься либо с какой-нибудь экзотичной прошивкой от производителя, либо с Android, а приятного в этом мало. Кроме того, хотя флешкообразные Android-компьютеры и стали относительно популярны, их качество не слишком высоко — особенно часто пользователи жалуются на плохой Wi-Fi и отсутствие Ethernet (что для просмотра HD-контента недопустимо). Поэтому до сих пор энтузиасты предпочитали собирать собственный HTPC из mini-ITX-материнки и водружать на него XBMC. Но ведь в жилую комнату хочется поставить что-то тихое и маленькое, не так ли? Вот тут на помощь и приходит Raspberry Pi.
Казалось бы, RPi разрабатывался как образовательный инструмент и игрушка для железячников — энтузиастов от мира робототехники, при чем тут медиаплееры? Тем не менее многие используют малютку именно по такому назначению, и неспроста. В основе компьютера лежит чип Broadcom BCM2835, который изначально разрабатывался как решение для мультимедиа (если не веришь, можешь почитать на сайте производителя: goo.gl/VBAaX). По заявлениям создателей, мощность процессора невелика и находится на уровне Pentium II 300, но вот графический процессор удался — ты наверняка читал про то, как на Raspberry играют в Quake 3. Производитель сравнивает его мощность с первым Xbox. В общем, не случайно точно такой же чипсет используется в популярном за рубежом плеере Roku и ряде других аналогичных продуктов.
Видеочип поддерживает аппаратное декодирование h264, а также кодеки MPEG-2 и VC-1. Правда, два последних кодека требуют платной лицензии, придется заплатить 170 рублей. Неприятное упущение — отсутствует аппаратная поддержка аудиокодека DTS (несмотря на то что разработчики Raspberry уже написали нужный код, договориться о лицензии пока не удается). Однако беглый поиск дает понять, что декодер DTS в принципе редко встречается в маленьких плеерах. Если у тебя нет телевизора или ресивера, который мог бы выполнить декодирование сам, то читай врезку. Спойлер: лучше все-таки искать контент с AC3.
На этом плюшки не заканчиваются. У Raspberry есть особенность, которой может позавидовать любой неттоп и подавляющее большинство медиаплееров, — это поддержка технологии CEC (Consumer Electronics Control). Это спецификация для HDMI, позволяющая использовать пульт телевизора для управления подключенными устройствами. Большинство телевизоров, выпущенных за последние пару лет, поддерживают эту технологию, но каждый производитель называет ее по-своему. В случае моего Philips это EasyLink, у Samsung — Anynet+, у Sony — BRAVIA Link/Sync и так далее.
Помимо HDMI, поддерживаются и аналоговые выходы на видео и звук. Аналоговое видео вряд ли кому-то нужно в нашем контексте, а вот с аналоговым звуком пока ситуация неприятная. Дело в том, что из-за ошибок в прошивке на момент написания статьи качество звука отвратительно: например, в начале и конце каждого трека издается мощный щелчок (единственный выход — использовать gapless-воспроизведение).
Другой недостаток связан с реализацией USB. Фактически на один контроллер в Raspberry повешено два порта и адаптер Ethernet. Поэтому медиаплеер не получится использовать для закачки торрентов — сеть будет постоянно воевать с диском в контроле за пропускной способностью, из-за чего все будет тормозить, и устройство не сможет стабильно качать на полной скорости.
Тем не менее, как мы сейчас сможем увидеть, сообществу разработчиков удалось предложить что-то, с лихвой компенсирующее описанные недостатки.
О станции эмуляции (Emulation Station)
Emulation Station является графическим интерфейсом и поэтому может быть настроена для представления любого типа приложения, программы или скрипта . Таким образом, помимо каждого эмулятора, мы найдем другие элементы соответствующие конфигурациям Retropie / Retroarch , посвященные портам или адаптациям игр, которые не принадлежат к ретро-консолям (компьютерные игры) или KODI . Помимо системы OpenELEC (Kodi 16 Jarvis), которая находится в ROPI, в системе Armbian установлена по умолчанию Kodi (Kodi 17 Krypton, бета), это означает, что он может воспроизводить мультимедийный контент из самой системы Armbian, в состав которой также входят эмуляторы.
Чтобы открыть Kodi Krypton (тот, что находится в Armbian) , мы должны нажать элемент «Kodi» в ES, а для перехода в систему OpenELEC нужно идти в меню ES Start .
Переход из ES в OpenELEC или выход на рабочий стол Armbian
Как для запуска, так и для открытия рабочего стола Armbian, а также для переключения на систему OpenELEC нам нужно получить доступ к меню приложений (APPS) ES. Чтобы сделать это, действуйте следующим образом:
1 – из ES, войдите в меню «Пуск» (нажав кнопку «Пуск» на джойстике или по заданной кнопке на клавиатуре).
2 – Выберите меню APPS :
3 – Как вы можете видеть, из этого подменю мы имеем доступ как к системе OpenELEC, так и к рабочему столу Armbian . Чтобы получить доступ к OpenELEC, просто выберите его
Переход из OpenELEC в Armbian
В OpenELEC, мы можем видеть обычную систему Kodi, за исключением того, что у нее есть предустановленный аддон, называемый «retrorangepi», который позволяет вернуться в систему Armbian. Чтобы вернуться в систему Armbian, нужно только выполнить соответствующий аддон, который находится в Programs. Выполнение этого аддона позволяет вернуться к Armbian, если вы выключите или перезапустите систему OpenELEC, следующая загрузка произойдет в OpenELEC, так как был изменен загрузчик. Таким образом, аддон позволяет выполнить скрипт, который изменяет адрес загрузки системы.