
Arduino & Pi
Интернет радио на raspberry pi zero w.
Приветствую подписчики, начитавшись блоки про посты про интернет собрал, вот такое чудо.
Начинка состоит из raspberry pi zero w, usb ЦАП, самого дешего усилителя из Алиэкспресс и 3 ватных колонок, блок питания от старого доброго калькулятора, умели же собирать, стабильное советское напряжение, по сравнению с китайскими. Регулировка звука и управление идёт через смартфон. ОС воткнул через volumio но оно очень громоздкое, но более менее удобное в управлении. Это мой первый пост, правда колонку приклеил криво, пришлось переделать. Питание брал из raspberry pi, если через usb, не тянет. До этого стоял на orange pi zero, и LMS, но не выключить через смартфон никак, а управление через "sound@home" родные от volumio не запустились. Можно конечно через MDoid, но там не выключить радио.
Помогите организовать управление HTPC ИК-пультом ТВ через Arduino
Здравствуйте, ардуинщики. Прошу совета.
Для организации самодельного амбилайта приобрел Arduino Nano CH340/ATmega328P и всё это работает, благо инструкции подробно разжеваны. Но захотелось мне ещё управлять HTPC, от которого идет сигнал амбилайта, с того же пульта, что и тв самунг (хотя бы плей/пауза). Для этого приобрел ИК-приемник VS1838B (в комплекте с платой с конденсаторами и резисторами и дюпонт коннекторами) и с помощью библиотеки IRremote через монитор порта получил hex коды нужных кнопок. Потратил кучу времени, пытаясь найти нужное приложение и понять, как передать полученный сигнал от ардуины в винду. Я так понимаю, что можно назначить срабатывание мультимедийных клавиш. Дело осложняется тем, что я ничего не знаю в написании программ, а только могу вставить готовые решения, что-нибудь там подправив. Был подобный пост даже здесь - Управление компьютером при помощи Arduino через USB - но я не уверен, подходит ли мне это и не смог понять, как запускать. Ещё находил "// Управление компьютером с помощью Arduino Micro и ИК-пульта IR2USB v 0.2 (c) Nomad", но тут тоже не понял, как винда получает сигналы.
Deluge и Transmission на Raspberry Pi
Мотивация
Одноплатники в общем и Raspberry Pi в частности отличаются бесшумной работой, только если вы не оснастили свое устройство охлаждением, которое булькает или гудит.
Таким образом, одноплатник является идеальным решением для выкачивания гигабайтов мультимедиа: он практически незаметен, бесшумен и не потребляет много энергии. Более того, у каждого в пределах локальной сети есть доступ к торрент-клиенту буквально с любого более-менее современного устройства. Но не поймите меня не правильно. Я слушаю музыку через Google Play Music и смотрю фильмы и сериалы на IVI и Амедиатеке, таким образом, всячески поощряя платный контент. Однако очень часто провайдер услуг просто не в состоянии вам дать то, что нужно в данный конкретный момент времени. К примеру, мы с женой договорились устроить 30-го декабря то, что мы назвали «День СТС». Наше осознанное детство пришлось на начало 2000-х, когда СТС был торт, а Интернет еще не так доступен. Таким образом, мы решили провести субботний день за просмотром сериалов, на которых выросли: моя любимая жена знакомила меня с Отчаянными домохозяйками, а я ее – с мультсериалом Назад в будущее, а вместе мы ностальгировали под Удивительные странствия Геракла (чтобы убить двух зайцев сразу, мы выбрали серию, где первый раз появляется Зена). Кстати, именно Назад в будущее, простите, хрен найдешь на IVI или Амедиатеке в силу его чудовищной непопулярности, что очень, на мой взгляд, несправедливо. Помните какие крутые эксперименты показывались в конце каждой серии? В общем, торрент-трекеры в очередной раз спасли положение.
В данном разделе я хочу показать как выглядит решение, которое лично я уже использую достаточно давно. Стоит сразу отметить, что одного торрент-клиента на одноплатнике будет недостаточно, т.к., в конце концов, должна быть какая-то точка вхождения для устройств, на которых непосредственно будет проигрываться мультимедиа. Как ни странно, в моем случае этой точкой стал обычный FTP-сервер на базе vsftpd. Дело в том, что такие проигрыватели, как MX Player и VLC умеют стримить видео поверх FTP, т.е. приложению не нужно загружать видео целиком, чтобы его проиграть. Таким образом, я подключаюсь с целевого устройства к FTP-серверу, вижу список файлов, выбираю интересующий и проигрываю его так, как будто он хранятся на самом устройстве. Альтернативы FTP-серверу могут быть сколь угодно сложными, изощренными и современными. К примеру, я рассматривал Plex Media Server. Посмотрите в его стороны и вы. Тем не менее, он и другие, на мой взгляд, сильно усложняют очень простую задачу.
Целевыми устройствами для меня являются телевизор на базе Android 6.0 «Marshmallow».
Сам одноплатник с модулем расширения и корпусом стоит в три раза дешевле, чем голая плата Raspberry Pi 3. Тем не менее, я ни в коем случае не пытаюсь никого отговорить от использования RPi в качестве торрент-качалки. Если у вас уже давно валяется без дела этот одноплатник, то почти наверняка он будет рад оказать вам услугу и взять на себя функцию торрент-клиента, хотя конечно для этой задачи он будет немного избыточен. Таким образом, если вы в процессе выбора устройства для этой задачи, то выберите что-то более простое и, как следствие, дешевое.
Как построить свое решение
Для того чтобы дальше следовать руководству понадобится одноплатник под управлением какого-нибудь Linux'а. Если для торрент-качалки вы расчехляете давно лежащее без дела устройство, то предлагаю поставить на него Raspbian или Ubuntu. Однако, какой бы не была система, – свежеустановленная или работающая уже много месяцев – в ней должны быть git, Docker и docker-compose. Дело в том, что я предлагаю воспользоваться проектом MMB, который представляет собой набор Dockerfile'ов и связанных с ними ресурсов для сборки образов Docker-контейнеров с различными сервисами, предназначенными для запуска на Raspberry Pi и других одноплатниках. (Кстати, в MMB вы найдете не только Transmission и Deluge, но и свежайшую версию Nextcloud'а.) Теперь выполните следующие команды на своем устройстве.
$ git clone https://github.com/tolstoyevsky/mmb.git
Затем перейдите в mmb/transmission-web, соберите и запустите Transmission.
$ cd mmb/transmission-web
$ docker build -t cusdeb.com:5000/transmission:2_92_armhf .
$ docker-compose up -d
После этого соберите и запустите Deluge. Deluge не будет конфликтовать с Transmission, но оба торрент-клиента будут использовать одну и ту же директорию для загрузок. Когда определитесь с клиентом, лишний можно будет удалить.
$ cd ../deluge-web
$ docker build -t cusdeb.com:5000/deluge:1_3_15_armhf .
$ sudo ./postinst.sh
$ docker-compose up -d
Установка Deluge потребовала выполнение ./postinst.sh. Этот скрипт создает пустой конфигурационный файл и директорию state, в которой будут оседать все torrent-файлы.
В заключении соберите и запустите FTP-сервер.
$ cd ../vsftpd
$ docker build -t cusdeb.com:5000/vsftpd:3_0_3_armhf .
$ docker-compose up -d
Оба торрент-клиента будут загружать файлы в директорию /srv/common/downloads/, которая, в свою очередь, будет корневой директорией для FTP-сервера. Основная идея MMB заключается в подогнанности сервисов к друг другу.
Кстати базовые образы сервисов MMB включают qemu-arm-static, который позволяет запускать сервисы, собранные под архитектуру armhf, на машинах x86. Это сделано в первую очередь для отладки сервисов на машинах разработчиков.
Теперь рассмотрим торрент клиенты Deluge и Transmission по отдельности.
Deluge
По мнению Yandex Wordstat'а Deluge менее популярен, чем Transmission по крайней мере в области торрент-клиентов с веб-интерфейсом для Raspberry Pi. Интерфейс Deluge (как и Transmission) очень далек от интерфейсов современных веб-приложений, поэтому это первое, к чему нужно быть готовым.
Перейдите на http://ip-адрес-устройства:8002, чтобы начать работу с Deluge. Торрент-клиент потребует ввести пароль, которым по умолчанию является «deluge». Требование ввести пароль может показаться лишним с учетом того, что приложение рассчитано на то, чтобы быть доступным из локальной сети, но мало ли какие фантазии вам захочется воплотить, поэтому Deluge должен быть к этому готов. Затем подключитесь к deluged, демону Deluge. В данном конкретном случае единственный вариант, который предлагает приложение является правильным.
Дело в том, что веб-интерфейс и демон Deluge – отдельные компоненты: первый является одним из многочисленных пользовательских интерфейсов, а другой – тем, что делает всю основную работу. deluged может даже быть запущен на одной машине, а веб-интерфейс – на другой, поэтому в самом начале работы с приложением необходимо уточнить, какой именно deluged необходимо использовать. Очевидно, что Deluge способен удовлетворить самые изысканные потребности пользователей. Забегая вперед, хочу сказать, что Transmission устроен намного проще.
В основном, работа Deluge ничем не отличается от любого (или почти любого) другого торрент-клиента. Если вы имеете дело с публичным торрент-трекером, то клиенту можно передать ссылку на .torrent-файл, но если торрент-трекер требует авторизации, то .torrent-файл придется сначала скачать себе на машину, а только потом передать клиенту.
Transmission
Перейдите на http://ip-адрес-устройства:8003, чтобы начать работу с Transmission. Торрент-клиент потребует ввести логин и пароль, которым по умолчанию в обоих случаях являются «cusdeb». Вы всегда можете изменить логин и пароль, а также другие параметры, в файле docker-compose.yml, а затем перезапустить контейнер с клиентом.
По сравнению с Deluge Transmission обладает более аскетичным интерфейсом, но в основе это все тот же торрент-клиент – клиенту можно передать как ссылку на .torrent-файл, так и сам файл, чтобы начать загрузку раздачи. Однако есть одна особенность Transmission'а, которая мне всегда не давала покоя. О ней я хочу рассказать сразу. Это будет полезно в первую очередь тем, кто только присматривается к торрент-клиентам с веб-интерфейсом и Transmission'у в частности. Ветеранам этого направления ПО я здесь не смогу рассказать ничего нового.
В отличии от Deluge, когда вы тем или иным способом передадите клиенту .torrent-файл, Transmission не предложит вам выбрать, что именно из раздачи вам нужно загрузить в данный момент. К примеру, раздача вышеупомянутого мультсериала «Назад в будущее» состоит из 27 видео-файлов – 26 серий и трейлер.
выберете нужные файлы и запустите загрузку.
Больше всего дискомфорта лично у меня вызывает по умолчанию выделенная галочка «Start when added», но это можно исправить. Для этого перейдите в настройки
и на самой первой вкладке сбросьте одноименную галочку. После этого на панеле «Upload Torrent Files» она будет всегда сброшенной. Надеюсь это сделает первый опыт общения с Transmission'ом еще более гладким, чем он мог бы быть.
FTP-сервер
Как уже было сказано выше, торрент-клиенты буду загружать файлы в директорию /srv/common/downloads/. Настоятельно рекомендую примонтировать туда внешний жесткий диск или флешку, чтобы поберечь SD-карту. Эта же директория будет корневой для FTP-сервера. Таким образом, для того чтобы увидеть и воспроизвести на целевом устройстве все то, что вы загрузили посредством Deluge или Transmission, установите ES File Explorer File Manager и VLC. Я предполагаю, что вы используете в качестве целевого любое устройство на базе Android. Я не исследовал эту тему в области устройств на базе iOS, т.к. в основном статья опирается на мой собственный опыт, а я завален Android-устройствами различных форм-факторов с ног до головы.
Запустите ES File Explorer File Manager и перейдите в раздел «FTP», который находится в категории «Network».
При этом скачивать файл целиком на устройство не потребуется.
Заключение
Несмотря на избыточность Raspberry Pi для каких-то задач, некоторые темы все равно остаются популярными. Так, одной из таких тем является создание торрент-качалки на базе Transmission'а и Raspberry Pi. Однако, если в системе не будет ничего, кроме Transmission'а, то достаточно мощное и относительно дорогое устройство будет большую часть времени простаивать. За треть стоимости (с учетом доставки) Orange Pi Zero может гонять Transmission не хуже. Также стоит в сотый раз напомнить, что у RPi отсутствует поддержка SATA, хотя конечно это не так критично, как для облачного хранилища данных на базе того же Nextcloud'а. Тем не менее, я с удовольствием рассказал про этот конкретный use case Raspberry Pi, т.к. он многим оказался интересен. Этот use case можно было бы даже назвать одним из примеров Интернета вещей, хотя и с натяжкой – устройства взаимодействуют друг с другом не совсем через Интернет и не совсем без участия человека. Кстати, готовые образы с Deluge и Transmission для Raspberry Pi 1, 2, 3 и Zero вы всегда можете получить на нашем сайте. Всем удачного возвращения в строй после выходных!
Пробная платформа с шестью ножками на Arduino-Uno, часть 2.
Я уже писал как-то о том, что построил тестовую платформу, чтобы поразвлекаться с программированием походок для шестиногого робота. Интересно, но с моим уровнем программирования трудновато.
Тем не менее прикрутил кое-какое радиоуправление, научил ходить назад, разворачиваться и дрыгать ножками на 3-х скоростях. Семья с удовольствием погоняла его по коридору.















