Как сделать аудиопроигрыватель с возможностью чтения флешек?
Хочу собрать аудио проигрыватель флешек, с хорошим цапом и звуковым трактом.
Чтобы там был дисплей, текстовый или TFT, несколько кнопок, плей, пауза, вперед, назад, стоп.
В общем, самый минимум, чтобы слушать музыку без компьютера.
В работах с цифровыми устройствами у меня опыта практически нет, поэтому прошу совет у знающих людей.
Флешку с музыкой нужно опознать, обнаружить там файлы, вывести это на дисплей, управлять кнопками переключением треков и воспроизведением, понимать что это звуковые файлы, и уметь их воспроизводить. Вывести сигнал через I2s на вход цапа, где он будет конвертироваться в аналоговый звук.
На многих микроконтроллерах есть I2S, но нужно же этому МК объяснить, что от него требуется.
Нужно делать что-то типа микрокомпьютера, как Raspberry, устанавливать туда легкий дистрибутив линукс, или можно обойтись меньшими ресурсами? Мне же не нужен весь функционал компа, но как воспроизводить музыку и управлять этим процессом я не знаю.
Что посоветуете?
Я-бы другую задачу поставил. Не какой линукс требуется. А без какого софта в принципе не обойтись.
Например тебе нужна
- файловая система чтоб mp3 файлы лежали как отдельные сущности.
- mp3-codec чтоб это звучало
Василий Банников, не шутка.. там достаточно памяти и скорости инета и адекватный "усилок", чтоб не заморачиваться насчет плеера с флешками
и кстати умеет он во флешки... просто не во все)
mayton2019, Вопрос категорически правильный! Но, моих знаний недостаточно, чтобы понять, какой минимальный набор софта нужен, чтобы эта штука работала.
Логически я понимаю, что плеер должен распознавать файлы, знать что это за файлы, и что с ними нужно делать. Как это по науке называется, и как это установить, написать и т.д. пока без понятия. Накачал кучу книжек по МК, и потихоньку изучаю.
Надеюсь, с количеством прочитанного что-то начнет проясняться.
Drno, Не, айфон не годится. Мне же звук нужен. Кроме айфона, и муз.центр такое умеет, но это же не звук. На этих устройствах можно аудиокниги слушать, но не более того.
Сергей, накачал кучу книжек - это ты зря. И что ты сядешь всю эту кучу перечитывать?
Тебе нужна регулярная работа связанная с микро-контроллерами. Там подучишся. И начнешь что-то делать.
Или найди учителя или ментора который тебя носом протащит по всем этапам разработки.
RaspberryPi с моей точки зрения - это игрушка. Она ничему не учит. Она по идее должна просто барьер
сломать чтобы показать любому нубу как это легко и приятно кодить встраиваемую технику. Но я ни разу
не видел полезных вещей собранных на Raspberry. Кроме светодиодных ленточек в виде гирлянды.
Что разве после Raspberry ты будешь знать ассемблер? Или С ? Прошивать устройсвта - много ума не надо.
Любой школьник научится прошивать. А попробуйте взять задачу и разработать. Идея. Алгоритмы. Структуры
данных. Дизайн библиотек. Документация. Это дорого стоит.
Сергей, на айфонах чудный и хороший звук. очень даже. тем более он умеет в лослесс
понято что нашествие ты на нем не запустишь, но для обычного актового зала \ машины \ дома - заглаза
mayton2019, Ну как же зря? Как я могу что-то химичить с микроконтроллерами, если я не знаю с какой стороны к ним подходить? Это же не на велосипеде учиться ездить. Тут понимание нужно, что конкретно делать. Как иначе то?
Найти учителя нереально. Если кто-то и шарит в МК и программировании, то я таких людей не знаю, а если бы и знал, то вряд ли они бы стали меня учить. У них и без меня дел хватает.
Вот вы пишете: "А попробуйте взять задачу и разработать. Идея. Алгоритмы. Структуры
данных. Дизайн библиотек. Документация." Вы же не методом тыка это освоили? Для меня эти термины пока ничего не означают. Вы же откуда-то это узнали?
Насчет RaspberryPi, я согласен, это игрушка для начинающих, и зацикливаться на ней нежелательно. Но, для старта она лишней не будет. Лучше хоть как-то стартовать, чем сразу обломиться на микроконтроллерах и забросить это навсегда.
Drno, Если бы вам послушать годную студийную звуковуху, на каких-нибудь нормальных наушниках - это было бы очень впечатляюще. Я такие опыты проводил. Когда знакомые мне говорили, что аудиофилы больные на голову, и обычный айфон делает годный звук.
Ну ОК, приглашаю таких в гости, включаю ЦАП, наушники Сенхи 650, и даю послушать.
У человека округляются глаза и отвисает челюсть.
mayton2019, Ну вот. Сами учились, а мне пишете что книги это зря, и нужно осваивать методом тыка на практике. Сначала теория, а затем уже практика. Мне в вуз уже поздно, а вот самостоятельно разобраться, вполне реально. Других вариантов у меня просто нет.
Сергей, я говорю тот факт что ты накачал книг не дает тебе никакой опции. У тебя есть план по этим книгам? Какого они уровня? Кто проверит твои знания? Вообще учатся не по книгам а по учебному плану. Я знаю очень мало книг которые вообще могут быть учебной методичкой.
mayton2019, Ну да, накачанные книги, сами по себе, не дадут никакой пользы. С ними нужно работать. План по книгам есть: скачал несколько десятков, пробежал их содержание по диагонали, выбрал несколько самых простых, для начинающих, и сейчас их читаю. Как их изучу - перейду на книги более сложного уровня и так далее. Так само поступил с книгами по СИ. Сейчас читаю Дейтела, Прату и Гриффитса. Дейтел, как по мне, самый крутой.
А знания мои, как и ваши знания, проверит жизнь.
Хочешь совет? Поставь себе мене амбициозную цель. Пускай это будет не аудио-плеер
а что-то более простое. Короче сделай подготовку самого себя к сложным задачам.
И эта простая задача должна быть измерима по времени. Тоесть ты должен понять что ее
разработка займет у тебя не бесконечность а вполне осязаемый срок.
mayton2019, Я примерно так и делаю: сейчас мигаю светодиодами. Это я уже умею.
Аудиоплеер это так, на будущее. С моим нынешним уровнем знаний, такую штуку я не вывезу.
Буду подбираться к нему издалека, через более простые устройства.
Что-то с такими навыками поиска инфы в сети у вас вряд ли получится достичь задуманного.
Я вот с микроконтроллерами дело имел только лет двадцать назад в ВУЗе на лабораторных работах, и то нагуглил за пол минуты модуль вроде такого: https://aliexpress.ru/item/1005003021933505.html?s...
Только вот смысла в такой самоделке я не вижу. Сейчас продается масса дешевых (дешевле отдельных компонентов в розницу) прикольных девайсов, причем даже в локальных магазинах вроде DNS. Там и звук у них хороший (на мой непритязательный вкус), и вид, и дизайн, и питание гибкое от батареек до встроенныз аккумуляторов, тайп-си кабеля, прямого провода от солнечной батареи и чего угодно.
Удвляюсь, что в такие приборчики массово вайфая на борт не добавляют, веб-интерфейса и вохможностей интернет-радио. Хотя наверняка уже есть готовые таке приборы.
Смотрели проект Ka-радио? Наверняка кто-то прикручивал к проекту и USB-host
Сейчас продается масса дешевых (дешевле отдельных компонентов в розницу) прикольных девайсов
Я с этими дешевыми девайсами уже игрался. Толку от них мало. Да, оно работает, но весьма посредственно. Я избалован качественным звуком, и китайские варианты не годятся.
Пробовал уже хакнуть систему, разбирал американские внешние звуковухи, чтобы посмотреть, что там за начинка, и попробовать собрать или купить китайские полуфабрикаты. Разбираю, например Apogee, а там ЦАП, АЦП, куча входов, выходов и операционников. Из всего этого меня интересует только ЦАП. Я же не буду подключать микрофоны, муз. инструменты и писать дома музыку. Нужно только слушать.
Смотрю какой чип там установлен, его обвязку, и оказывается что китайцы продают готовую плату на таком же чипе. Покупаю - звук никакой. Ну, ОК, выбрасываю звуковой тракт, подключаю внешний усилок, делаю раздельное питание цапу, как рекомендуют в даташите. Всё равно звук никакой. Чип один и тот же, ES9018, но в звуковухе за 1000+ баксов оно звучит офигенно, а на китайской плате, тот же чип звучит никак.
Что они там наколдовали, чтобы так получилось - загадка.
Так что простые решения не годятся.
Сергей, может помимо чипа еще фильтры, обвязка правильная на плате, разводка правильная, чтобы дорожки друг на друга не наводили сигнал. Ну и эффект плацебо тоже учитывайте. Делайте двойной слепой эксперимент, чтобы убедться, что не предзяты.
Сергей Паньков, Разводка может создавать помехи, которые будут видны только на приборах, но не ухом. Пусть будут какие то наводки, которые видны осциллографом, я же их не слышу. А тут детали теряются, картинка смазывается.
Не могут же наводки скушать часть звука? Или могут?
И насчет эффекта плацебо - это не тот случай. Разница настолько колоссальна, что никакое самовнушение тут не поможет. Это ощущается так, будто бы слушал музыку, заткнув уши ватой, и вроде было норм, но тут вынимаешь вату, и происходит вау эффект и отвисание челюсти.
Можно компьютер типа raspberry взять - будет гораздо проще, тк точно не будет проблем с мощностью и декодированием звука.
Можно взять МК - тогда надо смотреть, чтобы:
1. В нём был реализован USB. Желательно нужной версии, чтобы хватило скорости. Если повезёт - даже не придётся отдельную микросхему для физического уровня брать.
(или SD, если под флешкой имеются в виду sd-карты)
2. Смотри, чтобы ему хватало мощности для декодирования того кодека, который тебе нужен. В идеале - чтобы был аппаратный декодер.
Смотри, чтобы ему хватало мощности для декодирования того кодека, который тебе нужен. В идеале - чтобы был аппаратный декодер.
Я этого не могу понять: каким образом МК соображает, что этот файл является звуковым, и что с ним нужно делать? Это кодеки, да? Их нужно откуда-то взять и установить в МК, или они там уже есть? Или бывают МК, в которых кодеки по умолчанию установлены, и ничего дополнительно не нужно делать?
Вот если комп проигрывает музыку, эти программы проигрывания FLAC или MP3, они есть в винде или линуксе, или где? Если я не устанавливаю линукс, то какой минимальный набор мне нужно установить, чтобы МК понимал, что от него требуется?
каким образом МК соображает, что этот файл является звуковым, и что с ним нужно делать?
В программе заложено. По имени например.
Это кодеки, да?
Кодек отвечает только за декодирование. Нужно ещё как-то выбрать нужный кодек.
Их нужно откуда-то взять и установить в МК, или они там уже есть?
Какие-то кодеки могут быть аппаратными - как отдельная микросхема или встроенные в МК.
Какие-то поставляются как сишные библиотеки.
Вот если комп проигрывает музыку, эти программы проигрывания FLAC или MP3, они есть в винде или линуксе, или где?
Да.
Если я не устанавливаю линукс, то какой минимальный набор мне нужно установить, чтобы МК понимал, что от него требуется?
Зависит от выбранного МК и нужных кодеков :)
По сути для каждого кодека нужна будет своя библиотека.
Никакого "установить" правда не может быть - нужно писать программу для МК, которая и объяснит ему, что делать.
Василий Банников, Спасибо вам за ответы. Чем больше я пытаюсь в это вникнуть - тем больше ужасаюсь сложности происходящего. Засяду читать книги по МК и СИ, и может лет через 10 у меня что-то получится собрать. Программисты это какие-то гении, и для простых смертных их работа кажется магией, алхимией.
Я вроде не совсем дурак, всяких шопенгауэров читаю, и в технике хорошо шарю:
форсировка ДВС, турбины, распредвалы, компрессоры, подготовка машины к соревнованиям - это вообще в легкую. Но тут я просто увяз.
Печально чувствовать себя тупым :(
Василий Банников, Давайте я вам про машины расскажу, а вы мне про МК и программирование. Обмен опытом. На самом деле, любая машина проще, в том смысле, что там всё видно. Можно разобрать любой узел, и пощупать его руками, посмотреть, что с кем как связано и как взаимодействует. А вот в программировании это сделать невозможно. Это такой черный ящик, в который пишутся иероглифы, и нельзя этот ящик вскрыть, и посмотреть, какой иероглиф что делает. Тут фантазия нужна, чтобы представить все процессы у себя в голове.
Зато можно посмотреть пошагово, как код выполняется - это раз.
Для каждой команды есть подробное описание, что она делает.
Для МК есть разные схемы, как внутри соединяются разные модули.
Василий Банников, Это вы с высоты своего опыта так воспринимаете ситуацию.
Возьмем для примера тот же проигрыватель, о котором я писал выше:
1. Этих микроконтроллеров миллион, и нужно выбрать тот, который нужен конкретно для решения данной задачи.
Изучая МК по книгам, я скачал несколько даташитов, по описанным там МК, и был очень удивлен их объемам в 1500 страниц, да еще на инглише, естественно.
Это даже не Лев Толстой, и не Айн Рэнд. Вот это кирпич так кирпич. И это как-то читают:)
2. Нужно подключить к нему флешку с аудио записями, подключить дисплей, и как-то ему объяснить, что к тебе подключена флешка, и будь добр, выведи мне на дисплей список треков.
3. Выбираю кнопками нужный трек, жму плей, и МК должен совершить финт ушами, отрабатывая этот трек в I2S, который идет в ЦАП, где по одному проводу идут сигналы синхронизации L / R каналов, по другому клок, по третьему дата, и даже четвертый провод есть, мастерклок, который, как я понял, используется вместо кварца для самого ЦАПа.
Объяснить всё это с помощью программирования - задача незаурядная.
Как по мне, чтобы в этом разобраться - нужно обладать очень серьезными интеллектуальными способностями. А ведь это конструкция не из сложных.
В аналоговой электронике я более-менее разбираюсь, не супер специалист, но знаний достаточно, чтобы собирать передатчики, приемники, ламповые и транзисторные, и антенны рассчитывать по Ротхаммелю и всё такое. Там тоже сложно, но аналоговая электроника однозначно легче дается.