micro / minimOSD для NAZA

Vlad-1357

Уже повесил, а вот с кодом как разобраться - не знаю.

ehs

На какой пин? (На какую ногу процессора?) Могу вечером написать что в коде вставить.

ehs

Добавляем индикацию второй батареи на ножке 23, пин A0. Новую панель в OSDconfig я незнаю как делать, поэтому в этом варианте я заменяю панельку “Throttle”, по аналогии можно заменить другую неиспользуемую панель.

Жирный текст - вставить, зачеркнутый - удалить.
В файле OSD_Vars.h ->
static uint8_t battv = 0; // Battery warning voltage - units Volt *10
static float osd_vbat_A = 0; // Battery A voltage in milivolt
static float osd_vbat_B = 0; // Battery B voltage
static int16_t osd_curr_A = 0; // Battery A current

FlightBatt.h ->
#define CURRENT_VOLTAGE(x) ((x)*REF_VOLTAGE/1024.0)*(volt_div_ratio/100.0)
#define CURRENT_VOLTAGE_B(x) ((x)*REF_VOLTAGE/1024.0)*(1523.5/100.0) //число “1523.5” подобрать под свой делитель
#define CURRENT_AMPS(x) (((x)*REF_VOLTAGE/1024.0)-(curr_amp_offset/10000.0))*(curr_amp_per_volt/100.0)

FlightBatt.ino ->

static float voltage = LOW_VOLTAGE * 1.05; // battery voltage, initialized above the low voltage threshold to pre-load the filter and prevent low voltage events at startup
static float voltage_B = LOW_VOLTAGE * 1.05; // battery voltage_B, initialized above the low voltage threshold
static float current_amps = 0; // battery instantaneous currrent draw [A]

voltage = CURRENT_VOLTAGE(analogRead(VOLTAGE_PIN)) * .2 + voltage * .8; // reads battery voltage pin
osd_vbat_A = voltage;
voltage_B = CURRENT_VOLTAGE_B(analogRead(0)) * .2 + voltage_B * .8; // reads battery_B voltage pin A0 (23)
osd_vbat_B = voltage_B;

if (curr_amp_per_volt > 0) { // Consider Amp sensor disbled when Amp per Volt ratio is zero
current_amps = CURRENT_AMPS(analogRead(CURRENT_PIN)) * .2 + current_amps * .8; // reads battery sensor current pin

OSD_Panels.ino ->
/******************************************************************/
// Panel : panThr
// Needs : X, Y locations
// Output : Throttle
/******************************************************************/
void panThr(int first_col, int first_line) {
osd.setPanel(first_col, first_line);
osd.openPanel();
osd.printf(“%c%3.0i%c”, 0x87, osd_throttle, 0x25); //эту строку стереть и заменить следующей
osd.printf(“%c%5.2f%c”, 0xE2, (double)osd_vbat_B, 0x8E);
osd.closePanel();
}

В osdconfig.exe включить панель Throttle, разместить где нравится, и записать конфигурацию. Включить и откалибровать показания - число “1523.5” подобрать под свой делитель, там зависимость прямая, во сколько раз отличаются значения, во столько и изменить это число.

Одно “но” - предупреждение о просадке батареи (“BATT LOW” на весь экран) включается по первой батарее.
И последнее, у меня нет второй батареии, поэтому все вышенаписаное должно работать, но не я проверял))

ehs

Пожалуйста.
Напишете, завелось ли…

1orgar

Пришли печатные платы с ошпарка, спаял по-быстрому, первый тест.

c4Faraon
1orgar:

Пришли печатные платы с ошпарка, спаял по-быстрому, первый тест.

А где такие приобрести можно ?

1orgar
c4Faraon:

А где такие приобрести можно ?

Никогда не сталкивался с производством полного цикла. Вот проект на ошпарке oshpark.com/shared_projects/cJspiZ4P

saigo
1orgar:

Пришли печатные платы с ошпарка, спаял по-быстрому, первый тест.

Громоздкая какая-то, ИМХО.

Vlad-1357

У атмеги пятаки есть - паять под лупой не надо. Да, похоже, вообще ни чего паять не надо.

1orgar
Vlad-1357:

У атмеги пятаки есть - паять под лупой не надо. Да, похоже, вообще ни чего паять не надо.

точно, всё разведено на разъемы справа

mozzart
1orgar:

Пришли печатные платы с ошпарка, спаял по-быстрому, первый тест.

Кстати, приколько, что резисторы-делители можно сразу впаять на плату под свое напряжение. Хочу прям такое.
А расскажите чуть подробнее. Я смотрю, три платы будут стоит $11.45 + доставка. ОК, а где взять список деталей? Или это надо все со схемы аккуратно переписать и топать в ЧипДип?

А как вы на нее заливаете прошивку? Я вижу, что слева всего 4 пина, этого же вроде недостаточно, чтобы прошить?

1orgar
mozzart:

Кстати, приколько, что резисторы-делители можно сразу впаять на плату под свое напряжение. Хочу прям такое.
А расскажите чуть подробнее. Я смотрю, три платы будут стоит $11.45 + доставка. ОК, а где взять список деталей? Или это надо все со схемы аккуратно переписать и топать в ЧипДип?

Доставка бесплатная с ошпарка, детали брал в Кварце. Микрухи макс и атмеги беру из китая штук по 10-20, постоянно нужны.

Список:
резы 0805: 75 - 2; 510 - 2; 1k - 3; 4,7k - 3; 10k - 4; 47k - 1; 100k - 1; 200k -1
кондеи 0805: 9p - 2; 16p - 2; 100n - 4
кондеи SMC-C: 47u*16V - 2
кварцы SMD6035: 16Mhz - 1; 27Mhz - 1
кнопка IT-1187 - 1
led 0805 - 2
atmega328p tqfp32
max7456 tssop28
угловые разъемы, мелоч

mozzart

Блин, опять два пина под видео. Ну 3 же удобнее, у меня 12 вольт топает по этому же кабелю от передатчика к камере.

1orgar
mozzart:

Блин, опять два пина под видео. Ну 3 же удобнее, у меня 12 вольт топает по этому же кабелю от передатчика к камере.

Ну так встроенного преобразователя же нет вот и 12 вольт не нужно

mozzart
1orgar:

Ну так встроенного преобразователя же нет вот и 12 вольт не нужно

Смысл 3х пинов - передать 12 вольт, которые идут с передатчика на камеру. Т.е. плата пусть себе работает от 5. А третий пин никуда не идет, он просто соединяет 12 вольт одного видео кабеля с другим.

И продублирую здесь ваш ответ - для программирования платы надо либо подпаиваться к контактам, либо использовать вот такой Atmel Atmega Socket Firmware Flashing Tool

sanyok_amd

Всем привет! У меня вылез косяк минимосд с новой курсовой камерой. При подаче питания на камеру и осд на мониторе видна только картинка с камеры без телеметрии. Если включить сначала осд, а потом камеру то есть и картинка с камеры и осд. Что это за глюк? Может нужно ослабить видеосигнал аттенюатором? На двух предыдущих камерах такой проблемы не было.

Shuricus

Это проблема камеры. У меня тоже самое.
Камера мини?

sanyok_amd

Да мини в метал. корпусе. Что-то можно сделать или покупать другую?

Shuricus

У других мини камер другая проблема - стробит шрифт. Я передергиваю.

Камера с сурвеила?