Магнитола на ардуино своими руками

Добавил пользователь Алексей Ф.
Обновлено: 18.09.2024

Приветствую! В общем, заказал я на Алиэкспресс 2DIN автомагнитолу - 7 дюймов емкостный экран, Android 5.1, процессор intel sofia, 2 гига оперативки, 32 встроенной, GPS, WIFi, 3G т.д., короче как для такой цены и класса устройств очень круто и полный фарш, получил посылку, подключил - все работает четко, качественный звук и сборка, ну думаю, наконец-то китайцы научились делать хорошо. Но получилось как в той поговорке - "танцевали, танцевали, но не поклонились", решил проверить потребление в выключенном режиме и чуть офигел - 500мА, во включенном состоянии при маленькой громкости динамиков 800ма, то есть фактически магнитола не выключается, а все время жрет аккумулятор, при таком потреблении оставишь машину на пару дней и завести уже не сможешь. Реальный спящий режим с потреблением 10мА у магнитолы все-таки есть, но он включается только если отключить вывод магнитолы ACC от питания, но в таком случае включать и выключать магнитолу надо только поворотом ключа в положение ACC на замке зажигания, бред какой-то, переписка с китайцами ничего не дала, так и посоветовали выключать с ключа, типа "так и было задумано". На панели есть кнопка POWER, но она выключает только экран и внутренний усилитель, а все системы работают на полном ходу с потреблением 500ма. Так вот в чем состоит задача - надо создать электронный выключатель на ардуино, который будет смыкать и размыкать вывод магнитолы ACC с питанием 12в. Описание работы:

P.S. Нашел такой электронный выключатель на PIC12F629 , но очень неохота играться с прошивкой (программатора у мя нет), хочу сделать на Ардуино.

Остання редакція martinways (2016-12-04 11:27:44)

привет, рад видеть )
я сначала тоже нервничал что музыку без ключа не послушать, но после пары подкуриваний забывшему выключить магнитолу "вьехал" в тему ) китайцы рулят )
сейчас висит 3-4 близких задачи, поворотники, для меня ) , сигналы куме , и т.д. хочу объединить - участвуете?

но релиз после НГ (, чуток занят, даже лодку некогда доделать (

ищу "смехотехника" на небольшой EAGLE проект
кнопку для "китайца" нужно реализовать )
и пару ШИМ

https://snag.gy/0hzRJU.jpg

понимающего что тут написано )

Подавление помех - это целая наука.
Если кратко - здесь указаны рекомендации по сведению к минимуму наводок на кварц.
Могу помочь чем смогу.

) привет нужно развести в EGALE плату с источником Vin = 6-24V ( 12V номинал ) источник, да с подавлением помех генератора и потребителей еще те муки выбора) , т.е. незнаю что поставить ))))

под Kinetis® EA series of 32-bit ARM® Cortex® MCUs
на неделе закажу S9KEAZN8AMTG
Kinetis E 32-bit MCU, ARM Cortex-M0+ core, 8KB Flash, Automotive Qualified, 48MHz, 16TSSOP
что то соберу, но правильную плату нужно будет сделать, я что то могу, но это так, баловство, вот заранее разбираюсь кто может сделать, полного ТЗ еще нет Вы правы, ет целая наука

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

))) спасибо за инфу ),
купить Altium я точно сейчас не могу. поэтому все проекты нынче в EAGLE, 2 фришных слоя с головой хватает,

я еще еще правда не предупредил что нам всем нужно скинуться на схемотехника ) но пока ТЗ нет ), все что то потерялись, как только разговор зашел за NXP, но я ардуино не буду ставить в машину, а тут такой чип занимателен, который нужно обязательно посмотреть.

если есть опыт разработки плат в "нестандарте" по условиям, девайс должен соответствовать 2ExibIICT2 (это я проверю правильно ли набил код %) был бы рад с Вами поработать. но пока ТЗ нет, развлекаемся прототипам )

Всем доброго дня!

Имеется в наличии автомобиль Toyota Crown в 170 кузове, с мультивижином (штатная магнитола с телевизором). Японцы немного перемудрили и вывели на штатный сенсорный экран управление климатом автомобиля, а вот про камеру заднего вида забыли почему-то. Т.е. камеру можно подключить только через отдельно стоящий в багажнике ТВ тюнер, и для того чтобы ее включить во время парковки нужно будет каждый раз нажимать кнопку "ТВ" на магнитоле, чтобы перейти в интерфейс ТВ, а потом чтобы управлять климатом нужно жать кнопку "климат", что я считаю не совсем удобным. Поэтому решил освоить платформу ардуино, чтобы заставить работать штатную голову как мне нужно!

Придумал я определенный алгоритм, по которому в зависимости от включения задней передачи должен нажимать либо кнопку "ТВ" (чтобы картинка появилась), либо кнопку "климат" чтобы вернуть в меню управления климатом. Разобрал телевизор посмотрел на кнопки - обычные тактовые, но проблема в сигнале которые они коммутируют. Т.к. из измерительных приборов у меня только мультиметр я измерял напряжения - результаты были следующие на входе кнопки висит 0,120В.

Завел выход кнопки на аналоговый вход ардуины и написал программу при которой, если напряжение на аналоговом входе больше 0,05В светодиод загорался, если меньше потухал. Подключил ардуину к магнитоле и увидел, что светодиод начал моргать, т.е. скорее всего сигнал этот ШИМ, а за отсутствием осциллографа померить и эмулировать сигнал средствами МК не могу.

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

JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Я правильно понимаю что на штатной магнитоле две кнопки для переключения режимов? Что-то мне подсказывает что на кнопках не ШИМ, а резисторы висят и в зависимости от нажатой меняется напряжение на АЦП процессора магнитолы.

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

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

Необходим быстродействующий преобразователь питания средней мощности с высоким КПД? Он должен быть компактным и недорогим? Решение – карбид-кремниевые модули средней мощности WolfPACK производства Wolfspeed. В статье рассмотрены основные особенности модулей WolfPACK и показано, что переход на эту универсальную и масштабируемую платформу позволяет не только быстро разработать новые устройства, но и без значительных затрат времени и средств модернизировать уже существующие схемы на традиционной элементной базе.

_________________
С уважением GriSHok

Критически важные распределенные системы требуют синхронного преобразования во всех подсистемах и непрерывного потока данных. Распределенные системы сбора данных могут быть синхронизированы как на основе АЦП последовательного приближения, так и на основе сигма-дельта (∑-Δ)-АЦП. Новый подход, основанный на преобразователе частоты дискретизации (SRC), содержащемся в микросхемах линейки AD7770 производства Analog Devices, позволяет достигать синхронизации в системах на основе сигма-дельта-АЦП без прерывания потока данных.


Несколько лет назад мне приспичило соорудить контроллер управления для дизельного двигателя. Я до сих пор так и не приступил к этой затее вплотную, но подбираюсь к ней всё ближе и ближе.

Как я уже писал в предыдущей статье — мне нужно свести в единую кучу информацию с довольно большого количества различных датчиков и механизмов. Пока такой информации было немного — я собирался примостить несколько показометров где придётся. Как-то это было не принципиально. Но вал количества необходимой информации нарастал стремительно и в определённый момент я понял, что отображение всего этого безобразия переросло в отдельную проблему. Увешивать весь салон автомобиля циферблатами я не имел ни малейшего желания. Такого счастия мне не надо:


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

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

1). В случае манипуляций с климат-контролем, управление которого тоже переселяется в самодельный блок управления. Нажал любую из клавиш климат-контроля — на экране СРАЗУ отображается раздел с информацией по этой теме.

3). В случае ручного переключения на соответствующий режим для наблюдения за происходящим или для просмотра накопленной информации.

4). Естественно, в случае включения заднего хода переключаемся на камеру заднего вида.

Все остальное время магнитола выполняет свои штатные функции.

Для более тесной интеграции в автомобиль формирование картинки будет осуществляться непосредственно разрабатываемым компьютером — никаких программ под Андроид я писать не собираюсь…
Только такой подход обеспечивает мгновенную реакцию и надёжную работу экрана.

Именно потому так много времени у меня заняла тема формирования качественного низкочастотного композитного видеосигнала для подачи на RCA-вход камеры заднего вида 2DIN-магнитолы.

На пике коронобесия я снял с автомобиля магнитолу, снял со стены телевизор, поскрёб по сусекам в поисках кой-какого электронного барахла и устроил себе недельную самоизоляцию на своём домашнем рабочем месте…

Самое забавное — я так и не сумел вывести монохромное изображение на экран магнитолы. Чего я только не пробовал… На экране жк-телевизора картинка отображалась без особых танцев с бубнами, а на экране магнитолы в лучшем случае мелькали куски изображения. Вероятно чип магнитолы слишком требователен к качеству формируемого видеосигнала…

Даже тяжёлая артиллерия в виде Arduino DUE с библиотекой от stimmer`а ничего не изменила в итоге — изображение всё также еле угадывалось по отрывочным всполохам.
На экране телевизора картинка была устойчивая и даже цветная, но гадкая до неприличия именно из-за своей цветности. Кто видел расфокусированный кинескопный цветной телевизор — тот поймёт.

Когда руки у меня опустились, я в полном расстройстве чуфств перелопатил свое творение под формирование VGA-сигнала буквально тремя резисторами. По всем прикидкам изображение должно быть намного лучше — так оно и вышло. Картинка на компьютерном мониторе получилась просто зашибись:


На экране жк-телевизора она смотрелась несколько хуже, но не принципиально.

Такое качество изображения меня вполне устраивало, но всё портило одно обстоятельство — на моей автомагнитоле нет ни VGA-входа, ни HDMI.

Деваться было не куда — я решил не терять более своего драгоценного времени и в вопросе формирования композитного видеосигнала отдался на откуп профессионалов.
Нормальные герои всегда идут в обход?

Благо поиск фабричного конвертера из VGA в RCA долго времени не занял:


Не знаю, сколько такое устройство стОит на самом деле — мне оно обошлось в пределах 20уе.
Поиск в интернэте дал только один вариант в Алма-Ате и я поскакал быстрее покупать агрегат, пока он не исчез из наличия.

Сама коробочка небольшая, греется при работе прилично… Я её не вскрывал, но судя по всему слепить подобное из говна и палок будет несколько проблематично даже при сильном желании.
Функционал устройства приятно впечатлил, картинка с компьютера на экране телевизора отображалась очень даже прилично — для кыно вариант в самый раз. Молодцы китайцы. А вот надписи на экране были практически нечитаемы — реальное разрешение у композитного сигнала некудышнее. Увы…

На экране магнитолы картинка меня качеством не впечатлила — изображение было слегка замыленное и мерзко дрожащее. Ситуацию заметно улучшило переключение видеокодека на формат NTSC-J. Даже NTSC-M слегка хуже, а PAL в своём многообразии так весь отстой полный. Понятно, что это уже определяется уровнем качества видеовхода магнитолы(на телевизоре такой заметной разницы нет), но настроение мне это слегка попортило.

После всех ковыряний итог получился такой:


Фотографии неудачные — смартфон очень плохо берёт прямые источники света.
В реальности изображение довольно качественное. Так выглядят чистые цвета:


Что мне и требовалось.
Картинка низкого(320*240) разрешения, сформированная всё той же связкой Arduino DUE с библиотекой stimmer`а в версии VGA, пропущенная через конвертор с расстояния вытянутой руки смотрится чуть хуже, но тоже вполне достойно:


Проект можно посмотреть здесь — stimmer.github.io/DueVGA/
Проблема только одна — библиотека stimmer`а написана 7 лет назад и фактически брошена автором на призвол судьбы — не фиксится и не развивается более.


Мне же нужна приличная графика, чтобы формировать подобные вещи:



Потому мне необходим инструмент помощней.
А раз уж я переключился с формирования композитного сигнала на формирование VGA — то и выбор мой расширился на порядки.

Формирование VGA намного проще — потому готовых проектов для повторения просто море.
Потому я в ближайшее время собираюсь таки заказать себе ESP32 и поиграться с ним — он должен формировать в разы лучшее изображение(от 640*480 и выше при 64 цветах) при меньшей вероятности затыков от выполнения параллельных задач, которых у меня будет много.

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

20 мая 2020 в 07:45 Метки: формирование низкочастотного композитного видеосигнала микропроцессор ардуино

Добавление звуков или музыки в какой-нибудь ваш проект (устройство) всегда выглядит хорошо. Особенно просто добавить музыку/звук в ваш радиоэлектронный проект если он построен на основе платы Arduino и у вас есть свободные контакты на этой плате. В этом случае вам нужно будет просто докупить модуль для SD карты и нормальный динамик.

Внешний вид аудиоплеера и усилителя на Arduino Uno

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

Необходимые компоненты

Плата Arduino Uno
Модуль чтения SD карт
SD карта
Аудио усилитель LM386
Конденсатор 10 мкФ (2 шт.)
Конденсатор 100 мкФ (2 шт.)
Резистор 1 и 10 кОм
Кнопка (2 шт.)
Макетная плата
Соединительные провода

Основы работы с WAV аудиофайлами в Arduino

Для проигрывания звуков/музыки с SD карты с помощью платы Arduino необходимо чтобы они были в .wav формате потому что плата Arduino умеет работать только с аудиофайлами этого формата. Чтобы сделать mp3 плеер на основе платы Arduino можно воспользоваться большим количеством предлагаемых на рынке шилдов (плат расширения) для Arduino, позволяющих работать с mp3. Либо можно с помощью специальных сайтов в сети интернет конвертировать формат mp3 в формат wav (этот способ мы будем использовать в данной статье).

Таким образом, для конвертирования любых аудио файлов в wav формат необходимо выполнить следующую последовательность действий:

Шаг 1. Перейдите на сайт - Online Wav Converter.

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

Шаг 3. На указанном веб-сайте нажмите “choose file” и выберите файл который вы хотите конвертировать. Затем заполните необходимые настройки. Вы должны будете на экране компьютера получить примерно следующую картинку:

Настройка параметров для конвертирования аудио файла

Шаг 4. Теперь нажмите “Convert File” и ваш файл будет конвертирован в wav формат, который можно будет скачать к себе на компьютер.

Шаг 5. Отформатируйте свою SD карту и сохраните ваш .wav аудио файл на нее. Запомните имя (наименование) своего файла. Можно загружать и несколько аудио файлов при необходимости. Мы в нашем проекте выбрали 4 файла с песнями и назвали их 1, 2, 3 и 4 (имена не должны изменяться). Соответственно, после конвертации мы получили файлы 1.wav, 2.wav, 3.wav and 4.wav как показано на следующей картинке.

Аудио файлы на нашей SD карте

Работа схемы

Схема устройства представлена на следующем рисунке.

Схема аудиоплеера и усилителя на Arduino Uno

Поскольку наши аудио файлы хранятся на SD карте мы подключили модуль чтения SD карт к плате Arduino. Плата Arduino и модуль чтения SD карт взаимодействуют используя последовательный протокол связи SPI. Поэтому модуль чтения SD карт и подключен к контактам SPI платы Arduino как показано на схеме выше. Также необходимые соединения платы Arduino с модулем чтения SD карт дополнительно представлены в следующей таблице.

Плата Arduino Модуль чтения SD карт
+5V Vcc
Gnd Gnd
Pin 12 MISO (Master In Slave out)
Pin 11 MOSI (Master Out Slave In)
Pin 13 SCK (Synchronous Clock)
Pin 4 CS (Chip Select)

Теперь наша плата Arduino сможет считывать музыкальные файлы с SD и проигрывать их на своем контакте 9. Но аудио сигнал на выходе контакта 9 платы Arduino будет достаточно слабый, поэтому мы будем усиливать его с помощью микросхемы аудио усилителя LM386. Данная микросхема позволяет усиливать аудио сигнал до 200 раз и ее контакт Vdd (pin 6) запитывается от контакта 5V платы Arduino. Если вы хотите увеличить/уменьшить громкость звука вам необходимо увеличить/уменьшить напряжение подаваемое на этот контакт. Максимально на этот контакт можно подать 15 В. Более подробно о микросхеме LM386 можно прочитать по этой ссылке (на английском языке).

Также мы в схему добавили 2 кнопки, одна из которых используется для переключения на следующий трек (аудиофайл), а вторая – для проигрывания/паузы музыки.

Вы можете собрать представленную схему на макетной плате как показано на следующем рисунке:

Собранная на макетной плате схема аудиоплеера и усилителя на Arduino Uno
Программирование Arduino для проигрывания музыки

Когда вся аппаратная часть рассматриваемого проекта у вас уже готова вставьте SD карту в модуль для их чтения и выполните следующую последовательность действий:

Шаг 1. Скачайте библиотеку для работы с аудиофайлами по следующей ссылке - TMRpcm library. На открывшемся сайте выберите “Clone or download” и выберите скачивание в формате ZIP архива.

Шаг 2. Добавьте этот Zip файл в вашу Arduino IDE при помощи выбора пункта меню Sketch->Include Library -> Add .ZIP Library как показано на рисунке ниже и выберите ZIP файл который вы только что скачали.

Добавление библиотеки для работы с аудио файлами в Arduino IDE

Шаг 3. Полный текст программы приведен в конце статьи, просто скопируйте и вставьте ее в вашу Arduino IDE, а потом загрузите ее в вашу плату Arduino. В этом разделе будут объяснены лишь наиболее значимые фрагменты программы.

Проигрывание аудио файла

Вы можете проигрывать аудио файл, хранящийся в Wav формате на SD карте, с помощью следующей команды:

music.play("3.wav");
//object name.play (“FileName.wav”);

Постановка на паузу аудиофайла

Для этого можно использовать команду вида:

Перемотка вперед/назад аудио файла

В платформе Arduino нет прямых способов перемотки аудио файла вперед/назад, однако можно проигрывать аудиофайл с заданного фрагмента времени. При дополнительном программировании эту способность можно использовать для перемотки аудио файла.

music.play("2.wav",33); //проигрывание песни с 33-й секунды
//objectname.play(“Filename.wav”,time in second);

Установка качества аудио

Скачанная нами библиотека обеспечивает два возможных уровня качества проигрывания музыки: в нормальном режиме и с двухкратной частотой дискретизации (2X oversampling).

music.quality(0); //Normal Mode
music.quality(1); //2X over sampling mode

Установка уровня громкости

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

music.setVolume(5); //установка уровня громкости 5
//objectname.setVolume(Volume level);

Работа музыкального аудиоплеера на основе Arduino

После загрузки программы в плату Arduino просто нажмите кнопку, подсоединенную к контакту 2 платы Arduino, и начнется воспроизведение первой песни, записанной на SD карту (в нашем случае это 1.wav). Если нажмете кнопку еще один раз, то произойдет переключение на вторую песню - 2.wav и т.д.

Внешний вид собранного аудио плеера

Можно ставить песню на паузу и возобновлять ее проигрывание с помощью кнопки, подключенной к контакту 3 платы Arduino. Более подробно все эти процессы показаны на видео, приведенном в конце статьи.

Исходный код программы

Представленная программа показывает как можно проиграть три песни с SD карты при помощи нажатия соответствующей кнопки в схеме.

Читайте также: