MinimOSD. Прошивка, настройка, подключение
В статье рассмотрим подключение, прошивку и настройку MinimOSD. А так же ответим на вопрос, что делать — если что-то пошло не так, и что делать — чтобы не кончилось всё печально.
«Петька — приборы. -Триста. -Что триста. -А что приборы?»
MinimOSD. Дешевая и очень полезная платка. Позволяет видеть что происходит сейчас с коптером — текущий вольтаж, сколько истрачено ампер, сколько захвачено спутников глобального позиционирования, а так же не даст «заблудиться» в небе. Заблудиться в небе невозможно, скажете? А вот и очень даже возможно. Начиная от элементарного «взлетел, ой а сверху всё по-другому… ой, а где я сам нахожусь?», заканчивая сложными полетными условиями, например полеты в темноте или в осадки или случайно в облако залетел, как на видео ниже:
На четвертой минуте только спасительная стрелка «домой» указывала, куда лететь.
Ладно-ладно, хватит лирики, даешь практику!
ПОДГОТОВКА.
Итак, вы заказали себе MinimOSD. На бангуде или на Хоббикинге или на РЦТаймере — да неважно где, и получили что-то навроде этого:
Руки так и чешутся подключить её к АРМ, и посмотреть — чего она показывает. Но этого как раз делать сразу и не надо! Чревато заказом новой ОСД — а это потерянное время (что главное) и конечно потерянные деньги.
На платке есть два больших чипа: ATMEGA328P и MAX7456. Первая микросхема (микроконтроллер, если точнее) — отвечает за коммуникацию с полетным контроллером («цифровая часть» платы). А вторая — одноканальный монохромный OSD (OnScreenDisplay — меню на экране) фирмы Maxim, назовем её «аналоговая часть» платы. Так вот, эта MAX7456 — достаточно капризная микросхема. Она не любит перегрева, не любит резких скачков между «цифровой» землей и «аналоговой» — короче горит легко. А как назло, ленивые китайцы НИКОГДА не пропаивают штатный теплоотвод микросхемы (на «пузике»). Если использовать платку в том виде, как она пришла — МАХ сгорит — гарантия 80%. Чтобы этого не случилось пропаиваем три дырки, отмеченные на фото ниже.
Для этого вставляем тонкий припой (диаметром 1 мм, желательно чтобы он был сразу с флюсом) в дырочку и греем паяльником:
И вот результат (пайка не очень, но как умею — у вас получится лучше!)
Теперь об особенностях подключения. Внимательные обратили внимание, что я пропаял перемычку сверху. Есть несколько способов подключения MinimOSD, и много копий сломано, который лучше или правильнее или дает меньше помех. Я использую способ подключения с объединением цифровой и аналоговой земель и запиткой от 5 вольт со стороны «цифровой» части. Так как minimOSD потребляет достаточно много, то лучше запитать плату от отдельного источника питания. Это выглядит почти вот так:
То есть вверху я запаял перемычку, объединив тем самым земли. И ещё нужно одну перемычку капнуть, на «лицевой» стороне платы.
ПОДКЛЮЧЕНИЕ И НАСТРОЙКА
Ну вот, все распаяли, теперь наша платка готова к подключению к компу. Для этого нам потребуется FTDI адаптер (например на РЦТаймере, или любой другой USB-UART TTL — адаптер).
Подключаем с помощью 5 проводков, схема подключения следующая: 1. GRN, 2. Tx, 3. Rx, 4. +5V, 5. GND (со стороны ОСД) — соединяем их с FTDI адаптером 1. DTR, 2. Rxi, 3. Txo, 4. VCC, 5. GND. Вот фотка, как это соединено у меня:
Если непонятно, смотрим вот это видео, особенно внимательно на 1:03
Теперь, что качать и чем настраивать. Для начала скажу, что для коптеров и для самолетов прошивки отличаются. Так же есть прошивка для Мультивии (kvTeam), и так же есть отдельные моды — от самостоятельной работы (без полетного контроллера), до подключения даже к Назе.
Но здесь мы рассматриваем «классический» случай — коптер на контроллере АРМ. Вот официальная страничка проекта. Вот страничка загрузки (для коптера под АРМ надо грузить ExtraCopter). Но это старые версии, люди с тех пор достаточно много модифицировали. Современные прошивки лежат вот в этой ветке на форуме ДийДронесов. На момент написания статьи, это прошивка R800, лежит тут (пользователь MinimOSD_Extra, пароль Top_Secret), копия на Я.Диск.
В архиве лежит сама прошивка (HEX — файл), файл с шрифтами (mcm — файл), и сама программа (OSD_Config.exe).
Для начала зайдем в диспетчер устройств и проверим скорость порта FTDI (поставим 115200):
Запускаем программу OSD_Config.exe, выбираем порт, нажимаем кнопочку «Read From OSD», дожно быть сообщение о успешном чтении. Так как с завода залита неизвестно какая прошивка, чтобы не иметь проблем в будущем, зальем свеженькую. Для этого нажимаем меню Optios>Update Firmware
выберем файл и загрузим её.
Получим сообщение об успешной прошивке
Потом контроллер проинициализируется и загрузит настройки в программу, о чем сообщит
Пришла пора загрузить файл с шрифтами, который соответствует прошивке (если этого не сделать, внешний вид ОСД может оказаться очень смешным или вообще нечитаемым). Нажимаем меню Option>Update Charset,
выбираем MCM файл и заливаем его
После заливки контроллер опять инициализируется.
Ну вот собственно и всё. Далее — настройка ОСД. Приведу два скрина с моими настройками:
RSSI channel — перевод RSSI в проценты. Где 5 вольт — это 255 (максимум в восьмиричной системе). А у приемника FRsky максимум сигнала — 3.3 вольта. Если поставить галочку RSSI enable RAW — то на экране FPV мы увидим «сырые» данные. Именно их мы можем и вбить в настройки. А можете просто вбить мои значения.
Еще одна тонкость — переключение экранов OSD. Как вы заметили, есть две панели для данных. Мы можем переключаться в три варианта отображения — экран1 (Panel1), экран2 (Panel2), чистый экран без данных (Disabled). Для этого нужно сначала определиться, как именно мы будем переключаться между экранами. Например, если мы будем переключаться между экранами с помощью крутилки или трёхпозиционного тумблера — тогда у нас будут три диапазона значений по каналам (Panel1: 0-1233, Panel2: 1233-1467, Disabled: 1467-1701). В этом случае крыжик Rotation Switching нужно выключать. А если мы будем переключаться простым двухпозиционным тумблером, тогда имеет смысл Rotation Switching включить. При этом, когда включен тумблер, у нас будут по очереди переключаться экраны (Panel1 -> Panel2 -> Disabled -> Panel1 ……), стоит тумблер выключить — переключение между экранами остановится. Какой именно канал будет переключать экраны — определяется в раскрывающемся списке, озаглавленном OSD Toggle Channel. Я повесил на канал номер 6. И есть ещё одна засада, которая некоторых (включая меня) поначалу сбивает с толку — Warning Auto Panel Switch. В этом списке определяется, на какой из экранов переключаться в случае возникновения какого-нибудь из определенных ранее предупреждений. Казалось бы, всё ясно. Летишь себе, что-нибудь в полете случилось, ОСД переключилось на тот экран, который задал. Но вот вопрос — мы задали переключение между экранами, как правило это настраивается дома, коптер не летает, хотим проверить — экраны не переключаются! А потому, что дома как правило нет GPS Fix’а — короче сработало предупреждение! Вот и «не работает» переключение между экранами… 🙂
Не знаю, нуждаются ли в пояснениях остальные параметры, возможно потом дополню статью.
Скажу только, что при настройке основного скрина не стоит пихать туда сразу всё. Лучше сначала всё выключить (в столбике слева), а уж потом включать только то что надо и сразу размещать в нужную часть экрана. Рекомендую оставить пустое место по краям экрана, может обрезаться монитором или DVR писалкой или очками.
- SR0_EXT_STAT = 2
- SR0_EXTRA1 = 5
- SR0_EXTRA2 = 2
- SR0_EXTRA3 = 3
- SR0_POSITION = 2
- SR0_RAW_SENS = 2
- SR0_RC_CHAN = 5
Значения этих параметров можно почитать например тут. Последний параметр — не номер канала как кажется, а частота обновления параметра по RC управлению в СОМ порте.
Если же данные всё ещё не идут, и мы по-прежнему наблюдаем унылую надпись «No Mavlink Data», тогда надо проверять в тот ли порт подключена ОСД (в статье говорится про UART0), возможно вам пригодятся параметры SR1 (те же, как описаны выше, только для порта UART1). Возможно так же, что у вас не работает ОСД вместе с модемом телеметрии — в этом случае возможно придется подключить или наоборот отключить провод Tx на ОСД. Есть ещё глюк, что ОСД не работает, когда подключен USB провод к компьютеру. А возможно у вас просто перепутаны провода…
Ещё поделюсь одной фоткой. На моем контроллере из-за краша перестал работать основной порт под телеметрию, я просто подпаялся на UART0. А потом мне понравилось такое подключение.
Здесь я запитал напрямую от контроллера. Но надо ОБЯЗАТЕЛЬНО проверить, что осталось от 5 вольт самому контроллеру. В моем случае запитка самого контроллера идет от приемника, и там настроено чуть выше 5 вольт, чтобы с учетом приемника и minimOSD, для самого APM было строго 5 вольт.
Нужно коснуться ещё одного момента. Если неправильно прошить OSD, может возникнуть ошибка «failed to talk to bootloader». Эта ошибка дословно переводится как «ошибка разговора с загрузчиком». Она может возникнуть либо в случае перепутанных проводов, либо при слёте загрузчика. Если в случае с проводами всё понятно (смотрим выше, как подключать правильно), то в случае с загрузчиком — нужна процедура восстановления микроконтроллера.
Восстанавливаем Bootloader.
Для этого нам понадобится как минимум программатор. Удобнее пользоваться USBasp.
возможно вам понравится вот этот переходничок (ISP10<>ISP6)
или вот этот кабель (есть на Хоббикинге)
В общем, так или иначе, подключаемся к ATMega328P с помощью программатора.
Распиновка разъема ISP на плате OSD соответствует общепринятой. Обычно первый контакт квадратный. Если не так, то лучше убедиться, проследив Vcc и GND.
На программаторе обычно пины подписаны, если нет, то обычно это выглядит так:
Далее, например с помощью ArduinoIDE восстанавливаем загрузчик.
Для этого сначала выбираем тип программатора
Потом выбираем тип платы
И тип микроконтроллера
Далее нажимаем «записать загрузчик»
и ждем порядка минуты, пока зальется загрузчик (смотрим на зеленую строку состояния в нижней части)
Пока не появится сообщение об успешной прошивке загрузчика
(на ошибки внизу не обращаем внимания, надо обновить прошивку программатора)
Далее — идем в OSD_Config.exe, заливаем прошивку и шрифты, как было уже описано. Возможно, прошивку придется заливать дважды (один лишний раз нужен для правильной инициализации контроллера после заливки бутлоадера).
Ну вот вроде и всё. Вдруг кто не знает, есть ещё видеоинструкция от Юлиана. Если что не понятно тут, можно «вживую» посмотреть там.
Успехов вам в деле установки ОСД на ваш коптер!
Всегда ваш, Ганиев Тимур — 5yoda5 .
Update 11/11/2015: «Ну вот, все распаяли, теперь наша платка готова к подключению к компу. Для этого нам потребуется FTDI адаптер (например на РЦТаймере, или любой другой USB-UART TTL — адаптер).».
Update 11/03/2016: Добавлены изображения распиновки ISP.
Если вы нашли ошибку на странице, то нажмите Shift + Enter или нажмите здесь, чтобы уведомить нас.