Лучшее из возможного!

Размер шрифта:  Aa Aa Aa Aa Aa



Интернет радиоприемник на Raspberry Pi

Часть 2. Устанавливаем программное обеспечение.

Raspberry Pi model B

О том, как сделать интернет радиоприемник из Raspberry Pi читайте в первой части статьи. А сейчас займемся установкой программного обеспечения. После установки необходимых программ нужно будет все настроить, об этом читайте в третьей и четвертой частях.

И так, первое, что нужно сделать, это зайти на страничку DOWNLOADS сайта сообщества raspbian.org - http://www.raspberrypi.org/downloads/. Здесь нужно скачать дистрибутив официальной операционной системы для Raspberry Pi – RASPBIAN WHEEZY. Я использовал версию 2015-05-05. Новую версию RASPBIAN JESSIE устанавливать не рекомендую, т.к. с ней есть проблемы при установке программного обеспечения PiRadio. Это проверено на Raspberry Pi model B.

Bob Rathbone - автор Pi Radio - аннонсировал выпуск 5-й версии своего радио для RASPBIAN JESSIE в начале 2016г. Но на момент написания статьи существовала только версия 4.7, поэтому все дальнейшее описание относится именно к ней.

Зайдите на сайт автора PiRadio и скачайте необходимое программное обеспечение - пакет radiod_4.7_armhf.deb. Учитывая, что сайты периодически появляются и исчезают, я сохранил этот пакет, локальная ссылка в конце странички.

Для того, чтобы записать систему на SD карточку, потребуется программа Win32DiskImager. Учитывая, что в данном случае Raspberry Pi работает без дисплея и клавиатуры, настраивать все придется, используя дистанционный доступ. Пользователям Windows для этого потребуются две программы. PuTTY и WinSCP.

Скачайте и установите также SD Card Formatter и Bootice. Для редактирования файлов потребуется текстовый редактор с поддержкой кодировки UTF-8, например, AkelPad. Наконец, рекомендую установить CristalDiskMark.

Все эти программы бесплатные, не имеют никаких ограничений и не требуют регистрации.

SD карточки SunDisk, Transcend

Для установки программного обеспечения нужна SD (или microSD для Raspberry Pi B+, 2 и Zero) карточка. Минимально необходимый объем 4 ГБ, но чтобы было место для хранения музыкальных файлов лучше использовать на 8 ГБ. Использовать карточки большего объема особого смысла нет – возможности навигации в файловой системе весьма ограничены, трудно будет найти нужный трек.

Карточку лучше приобретать в специализированном розничном магазине своего города. Выбирать придется всего по двум параметрам – производитель и класс. Класс лучше брать по максимуму 10-й. Хорошо, если будет маркировка по стандарту UHS - U1.

Такая карта гарантированно подойдет для любого фотоаппарата или видеокамеры. К сожалению, ничего нельзя гарантировать в случае с Raspberry Pi. На вопрос «Почему?» вы услышите от опытных программистов туманные разъяснения о какой-то несовместимости. Попробуем разобраться, в чем тут дело. Я протестировал две карточки. Первая, SunDisk приобретена в России. Вторая, с этикеткой Transcend доставлена из Китая.

Установим карточку в кардридер и запустим на компьютере программу CristalDiskMark. Выбираем в ней тестируемый диск – нашу карточку, для удобства можно даже включить русский язык. Все остальные настройки по умолчанию. Нажимаем кнопочку «All» и ждем несколько минут результатов теста. На рисунке ниже слева SunDisk, справа Transcend (Китай) .

Первая и третья строчки – скорость чтения и записи больших блоков данных. Как видите, здесь все нормально, скорости даже несколько превосходят заявленный 10-й класс. А вот скорость записи небольших файлов объемом 4 KB по случайным адресам – вторая и четвертая строчки – гораздо ниже. В принципе, так и должно быть, но не в тысячи же раз, как для китайской карты! Сначала я даже подумал, что тут какая-то ошибка.

Никакой ошибки. С картой SunDisk результаты вполне ожидаемые. Получается, что быстродействие карточек одного класса может отличаться почти в 1000 раз! Причем этот параметр не документирован и его невозможно узнать при покупке.

Результаты теста SD

Дело в том, что основное назначение SD карточек – запись фотографий и видео. Там данные записываются последовательно, большими блоками. Соответственно, скорость записи небольших блоков информации по случайным адресам не имеет значения.

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

В общем, китайская карточка «несовместима» с Raspberry Pi. Минимальное значение скорости записи во второй и четвертой строчках, при которой карточка еще пригодна для установки операционной системы Raspberry Pi, около 0,02 МВ/сек. Результат теста может несколько отличаться для разных версий программы и разных компьютеров. Но точное значение не важно, важно количество нулей после запятой.

Эта же проблема может возникнуть и в других устройствах, например в смартфонах, в которых SD карточка может использоваться для хранения исполняемых файлов. Видеолюбителям тоже следует иметь в виду эту особенность и не допускать фрагментирования файлов на карте памяти. Т.е. в процессе видеосъемки не следует удалять или редактировать записанные видеофайлы. Начинать запись следует с чистого листа, т.е. карточки. Пусть информация пишется последовательными блоками.

Ну и как же выбрать нужную карту? Самое надежное – это поискать информацию на форумах, может быть кто-то уже приобрел и протестировал карту данного производителя и данного типа. Если ничего не удастся найти, нужно ориентироваться на известную марку и не покупать самые дешевые экземпляры. Быстродействующая память всегда дороже стоит. Хорошо, если кроме 10 класса будет указана маркировка U1.

Почему все так сложно? Ну какой же уважающий себя производитель будет афишировать цифру 0,01 МВ/сек, если можно написать 10 МВ/сек. Реклама...

Как записать образ диска на карточку, я не буду подробно объяснять. Делается это с помощью программы Win32DiskImager (рис. 1). Если что-то непонятно, Google поможет.

Обратим внимание на другой момент. А что если после записи образа RASPBIAN вам срочно понадобилась эта карточка для фотоаппарата. Форматирование не поможет, в Windows будет виден только диск объемом около 100 МВ.


Записываем образ на SD карту

Bootice

Bootice -- Utilities -- Select and Fill

SD Card Formatter

Запускаем PuTTY

PuTTY - связь с PiRadio установлена

Запускаем WinSCP

WinSCP - файловый менеджер

Вот для этого и нужен Bootice (рис. 2). Выбираем «Utilities -- Select and Fill». Затем выбираем «Physical disk». «Sectors» ставим, например, 1000 и жмем «Start Filing» (рис. 3). Файловая система разрушена, теперь можно форматировать карточку. Только не ошибитесь и случайно не разрушьте жесткий диск компьютера! Форматировать карточку лучше с помощью программы SD Card Formatter (рис. 4).

Вставляем карту с записанным образом RASPBIAN WHEEZY в слот Raspberry Pi, подключаем сетевой кабель от роутера и включаем питание. В дальнейшем можно будет использовать беспроводное Wi-Fi соединение, но на время наладки проводная связь предпочтительнее. Монитора и клавиатуры нет, поэтому установку и настройку программного обеспечения будем проводить дистанционно.

В первую очередь нужно выяснить, какой IP адрес роутер присвоил нашему интернет радиоприемнику. Заходим через WEB интерфейс в настройки роутера и выясняем, какой адрес присвоен устройству «raspberrypi». Как это сделать – читайте руководство пользователя для вашей модели роутера и (или) спрашивайте у Google.

На компьютере запускаем PuTTY (рис. 5). В настройках в разделе «Translation» нужно выставить кодировку UTF-8, затем вернувшись в раздел «Session», в поле «Host Name (or IP Address)» ввести IP адрес. Поле «Port» оставляем по умолчанию – 22. Отмечаем SSH, а в поле «Saved sessions» вводим, например, PiRadio. Чтобы не делать это при каждом запуске, сохраняем настройки – «Save». Затем выбираем в списке подключений «PiRadio» и жмем «Open».

В открывшемся окне вводим имя пользователя «pi» и пароль «raspberry» (рис. 6). Если при первом запуске связь не устанавливается, выключите Raspberry Pi и через 5-10 сек вновь включите питание.

В первую очередь нужно сделать основные системные настройки. Вводим команду:

$ sudo raspi-config

Ввод любой команды в консоли всегда завершается нажатием «Enter». Символ «$» в начале строки означает, что команда вводится от имени пользователя «pi». Как и какие настройки нужно сделать в программе конфигурации я уже рассказывал на страничке Raspberry Pi – ваш второй компьютер. Сделайте все в точности, как там описано. Единственное отличие – клавиатура не подключена, поэтому настроить ее раскладку не удастся. Новый пункт Device Tree оставляем по умолчанию – Enable.

После нажатия «Finish» система предложит перезагрузку. Соглашайтесь. После каждой перезагрузки необходимо перезапускать PuTTY и вновь вводить логин и пароль.

Теперь нужно сделать upgrade. Автор в своем описании не рекомендует делать upgrade, только update. Однако, у меня с этим никаких проблем не было. Поэтому, я все-таки рекомендую сделать upgrade по максимуму, чтобы при установке не было конфликтов. Это справедливо для Raspberry Pi model B, как ведут себя B+ и 2, я не проверял. В крайнем случае, если возникнут сложности с установкой, придется повторить все сначала, сделав только update. Но, повторяю, у меня проблем не было.

$ sudo rpi-update $ sudo reboot $ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get dist-upgrade $ sudo reboot

Со всеми предложениями соглашаемся – «Y». Не спешите и терпеливо ждите, пока закончит выполняться каждая команда. Если появятся какие-то ошибки, наиболее вероятная причина – «несовместимая» SD карточка. Пока все не пройдет без ошибок дальше двигаться нельзя. При наборе команд строго соблюдайте регистр и, где нужно, пробелы.

Ну вот, система установлена и настроена. Создаем «точку возврата» - сохраняем с помощью Win32DiskImager образ карточки с настроенной системой, чтобы в случае неправильных действий в дальнейшем не пришлось повторять все эти шаги. Для корректного закрытия системы перед отключением питания наберите команду

$ sudo halt

Теперь устанавливаем плеер mpd и его окружение. На предупреждения в конце установки не обращайте внимания.

$ sudo apt-get install mpd mpc python-mpd

Сейчас нужно скопировать скачанный ранее дистрибутив radiod_4.7_armhf.deb в каталог /home/pi. Копировать проще всего с помощью программы WinSCP.

Запускаем программу (рис. 7), в поле «Сервер» указываем IP адрес нашей Raspberry Pi. Порт 22, имя пользователя «pi», пароль «raspberry». Нажимаем кнопку «Сохранить». Затем выбираем в списке наше новое подключение и жмем кнопку «Войти». В открывшемся окне соглашаемся с принятием ключа. В результате получаем доступ к файлам Raspberry Pi через удобный файловый менеджер (рис. 8).

Копируем пакет radiod_4.7_armhf.deb с компьютера в /home/pi и устанавливаем его, возвращаясь в PuTTY:

$ sudo dpkg -i radiod_4.7_armhf.deb

Программа инсталляции попросит выбрать нужную вам версию. Автор разработал 8 вариантов своего радио, однако на основе собственного опыта я рекомендую только первые четыре. Варианты с подключением индикатора по шине I2C (наверняка и по SPI) в версии 4.7 нестабильны. Я в этом убедился, пытаясь запустить радио с платой на основе PCF8574.

И так, выбираем нужный вариант. Я проверил:

1) Two line LCD with push buttons (radiod.py) 3) Two line LCD with rotary encoders (rradiod.py)

Подробнее о других вариантах читайте в авторском описании. Если все установилось без ошибок, можно перезагружаться. Если в процессе установки были какие-то ошибки, надо искать их причину. Для начала внимательно ознакомьтесь с тем, что советует автор. В его документации есть много полезных рекомендаций. У меня до этого шага все проходило без проблем.

И так, перезагружаемся. Усилитель НЧ должен быть подключен к AUDIO выходу Raspberry Pi независимо от того, предполагаете ли вы использовать этот выход или USB звуковую карту.

$ sudo reboot

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

Авторский вариант Pi Radio установлен. Если что-то не работает, читайте в первую очередь описание от автора, разбирайтесь. Ищите ошибки в log файлах /var/log/radio.log и /var/log/mpd/mpd.log. Я не буду переписывать авторское описание, буду останавливаться только на проблемах, с которыми сам столкнулся.

Настройка и установка ПО еще не закончена. Что делать дальше, читайте в третьей и четвертой частях. Аппаратная часть интернет радиоприемника описана в первой части.

Если появились вопросы, перед тем, как их задавать внимательно прочитайте все части описания, а также ознакомьтесь с документацией от автора Pi Radio

2016г.


PDF Журнал «Радиолюбитель»
PDF Подробное описание Pi Radio by Bob Rathbone. Ver. 4.7 01/01/2016
ZIP Программное обеспечение для Pi Radio by Bob Rathbone - radiod_4.7_armhf.deb