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

Опубликовано: 05.07.2024

Всем привет!
Приобрел, значит, я себе на днях сие чудо) Магнитола от Audi A3 — Audi Concert CD
Многие скажут — а че сразу пионера не воткнуть с флешками…тут как говорится на вкус и цвет, но настоящие аудиводы в теме, они меня поймут. Единственный минус — у меня А4 и панелька передняя немножко другая.

Если кто располагает панелью от Audi Concert для A4 — готов ее приобрести, что бы так сказать все вписывалось в дизайн и гармонично смотрелось)

Идея эмулятора чейнджера проста — берем ардуино, заливаем код, интегрируем ее в магнитолу(5 проводков), выводим линейники — ВСЁ. Можно сделать устройство внешним, тогда понадобится еще и преобразователь питания, и разъемы которых хрен где найдешь…я заморачиваться не стал и воткнул все внутрь. Была использована плата Arduino pro mini, но прошивается она только внешним программатором. Я использовал для этого Arduino UNO.

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

На авторство скетча не претендую, автор Thomas Kovacik. Я лишь немного допилил его код, чтобы магнитола сразу выходила в рабочий режим (на его прошивке ардуина ждала команды на воспроизведение, режим idle)

На последок прикреплю видос, как это все работает.
По затратам — Ардуино Про Мини была еще куплена давно за 200 рублей. Все остальное в виде проводов и паяльника у меня просто было. Из плюсов — никаких схем травить не нужно, в дальнейшем можно даже доработать устройство — приобрести MP3 sheild и заставить читать флешки, а названия треков выводить на FIS) Либо простой плеерок с SD картой подключить и связать его с кнопками магнитолы. Научить перелистывать папки и выводить время…аналог CarLink или yatour сделать в общем) Только за смешные деньги…

Кому понравилось — ставьте лайки и всем удачи на дорогах, а я пошел чистить снег, засыпало почти по колено)

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

Суть проекта:

Поставить планшет, как управляющий и отображающий орган автомагнитолы (в идеале - любой). Как контроллер выступает ардуино.

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

Львиная доля магнитол (за все не скажу - просто нет информации) построена по следующему принципу - Основной блок магнитолы, содержащий ЦП, усилитель, тюнер, CD и т.д. соединяется с HID (орган отображения и управления) с помощью IC2 подобного интерфейса. Отдельными контактами проходят обычно: кнопка включения, энкодер, подсветка.

Идея:

Перехватить сигналы управления и отображаемой информации от основного блока ардуинкой и передать на планшет по USB. Управление с планшета по USB передавать через ардуинку на центральный блок (ЦБ). Отключать или не отключать дисплей магнитолы, пока не ясно. Хотя между ним и ЦБ идет бешеный обмен информацией, что может помешать корректному управлению.

Что сделано:

1. Раскурочена магнитола от CAMRY v40. Определена микросхема, управляющая дисплеем (NEC mPD16432B). Скачан ее даташит.

2. Ардуинка подключена к дисплею и написан скетч. Дисплей прекрасно управляется и выводит информацию.

3. К ардуинке подключены ЦБ с дисплеем в режиме считывания информации. Написан скетч.

Что не получилось:

А ничего - информация, считываемая ардуинкой, полный бред.

Изначально я считывал информацию стандартными digitalRead(), но скорости считывания не хватало. Перешел на PIND, сократил операции по максимуму, практически чистый си. Все равно бред.

Вопросы:

1. Актуальное время синхроимпульсов (по документации) 400нс. Где - то на границе возможностей ардуинки. Или я ошибаюсь?

2. Если ардуинка не тянет, то что посоветуете. Хотелось бы что-то с компиляторами си и библиотеками. На ассемблере такой проект не потяну.

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

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

Внедрять дисплеи в приборную панель не всегда возможно, а развешивать их по торпеде — очередной колхоз, даже когда всё сделано на совесть(что редкость):

Тем более, что отображать часто хочется не просто цифру, сообщение или циферблат, а нечто более наглядное и продвинутое — например график какой… или несколько:

Меж тем почти в каждом современном автомобиле есть замечательный штатный(ну или почти как штатный) цветной дисплей, размером 5-7 дюймов, принадлежащий магнитоле.

Если магнитола на Андроиде — то можно написать приложение, которое будет определённым образом забирать данные с Ардуины и выводить на экран. Там есть свои проблемы, но сейчас не о них.

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

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

К сожалению формирование видеосигнала силами микропроцессоров начального уровня — практически невыполнимая задача. Хотя голь на выдумки хитра и существует генератор видеосигнала даже на базе ATmega328:

Правда изображение только чёрно-белое и разрешение всего 128x96.
Тем не менее для нехитрых задач даже такого хватит за глаза.
Тем более что ещё и практически нахаляву…

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

Полюбому так будет и лучше и дешевле, чем ведёрко семисегментных индикаторов или допотопный ЖК-дисплей пожухлого качества, который ещё нужно где-то найти…

Мой вариант на базе Arduino Nano:

Но для формирования видеосигнала Ардуину начального уровня никакого смысла покупать нет.
Даже в нашей тьму-таракани практически за те же деньги можно приобрести более продвинутый вариант Ардуины на базе STM32, которого звать Blue Pill, у которого тактовая частота от 72 до 128Мгц, 20Кб оперативки и 128Кб флэш. Соответственно и скорострельность у него выше и возможностей чуть больше.

Схема подключения всё так же проста, если не сказать — примитивна:

Мой вариант на базе STM32:

На имеющемся оборудовании и программном обеспечении получается сформировать до 512*216 точек монохромного изображения. Цифровые телевизоры такое изображение отображают безропотно. Непонятно пока — сможет ли отображать всю гамму нестандартных разрешений автомобильная магнитола.
Поживём — увидим.

Если бы оперативной памяти было побольше, то можно было бы замахнуться и на цветное изображение, но увы. Потому цвет, надеюсь, будет в следующей серии, на микропроцессоре помощней. Разрешение вряд ли получится изделать свыше 320*240, палитра цветов тоже будет куцая, но мне хватит чего-то подобного за глаза:

Над этим я работаю сейчас, но это тема моей следующей статьи.

Ну а пока результаты моего сегодняшнего эксперимента:

Тестирование проводилось на двух телевизорах. Один — здоровенный LCD, другой — средних размеров кинескопный. Качество картинки на твёрдую четвёрку — до пятёрки не дотягивает ибо присутствуют еле заметные артефакты синхронизации. Но если не приглядываться и не привередничать — то очень даже неплохо. Фотки не впечатляют, потому как пересвечены сильно — снимал ночью под одеялом в полумраке на дисковый телефон, но можете мне поверить наслово — картинка на экране магнитолы оченно недурна…

С японским языком у меня напряг, но разобраться в его иероглифах оказалось проще, чем писать прошивку для микропроцессора с нуля в каком-нибудь кокосе…
Большая Tamakichi от меня благодарность за проделанную работу!

Его комментарии к переработке:

1.вся проводка и соединение всех модулей и узлов сохранены из первоначального проекта.(кроме подключения блутуз модуля, он теперь на серийном порте «1»)

2.программа жестко заточена под ардуино МЕГА 2560. на серийном порте «0» присутствует Дебаг при условии раскоментирования дефайна.

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

4.добавлена функция восстановления связи в случае разрыва соединения (параметром потери связи служит отсутствие оборотов двигателя).

5.для работы требуется библиотека OBD.h вложенная в архив с проектом, этот экземпляр имеет несколько изменений от оригинала который можно скачать из интернета, и без неё скорее всего проект не будет работать или будет нестабилен.
папку нужно скопировать в папку " \Documents\Arduino\libraries"

Android приложение со всеми нюансами в Google Play: OliviaDrive

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

image

image

image

image

image

image

image

image

Список требуемых деталей для сборки БК

image

2) LCD2004 жк-модуль

image

3) Модуль Bluetooth HC-05


4) OBD ELM327 Bluetooth сканер


5) Резистор 10 кОм подстроечный, бипер для звука, 2 кнопки для смены экранов, провода для соединений, корпус

Настройка блютуз модуля HC-05 для работы

Подпаиваем провода к пинам блютуза: (картинку с выходами смотреть в описании требуемых деталей)


void loop()
<
if (BTSerial.available())
Serial.write(BTSerial.read());
if (Serial.available())
BTSerial.write(Serial.read());
>

После успешной загрузки скетча открываем: Сервис->Монитор порта. Далее снизу ставим скорость 9600 бод и NL+CR вместе.

Далее вводим команды по одной и нажимаем [Послать]. После каждого ввода должен быть ответ ok.

Заметьте, что mac-адрес вида: «AA:BB:CC:11:22:33» вводится как «AABB,CC,112233». MAC- адрес своего модуля ELM327 можете посмотреть, подключившись для начала на него со своего мобильника. (Стандартные пароли обычно: 1234, 6789, 0000).

Всё, настройка модуля Bluetooth закончена.

Теперь нужно собрать схему Arduino + блютуз + LCD-экран

Схема:

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

3. Подключаем дополнительную кнопку для переключения экранов с данными.

[1 кнопка]: один конец от нормально-открытой кнопки подключаем в GND ардуино, а второй конец в пин 10.
[2 кнопка]: GND + пин 9.

Бипер для звуковых предупреждений подключить по следующей схеме "+" к пину 13, а минус к GND ардуино.

Заливаем скетч в Arduino с помощью Aduino IDE 1.0.6 (использовал эту версию).

Нужно будет обязательно учесть три переменных:

Управление

Скетч:

Все, идем в машину, вставляем ELM327 в порт, ардуину в зарядку для авто и проверяем.


Мдя. Я помню времена, чтобы запустить MP3 на PC 386DX33 под Win3.11 требовались бубны и магия, похлеще чем сегодняшние проблемки детворы с освоением навыков работы в очередном модном фреймворке.

А теперь это делает обычный ПЛИС за 1$ с кучей готовых паттернов и даже готовго софта.

Нынешние конструкторы позволяют в разы больше чем просто мр3.

все это можно сделать на базе Orange PI + сенсорный экран 7" + камера и автоматическое переключение на камеру на багажнике - для парковки задним ходом. По итогу люди делают за 60-90$ реальные вещи, плюс навигация, интернет (если модуль модема с симкой подключить). И все это есть пошагово в ютубе. Некоторые туда пихают еще сборку аккумуляторов)

А можно пример с ютуба?

Ну нга ютубе все иностранные, наши только хватаются.

Если делать, то лучше сюда глянуть

рандом хороший у тебя. у меня магнитола за 25 косарей и в ней рандом вообще говно какое-то.

Иллюстрация к комментарию

Это настолько же круто как и удаление эффекта красных глаз в фотошопе. Достаточно следовать инструкции. Всё уже давным давно известно и никаких открытий тут нет

Следование инструкции довольно редкостное явление в наше время. Ценить надо

скетчи, девайсы, где ?

мир блатной совсем забыла и перо за это получай

Ты чо, эстраду попутал?

тогда хотябы джог заместо кнопок поставь

Я его слепила из того что было) А так то совет хороший)

Без исходников - это так, похвастаться

Автор, не слушай недоброжелателей - ты это сделал!

Оно еще и работает!

Мне знакомо это ощущение и я знаю, что в такие моменты

очень хочется с кем-то поделиться, показать.

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

Чего-то подумалось. Ведь термин "магнитола" подразумевает наличие в составе изделия магнитофона. Надо продумать терминологию.

А так, используемые компоненты умеют читать тэги id3v2?

Чтение тегов программируется вручную, я не делал, но можно добавить

Собрать плеер на базе WTV020-SD-16P и арудино очень просто, проблема только в том, что он будет далеко не всеяден.

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

у меня описание чипа не соответствует его функционалу - возможно в вашем случае такая же проблема.

Проблемы я порешал т.к. все работает как видите) Проблема действительно в библиотеке которую я наполовину переписал

Один вопрос. Стоит того?

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

За воспроизведение отвечает VS1053B, он умеет и во FLAC, как по мне вполне.

вопрос не в тему, но все же, я купил Digispark Attiny85, но когда вставил в комп, он не определился, а выдал такую ошибку "сбой запроса дескриптора устройства", ошибка 43. Вставлял в ноутбук USB 2.0, Win 10. Но все остальное оборудование через этот порт работает как надо, только эта плата. на других компах проверить не могу. Когда включаю должен же на 5 сек загораться один фонарик, в ожидании загрузки, ну а у меня он как включается, так и не выключается, не выходит наверное из этого режима. Что это может быть?

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

Нет, купил другой. Слушай, а ты код пишешь?

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

магнитола? или всё же цифровой плеер

Дешевле китая не сделаешь в любом случае, цель была поиграться + реализовать свои хотелки типа быстрого доступа к избранным мелодиям и отзывчивой работы. Себестоимость примерно: экран 6$, кнопки 3, mp3 shield 8.5, mega 6, 4x4 keypap 0.7 =

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

Забыл еще замечательный дц-дц преобразователь без которого при заведенной машине появляются шумы а то и вообще все виснет, который стоит 10$ что делает себестоимость еще веселей


Сделал маску, которая изменяет голос

Решил попробовать выжать из Arduino максимум и сделать на ней звуковой процессор, а именно - понижать тон голоса в реальном времени.

Звук будем оцифровывать бортовым АЦП, а воспроизводить при помощи широтной модуляции: например зададимся частотой 16 кГц, текущая ширина импульса будет пропорциональна значению с АЦП

Сделал маску, которая изменяет голос Arduino, Электроника, Программирование, Самоделки, Своими руками, Видео, Длиннопост, Видеоблог

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

Сделал маску, которая изменяет голос Arduino, Электроника, Программирование, Самоделки, Своими руками, Видео, Длиннопост, Видеоблог

Добавим простейший RC фильтр

Сделал маску, которая изменяет голос Arduino, Электроника, Программирование, Самоделки, Своими руками, Видео, Длиннопост, Видеоблог

И звук, и форма сигнала станут гораздо лучше!

Сделал маску, которая изменяет голос Arduino, Электроника, Программирование, Самоделки, Своими руками, Видео, Длиннопост, Видеоблог

Далее нужно понизить тон. Здесь всё просто: задаёмся окном выборки и начинаем "пропускать" каждый N-ный сэмпл на выход, таким образом растягивая звук по времени

Сделал маску, которая изменяет голос Arduino, Электроника, Программирование, Самоделки, Своими руками, Видео, Длиннопост, Видеоблог

Для сглаживания между выборками будем миксовать громкость при помощи средневзвешенной суммы

Сделал маску, которая изменяет голос Arduino, Электроника, Программирование, Самоделки, Своими руками, Видео, Длиннопост, Видеоблог

Я сделал плату и разместил всё это безобразие внутри респиратора-полумаски

Сделал маску, которая изменяет голос Arduino, Электроника, Программирование, Самоделки, Своими руками, Видео, Длиннопост, Видеоблог

Сделал маску, которая изменяет голос Arduino, Электроника, Программирование, Самоделки, Своими руками, Видео, Длиннопост, Видеоблог

Собсно получилось отлично, результат можно наблюдать на видео в начале поста.

Продолжение про самолет из потолочной плитки

Продолжение про самолет из потолочной плитки Самоделки, Своими руками, Моделизм, Электроника, Программирование, Микроконтроллеры, Радиоуправляемые модели, Из подручных средств, Arduino, Хобби, Stm32, Самолет, Радиоуправление, Схемотехника, Пайка, Конструирование, Хлам, Потолочная плитка, Видео, Длиннопост

Схема подключения приемника:

Продолжение про самолет из потолочной плитки Самоделки, Своими руками, Моделизм, Электроника, Программирование, Микроконтроллеры, Радиоуправляемые модели, Из подручных средств, Arduino, Хобби, Stm32, Самолет, Радиоуправление, Схемотехника, Пайка, Конструирование, Хлам, Потолочная плитка, Видео, Длиннопост

Здесь к blue pill подключается радиомодуль, контроллер двигателя и две сервомашинки. Аккумулятор подключается к контроллеру управления двигателя, на нем стоит стабилизатор на 5 вольт, с которого берется питание для управляющей электроники. Сервомашинки также запитываются с этих 5 вольт. Радиомодуль питается от +3,3 вольт со стабилизатора blue pill. Здесь имеется делитель напряжения, который подключен к аккумулятору, для контроля его напряжения. Информация шлется на пульт управления.

Продолжение про самолет из потолочной плитки Самоделки, Своими руками, Моделизм, Электроника, Программирование, Микроконтроллеры, Радиоуправляемые модели, Из подручных средств, Arduino, Хобби, Stm32, Самолет, Радиоуправление, Схемотехника, Пайка, Конструирование, Хлам, Потолочная плитка, Видео, Длиннопост

Программа для приемника: тут

Схема подключения пульта управления:

Продолжение про самолет из потолочной плитки Самоделки, Своими руками, Моделизм, Электроника, Программирование, Микроконтроллеры, Радиоуправляемые модели, Из подручных средств, Arduino, Хобби, Stm32, Самолет, Радиоуправление, Схемотехника, Пайка, Конструирование, Хлам, Потолочная плитка, Видео, Длиннопост

Здесь чуть побольше компонентов. Аккумулятор подключается на порт +5 вольт blue pill. Для зарядки аккумулятора к нему подключен модуль зарядки. С blue pill при помощи 3,3 вольт запитывется экран, радиомодуль, джойстики. Потенциометры джойстиков подключены к каналам АЦП blue pill, их тактовые кнопки и остальные две подключены на остальные порты в режиме вход.

Пульт управления внутри:

Продолжение про самолет из потолочной плитки Самоделки, Своими руками, Моделизм, Электроника, Программирование, Микроконтроллеры, Радиоуправляемые модели, Из подручных средств, Arduino, Хобби, Stm32, Самолет, Радиоуправление, Схемотехника, Пайка, Конструирование, Хлам, Потолочная плитка, Видео, Длиннопост

Программа для пульта управления: тут

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

Продолжение про самолет из потолочной плитки Самоделки, Своими руками, Моделизм, Электроника, Программирование, Микроконтроллеры, Радиоуправляемые модели, Из подручных средств, Arduino, Хобби, Stm32, Самолет, Радиоуправление, Схемотехника, Пайка, Конструирование, Хлам, Потолочная плитка, Видео, Длиннопост

В меню пульта 4 строки: 1 строка - это режим полета, во 2 строке просто отображаются данные АЦП и т.д. в 3 строке настраиваются чувствительность рулей и субтример (начальное положение элевонов), в 4 строке ничего нет (можно добавить).

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

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

Расскомментировав эти строчки в main.c (до надпсиси END OF DEBUG_RC OUT):

Продолжение про самолет из потолочной плитки Самоделки, Своими руками, Моделизм, Электроника, Программирование, Микроконтроллеры, Радиоуправляемые модели, Из подручных средств, Arduino, Хобби, Stm32, Самолет, Радиоуправление, Схемотехника, Пайка, Конструирование, Хлам, Потолочная плитка, Видео, Длиннопост

пульт можно подключить по USB к ПК при помощи любой Terminal программы (я пользовался CoolTerm), в которой нужно выбрать COM порт и присоединится к blue pill:

Продолжение про самолет из потолочной плитки Самоделки, Своими руками, Моделизм, Электроника, Программирование, Микроконтроллеры, Радиоуправляемые модели, Из подручных средств, Arduino, Хобби, Stm32, Самолет, Радиоуправление, Схемотехника, Пайка, Конструирование, Хлам, Потолочная плитка, Видео, Длиннопост

и в окне получить информацию о подключении радиомодуля:

Продолжение про самолет из потолочной плитки Самоделки, Своими руками, Моделизм, Электроника, Программирование, Микроконтроллеры, Радиоуправляемые модели, Из подручных средств, Arduino, Хобби, Stm32, Самолет, Радиоуправление, Схемотехника, Пайка, Конструирование, Хлам, Потолочная плитка, Видео, Длиннопост

Считывая установочные данные, записанные в регистры радиомодуля, можно убедиться, что модуль работает и данные совпадают с установленными. В данном случае я получил статус работы радиомодуля, его мощность передачи (максимальная), номер канала (11), скорость передачи (1 Мбит в секунду), размер передаваемого пакета (32 байта - максимальный) и количество бит контрольной суммы (в моем случае 16 бит). Если модуль не подключен или неисправен в терминал выводит такое сообщение:

Продолжение про самолет из потолочной плитки Самоделки, Своими руками, Моделизм, Электроника, Программирование, Микроконтроллеры, Радиоуправляемые модели, Из подручных средств, Arduino, Хобби, Stm32, Самолет, Радиоуправление, Схемотехника, Пайка, Конструирование, Хлам, Потолочная плитка, Видео, Длиннопост

Зайдя сюда в подменю Settings:

Продолжение про самолет из потолочной плитки Самоделки, Своими руками, Моделизм, Электроника, Программирование, Микроконтроллеры, Радиоуправляемые модели, Из подручных средств, Arduino, Хобби, Stm32, Самолет, Радиоуправление, Схемотехника, Пайка, Конструирование, Хлам, Потолочная плитка, Видео, Длиннопост

в терминал посыпятся такие строчки:

Продолжение про самолет из потолочной плитки Самоделки, Своими руками, Моделизм, Электроника, Программирование, Микроконтроллеры, Радиоуправляемые модели, Из подручных средств, Arduino, Хобби, Stm32, Самолет, Радиоуправление, Схемотехника, Пайка, Конструирование, Хлам, Потолочная плитка, Видео, Длиннопост

Здесь данные в таком порядке: X1: значение c АЦП правого джойстика по вертикали, Y1: значение c АЦП правого джойстика по горизонтали, значение с АЦП левого джойстика, которым управляется двигатель, значения только по вертикали, далее напряжения аккумулятора пульта, напряжения аккумулятора на приемнике, значение кнопки правого джойстика, значение кнопки левого джойстика, значения кнопок что находятся справа на пульте, субтример, чувствительность 1 и 2 (2 не используется), а также статус связи с приемником.

Как видно сигнала нет, так как примник был отключен. Также я зажал кнопку правого джойстика и просто левую кнопку, они выдают "1".

Включаю приемник и перевожу правый джойстик в правый верхний угол:

Продолжение про самолет из потолочной плитки Самоделки, Своими руками, Моделизм, Электроника, Программирование, Микроконтроллеры, Радиоуправляемые модели, Из подручных средств, Arduino, Хобби, Stm32, Самолет, Радиоуправление, Схемотехника, Пайка, Конструирование, Хлам, Потолочная плитка, Видео, Длиннопост

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

АЦП на Blue Pill имеет разрешение 12 бит, максимальное значение котрого 4095, но в терминале видно, что оно 255, все потому что я 12 бит перевел в 8 бит (1 байт), так как один элемент массива передоваемого пакета равен 1 байту, чтобы одним байтом можно было слать значения одной из осей джойстика.

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

Продолжение про самолет из потолочной плитки Самоделки, Своими руками, Моделизм, Электроника, Программирование, Микроконтроллеры, Радиоуправляемые модели, Из подручных средств, Arduino, Хобби, Stm32, Самолет, Радиоуправление, Схемотехника, Пайка, Конструирование, Хлам, Потолочная плитка, Видео, Длиннопост

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

Крыло сложно в управлении (по-моему мнению) по сравнению с моделями, имеющими хвост со стабилизатором и килем.

И наконец, то, чего мы так долго ждали. Видео полетов. К сожалению, видео очень короткое, так как полет был недолгий.

В ВИДЕО ПРИСУТСТВУЕТ ПАРУ ПЛОХИХ СЛОВ!

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

Самолёт полетел вполне уверенно, но что-то пошло не так, если честно, я не понял в чем причина, может это из-за джойстиков или все-таки конструкция крыла. Я думаю, что на этом я не остановлюсь и попробую как-нибудь еще, пересмотрев ошибки.

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