yurik_nsk
Активный участник
Какое-то время назад, мы обсуждали показывающие приборы для NMEA - там был целый телевизор со всякими индикаторами. тогда высказывалась мысль, что может быть не панель размером с окно, но показывающие приборы для датчиков NMEA были бы востребованы.
Мне понадобилась небольшая коробочка с аналоговым индикатором глубины. я ее сваял, и решил показать здесь.
Небольшая предыстория: пару лет назад я прикупил у нас на форуме эхолот FishFinder 50-200. причем только модуль приемопередатчика с трансдюсером, без картплоттера. сама идея была несколько авантюрной, т.к. не было никакой гарантии что железка запустится и будет работать без управляющей "головы". Тем не менее, все заработало, и при подаче питания приборчик бодро щелкал в автоматическом режиме, и выдавал по NMEA глубину и температуру воды. Я заводил все это в самодельный навигационный комплекс (по сути, навороченный коммутатор NMEA) и наблюдал глубину на отдельном индикаторе компьютера Raspberry Pi, где крутилась OpenCPN и собственный самописный софт. У малинки был десятидюймовый сенсорный экран, и кроме этого - дополнительный маленький плоский экранчик, куда я и выводил график глубины, компас и некоторую служебную информацию.
Все это было отлажено, запущено, но на практике, оказалось что все не так прекрасно.
во-первых, Raspberry Pi 4 грелась как утюг, и работала буквально на грани. ее авторы предусмотрели понижение тактовой при перегреве, но это толком не помогало - кроме цп, есть еще контроллеры периферии, и USB отваливалась только так. на борту, летом при любой жаре приборчик периодически отрубался целиком или терял ком-порты, по которым получал данные из навигационного контроллера. Я прикупил толстенный радиатор с вентиляторами, стало получше, но все равно дохло. к тому же толстый радиатор не давал возможности поставить штатно дополнительный экранчик, все держалось на соплях и кое как.
во-вторых, оказалось что малогабаритный экран очень неудобен в практической эксплуатации. несмотря на то, что софт вполне управлялся в планшетном режиме, но тыкать пальцами в маленькие квадратики оказалось очень неудобно. постоянно ловил себя на том, что вместо планшета, нужна просто самая обычная мыша.
в результате, после прошлого сезона, было принято решение убрать малинку с ее экраном полностью, и поставить рядом с приборной панелью большой ноут и уже там запинать OpenCPN.
Но возник вопрос - как показать глубину? в панели установлен навигационный контроллер, он собирает данные со всех датчиков и вываливает их в комп. но хотелось бы иметь возможность видеть глубину автономно, без компьютера. а еще, плагины CPNа выглядят настолько убого, что даже странно - в наше время все-таки уже можно сделать нормально, при том что сам OpenCPN мне нравится.
Было принято решение сделать индикатор глубины, который бы брал по NMEA данные и рисовал бы их на обычном стрелочном индикаторе. я люблю аналоговую индикацию, и панель приборов я тоже сделал на основе аналоговых стрелочных приборов. тем более, вся рубка на пароходе его создателями выполнена в стиле "дизель-панк" но практика показала, что неплохо видеть график глубины - записанные значения за последние пару минут. поэтому кроме стрелочника, индикатор должен еще вести запись графика глубины. и переключать пределы, хотя бы два: мель-глубина, а раз переключаются пределы - значит, и стрелочник должен быть двухдиапазонным. с двумя шкалами. и чтобы не просохатить предел - нужная шкала должна быть выделена светодиодом. ну и раз уж мы ставим графический экранчик и принимаем поток данных NMEA - наверно,можно и компас вывести. и время. и...
и в общем оказалось что стрелочный индикатор - это конечно хорошо, но без экранчика - никуда
в результате, получилось вот что:
большой стрелочный индикатор, доработанный напильником и дремелем;
плата c чипом STM32F407VET6 с внешней энергонезависимой FLASH-памятью, для хранения служебных данных;
роскошный OLED-экранчик 256х64.
Экранчик очень красив. его яркость гарантирует что показания будет видно даже днем, при этом он диммируется для ночного режима.
экранчик показывает:
график глубины в двух пределах 0-5 м и 0-25 м, всего 180 точек. поскольку эхолот выдает глубину раз в секунду, экранчик хранит трехминутную историю глубины; глубину можно корректировать (смещать) с учетом особенностей корпуса, правда пока только правкой исходников придумаю ручку потом
температура воды, с возможностью коррекции;
компас в виде бегущей шкалы в стиле hud, с индикатором курса в центре. была попытка расставить цифры на шкалу, но выглядело аляповато и замусорено, было убрано, оставлен только текущий курс.
курс выбирается между HDGM и COG, тумблером, с индикацией выбранного режима в уголке (символ компаса или GPS) и текстом NO DATA если данные отсутствуют.
время из GPS, с выбором временной зоны;
"время полета" - учет времени плавания, с точностью до минуты, с сохранением в энергонезависимую память, со сбросом с панели приборов. аналог автомобильного счетчика суточного пробега, только по времени. например, чтобы посмотреть, на сколько часов хватает заправки;
Общее время - несбрасываемый счетчик моточасов.
скорость SOG, км/ч
Стрелочный индикатор имеет две шкалы. каждая шкала сбоку имеет светодиод, который обозначает рабочий режим (0-5 - красный) или (0-25 - зеленый).
Индикатору добавлена подсветка, правда она не очень красиво получилась, но функцию выполняет.
Завтра расскажу о панели приборов и навигационном комплексе в целом.
Мне понадобилась небольшая коробочка с аналоговым индикатором глубины. я ее сваял, и решил показать здесь.
Небольшая предыстория: пару лет назад я прикупил у нас на форуме эхолот FishFinder 50-200. причем только модуль приемопередатчика с трансдюсером, без картплоттера. сама идея была несколько авантюрной, т.к. не было никакой гарантии что железка запустится и будет работать без управляющей "головы". Тем не менее, все заработало, и при подаче питания приборчик бодро щелкал в автоматическом режиме, и выдавал по NMEA глубину и температуру воды. Я заводил все это в самодельный навигационный комплекс (по сути, навороченный коммутатор NMEA) и наблюдал глубину на отдельном индикаторе компьютера Raspberry Pi, где крутилась OpenCPN и собственный самописный софт. У малинки был десятидюймовый сенсорный экран, и кроме этого - дополнительный маленький плоский экранчик, куда я и выводил график глубины, компас и некоторую служебную информацию.
Все это было отлажено, запущено, но на практике, оказалось что все не так прекрасно.
во-первых, Raspberry Pi 4 грелась как утюг, и работала буквально на грани. ее авторы предусмотрели понижение тактовой при перегреве, но это толком не помогало - кроме цп, есть еще контроллеры периферии, и USB отваливалась только так. на борту, летом при любой жаре приборчик периодически отрубался целиком или терял ком-порты, по которым получал данные из навигационного контроллера. Я прикупил толстенный радиатор с вентиляторами, стало получше, но все равно дохло. к тому же толстый радиатор не давал возможности поставить штатно дополнительный экранчик, все держалось на соплях и кое как.
во-вторых, оказалось что малогабаритный экран очень неудобен в практической эксплуатации. несмотря на то, что софт вполне управлялся в планшетном режиме, но тыкать пальцами в маленькие квадратики оказалось очень неудобно. постоянно ловил себя на том, что вместо планшета, нужна просто самая обычная мыша.
в результате, после прошлого сезона, было принято решение убрать малинку с ее экраном полностью, и поставить рядом с приборной панелью большой ноут и уже там запинать OpenCPN.
Но возник вопрос - как показать глубину? в панели установлен навигационный контроллер, он собирает данные со всех датчиков и вываливает их в комп. но хотелось бы иметь возможность видеть глубину автономно, без компьютера. а еще, плагины CPNа выглядят настолько убого, что даже странно - в наше время все-таки уже можно сделать нормально, при том что сам OpenCPN мне нравится.
Было принято решение сделать индикатор глубины, который бы брал по NMEA данные и рисовал бы их на обычном стрелочном индикаторе. я люблю аналоговую индикацию, и панель приборов я тоже сделал на основе аналоговых стрелочных приборов. тем более, вся рубка на пароходе его создателями выполнена в стиле "дизель-панк" но практика показала, что неплохо видеть график глубины - записанные значения за последние пару минут. поэтому кроме стрелочника, индикатор должен еще вести запись графика глубины. и переключать пределы, хотя бы два: мель-глубина, а раз переключаются пределы - значит, и стрелочник должен быть двухдиапазонным. с двумя шкалами. и чтобы не просохатить предел - нужная шкала должна быть выделена светодиодом. ну и раз уж мы ставим графический экранчик и принимаем поток данных NMEA - наверно,можно и компас вывести. и время. и...
и в общем оказалось что стрелочный индикатор - это конечно хорошо, но без экранчика - никуда
в результате, получилось вот что:
большой стрелочный индикатор, доработанный напильником и дремелем;
плата c чипом STM32F407VET6 с внешней энергонезависимой FLASH-памятью, для хранения служебных данных;
роскошный OLED-экранчик 256х64.
Экранчик очень красив. его яркость гарантирует что показания будет видно даже днем, при этом он диммируется для ночного режима.
экранчик показывает:
график глубины в двух пределах 0-5 м и 0-25 м, всего 180 точек. поскольку эхолот выдает глубину раз в секунду, экранчик хранит трехминутную историю глубины; глубину можно корректировать (смещать) с учетом особенностей корпуса, правда пока только правкой исходников придумаю ручку потом
температура воды, с возможностью коррекции;
компас в виде бегущей шкалы в стиле hud, с индикатором курса в центре. была попытка расставить цифры на шкалу, но выглядело аляповато и замусорено, было убрано, оставлен только текущий курс.
курс выбирается между HDGM и COG, тумблером, с индикацией выбранного режима в уголке (символ компаса или GPS) и текстом NO DATA если данные отсутствуют.
время из GPS, с выбором временной зоны;
"время полета" - учет времени плавания, с точностью до минуты, с сохранением в энергонезависимую память, со сбросом с панели приборов. аналог автомобильного счетчика суточного пробега, только по времени. например, чтобы посмотреть, на сколько часов хватает заправки;
Общее время - несбрасываемый счетчик моточасов.
скорость SOG, км/ч
Стрелочный индикатор имеет две шкалы. каждая шкала сбоку имеет светодиод, который обозначает рабочий режим (0-5 - красный) или (0-25 - зеленый).
Индикатору добавлена подсветка, правда она не очень красиво получилась, но функцию выполняет.
Завтра расскажу о панели приборов и навигационном комплексе в целом.