Введение

PC-ОС

БП

Дисплей

Координатор

Постановка задачи

Сейчас развелось довольно много всяких плейеров. Преимущественно это портативные (снабженные двумя ручками :) ) и полупортативные (с одной ручкой) устройства. Их отличает малый размер и низкое энергопотребление. Для ношения с собой в кармане они достаточно удобны (правда, для CD-варианта карман должен быть крупным), но при использовании в домашних (стационарных) условиях компактность обращается в неудобство. Маленький экран, маленькая память, мелкие кнопки ... Брр...

Есть неплохой вариант, который называется, например "бокс для HDD с возможностью просмотра фотографий, фильмов и прослушивания музыки", но штука эта мало того, что дороговата, так еще и ... собственно опять же - не имеет крупного индикатора. Последний вариант: стационарный dvd-плейер. Он подключается к телевизору - даже если слушаешь музыку, все равно голубой экран должен быть включен. Нет, мало того, что включен, он вообще должен быть поблизости. Кстати, dvd как носитель информации, конечно, удобен, но пока что и скорость записи на него не радует, да и коллекцию музыки в сотни Гб раскидывать на десятки DVD тоже скучно.

Итак, задача: разработать mp3 (можно и ogg и midi) плейер, используя подручные средства. Он должен:

  • Иметь ясный индикатор состояния работы с высотой знаков не меньше 1 см;
  • Иметь возможность управления с ИК-пульта и с AT-клавиатуры;
  • В качестве носителя музыки использовать любой IDE-винчестер;
  • Иметь удобные средства навигации по коллекции;
  • Иметь управление и возможность обновления коллекции музыки по протоколам tcp/ip в среде Ethernet;
  • Иметь минимальный уровень аккустического шума;
  • Отключаться через заданное время;
  • Не разрушать информацию на носителях при внезапном отключении питания;
  • Помнить последний воспроизведенный трек и при включении продолжать воспроизведение с него;
  • Обладать размером обычного системного блока. Ставить рядом еще и монитор - сильно красиво.

Вообще-то, многие для решения этой задачи используют персональный компьютер. Тот, на котором сразу работают в ворде, лазят по Интернету или играют в игрушки. И это правильно. Но мне это не подходит по трем причинам: 1) Комп шумит. Тихо, но слышно. А я люблю засыпать под музыку. 2) Комп часто перезагружается - хоть и не каждый день, но приходят люди с своими винтами, системниками; иногда я работаю с разными операционками, иногда бывают и просто зависания. Музыка не должна зависеть от этого. 3) Допустим, игрушки очень любят петь что-то своё. А мне "их" может и не нравиться.

Предложенное решение

Для реализации этих требований была разработана конструкция, успешно используемая уже почти год. Она представляет собой персональный компьютер, совместимый с IBM-PC:

  • Центральный процессор Intel 80586/166 МГц/MMX;
  • Оперативная память: 32 Мб;
  • Ethernet-контроллер: de-250, 10 МБ/с;
  • Аудио-контроллер: Vortex [AU8820B2 + TriTech 28023];
  • Контроллер индикатора и ИК-управления: Atmel at89c2051;
  • Системный НЖМД: Conner CFS210A, 200 Мб;
  • НЖМД данных: Fujitsu MHT2040AT, 40 Гб;
  • Видеоконтроллер (используется только для отладки): Prisma VGART 800 / 512 Кб;
  • Операционная система: модифицированный Zenwalk на ядре Линуса Торвальдса версии 2.6.14;

Компьютер не имеет привычного монитора, однако снабжён контроллером однострочного люминесцентного индикатора и приёмника-дешифратора ИК пульта.

Кстати, в если зайти в google и набрать там что-то вроде "стационарный mp3-плейер" - первыми ссылками выплывают, в основном, не коммерческие конструкции, а ещё с десяток страниц подобных моей - т.е. о самостоятельном изготовлении плейера из старых обломков. Я хотел здесь разместить несколько ссылок, но потом понял, что их слишком много :) [ну и конечно, они динамичны, как и весь интернет].

Конкретика

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

  • "Тюнинг" операционной системы.
  • Блок питания должен быть тихим ! Выбираем блок. Альтернативное обесшумливание. Радиаторы. Проверка.
  • Дисплей - устройство взаимодействия с оператором.
  • Координатор или firmware.
    • Autoexec. Фоновая индексация коллекции. Разберемся, как сделать, чтобы вместо авторизации пользователя запускалась нужные программы: координатор - он будет получать команды с клавиатуры, ИК-пульта и затем передавать их mpg321-плейеру и ОС, а также индексатор - он обегает файлы на НЖМД и составляет глобальный playlist.
    • Координатор. Каналы взаимодействия: клавиатура, rs-232, pipe to mpg321. Интерфейс с пользователем. Исходник. Если все предыдущее у вас получилось - этот раздел - чистое развлечение.

Я не буду повторять в отдельных разделах о том, что многие проблемы/задачи могут быть решены различными путями. На этих страницах описаны решения, которые пришли мне, но они не догма - старайтесь думать сами. Это не защита диссертации и ясно сформулированное обоснование того или иного выбора может отсутствовать.

Теперь о стоимости в 130 рублей: 100 рублей стоил индикатор ИВЛ 1-16/5x7л, еще чуть больше 30 р - Atmel'овский контроллер. Прочее было добыто разными бесплатными путями: чужие и свои апгреды, найденные в старой аппаратуре детали, приданное жены (пульт ДУ). Винт 40-ка был куплен на честно заработанные деньги для совсем другого устройства, но так получилось, что он остался без работы. Поэтому по вечерам работает в описанном плейере, а днем используется в качестве флешки, для чего расположен так, чтобы его было легко снимать через 3'5-дюймовый слот.

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

В дальнейшем, возможно, эта конструкция будет плавно преобразована в "аппаратный" плейер - он будет много компактнее и ядром его станут два контроллера: системный из серии ATMega, а mp3-декодер от VLSI. Но это когда нибудь потом... Если к тому времени не придумается что-то еще.

Владимир