Условия эксплуатации танка, как известно, весьма суровые: пыль и вибрация, широкий диапазон рабочих температур, большие изменения влажности. Именно поэтому обойтись дешёвыми китайскими платами с Aliexpress здесь не получится. К тому же плеер должен органично вписываться в существующий конструктив, не мешать орудиям и рычагам управления. А вот большой объем памяти наоборот не требуется, воспроизводить нужно два трека: выстрел из пушки и пулемёт.

Именно с таким техническим заданием два года назад ко мне обратился создатель проекта «ТАНКОДРОМ» Сергей Акимов. Речь идёт не о настоящем танке, а об аттракционе, пользующемся популярностью у подрастающего поколения. Дело в том, что танки совершенно беззвучны, не считая рёва бензинового двигателя, посетителям совершенно нечего слушать. По задумке на панели внутри танка должны располагаться две кнопки, нажатие которых сопровождается световой индикацией и звуками выстрелов.  

Основные технические требования ясны – устройство должно содержать память для хранения треков, кодек, аудио-усилитель и микроконтроллер с поддержкой USB. Выбирать между аппаратным кодеком или программным долго не пришлось. Изделия штучные и себестоимость решений окажется сопоставимой, а вот трудозатраты совершенно различны. Компания VLSI производит великолепные кодеки по доступным ценам. А в качестве микроконтроллера я выбрал знакомый многим STM32F103. В общую картину органично вписался усилитель D-класса TDA8932B с выходной мощностью до 30 Вт.

Опытный образец был собран на макетных платах, тех самых, дешевых китайских. Перед тем как лезть в воду не лишним будет оценить брод.

Макетирование MP3 плеера
Макетирование MP3 плеера

Примерно через месяц вечерне выходного времяпрепровождения отладка заработала как надо. Память читается, треки воспроизводятся, светодиоды мигают. Но как долог бывает путь от макетной платы до работающего изделия…

Схемотехника

Первый образец запустился с горем пополам. И вроде все схемы известны, и отладки функционируют и документации куча. Откуда ошибки? Развожу руками. Где-то глаз замылился, где-то номинал не досмотрел, да и китайские платы не без греха. Работает «как-то» и работает хорошо – два совершенно разных мира. При макетировании, например, фоновый шум можно списать на длинные проводники и отсутствие общего полигона земли. При макетировании проблематично оценить токопотребление. А о том, что где-нибудь забыл резистор или конденсатор узнаешь, когда плата будет полностью готова.

Опытный образец MP3 плеера
Опытный образец MP3 плеера

С термоклеем и проводами не будем горевать, будем танцевать. В книгах по психологии написано, что ошибка – это самый лучший результат, мол, так ты чему-то научился. И пока авторы в своих книгах приводят самые лучшие результаты, мы займемся второй версией.

Вместе с уборкой термосоплей потребовалось переделать и схему питания. Линейные стабилизаторы рассеивают непозволительно много энергии, а резисторы обратной связи спускают ток на землю пока устройство крепко спит.

Поясню работу схемы. Аудио усилитель работает в моно-режиме. Устройство имеет два входа для кнопок и четыре канала для светодиодов. Яркость и громкость звука регулируются программно через потенциометры. Память на 4 Мб необходима для записи нескольких коротких треков. Схема имеет защиту от переполюсовки, может питаться как от внешнего источника, так и от компьютера через USB (работает только цифровая часть).   

Схема MP3 плеера на STM32
Схема MP3 плеера на STM32

Особое внимание трассировке кодека и усилителя. К счастью производитель снабдил разработчиков всей необходимой информацией. Перечитав стопку мануалов и имея под рукой первый отлаженный образец делаем релиз.

MP3 плеер для аттракциона
MP3 плеер для аттракциона

И все-таки ошибка забралась и сюда, в посадочное место транзистора VT5. Переворачиваем, гнем ножки, едем дальше.

Программа

Ключевой момент в ПО – обеспечить своевременную передачу данных аудиокодеку. Все остальные функции не так критичны ко времени. Микросхема VS1003B имеет внутренний FIFO на 8 кБ, что существенно разгружает микроконтроллер. Однако с памятью работаем через библиотеку FatFs, а это не так быстро, даже с тактовой частотой 72 МГц.

Не забываем, что кодек сам по себе является DSP-процессором. А потому взаимодействие потоков в мультипроцессорной системе mp3-плеера имеет следующий вид. 

Схема взаимодействия микроконтроллера и кодека
Схема взаимодействия микроконтроллера и кодека

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

Схема работы диспетчера задач
Схема работы диспетчера задач

Бесценны библиотеки работы с USB от STMicroelectronics и FatFs Elm Chan`a. Бесценны и их подробные описания.

Часть разработанного кода не вошла в окончательную версию программы. Это загрузчик для обновления прошивки через USB и эквалайзер на кодеке VS1003B. В обоих случаях были весомые причины отказаться от наработок. Бритва Оккама использовалась со слезами на глазах.

Конструкция

Доставляет ли работа человеку удовольствие или нет, понятно по результату. Далее немного о творчестве Акимова Сергея.

Панель напечатана на 3D принтере, зашпатлевана, загрунтована, покрашена. Даже винтики подбирались с особым вниманием – с круглой шляпкой, подходящие по стилю. А плата плеера закреплена с задней стороны под водой. 

Панель танка в собранном виде
Панель танка в собранном виде

На рисунке показан только центральный элемент панели, без кнопок, последние крепятся на боковых частях.

Сборка

Одно дело разработать, другое – собрать. Особенно когда на дворе середина 2021-го года, из-за дефицита полупроводников комплектация превратилась из дешёвой, в отсутствующую. Это прежде всего касается микроконтроллера STM32F103C8T6. Заглядываю в таблицу с оценкой себестоимости от февраля 2021-го: 200 рублей на контроллер с обвязкой. А к моменту сборки изделия контроллер стоил не менее 600 рублей!

Я покупал отладки «Jlink для SWD» и спаивал с них микроконтроллеры. Китайцы видимо вскоре поняли, что платы с STM32F103 стоят почти в три раза дешевле голых микросхем и вторую партию мне не отправили. К счастью необходимым количеством я успел закупиться. Похожим образом обстояло дело и с усилителем TDA8932B, который в собранном модуле стоил в два раза дешевле.

Добавим в трагикомедию историю с печатными платами. Может быть жадность, а может прагматичный расчет подтолкнули меня разместить заказ на pcbway.com. Проверенный поставщик, с которым не было проблем. Однако заказ завис на таможне и был возвращен производителю, который в свою очередь отправил мне его вторично. Зачем я выбрал и оплатил ускоренную доставку, если платы пришли мне через 6 месяцев? К этому времени изделия уже были собраны, после 60-и дней ожидания заказ был размещен повторно на pcbrussia.ru.

Итог

«Как уже известно, зритель любит детективные фильмы. Приятно смотреть картину, заранее зная, чем она кончится». Проницательный читатель догадался, что счастливого конца не случилось. Ничего трагичного, впрочем, тоже не произошло. Просто изделие не смогло занять нишу, для которой разрабатывалось.

Во-первых звуковое сопровождение не вызвало яркой реакции и интереса у посетителей. Да и различить на фоне работающего двигателя звук плеера весьма проблематично. Во-вторых потребляемый ток при высокой выходной громкости динамика составляет более 200 мА. Так как устройство работает от аккумулятора, последний придется постоянно заряжать. Также имеется минимальный рабочий порог по напряжению порядка 11 В, ниже которого усилитель уходит в состояние защиты. Эти очевидные проблемы совсем не очевидны в начале пути.

Себестоимость изделия на 10.11.2021 составила 1640 рублей при цене микроконтроллера 333 рубля. Однако сборка и накладные расходы в этой цифре не учтены, промолчим и про стоимость разработки.

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

Все желающие могут собрать представленный плеер самостоятельно. В архиве находятся Gerber-файлы, прошивка в формате hex, BOM, руководство пользователя.

Комментарии (11)


  1. ciuafm
    02.11.2022 23:03
    +33

    Вынужден вас огорчить, вы делали дурную работу. Уже больше 5 лет китайцы продают микромодуль размером чуть больше 8ми ногого ДИП корпуса. Там есть слот для микро-сд, усилитель на 2 вата и собственно контроллер - проигрыватель мп3. Стоимость не больше 3$. Сделать обвязку на атмеле для диодов и кнопок - вечер работы.

    А если подумать - зачем вам мп3? Где вы найдете микро-сд меньше 128 мб? Можно просто записать wav и проигрывать напрямую atmel tiny 85 с микро-сд карты. В качестве усилителя полевик с пассивным фильтром. Соответственно бюджет проекта плавно продавливает дно $1.

    Не считая микро-сд конечно. Хотя если заморочиться, можно поставит 25 сериал флеш на 8Мб -16Мб в паре с тинькой и тогда можно попробовать прорваться ниже 1$.


    1. sim2q
      03.11.2022 02:40
      +3

      Мне кажется что огорчить призван как раз этот комментарий, по крайней мере складывается такое впечатление по вступлению. Тогда как автор вполне счастлив!

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


    1. 0x1A4
      03.11.2022 05:25
      +2

      Стоимость не больше 3$
      В районе $1. Называется DFPlayer mini, применял такие в похожих проектах, отличная штука.


      1. Evgeny_E Автор
        03.11.2022 05:41

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


        1. ionicman
          03.11.2022 08:33
          +1

          Документация там отличная, ибо платка использована в тысячах проектов. Что до звука - не HiFi, но и у вас там не оперный зал - играет оно вполне на уровне.

          Но самое главное - что мешало вообще играть не mp3, а wav? Тогда вообще без модуля бы обошлись. А карточку и плеер тянет даже ATTINY-25 (http://elm-chan.org/works/sd8p/report.html) и да, будет читать прямо с FAT.

          Опять-же что мешало сделать на STM программный MP3-плеер?


          1. Evgeny_E Автор
            03.11.2022 09:06

            В настоящее время делаю устройство на STM32G0 с воспроизведением wav через дешевый усилитель PAM8403. А на прошлой работе коллегой для воспроизведения звука использовался микроконтроллер STM32H7 с программным кодеком. Разные задачи, разные требования, разные решения.


  1. Svbakulin
    03.11.2022 03:37
    +7

    Помирать, так с музыкой! Запевайте, братцы....


  1. AChebanyuk
    03.11.2022 05:26

    Т.е. задача по звуковому оформлению танка была превращена вами в задачу разработки 1001-го варианта mp3 плеера. Плеер судя по всему получился.


  1. OptimumOption
    03.11.2022 06:12
    +13

    DimaX1 "...Всем привет!Я заказал платы на сайте https://pcbrussia.ru/.Обещали сделать за 20 дней.Деньги взяли и кинули.Уже 4 месяца ни денег ни плат.На требование вернуть деньги послали на ... ну сами понимаете куда.Это мошенники!!! ..."
    Источник сами найдёте, я думаю :) Ну и народ считает, что это всё таки посредник с китайцами, не может обычный ИП позволить себе изготовление 40-слойных печатных плат :) Да и сайт корявенький, с вкоряченным на скорую руку калькулятором стоимости плат...


  1. Squoworode
    03.11.2022 17:52

    танки совершенно беззвучны, не считая рёва бензинового двигателя

    устройство работает от аккумулятора, последний придется постоянно заряжать

    Я немного не понял, а бортовой сети у этого танка с бензиновым двигателем нет?


    1. Evgeny_E Автор
      03.11.2022 20:48

      Боротовая сеть есть. Танк содержит два аккумулятора, второй для лазертага. От него изначально и планировали питать плеер. Для запитки от бортовой сети требовались некоторые доработки схемы проводки.
      Но основный вопрос, думаю, заключается все-таки в том, что плеер не "зашёл" посетителям. Многие сетуют на себестоимость изделия, но в подобных задачах это не первичный вопрос.