micro / minimOSD для NAZA
Вот
А если пропадала телеметрия совсем, а картинка оставалась, вылечилось перезагрузкой платы - это непропай где-то или перегрев? Платки в термоусадке.
MAX7456 греется будь здоров, у меня уже сгорел (перепаивал новый), сейчас на всякий случай после заключения платы в термусадку сделал вырез над MAXом + заказал Heatsink Cooling мелкий.
разобрался, все таки ошибся с пайкой
Коллеги, а как сделать, чтобы осд отображала два напряжения как у Фёдора (brusse)?
На любой из семи (кажется их семь) аналоговых пинов можно повесить проводок по которому подавать некую информацию от масштабированую в напряжение 0 - 1,1В. Хоть семь делителей от семи батарей. Код конечно надо править в зависимости на какой пин певешен делитель.
Уже повесил, а вот с кодом как разобраться - не знаю.
На какой пин? (На какую ногу процессора?) Могу вечером написать что в коде вставить.
Егор, доп сенсор по напряжению повесил на 23 ножку AO. Увидел вот здесь code.google.com/p/…/Hardware_Mods но дальше моих познаний не хватает.
Добавляем индикацию второй батареи на ножке 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” на весь экран) включается по первой батарее.
И последнее, у меня нет второй батареии, поэтому все вышенаписаное должно работать, но не я проверял))
Егор, огромное спасибо!
Пожалуйста.
Напишете, завелось ли…
Пришли печатные платы с ошпарка, спаял по-быстрому, первый тест.
А где такие приобрести можно ?
А где такие приобрести можно ?
Никогда не сталкивался с производством полного цикла. Вот проект на ошпарке oshpark.com/shared_projects/cJspiZ4P
Пришли печатные платы с ошпарка, спаял по-быстрому, первый тест.
Громоздкая какая-то, ИМХО.
У атмеги пятаки есть - паять под лупой не надо. Да, похоже, вообще ни чего паять не надо.
У атмеги пятаки есть - паять под лупой не надо. Да, похоже, вообще ни чего паять не надо.
точно, всё разведено на разъемы справа
Пришли печатные платы с ошпарка, спаял по-быстрому, первый тест.
Кстати, приколько, что резисторы-делители можно сразу впаять на плату под свое напряжение. Хочу прям такое.
А расскажите чуть подробнее. Я смотрю, три платы будут стоит $11.45 + доставка. ОК, а где взять список деталей? Или это надо все со схемы аккуратно переписать и топать в ЧипДип?
А как вы на нее заливаете прошивку? Я вижу, что слева всего 4 пина, этого же вроде недостаточно, чтобы прошить?
Кстати, приколько, что резисторы-делители можно сразу впаять на плату под свое напряжение. Хочу прям такое.
А расскажите чуть подробнее. Я смотрю, три платы будут стоит $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
угловые разъемы, мелоч