Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Грибные блоки - красочная головоломка, в которой вам предстоит передвигать блоки и заполнять ряды, чтобы собирать грибочки в корзину! Попробуйте продержаться как можно дольше!

Грибные блоки

Головоломки, Расслабляющая, Пазлы

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

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

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Arduino + Рукоделие без процесса

С этим тегом используют

Электроника Ardublock Самоделки YouTube Своими руками Вертикальное видео Видео ВК Ручная работа Рукоделие Полимерная глина Вязание крючком Творчество Вязание Все
16 постов сначала свежее
657
MaxWhite
1 год назад
Лига 3D-принтеров

Настольная лампа-цветок (3D печать). Открывается =)⁠⁠

Настольная лампа-цветок (3D печать). Открывается =) Рукоделие без процесса, Arduino, Электроника, Настольная лампа, Цветы, 3D печать, Прямые руки, Заказ, Сборка, Led, Светодиодные светильники, Интерьер, Самоделки, Своими руками, Видео, Вертикальное видео, Длиннопост

В любой интерьер впишется!

Всем привет. Хоть и не пятница, но все ж поделюсь.
Пока сидел в бане (не в деревянной, а от админов) - решил себя чем-то занять и вот. Люблю что-то конструировать, как свое, так и повторять проекты.
Когда-то давно начинал накидывать потолочную лампу в виде цветка, чтобы раскрывался, а в лепестках лампочки, но что-то застопорилось она, а недавно наткнулся на такое чудо! Сразу скажу - проект не мой, не опенсорс, файлы покупал на забугорном сайте.

Настольная лампа-цветок (3D печать). Открывается =) Рукоделие без процесса, Arduino, Электроника, Настольная лампа, Цветы, 3D печать, Прямые руки, Заказ, Сборка, Led, Светодиодные светильники, Интерьер, Самоделки, Своими руками, Видео, Вертикальное видео, Длиннопост

Да, она открывается

Настольная лампа-цветок (3D печать). Открывается =) Рукоделие без процесса, Arduino, Электроника, Настольная лампа, Цветы, 3D печать, Прямые руки, Заказ, Сборка, Led, Светодиодные светильники, Интерьер, Самоделки, Своими руками, Видео, Вертикальное видео, Длиннопост

...и закрывается

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

Настольная лампа-цветок (3D печать). Открывается =) Рукоделие без процесса, Arduino, Электроника, Настольная лампа, Цветы, 3D печать, Прямые руки, Заказ, Сборка, Led, Светодиодные светильники, Интерьер, Самоделки, Своими руками, Видео, Вертикальное видео, Длиннопост

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

Лампа полностью напечатана на 3Д принтере (кроме гусиной шеи и электроники, разумеется), включая рассеиватели. Материал PETG от Bestfilament. Принтер - самосборный Ulti.

Настольная лампа-цветок (3D печать). Открывается =) Рукоделие без процесса, Arduino, Электроника, Настольная лампа, Цветы, 3D печать, Прямые руки, Заказ, Сборка, Led, Светодиодные светильники, Интерьер, Самоделки, Своими руками, Видео, Вертикальное видео, Длиннопост

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

Немного видео, первое - тестовый запуск, второе - готовая лампа. На самом деле она не такая громкая)

Закрывается не совсем ровно, т.к. есть люфт... Первый блин все же. Как устранить знаю, но для этого надо разбирать ее всю, проще сделать новую) И тут мы подходим к версии 2.0 где в планах заменить обычную светодиодную ленту на COB (уже куплена, фото ниже), вместо аналогового потенциометра поставить энкодер + цифровой потенциометр, транзистор на включение, вместо ардуино что-то на esp8266, например wemos, чтобы управлять с телефона или по таймеру, например будильник воткнуть или встроить в умный дом на Home Assistant. Электроника и половина деталей уже есть, осталось найти время и желание, т.к. все это не просто, но ошибки первой версии уже учел.

Настольная лампа-цветок (3D печать). Открывается =) Рукоделие без процесса, Arduino, Электроника, Настольная лампа, Цветы, 3D печать, Прямые руки, Заказ, Сборка, Led, Светодиодные светильники, Интерьер, Самоделки, Своими руками, Видео, Вертикальное видео, Длиннопост

Светодиодная COB лента. Отдельные светодиоды почти не видны и плотность их больше

Настольная лампа-цветок (3D печать). Открывается =) Рукоделие без процесса, Arduino, Электроника, Настольная лампа, Цветы, 3D печать, Прямые руки, Заказ, Сборка, Led, Светодиодные светильники, Интерьер, Самоделки, Своими руками, Видео, Вертикальное видео, Длиннопост

Лепесток с новой лентой

По вопросам покупки (а такие наверняка будут) - честно говоря хз, т.к. себестоимость вышла немаленькая и собирать довольно сложно (самое сложное, что я собирал на данный момент), а руки у меня вроде прямые и голова варит + нужно очень много времени на саму печать. Меньше 16к точно не возьмусь)

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

Настольная лампа-цветок (3D печать). Открывается =) Рукоделие без процесса, Arduino, Электроника, Настольная лампа, Цветы, 3D печать, Прямые руки, Заказ, Сборка, Led, Светодиодные светильники, Интерьер, Самоделки, Своими руками, Видео, Вертикальное видео, Длиннопост

Есть еще куча фото с тестовыми печатями лепестков, рассеивателей и прочего, долго подбирал параметры (перфекционист, да), даже пробовал сопло 0.25, в итоге остановился на 0.3. Но т.к. тег "Рукоделие без процесса" уже поставил, решил не добавлять)

P.S. Жаль, что сиськи набирают кучу просмотров/лайков, а авторский контент всего ничего(

Показать полностью 8 2
[моё] Рукоделие без процесса Arduino Электроника Настольная лампа Цветы 3D печать Прямые руки Заказ Сборка Led Светодиодные светильники Интерьер Самоделки Своими руками Видео Вертикальное видео Длиннопост
114
63
DELETED
1 год назад

Я сделяль⁠⁠

Я сделяль Warhammer 40k, Adeptus Mechanicus, Своими руками, Электроника, Arduino, Видео, Вертикальное видео, Длиннопост, Рукоделие без процесса
Я сделяль Warhammer 40k, Adeptus Mechanicus, Своими руками, Электроника, Arduino, Видео, Вертикальное видео, Длиннопост, Рукоделие без процесса
Я сделяль Warhammer 40k, Adeptus Mechanicus, Своими руками, Электроника, Arduino, Видео, Вертикальное видео, Длиннопост, Рукоделие без процесса

Слава Омниссии.

Показать полностью 3
[моё] Warhammer 40k Adeptus Mechanicus Своими руками Электроника Arduino Видео Вертикальное видео Длиннопост Рукоделие без процесса
18
27
BossBizon
BossBizon
1 год назад
Star vs. the Forces of Evil

Палочка Стар из 3го сезона⁠⁠

Сделал наконец вариант с подсветкой

Показать полностью 1
[моё] Рукоделие без процесса Крафт Косплей Star vs Forces of Evil Star Butterfly Arduino Видео YouTube
6

Оформить подписку для бизнеса

Перейти
Партнёрский материал Реклама
specials
specials

Ваш бизнес заслуживает большего!⁠⁠

Оформляйте подписку Пикабу+ и получайте максимум возможностей:

Ваш бизнес заслуживает большего! Малый бизнес, Предпринимательство, Бизнес

О ПОДПИСКЕ

Малый бизнес Предпринимательство Бизнес
43
Matvey6191
Matvey6191
1 год назад
Рукодельники

Наручные часы на двух ИН-16: автономность⁠⁠

Недавно я изготовил на заказ очередную партию вот таких часов:

Наручные часы на двух ИН-16: автономность Часы, Наручные часы, Ламповые часы, Самоделки, Своими руками, Arduino, Длиннопост, Рукоделие без процесса

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

В описании к оригинальному проекту автор сделал следующий вывод: с аккумулятором размерами 5*12*40 мм и заявленной ёмкостью 250 мАч, с прошивкой без анимации перед показом часов и минут в непрерывном тесте аккумулятор разрядится до 3,5 за 7800 секунд. На показ времени требуется 2 секунды, из чего автор прогнозирует 3900 включений.

Наручные часы на двух ИН-16: автономность Часы, Наручные часы, Ламповые часы, Самоделки, Своими руками, Arduino, Длиннопост, Рукоделие без процесса

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


Исходные данные: аккумулятор размерами 5*12*40 мм с заявленной ёмкостью 200 мАч, полностью заряжен.
Я сделал следующее: к ножкам кнопки в часах подпаял плату Ардуино, которая имитировала нажатие на кнопку раз в 3 секунды, вела счёт нажатий и выводила счётчик на экран ноутбука. Дополнительная секунда здесь - чтобы после окончания показа времени часы вернулись в режим покоя, а высоковольтный конденсатор - разрядился. Этот интервал правильнее было бы ещё увеличить, но тогда тест занял бы ещё больше времени. Также к ноутбуку я подключил USB-эндоскоп, который снимал часы и выводил изображение на экран. А специальное приложение занималось съёмкой экрана. Таким образом я хотел получить видео, которое было бы неоспоримым подтверждением количества включений часов. Выглядело это всё вот так:

Наручные часы на двух ИН-16: автономность Часы, Наручные часы, Ламповые часы, Самоделки, Своими руками, Arduino, Длиннопост, Рукоделие без процесса

А дальше всё пошло не по плану. Автономность часов оказалась на очень высоком уровне, весь процесс занял у меня два часа. И занял бы больше, если бы не следующее: я недостаточно зарядил ноутбук, а порт для зарядки оказался занят эндоскопом, так что тест пришлось прервать на красивом числе - 2222.

Наручные часы на двух ИН-16: автономность Часы, Наручные часы, Ламповые часы, Самоделки, Своими руками, Arduino, Длиннопост, Рукоделие без процесса

После этого выяснилось, что я неправильно настроил программу для записи экрана: два часа видео объёмом более 1 гигабайта она записала, вот только это получилась скорее склейка из скриншотов экрана с интервалом в полсекунды - смотреть невозможно.

Наручные часы на двух ИН-16: автономность Часы, Наручные часы, Ламповые часы, Самоделки, Своими руками, Arduino, Длиннопост, Рукоделие без процесса

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

И вот почему: тем, кто поверит в достоверность данных, видео не нужно, а тех, кто не поверит, видео не убедит. К тому же, в таком виде его очень просто можно назвать подделкой.

Итак, вернёмся к результатам теста. После 2222 включений часы показали уровень заряда 26%. Напряжение на аккумуляторе я при этом измерить забыл. В данной схеме стабильность работы повышающего преобразователя (в том числе "качество" свечения цифр) во многом зависит от применяемых электронных компонентов, поэтому вполне возможно, что лампы перестали бы нормально светиться при уровне заряда 25/10/5 процентов. А в другом экземпляре на этих же компонентах, но с другими лампами - при 2%. Это всё можно определять только более корректными тестами каждого экземпляра, чего никто скорее всего делать не будет. Это я всё к следующему: в режиме ожидания часы потребляют очень малый ток, но ведь есть ещё и саморазряд аккумулятора, благодаря чему я могу с уверенность сказать, что при включении часов раз в час они не смогут показать результат в 2000 включений от одного заряда.

Вместо вывода: данный тест, даже неоконченный, - и бессмысленный и полезный одновременно. Не стоит рассчитывать на полученный здесь результат (за исключением случая, где владелец будет зачем-то два часа подряд нажимать на кнопку), но и беспокоиться о том, что часы нужно будет заряжать каждый день - тоже.
Вне зависимости от частоты использования одного заряда будет хватать надолго.

matvey6191@gmail.com

Показать полностью 4
[моё] Часы Наручные часы Ламповые часы Самоделки Своими руками Arduino Длиннопост Рукоделие без процесса
6
47
Avramih
1 год назад
Рукодельники

Шлем Mark III | Iron Man⁠⁠

Немного пятничного Моё без процесса?

Шлем Mark III | Iron Man 3D принтер, 3D печать, Arduino, Электроника, Железный человек, Marvel, Шлем, Длиннопост, Пятничный тег моё, Рукоделие без процесса, Авторская неделя на Пикабу

Напечатан на Ender - 3 из черного PLA пластика, высота слоя 0,12 мм. Благодаря такой высоте слоя удалось сократить время постобработки относительно традиционной высоты в 0,2 мм.

Шлем Mark III | Iron Man 3D принтер, 3D печать, Arduino, Электроника, Железный человек, Marvel, Шлем, Длиннопост, Пятничный тег моё, Рукоделие без процесса, Авторская неделя на Пикабу

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

Шлем Mark III | Iron Man 3D принтер, 3D печать, Arduino, Электроника, Железный человек, Marvel, Шлем, Длиннопост, Пятничный тег моё, Рукоделие без процесса, Авторская неделя на Пикабу

Так же была предпринята попытка во время постобработки скрыть стыки деталей с помощью автомобильной шпатлевки. Возможно зря, ну или по крайней мере требуется выпрямление рук.

Шлем Mark III | Iron Man 3D принтер, 3D печать, Arduino, Электроника, Железный человек, Marvel, Шлем, Длиннопост, Пятничный тег моё, Рукоделие без процесса, Авторская неделя на Пикабу

В качестве электронной начинки была использована платформа Arduino Nano, 2 сервопривода MG90S, светодиодные "глаза", тактовая кнопка и power bank минимального размера, какой удалось отыскать в соседнем магазине.

Шлем Mark III | Iron Man 3D принтер, 3D печать, Arduino, Электроника, Железный человек, Marvel, Шлем, Длиннопост, Пятничный тег моё, Рукоделие без процесса, Авторская неделя на Пикабу

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

P.S. Кто ещё делал что-то подобное и в целом обладает хорошим опытом использования аэрозольных баллончиков, каких производителей могли бы посоветовать? А то используемые в данном проекте краски марки Kudo ппц как пылят во все возможные стороны, помимо окрашиваемого объекта. Есть даже мысль приобрести и освоить аэрограф...

Показать полностью 5
[моё] 3D принтер 3D печать Arduino Электроника Железный человек Marvel Шлем Длиннопост Пятничный тег моё Рукоделие без процесса Авторская неделя на Пикабу
15
298
ExpertPSK
ExpertPSK
2 года назад
Рукодельники

Подсветка Ambilight своими руками Arduino Adalight⁠⁠

Всем привет)

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

Если коротко, то:
Адресная лента
Ардуино контроллер
Скетч
Софт для пк
USB кабель.

Подсветка Ambilight своими руками Arduino Adalight Arduino, Подсветка, Своими руками, Ambilight, Монитор, Светодиодная лента, Светомузыка, Видео, Без звука, Длиннопост, Рукоделие без процесса

В интернете достаточно информации, с инструкций, описанием всех тонкостей и подводных камней.

Если будет большая активность, для мотивации, сделаю пост с конкретной инструкций от начала и до конца, и объясню тонкости.

Видео результата прилагаю)

есть так же статичные, анимационные, реагируете на звук эффекты.

Всем добра! :) жду в комментариях)

Показать полностью 1 1
[моё] Arduino Подсветка Своими руками Ambilight Монитор Светодиодная лента Светомузыка Видео Без звука Длиннопост Рукоделие без процесса
84
7
Gugudjamba
Gugudjamba
3 года назад

Продолжение поста «Имплантация bluetooth платы в магнитолу pioneer mvh-190ub и адаптер кнопок руля в одном флаконе»⁠⁠1

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


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


В сухом остатке от моей идеи теперь есть вот это:

Продолжение поста «Имплантация bluetooth платы в магнитолу pioneer mvh-190ub и адаптер кнопок руля в одном флаконе» Рукоделие, Самоделки, Автозвук, Bluetooth, Arduino, Адаптер, Рукоделие без процесса, Видео, Ответ на пост, Длиннопост

Вот схема этого безобразия:

Продолжение поста «Имплантация bluetooth платы в магнитолу pioneer mvh-190ub и адаптер кнопок руля в одном флаконе» Рукоделие, Самоделки, Автозвук, Bluetooth, Arduino, Адаптер, Рукоделие без процесса, Видео, Ответ на пост, Длиннопост

Если кому нужен только адаптер кнопок руля - просто берем нижнюю половину схемы и убираем нижний цифровой резистор X9C104 и резюк на10 кОм (так же убираем его если платка без кнопок или вообще другой модели).

Если кому нужно просто включать блютус платку в режиме AUX (в наличии второго такого умалишенного я сомневаюсь), то верхняя половина схемы, ну и управлением платкой можно пренебречь.

Номинал резистора 680 Ом выбран таковым в силу малости сопротивления резисторов кнопок на руле (от 30 до 1150 Ом), дабы обеспечить максимальное изменение напряжение на входе микросхемы. То есть его значение может быть и выше, в зависимости от вашего случая. Ниже точно нет - можно спалить вход на ардуине.

Резистор в 10 кОм создает делитель напряжения совместно с цифровым резистором и ограничивает ток на ножке микросхемы. Там по схеме с китайского сайта должно быть 22 кОм, но 10 тоже работают.


Если что, то я использовал esp-12f из-за малых размеров. Но исходно тестировал на большой платке. Просто начинающие не разберутся с прошивкой и обвесом, а те кто в теме и без меня поймут че и как. По факту все это можно собрать на стандартных блоках с помощью стандартных соединительных проводов, разве что зафиксировать от выпадания.

Код снова положу здесь, не хочу в гитхаб тащить - засмеют.

И снова привет команде пикабу за ущербный редактор, табы то зачем жрать?!


// Коды имеющихся на руле кнопок
const int VOL_UP=1;
const int VOL_DN=2;
const int PREV_TR=3;
const int NEXT_TR=4;
const int MODE=5;
const int MUTE=6;
// контакты первого потенциометра
int INC = 7;
int UD = 6;
int CS=5;
// аналоговый пин, на котором мы считываем сопротивление нажатой на руле кнопки
int wheelPin=A6;
// контакты второго потенциометра
int INC1 = 2;
int UD1 = 3;
int CS1=4;
// переменные
//int i=0;
int prevButton=7; // на всякий случай, чтобы при подаче питания сработал цикл и потенциометры были инициализированы
int j = 100; // инициируем переменную для первого потенциометра управляющего магнитолой
int k = 100; // для второго управляющего блютус платкой
void setup() {
pinMode(CS, OUTPUT);
pinMode(INC, OUTPUT);
pinMode(UD, OUTPUT);
digitalWrite(CS, HIGH);
digitalWrite(INC, HIGH);
digitalWrite(UD, HIGH);
pinMode(wheelPin, INPUT);
Serial.begin(115200);
pinMode(CS1, OUTPUT);
pinMode(INC1, OUTPUT);
pinMode(UD1, OUTPUT);
digitalWrite(CS1, HIGH);
digitalWrite(INC1, HIGH);
digitalWrite(UD1, HIGH);
}
// Эта функция читает сопротивление с кнопок на руле и возвращает код нажатой кнопки, либо 0
int getR() {
// читаем сопротивление (на самом деле напряжение, конечно) на аналоговом пине
int r=analogRead(wheelPin);
Serial.println(r); // для отладки
delay(100); // не знаю зачем
// Ищем, какая кнопка соответствует этому сопротивлению.
// Данные значения сопротивлений
if (r>=95 && r<=180) return(VOL_UP);//130 значение r для моей машины
if (r>=190 && r<=270) return(VOL_DN);//230
if (r>=550 && r<=750) return(PREV_TR);//605
if (r>=400 && r<=530) return(NEXT_TR);//476
if (r>=250 && r<=390) return(MODE);//333
if (r>=10 && r<=90) return(MUTE);//30
// если ни одна из кнопок не нажата, возвращаем 0
return (0);
}
// ОСНОВНОЙ ЦИКЛ
void loop() {
int currButton=getR(); // заносим в переменную currButton код нажатой кнопки
// Serial.println(currButton);
// Serial.println(prevButton);
if (currButton!=prevButton) { // если значение поменялось с прошлого раза
delay(10);
currButton=getR(); // ждем 10ms и читаем еще раз, чтобы исключить "дребезг" кнопки
if (currButton!=prevButton) { // если код кнопки точно поменялся с прошлого раза
prevButton=currButton; // сохраняем новое значение в переменную prevButton
switch(currButton) {
case VOL_UP: j = 15; break; //справка для значения сопротивлений pineer 16kОм (97 Ом для моей машины)
case VOL_DN: j = 23; break; //24к (201)
case PREV_TR: j = 11; k=64; setResistance1(k); break; //11к (1153)
case NEXT_TR: j = 7; k=74; setResistance1(k); break; //8к (611)
case MODE: j = 1; break; //1,2к (344)
case MUTE: j = 3; break; //4к (31)
default: j = 100; k = 100; setResistance1(k); break;// вертаем максимальное сопротивление
// точные значения j и k подбираются опытным путем, исходя из параметров цифровых резисторов
// у первого контролируется сопротивление, у второго падение напряжения на выходе
}
// выставляем сопротивление
setResistance(j);
// setResistance1(k); // заколходил вызов функции прям в свиче, чтобы лишний раз не гонять функцию, которая выполняется совсем не мгновенно
// Serial.print("j ");
// Serial.println(j); // да да, я не знаю как нормально отладкой заниматься на ардуине, используем дедовский способ.
// Serial.print("k ");
// Serial.println(k);
delay(50); // добавил паузу, чтобы четче отрабатывался сигнал магнитолой
}
}
}
// Эта функция задает сопротивление на цифровом резисторе 1
void setResistance(int percent) {
Serial.println(percent);
// Понижаем сопротивление до 0%:
digitalWrite(UD, LOW);
digitalWrite(CS, LOW);
for (int i=0; i<100; i++) {
digitalWrite(INC, LOW);
delayMicroseconds(1);
digitalWrite(INC, HIGH);
delayMicroseconds(1);
}
// сопротивление до нужного:
digitalWrite(UD, HIGH);
for (int i=0; i<percent; i++) {
digitalWrite(INC, LOW);
delayMicroseconds(1);
digitalWrite(INC, HIGH);
delayMicroseconds(1);
}
digitalWrite(CS, HIGH);
}
// Эта функция задает сопротивление на цифровом резисторе 2
void setResistance1(int percent) {
// Понижаем сопротивление до 0%:
digitalWrite(UD1, LOW);
digitalWrite(CS1, LOW);
for (int i=0; i<100; i++) {
digitalWrite(INC1, LOW);
delayMicroseconds(1);
digitalWrite(INC1, HIGH);
delayMicroseconds(1);
}
// сопротивление до нужного:
digitalWrite(UD1, HIGH);
for (int i=0; i<percent; i++) {
digitalWrite(INC1, LOW);
delayMicroseconds(1);
digitalWrite(INC1, HIGH);
delayMicroseconds(1);
}
digitalWrite(CS1, HIGH);
}

Второй скетч также был безжалостно сперт. На этот раз из стандартного примера библиотеки spi slave для esp8266. Откусил от примера кусочек, заставил читать статус SPI сообщения и как ни странно в этих данных обнаружил искомые сигналы на которые и заставил реагировать микросхемку.


/*
SPI Slave Demo Sketch
Connect the SPI Master device to the following pins on the esp8266:
GPIO NodeMCU Name | Uno
===================================
15 D8 SS | D10
13 D7 MOSI | D11
12 D6 MISO | D12
14 D5 SCK | D13
Note: If the ESP is booting at a moment when the SPI Master has the Select line HIGH (deselected)
the ESP8266 WILL FAIL to boot!
See SPISlave_SafeMaster example for possible workaround
*/
#include "SPISlave.h"
const int SwitchBT = 4;
int SwitchBTState;
void setup()
{
Serial.begin(115200);
Serial.setDebugOutput(true);
pinMode(SwitchBT, OUTPUT);
// data has been received from the master. Beware that len is always 32
// and the buffer is autofilled with zeroes if data is less than 32 bytes long
// It's up to the user to implement protocol for handling data length
SPISlave.onData([](uint8_t * data, size_t len) {
// Serial.printf("D%s\n", (int*)data);
// uint32_t istatus = SPIIR;
// uint32_t iiistatus = SPI1S;
// Serial.println(SPIIR, BIN);
// Serial.println(SPI1S, BIN);
// Serial.println(SPII1, BIN);
});
// status has been received from the master.
// The status register is a special register that bot the slave and the master can write to and read from.
// Can be used to exchange small data or status information
SPISlave.onStatus([](uint32_t data) {
Serial.printf("S%u\n", data);
if (data == 2248212531) {
SwitchBTState = HIGH;
Serial.println("high");
}
if (data == 2214658099 || data == 2147549235 || data == 2214658227) {
SwitchBTState = LOW;
Serial.println("low");
}
});
// Setup SPI Slave registers and pins
SPISlave.begin();
}
void loop() {
digitalWrite(SwitchBT, SwitchBTState);
}

Если что, вот какая прорва информации была перелопачена в поисках заветных сочетаний циферок:

Продолжение поста «Имплантация bluetooth платы в магнитолу pioneer mvh-190ub и адаптер кнопок руля в одном флаконе» Рукоделие, Самоделки, Автозвук, Bluetooth, Arduino, Адаптер, Рукоделие без процесса, Видео, Ответ на пост, Длиннопост

Подключать к магнитоле надо вот к этим ножкам:

Продолжение поста «Имплантация bluetooth платы в магнитолу pioneer mvh-190ub и адаптер кнопок руля в одном флаконе» Рукоделие, Самоделки, Автозвук, Bluetooth, Arduino, Адаптер, Рукоделие без процесса, Видео, Ответ на пост, Длиннопост

На самой плате удобнее припаяться к тестовым пятакам снизу. Какой провод за что отвечает на фото уже не вспомню. Да и если вы надумали повторить это и не знаете как прозвонить контакт - то вам явно не стоит лезть в это.

Продолжение поста «Имплантация bluetooth платы в магнитолу pioneer mvh-190ub и адаптер кнопок руля в одном флаконе» Рукоделие, Самоделки, Автозвук, Bluetooth, Arduino, Адаптер, Рукоделие без процесса, Видео, Ответ на пост, Длиннопост

Подводя итог - шалость удалась ©

Я получил массу эмоций, чуточку знаний и море удовольствия в эти огразмические секунды  бега по квартире с криками "IT'S ALIVE !1!11!", когда эта хрень заработала. Конечно, есть шероховатости типа негромкого щелчка в колонках при подаче питания на платку. Но городить ерунду с еще одним сигналом на мьют усилителя счел излишним. Тогда уже проще купить магнитолу и не сношать мозг.

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


Ах да, самое главное. Мораль =)

Мораль такова - разделяй отладку железа и софта. Сначала одно, потом другое. Ну и внимательней с редактированием кода, одна маленькая ошибочно закомментированная строчка может стоить вам многих часов попаболи и искреннего непонимания почему оно не работает. Ну и +-20% отклонения это овердохера.

Но самое главное - не работайте уставшим над сложными  или важными вещами, это чревато большими потерями времени и нервов, в лучшем случае.

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


Сама соль проблемы в том, что главные ардуинщики и библиотекописаки идиоты. Они решили что анрдуине не нужны микроконтроллеры в режиме slave. Хотя в процессе поиска решения своей проблемы сталкивался с огромным количеством случаев когда люди хотели получить такую плюшку. Смысл же ардуины в том, чтобы облегчить жизнь и дать в руки инструмент относительно простой и не требующий взрывать мозг хардкорным прогерством на сишке или плюсах. Если посмотреть код и прудыдущего поста, то окажется что в нем ардуина моя работает с spi в slave режиме напрямую, то есть минуя разные там библиотеки и просто обращаясь к регистрам. Забегая вперед скажу что вроде как единственная работающая библиотека умеющая в slave есть только у esp8266, а esp32 и STM32 уже не имеют такой. Собственно, на ней и основано решение проблемы.

Итак, столкнувшись с тем, что ардуино нано не успевает решил попробовать esp8266. Вот тут еще кусочек морали - никогда не спеши с выводами. С ходу использовав тестовый скетч я не получил удобоваримой информации и мало того, получал её в виде кроказябр. Психанув закинул на дальнюю полку и заказал stm32f103c6t6 - младшенькую из bluepill семейства. Кстати, у меня теперь этого добра кучка тыщь на пять и я не знаю что с ним делать =) вот такой вот побочный эффект от "экономии". Придется придумывать проект где можно задействовать все это барахло.

Ну продолжим. Естественно, я не изучил информацию досконально и наступил на те же грабли - нет нужной библиотеки а код для ардуино нано естественно не подходит. И тут меня торкнуло, я попробовал откусить кусок больше, чем мог проглотить. С одной стороны я хотел закончить проект во чтобы то ни стало, а с другой сил и терпения на него было не много. Ах да, началось все с того, что все пять присланных эстээмок не работали через USB, то есть прошить их не получалось. Благо я умел делать это используя USB конвертер с ардуины, но легче от этого не стало, чего-то там все равно не хватало и нужен был родной программатор, который я естественно проигнорировал. Но в целом обошлось, ардуина умеет делать .bin который и прошивался через последовательны интерфейс. Но и тут меня ждало разочарование, требовалось таки прильнуть к корням. Вот щас страшные картинки накидаю.

Продолжение поста «Имплантация bluetooth платы в магнитолу pioneer mvh-190ub и адаптер кнопок руля в одном флаконе» Рукоделие, Самоделки, Автозвук, Bluetooth, Arduino, Адаптер, Рукоделие без процесса, Видео, Ответ на пост, Длиннопост
Продолжение поста «Имплантация bluetooth платы в магнитолу pioneer mvh-190ub и адаптер кнопок руля в одном флаконе» Рукоделие, Самоделки, Автозвук, Bluetooth, Arduino, Адаптер, Рукоделие без процесса, Видео, Ответ на пост, Длиннопост
Продолжение поста «Имплантация bluetooth платы в магнитолу pioneer mvh-190ub и адаптер кнопок руля в одном флаконе» Рукоделие, Самоделки, Автозвук, Bluetooth, Arduino, Адаптер, Рукоделие без процесса, Видео, Ответ на пост, Длиннопост

Собственно, с STM32CubeIDE и STM32CubeMX я познакомился в попытках решить проблему определения контроллера USB портом. И надо сказать, это очень крутые штуки. Мало того, что относительно легко можно скофигурировать назначение ног контроллера натыркав правильные галки, так еще оно и код минимальный под это генерирует само. Но вот на этом моменте я и сломался окончательно. Я научился читать данные из шины spi... Но снова в кракозябрах... и буфер... и... В общем, я решил что разбираться в библиотеке HAL и сишном синтаксисе дальшке яне готов. Я же только учусь на джаве пописывать, а тут сишка. Я хз как, но джава все равно мягче и приятнее для пониманию. А СИ это как... ну я хз... ну как носить чугунные сапоги против удобных кросовочек. Если научишься в них ходить и недабох бегать - тебя просто не остановить, как халк будешь сносить все подряд. Правда бесшумно ходить тоже не сможешь :)

Продолжение поста «Имплантация bluetooth платы в магнитолу pioneer mvh-190ub и адаптер кнопок руля в одном флаконе» Рукоделие, Самоделки, Автозвук, Bluetooth, Arduino, Адаптер, Рукоделие без процесса, Видео, Ответ на пост, Длиннопост

Короче, решил я уменьшить градус накала и внимательней присмотреться к espшке... И о чудо, буквально в один вечер поковыряв код высрал франкеншейна, который заработал.

Показать полностью 9 1
[моё] Рукоделие Самоделки Автозвук Bluetooth Arduino Адаптер Рукоделие без процесса Видео Ответ на пост Длиннопост
5

Нереальный кешбэк реальными рублями

Перейти
Партнёрский материал Реклама
specials
specials

Дайте две: подписки, которых еще не существует, но мы уже готовы за них заплатить⁠⁠

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

Дайте две: подписки, которых еще не существует, но мы уже готовы за них заплатить Опрос, Подписки, Юмор, Польза, Выгода, Длиннопост

Подписка на мемы

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

Подписка на настроение

Хватит быть заложником эмоций, пора управлять ими! Сервис подберет музыку, фразы дня, отфильтрует новостную ленту, посоветует, что надеть и куда пойти, чтобы все совпадало с общим настроем. С этой подпиской вы буквально задаете тон своему дню: хотите нежный уют «как в скандинавской рекламе пледа» — пожалуйста. Надо бодрячком и по-деловому — вот вам марш, вдохновляющие цитаты и напоминание, что вы — герой. Останется только смахнуть пыль с Бэтмобиля.

Если Бэтмобиля нет, не беда: запрыгивайте в Яндекс Такси и получайте кешбэк 10% с подпиской ВТБ Плюс.

Подписка на «новое я»

Иногда так и хочется все бросить и стать другим человеком. Но с чего начать — непонятно. Эта подписка каждый месяц будет подкидывать мини-вызовы для внутренней трансформации. Например: «Неделя без кофе — проверьте, остались ли у вас чувства» или «Месяц без телефона после 6 — вспомните, как выглядят ваши стены». Маленькие шаги, большие перемены. Ну или хотя бы повод похвастаться в сторис (до 18:00, конечно).

Подписка на неловкие разговоры

Забыли, как звонить по телефону? Начинаете паниковать, когда кто-то пишет «давай голосом»? Подписка на неловкие разговоры — это спортзал для ваших коммуникативных мышц. Раз в неделю вам звонит специально обученный человек (или такой же подписчик), и вы несколько минут болтаете обо всем: как спит ваш кот, что вы пересматривали в 25-й раз на выходных и почему ананас на пицце — это грех. Главное — живой голос и никаких эмодзи!

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

Если у вас уже есть друзья или родственники за границей, с подпиской ВТБ Плюс вы можете совершать бесплатные переводы более чем в 100 стран ближнего и дальнего зарубежья.

Дайте две: подписки, которых еще не существует, но мы уже готовы за них заплатить Опрос, Подписки, Юмор, Польза, Выгода, Длиннопост

Подписка на коробку неожиданной радости

Это как Новый год, но без елки и не в декабре. При регистрации рассказываете сервису о себе: чем увлекаетесь, что обожаете, а от чего готовы бежать в панике. А дальше — магия. Раз в месяц курьер приносит коробку с чем-то, что заставит вас сказать: «Ого! Откуда вы знали?!» День доставки определяется случайно — сюрпризы хороши именно своей внезапностью.

Подписка на дурацкие идеи

Самое вредное состояние для мозга — это застой. Чтобы немного разогреть и встряхнуть серое вещество, сервис будет каждое утро присылать вам одну заведомо нелепую, но потенциально гениальную идею: подкаст для буренок; ресторан, в котором не разговаривают; библиотека запахов. Как знать, вероятно, что-то из этого станет отличным стартапом.

Подписка на прошлую версию интернета

Никаких алгоритмов, трендов и бесконечных сторис, только ICQ, «Помогите Кузе» и новости про новый сезон «Остаться в живых». Эта подписка — как флешбек в старый добрый интернет: вам каждый день прилетает симуляция жизни за выбранный год. Захотели 2007-й — и вот у вас релиз новой песни Тимбалэнда и «Йа креведко!» в чате. Соскучились по студенческим временам в 2010-м? Вот вам «ВКонтакте» без сторис и опрос «Тян или няша?». Своего рода цифровая машина времени, только без риска запустить временной парадокс.

Временная петля — нестареющий сюжет, но лучше наблюдать за этим явлением исключительно в кино. Это несложно: с подпиской ВТБ Плюс у вас будет бесплатный доступ в онлайн-кинотеатр Wink без рекламы.

Подписка на экстренное вдохновение

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

Подписка на пятничный ужин

Вечер пятницы, конец рабочей недели. Силы остались только на то, чтобы жевать, а готовить — вот уж увольте. Для вас есть подписка мечты: каждую неделю вам домой прилетает сет готовых блюд по мотивам выбранной кухни мира. Сегодня Италия? Ловите пасту, брускетты и настроение «мамма миа!». Захотели Мексику — получите тако, гуакамоле и мини-фиесту.

Пока этот сервис остается только нашей мечтой, воспользуйтесь Яндекс Едой. Тем более с подпиской ВТБ Плюс вы получите дополнительный кешбэк 5% на заказы. Отличный вариант избавиться от надоевшей рутины и сэкономить.

Дайте две: подписки, которых еще не существует, но мы уже готовы за них заплатить Опрос, Подписки, Юмор, Польза, Выгода, Длиннопост

Подписка на гиперлокальность

Пока все читают мировые новости, вы в курсе, что Серега из третьего подъезда опять потерял ключи, а в булочной за углом испекли хлеб в форме динозавра. Эта подписка делает из вашего района полноценную вселенную: уведомления приходят только о событиях в радиусе нескольких улиц. Благодаря ей вы узнаете, что в ларьке напротив перестали продавать ваш любимый йогурт за пять минут до того, как вы туда дойдете.

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

Какую подписку вы бы оформили?
Всего голосов:

Все эти подписки — только наши фантазии (пока что). Но уже сейчас вы можете оформить подписку ВТБ Плюс, чтобы сделать повседневные траты немного приятнее. С ВТБ Плюс вы получаете:

  • 10 категорий кешбэка на выбор каждый месяц вместо восьми;

  • дополнительный кешбэк на сервисы Яндекс Лавка, Яндекс Еда, такси в Яндекс Go и Яндекс Маркет;

  • бесплатный доступ в онлайн-кинотеатр Wink;

  • +2% к ставке по накопительному ВТБ-счету;

  • скидку 20% на страховые продукты ВТБ и связь ВТБ Мобайл;

  • бесплатные переводы за границу и уведомления об операциях.

ПОДКЛЮЧИТЬ ПОДПИСКУ ВТБ ПЛЮС

Реклама ПАО «Банк ВТБ». ИНН: 7702070139

Показать полностью 2 1
Опрос Подписки Юмор Польза Выгода Длиннопост
88
Gugudjamba
Gugudjamba
3 года назад

Имплантация bluetooth платы в магнитолу pioneer mvh-190ub и адаптер кнопок руля в одном флаконе⁠⁠1

!!! Все что вы сделаете воспользовавшись информацией из этого поста - будет на вашей совести. Все на ваш страх и риск. Пост носит сугубо развлекательно-познавательный характер. Ну и похвастаться... чуть-чуть =)


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


Итак, имеем  pioneer mvh-190ub которая заменила штатную магнитолу виновную в хреновом качестве звука и других косяках. В плюсе - звук стал намного лучше даже на штатной акустике без шумки. Из минусов - не работали штатные кнопки на руле и отсутствие блютуса. Ну да да, я понимаю что вроде жадина, но mvh-390bt стоила в те времена почти в два раза дороже, около 6.5к vs 3.4к за 190ub. Кстати, тут есть нюансик =) это СОВЕРШЕННО одинаковые устройства по схемотехнике (процессор, цап и усилитель и даже разводка платы), отличающиеся только наличием модуля bluetooth дополнительных разъемов типа тюльпанов под колонки и гнезда под jack 3.5 управления по проводам резистивными кнопками. Если посмотрите сервисмануалы для этих девайсов то отличия будут косметическими. Разве что модуль bluetooth нигде в интернете не фигурирует своими откровенными фотографиями своих внутренностей. Даже более чем верен что если впаять этот модуль, то он сразу заработает и появится в меню. Поскольку прошивки не просто похожи, они тупо одинаковые байт в байт для обоих устройств. Но моих знаний не хватило понять как заставить процессор подумать что модуль есть и включить все соответствующие фишки. Тогда можно было вообще поискать подходящую платку с али и передавать внутрь процессора сразу цифровой аудио сигнал.


Итак. Для имплантации был выбран модуль VHM-314 V2.0 с кнопками. Просто он оказался самым быстрым в достаке. В результате имеем вот это:

Имплантация bluetooth платы в магнитолу pioneer mvh-190ub и адаптер кнопок руля в одном флаконе Рукоделие, Самоделки, Автозвук, Bluetooth, Arduino, Адаптер, Длиннопост, Рукоделие без процесса

По моделям платок, заказал четыре штуки:

VHM-314 v1.0

+ цена

+ относительно годное качество звука

+ простота имплантации

+ мало шумит

+ громкость сразу максимальная

- мерзкие голоса учат меня жизни при включении и коннекте

- отсутствие вменяемой документации


VHM-314 v2.0

+ все тоже самое, кроме шума

+ не учит жизни

+ есть кнопки, которыми можно управлять туда-сюда-плейстоп

- шумит прям из коробки, даже от питания аккумулятором

- при регулировке громкости (долгое зажатие кнопки вперед\назад) громко бунькает при достижении максимального значения

- нельзя настроить включение с максимальной громкостью, по умолчанию она средняя что мало


VHM-314 PRO

Тоже самое что и первая версия, но можно управлять приложением. Но не пользовался вообще, платка стремится общаться вслух, а "голоса в голове" мне не нравятся.


CSR64215

Еще в пути, относительно дорого под 1к. рублей. Обещают приличный ЦАП и хорошее качество звука, можно настроить сквозное подключение к линиям, например AUX при ключении блюпупа релюшками отключается от внешнего источника и включается внутренний. Поставлю в колонки возле компьютера... почему? Потому что могу =)


Думаю, что если бы не торопился и изучил рынок внимательнее то заказал бы только последнюю платку, но о ней узнал после того как заказал VHM-314.

В целом в машине шум от VHM-314 v2.0 незаметен, есть подозрение что работает штатный шумодав на пионере. Вообще подозреваю что шумность и качество зависит от конкретного экземпляра и дело не в версии.


Ну приступим к созданию франкенштейна.

Итак, начнем с самого простого. Берем и припаиваемся к USB 5 вольт и AUX на нижней стороне платы возле разъема для "морды".

Имплантация bluetooth платы в магнитолу pioneer mvh-190ub и адаптер кнопок руля в одном флаконе Рукоделие, Самоделки, Автозвук, Bluetooth, Arduino, Адаптер, Длиннопост, Рукоделие без процесса

С прискорбием сообщаю, что где-то похерил все фотки. Вроде неоднократно фоткал процесс но О_о может быть в очередном приступе отчаяния они  были удалены, не помню ^_^

Но в общем-то ничего сложного. Переворачиваем, отсчитываем ножки, припаиваемся. Для 5 вольт там даже пятаки отдельно есть, к ним припаиваться удобнее. Рекомендую не ленится и все промерять и проверять тестером на наличие контакта где должно быть и отсутствие где не должно.

Но! Это только самое простое и неинтересное решение 100500 раз обмусоленное в интернетах. Самый большой недостаток такого решения - платка блютуса подключается сразу после подачи питания и в моей магнитоле даже в выключенном состоянии магнитолы присутствуют пять вольт. То есть как только включил acc то сразу платка подключается к телефону и становится приемником звука по умолчанию. Что неудобно. Путем мозгошутрма и поиска по закромам было решено банально обесточивать платку тумблером:

Имплантация bluetooth платы в магнитолу pioneer mvh-190ub и адаптер кнопок руля в одном флаконе Рукоделие, Самоделки, Автозвук, Bluetooth, Arduino, Адаптер, Длиннопост, Рукоделие без процесса

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

Дальше у меня возникла идея (ну раз я нашел схему) поменять местами кнопки MUTE и MENU. Я не знаю что курят эти идиоты, но в последних версиях магнитол (не только пионеров) при нажатии на джойстик-регулятор громкости вызывается меню, а кнопка приглушения звука либо отсутствует, либо расположена крайне неудобно в виде мелкой закорючки. Хотя это едва ли не важнейшая кнопка в магнитоле, но что-то нехорошее они употребляют там. Как часто вы лезете в меню магнитолы? Да один раз после установки в большинстве случаев. А mute нужен достаточно часто. Поэтому что мы сделаем? Правильно, на самую удобную кнопку мы заведем редко используемое меню.

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


// Коды имеющихся на руле кнопок
const int VOL_UP=1;
const int VOL_DN=2;
const int PREV_TR=3;
const int NEXT_TR=4;
const int MODE=5;
const int MUTE=6;
// контакты первого потенциометра
int INC = 7;
int UD = 6;
int CS=5; // CS на цифровом потенциометре
int wheelPin=A6; // аналоговый пин, на котором мы считываем сопротивление нажатой на руле кнопки
// контакты второго потенциометра
int INC1 = 2;
int UD1 = 3;
int CS1=4;
// переменные
int i=0;
int prevButton=4; // на всякий случай, чтобы при подаче питания сработал цикл и потенциометры были инициализированы
void setup() {
pinMode(CS, OUTPUT);
pinMode(INC, OUTPUT);
pinMode(UD, OUTPUT);
digitalWrite(CS, HIGH);
digitalWrite(INC, HIGH);
digitalWrite(UD, HIGH);
pinMode(wheelPin, INPUT);
Serial.begin(9600);
pinMode(CS1, OUTPUT);
pinMode(INC1, OUTPUT);
pinMode(UD1, OUTPUT);
digitalWrite(CS1, HIGH);
digitalWrite(INC1, HIGH);
digitalWrite(UD1, HIGH);
}
int getR() { // Эта функция читает сопротивление с кнопок на руле и возвращает код нажатой кнопки, либо 0
// читаем сопротивление (на самом деле напряжение, конечно) на аналоговом пине
int r=analogRead(wheelPin);
Serial.println(r); // для отладки
delay(100); // не знаю зачем =)
// Ищем, какая кнопка соответствует этому сопротивлению.
if (r>=95 && r<=180) return(VOL_UP);//130 значение r для моей машины
if (r>=190 && r<=270) return(VOL_DN);//230
if (r>=550 && r<=750) return(PREV_TR);//605
if (r>=400 && r<=530) return(NEXT_TR);//476
if (r>=250 && r<=390) return(MODE);//333
if (r>=10 && r<=90) return(MUTE);//30
// если ни одна из кнопок не нажата, возвращаем 0
return (0);
}
// ОСНОВНОЙ ЦИКЛ
void loop() {
int currButton=getR(); // заносим в переменную currButton код нажатой кнопки
// Serial.println(currButton);
// Serial.println(prevButton);
if (currButton!=prevButton) { // если значение поменялось с прошлого раза
delay(10);
currButton=getR(); // ждем 10ms и читаем еще раз, чтобы исключить "дребезг" кнопки
if (currButton!=prevButton) { // если код кнопки точно поменялся с прошлого раза
Serial.println(currButton);
prevButton=currButton; // сохраняем новое значение в переменную prevButton
int j = 100; // инициируем переменную для первого потенциометра управляющего магнитолой
int k = 85; // для второго управляющего блютус платкой, 85 значение подобранное опытным путем для падения напряжения ровно в 3.3 вольта.
switch(currButton) {
case VOL_UP: j = 15; break; //справка для значения сопротивлений pineer 16kОм (97Ом для моей машины)
case VOL_DN: j = 23; break; //24к (201)
case PREV_TR: j = 11; k=19; break; //11к (1153)
case NEXT_TR: j = 7; k=25; break; //8к (611)
case MODE: j = 1; break; //1,2к (344)
case MUTE: j = 3; break; //4к (31)
default: j = 100; k = 85; // вертаем максимальное сопротивление
}
setResistance(j); // выставляем сопротивление
setResistance1(k);
// Serial.println(j); // да да, я не знаю как нормально отладкой заниматься на ардуине, используем дедовский способ.
delay(5);
}
}
}
void setResistance(int percent) {
// Понижаем сопротивление до 0%:
digitalWrite(UD, LOW);
digitalWrite(CS, LOW); // выбираем потенциометр X9C
for (int i=0; i<100; i++) { // т.к. потенциометр имеет 100 доступных позиций
digitalWrite(INC, LOW);
delayMicroseconds(2);
digitalWrite(INC, HIGH);
delayMicroseconds(2);
}
// сопротивление до нужного:
digitalWrite(UD, HIGH);
for (int i=0; i<percent; i++) {
digitalWrite(INC, LOW);
delayMicroseconds(2);
digitalWrite(INC, HIGH);
delayMicroseconds(2);
}
digitalWrite(CS, HIGH); /* запоминаем значение
и выходим из режима настройки */
}
void setResistance1(int percent) {
// Понижаем сопротивление до 0%:
digitalWrite(UD1, LOW);
digitalWrite(CS1, LOW); // выбираем потенциометр X9C
for (int i=0; i<100; i++) { // т.к. потенциометр имеет 100 доступных позиций
digitalWrite(INC1, LOW);
delayMicroseconds(2);
digitalWrite(INC1, HIGH);
delayMicroseconds(2);
}
// сопротивление до нужного:
digitalWrite(UD1, HIGH);
for (int i=0; i<percent; i++) {
digitalWrite(INC1, LOW);
delayMicroseconds(2);
digitalWrite(INC1, HIGH);
delayMicroseconds(2);
}
digitalWrite(CS1, HIGH); /* запоминаем значение
и выходим из режима настройки */
}
Какой-то убогий редактор в пикабу, ничего не умеет. То есть умную ленту сделать могут, а спойлер или оформление для кода нет. Прям жж какой-то...


Из  неприятного - все три экземпляра цифрового потенциометра которые у меня есть имеют разное сопротивление из коробки (использованы на 92 и 105 кОм), то есть точность без отладки плюс-минус два крокодила. И еще, я чуть не похоронил всю идею психанув, потому что эти потенциометры имеют свойство "плыть". То есть в какой-то рандомный момент сопротивление начинало потихоньку уменьшатся или увеличиваться. Решилось это соединением RL с землей. Может еще как-то можно это решить (может быть соединение любого вывода со схемой будет достаточно) но для меня сработал этот способ.

Имплантация bluetooth платы в магнитолу pioneer mvh-190ub и адаптер кнопок руля в одном флаконе Рукоделие, Самоделки, Автозвук, Bluetooth, Arduino, Адаптер, Длиннопост, Рукоделие без процесса

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

R1 в 680 Ом выбран потому что у меня кнопки на руле низкоомные, вообще от 30 Ом стартуют. При 680 относительные изменения падения напряжения максимально выражены а ток гарантированно ниже максимального для вывода. R2 должен быть 22 кОм, но такого не нашлось а городить составной резистор не хотелось.

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


А теперь про платку блюпуп.  Вот тут ссылки на китайские пэдэфки. Они прямо не подходят, но хотя бы дают понимание что искать. Мне кажется, что это действительно та же микросхема, но с другим порядком ножек. Вот здесь схема подключения кнопок. И тут до дотупета дошло, что все эти вещи управляются не сопротивлением как таковым а уровнем напряжения. То есть можно было обойтись даже не цифровыми резисторами а аналоговыми выводами на ардуине устанавливая нужный уровень сигнала (ну защищая это дело от чрезмерных токов резисторами, разумеется). Ну или простейшими транзисторными ключами, если уровни напряжения выше пяти вольт или токи и все такое. И чтобы избежать дрейфа - теми же аналоговыми входами можно было контролировать напряжение выставленное на выходе организовав обратную связь. Но отступать уже было поздно, схема уже была готова и собрана. Вообще хотел все сделать максимально компактно и вообще собрать в один бутерброд, но получилось как получилось. Опять же, задним числом дошло что можно было взять esp-12e, еще компактней вышло бы, но...

Блюпуп управляется по уровню напряжения. 3,3 ничего не делаем, 2,3 вперед, 2,0 назад и 0 пауза-плей. 3.3 вольта генерирует сама микросхема и нам не нужны, они приходят на R1 на плате. Который надо удалить и припаяться к пятачку с оранжевой стрелочкой идущему к ножке 16 (желтая стрелочка, четвертый снизу). Тут аккуратно, площадки контактные держатся плохо и моя оторвалась, пришлось паяться прямо к ножке. R3 в 350кОм на схеме адаптера в принципе лишний, если подобрать R2, то можно добиться падения напряжения в 3.3-3.5 вольта даже без инициализации резистора. Без подачи питания на цифровом резисторе между RH и RL присутствует сопротивление, а вот RW не промеряется.

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

Имплантация bluetooth платы в магнитолу pioneer mvh-190ub и адаптер кнопок руля в одном флаконе Рукоделие, Самоделки, Автозвук, Bluetooth, Arduino, Адаптер, Длиннопост, Рукоделие без процесса

Кстати, так как у меня нет штатного разъема под управление по проводам и пришлось немного поколхозить. Изучив схему обнаружил место куда можно подпаяться. Для этого нужно впаять резистор R912 номиналом в 1кОм в линии идущую в процессор и другим концом уже к схеме адаптера кнопок. Так как у меня нет smd компонентов, то воткнул туда обычный резистор на 0.25 ватт. Особо заострять внимание на реализации не буду (да я и фотки похерил а разбирать не буду уже), поскольку если вы не способны разобраться куда впаяться резистором по схеме, то лучше туда паяльнком не лезть. Если на разъеме и питании 5 вольт там все мегаочевидно, то тут уже все сложнее.


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

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

Хитрая микросхемка коммутатор, цап и эквалайзер в одном флаконе управляется по SPI. Я даже этот SPI научился читать... но возникло подозрение что производительности ардуины не хватает для обработки пакетов. Точнее вроде как прочитать можно, но как только добавляешь хоть один if то следующий пакет а то и два летят мимо, а там важно поймать именно последовательность. Может быть там есть еще какая-то тема с регистрами и прочим, но моя твоя нипанимать. Ситуация осложняется тем, что я не хочу глубоко погружаться в тему и у меня нет логического анализатора. Но иногда я упрям и разобрался в последовательностях.

Если кому интересно то вот:

Имплантация bluetooth платы в магнитолу pioneer mvh-190ub и адаптер кнопок руля в одном флаконе Рукоделие, Самоделки, Автозвук, Bluetooth, Arduino, Адаптер, Длиннопост, Рукоделие без процесса

Я попробовал реализовать тупыми ifами на nano, вдруг кому интересно:

#include "SPI.h"
bool flag01, flag02, flag03, flag11, flag12, flag13, flag31, flag32, flag33;
void setup (void)
{
// Инициируем работу с последовательным портом
Serial.begin(9600);
// Устанавливаем вывод MISO в режим выхода
pinMode(MISO, OUTPUT);
// Устанавливаем режим ведомого в контрольном регистре SPI (SPI Control Register)
SPCR |= _BV(SPE);
// Подключаем прерывание SPI
SPI.attachInterrupt();
}
// Вызываем функцию обработки прерываний по вектору SPI
// STC - Serial Transfer Comlete
ISR(SPI_STC_vect)
{
// Получаем байт из регистра данных SPI
byte c = SPDR;
Serial.println(c, BIN);
if (c == 0b1) {
Serial.println("1 ok");
flag11 = true;
} else {
flag11 = false;
}
if (c == 0b11 && flag11) {
Serial.println("11 ok");
flag12 = true;
} else {
flag12 = false;
flag11 = false;
}
if (c == 0b1100000 && flag11 && flag12) {
Serial.println("1100000 ok");
flag13 = true;
} else {
flag13 = false;
flag12 = false;
flag11 = false;
}
}
void loop(void)
{
}
Подозреваю что если записывать это в массив или буфер, то можно потом как-то с этим делом разобраться. Но уже сил на вдумчивое курение мануалов по C++ и прочему не осталось. Как минимум я не понимаю как детектировать начало последовательности пакетов. В любом случае буду ждать STM32F401CCU6 и уже на нем реализовать данную фишку. Скорей всего мой говнокод на 70МГц будет нормально работать и просто добавлю в схему ключ на мосфете включающий и выключающий питание блюпуп платы. Попробую на этом котроллере совместить и с функциями адаптера кнопок, если смогу совместить все это в коде (что не факт), но на nano вообще не заработало =) так что только попробую.

Была мысль использовать для чтения spi платку nodemcu на esp8266, но там как-то все плохо с spi, один вечер потыкал палочкой, научился читать немного информации но почему-то в пять раз меньше чем через nano и забил. Пытался читать исходных код или документацию на SPIslave библиотеку для esp, но в результате забил, оно того не стоит.

Если еще смогу редактировать пост - то добавлю результат. А пока, выходные закончились, надо двигать на работу. Как промежуточным результатом я доволен, своего внутреннего самоделкина накормил и он заснул до следующего раза.

Показать полностью 6
[моё] Рукоделие Самоделки Автозвук Bluetooth Arduino Адаптер Длиннопост Рукоделие без процесса
54
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии