Перейти к публикации

Рекомендованные сообщения

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

Коллеги, приветствую!

Кто-то уже реализовывал вывод данных из DCS?

Хочу собрать себе простой индикатор скорости или курса, или установленной частоты на 7-сегментном экране.

Вот на таком

7 сегментный индикатор на MAX7219 - подключение и модернизация

Видел видео, где выводится из Тундры, но мне надо из DCS. Ни в MMJOY2, ни в Freejoy это не реализовано.

 

Кто-то что-то подобное уже делал?

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

DCS BIOS.

https://forums.eagle.ru/topic/118289-dcs-bios-overview-and-announcements/?do=getNewComment

Но там не через конфигуратор прошивку надо настраивать, а программировать, писать свою на C/C++. Это элементарно - для программиста. (А такие экранчики  - https://aliexpress.ru/wholesale?catId=0&initiative_id=SB_20210114063746&SearchText=lcd2004 , мне кажутся лучше, чем семисегментные индикаторы).

 

В отличие от стандартных, универсальных и общепринятых интерфейсов клавиатуры/мыши/джойстика у собственно DCS интерфейс специфический/уникальный и сильно варьирует от модуля к модулю. Общим является то, что DCS запускает скрипт export.lua несколько десятков раз в секунду, этот скрипт обращается к потрохам, а потроха у модулей разные. Далее набор скриптов под названием DCS BIOS пакует полученные данные и отправляет по TCP или UDP. Промежуточная програмулина получает и отправляет на COM-порт. С COM-порта читает Ардуина (желательна Мега256), а на ней крутится ваш скрипт.

Возможны отклонения от этой схемы.

 

 

И ещё один момент. У полноценных модулей модулируется кабина. Это значит, что, к примеру, просто так скорость вы не получите. Вы получите угол отклонения стрелки на приборе. А переводить в скорость будете сами. А зависимость может быть нелинейной.

Зато вы можете взять сервомотор и пришпандорить стрелку к нему, а DCS BIOS будет её вертеть.

Опубликовано: (изменено)

Про dcs-bios я читал. Я не программист - вот в чем проблема.

Думаю, максимум, на что я способен - это вставлять параметры в шаблон скетча. Сами параметры, как я понял, в dcs-bios уже известны и рассортированы по модулям. Остается только выбрать нужный и вставить в текст программы. Вот в этом и затык. Я не понял, есть ли готовые шаблоны под какие-то чипы.

 

P. S. Ссылка не рабочая. Мне 7-сегментные дисплеи нравятся своей ламповой олдскульностью и легкой читаемостью)) 

Изменено пользователем Pilot27
Опубликовано: (изменено)

Почему нерабочая? Это ссылка не на конкретную покупку, а на класс покупок. LCD2004 - это простенький алфавитно-цифровой LCD с 20 столбцами и 4 строками (бывают и другие).

 

Вам проще взять второй монитор и вывести на него кокпит. Например, https://forums.eagle.ru/topic/151407-simpit-software-from-sda/ .

Для Горячих Скал так - https://forums.eagle.ru/topic/66465-panel-dlja-vtorogo-monitora-v-stile-su-27sm/ .

Монитор можно взять маленький.

Изменено пользователем vvm13ru
Опубликовано:
42 минуты назад, vvm13ru сказал:

Почему нерабочая? Это ссылка не на конкретную покупку, а на класс покупок. LCD2004 - это простенький алфавитно-цифровой LCD с 20 столбцами и 4 строками (бывают и другие).

 

Вам проще взять второй монитор и вывести на него кокпит. Например, https://forums.eagle.ru/topic/151407-simpit-software-from-sda/ .

Для Горячих Скал так - https://forums.eagle.ru/topic/66465-panel-dlja-vtorogo-monitora-v-stile-su-27sm/ .

Монитор можно взять маленький.

С телефона почему-то открылось приложение с сообщением, что ничего не найдено. Теперь с ноута вижу. Можно и такие дисплейчики, был бы скетч...

Я со вторым монитором уже игрался несколько лет назад. И через второй комп (ноут) выводил индикаторы, и на планшет. И "шквал" через второй моник выводил.

Мне это не нужно сейчас. Да и места нет под это. Сейчас мне хочется сделать простое, как валенок, маленькое устройство, и ничего лишнего. 

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

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

Опубликовано:
18 минут назад, vvm13ru сказал:

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

 

Спасибо! Я, правда, не надеялся, что кто-то специально под меня напишет. Думал, скорее, может, кто-то поделится своим готовым скетчем, а я уже под это соберу на ардуино или blue pill, или еще на чем, чтобы это работало.

Желаю выздороветь!

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

Скетчи для DCS Bios - это не MMJoy писать. Разница как между букварём и "Войной и миром", наверное. Поэтому программисту какой-то "конфигуратор" для DCS BIOS просто не придёт в голову. С одной стороны, простота, а с другой - бесконечное количество схем и железа.

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

Еще могу предложить вариант на плате ProMicro (такая же используется в MMJoy ), либо на Teensy2.0.

20210114_220110.thumb.jpg.7f610a69ad907e46f1d33a5240e26472.jpg

Есть готовая прошивка: оси, кнопки светодиоды. Плюс под это готовые файлы экспорта под DCS

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

20210114_220728.thumb.jpg.02c39c41962531e53d250bf079954aaf.jpg

  • Нравится 3
  • Поддерживаю! 1
Опубликовано:
1 час назад, kreml сказал:

Еще могу предложить вариант на плате ProMicro (такая же используется в MMJoy ), либо на Teensy2.0.

20210114_220110.thumb.jpg.7f610a69ad907e46f1d33a5240e26472.jpg

Есть готовая прошивка: оси, кнопки светодиоды. Плюс под это готовые файлы экспорта под DCS

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

20210114_220728.thumb.jpg.02c39c41962531e53d250bf079954aaf.jpg

Вот это то, что нужно, наверно!

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

1. Для платы ProMicro, скачать архив с прошивкой atmega32u4_16000_v2.7z из директории

2. После прошивки платы, установить конфигуратор, архив из данной директории

3. В конфигураторе, зайти в общие настройки

136198111_2021-01-1520_12_11.png.464df156c49201cd38ce732de0949293.png

4. Далее, на вкладку "LED DRIVERS"

5. В первой строчке настроек выбрать тип драйвера (MAX7219 ) и кол-во драйверов. (1 драйвер = 64 точки = 8 цифровых индикаторов)

466217582_2021-01-1520_12_24.png.32258433266622f38bff0b0f12dcf5e5.png

6. В нижней части окна, нажать кнопку "Записать"

7 Подключить плату индикаторов к контроллеру по такой схеме:

307511722_2021-01-1520_31_13.thumb.png.01479674a04d8b9cb9676f044b7f9d06.png

(Кол-во индикаторных плат можно увеличивать, подключая их последовательно друг за другом и изменяя параметр кол-во в настройках конфигуратора. (До 4х плат на драйвере MAX7219)

Если понадобится, можно дополнительно подключить еще один каскад из 4 таких плат. Для этого нужно задействовать вторую строчку настроек на вкладке "LED DRIVERS"

Второй каскад подключается аналогично первому, за исключением линии "CS-LED_DRIVER0", соответственно для подключения на плате активируется еще один пин "LED_DRIVER1"

8. После перезагрузки устройства, в главном окне, на шине SPI появится новое устройство (плата индикации)

9 Кликнув по новому устройству "1(0)", в правой части окна увидим раздел "Индикация"

602463449_2021-01-1520_19_10.png.1fef8f3102802bb6595c9cc721dcc214.png

10 Для проверки правильности подключения и настроек перейти в этот раздел, где можно произвольно пробовать включать сегменты индикаторов

2062377611_2021-01-1520_19_45.png.505d84074bb2dfddcf0ca69d21f759f0.png20210115_201849.thumb.jpg.e90e3f2ac3345b392448b017049a2f9b.jpg

 

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

Дальше расскажу как забирать данные из ДКС и передавать их в контроллер.

  • Нравится 6
Опубликовано:
19 минут назад, kreml сказал:

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

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

  • Нравится 1
  • Поддерживаю! 1
Опубликовано: (изменено)

 

Очень круто! Спасибо большое! Жду продолжения инструкции!

51 минуту назад, sergeype сказал:

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

Как я понял из рисунка, питание там пин RAW арудино - пин VCC индикатор. А где диод стоит или должен стоять? между VCC-VCC?

Изменено пользователем Pilot27
Опубликовано: (изменено)
35 минут назад, Pilot27 сказал:

А где диод стоит или должен стоять? между VCC-VCC?

Да, диод стоИт (обычно) на входе питания индикаторной платы, сразу после входного разъема. То есть 7219 и индикатор запитаны через него, ну, и VСС на выходном разъеме тоже. Он там один такой. У китайцев эта плата- типовая, так что на всех аналогичных, что мне попадались, диод был. Большинство пользователей не в курсе, и напрягаются, что у них длинная цепочка 7219 не работает, и яркость падает от платы к плате...

Изменено пользователем sergeype
Опубликовано:
6 минут назад, sergeype сказал:

Да, диод стоИт (обычно) на входе питания, сразу после входного разъема. То есть 7219 и индикатор запитаны через него, ну, и VСС на выходном разъеме тоже. Он там один такой. У китайцев эта плата- типовая, так что на всех аналогичных, что мне попадались, диод был. Большинство пользователей не в курсе, и напрягаются, что у них длинная цепочка 7219 не работает, и яркость падает от платы к плате...

Этот? 

 

 

Снимок экрана 2021-01-15 183728.png

Опубликовано: (изменено)
19 минут назад, Pilot27 сказал:

Этот? 

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

Изменено пользователем sergeype
  • Поддерживаю! 1
Опубликовано:

Первую часть осилил!

Только не понял, как шить плату инструментами из архива. Мне предлагались какие-то неизвестные мне чипы из выпадающего меню. Поэтому прошил утилитой mmjoy2.

DSC_0076~2.JPG

  • Нравится 2
Опубликовано:

Первый шаг сделан ?

А что за архив такой?

А так, в принципе можно сделать возможность обновления прошивки платы прямо через конфигуратор. Но для этого нужно ее прошить спец. программой загрузчиком один раз. Но это делается уже с помощью внешнего программатора, либо еще одной такой же платы (ProMicro). Так что если будет желание, и еще одна дополнительная плата, можно и этот момент улучшить.

Ну и сегодня продолжим по основному вопросу, дополню инструкцию второй частью.

  • Нравится 1
Опубликовано:

Итак, теперь установим файлы экспорта данных из ДКС.

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

Далее, в этом каталоге находим нужный нам раздел, в зависимости от типа установки симулятора:

 - каталог "DCS" для релизной версии, либо

 - каталог "DCS.openbeta" для бета-версии.

В искомом каталоге ищем подкаталог "Scripts", если такого не обнаруживаем, то просто создаем его вручную.

14.png.651b8ad4676edc364f88b9e69a4378d4.png

Затем с данного ресурса копируем в этот каталог следующее:

Подкаталог "F3"

файл "Config.lua"

файл "Export.lua"

файл "DataTable.xls"

Должно получится так:

15.png.69bc3f01b1758534f2e5852bc6e71bcd.png

Из этого всего, для дальнейшей настройки, нам понадобится таблица "DataTable.xls", в которой представлены все экспортируемые из симулятора параметры.

 

На заключительном этапе, нам нужно будет связать экспортируемые из ДКС данные, с элементами вывода нашего контроллера (с индикаторами)

Для этого понадобится модуль f3route. Скачиваем архив "2_1_27899.zip" из директории  и распаковываем содержимое в каталог "f3route".

Опубликовано: (изменено)
1 час назад, kreml сказал:
Скрытый текст

 

Итак, теперь установим файлы экспорта данных из ДКС.

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

Далее, в этом каталоге находим нужный нам раздел, в зависимости от типа установки симулятора:

 - каталог "DCS" для релизной версии, либо

 - каталог "DCS.openbeta" для бета-версии.

В искомом каталоге ищем подкаталог "Scripts", если такого не обнаруживаем, то просто создаем его вручную.

14.png.651b8ad4676edc364f88b9e69a4378d4.png

Затем с данного ресурса копируем в этот каталог следующее:

Подкаталог "F3"

файл "Config.lua"

файл "Export.lua"

файл "DataTable.xls"

Должно получится так:

15.png.69bc3f01b1758534f2e5852bc6e71bcd.png

Из этого всего, для дальнейшей настройки, нам понадобится таблица "DataTable.xls", в которой представлены все экспортируемые из симулятора параметры.

 

На заключительном этапе, нам нужно будет связать экспортируемые из ДКС данные, с элементами вывода нашего контроллера (с индикаторами)

Для этого понадобится модуль f3route. Скачиваем архив "2_1_27899.zip" из директории  и распаковываем содержимое в каталог "f3route".

 

 

 

Настало время глупых вопросов:

1) Где размещать каталог f3route?

2) Что делать дальше?

2 часа назад, kreml сказал:

Первый шаг сделан ?

А что за архив такой?

А так, в принципе можно сделать возможность обновления прошивки платы прямо через конфигуратор. Но для этого нужно ее прошить спец. программой загрузчиком один раз. Но это делается уже с помощью внешнего программатора, либо еще одной такой же платы (ProMicro). Так что если будет желание, и еще одна дополнительная плата, можно и этот момент улучшить.

Ну и сегодня продолжим по основному вопросу, дополню инструкцию второй частью.

Я скачал папки со всем содержимым mainboard.zip и cfg.zip. Думал, прошивальщик внутри имеется. Начал читать инструкцию. Написано, что можно прошить конфигуратором с помощью модуля ATMEL-FLIP. Запустил модуль, там выпадающий список предлагает два чипа: AT90USB... Ну, а в Pro Micro стоит 32U4. Читаю другой документ - нужен внешний программатор.

Короче, я побоялся шить модулем ATMEL-FLIP, мало ли запорю плату. Подумал, что раз утилита mmjoy setup заливает прошивку в mmjoy2 в pro micro, она с тем же успехом может залить в плату и другую прошивку. Ну и так и прошил.

Изменено пользователем Pilot27
Опубликовано:

Размещать где удобнее, для работы разницы нет.

По дальнейшим действиям позже, отлучиться пришлось.

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

!!!Нашел ошибку в f3route, нужно скачать новый архив 2_1_27947.zip, и распаковать содержимое в тот же каталог!!!

 

Продолжаем. Для примера сделаем вывод на индикаторы приборной скорости.

!!!Все описанные тут шаги можно пропустить, просто загрузив готовый файл настроек. См. в самом конце!!!

Сначала найдем нужный нам параметр в файле DataTable.xls, он находится на вкладке "Общие". 

19.png.0684f6f236c04869a045d173b6f53f92.png

Нам нужно запомнить номер переменной (20), в которой передается скорость, и размерность значения (0.1 км/ч). Т.е., если например значение равно 342, то это означает скорость  = 34.2 км/ч. Выводить на индикаторы дробную часть скорости не будем, поэтому нулевой разряд значения использовать не будем.

Для вывода скорости, нам понадобятся 4 цифровых индикатора на плате.

 

Подключаем контроллер и в запускаем f3route.exe.

16.png.111780cdeaedfeac2dc2d15b02a51a4b.png

Отображается наша новая конфигурация, в которой присутствует наш контроллер, у которого далее идут подключения:

0 - тут можно настраивать работу непосредственно с пинами самого контроллера

1 - первый каскад светодиодных плат

(кроме контроллера ProMicro, в списке могут также отображаться подключенные джойстики. Нас они пока не интересуют.)

 

Сейчас сразу настроим нашу светодиодную плату, для этого двойным щелчком откроем окно настроек.

17.png.73e1b17a10633327049280b8d4ed5894.png

Тут видим 64 элемента вывода (это если в настройках конфигуратора был выбран один драйвер MAX7219, если кол-во было больше, то и число элементов вывода увеличится кратно кол-ву драйверов), каждый элемент соответствует одному из сегментов какого то индикатора на плате.

Для проверки, по каждому элементу можно щелкать ПКМ, на плате будет включаться соответствующий ему сегмент индикатора. Так можно понять, какой именно индикатор настраивать.

Начнем с самого первого элемента, в верхнем левом углу. Он должен соответствовать крайнему индикатору на плате. Откроем его настройки щелчком ЛКМ.

18.png.4bfd59b9ed92831d48ef3cb4efd15bf5.png

В поле "Передача", выбираем передачу из "Локального сервера"

"Переменная"  - указываем номер переменной (20) из таблицы.

Поле "Название" произвольное, для памяти можем туда что-то написать."Разрядность", позволяет объединить несколько отдельных сегментов, в один общий элемент. Тут ставим значение "8", таким образом, все 8 сегментов одного индикатора, будут работать совместно, и управлять ими можно будет также совместно, а не каждым в отдельности.

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

"Постобработка по шаблону", тут мы создадим нужный нам знакогенератор, так чтобы передавая на индикатор числа от 0 до 9, они отображались на нем в нормальном виде. Выбираем "Создать шаблон" и нажимаем появившуюся справа кнопку "Создать".

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

20.png.93fb2b7349ac8df8482741d7fab3c7cd.png

Если лень создавать в ручную, можно просто загрузить уже готовый. Для этого в верхней части щелкаем пиктограмму загрузить из файла6.png.29b3074aa20ebaefc5b0558276892cd6.png, и загрузить содержимое архива MAX7219_DIG.zip

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

Для этого начинаем редактировать новую строку, включая методом подбора нужные сегменты индикатора, так что бы на индикаторе отображался знак "0".

И так добавляем строки для всех нужных нам знаков "0...9"

Во время редактирования, на индикаторах сразу будет отображаться получаемый результат, например как у меня:

21.png.1dfb1eb0ff698408f5710b241f197836.png

По окончанию нажимаем "Ок", и возвращаемся в окно настройки элемента вывода, должно получится так:

22.png.d366552b398d5117c96f2746e6290ab4.png

Заканчиваем редактирование первого индикатора нажатием "Ок", и возвратом в предыдущее окно.

В результате видим как объединись несколько отдельных сегментов.

Далее начинаем настраивать следующий индикатор, ставим точно такие же настройки, только меняем номер десятичного разряда на "2"

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

И так повторяем для все оставшихся индикаторов. (всего для отображения скорости мы используем 4 индикатора)

Вот так будут выглядеть настройки оставшихся разрядов

24.png.ce5cbc35fc9f01473102f3428eb0e768.png

Итоговое окно настроенной платы индикации

25.png.a481769405b4dcbf49cda1c48de77486.png

Просто закрываем.

 

Теперь как все это не делать самому, а просто загрузить уже готовый файл конфигурации:

Открываем контекстное меню, щелкнув по плате индикации ПКМ. Выбираем пункт "Загрузить", и выбираем в качестве файла, содержимое архива MAX7219_SPEED.zip.

26.png.01ca09256e2773a0e64ea68dfe6041bb.png

 

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

Для этого, открываем контекстное меню всей конфигурации, щелкнув ПКМ по названию конфы (NewConfig), и выбрав пункт "Записать"

27.png.42a2286039b5ac85d2796797b3fdec07.png

Выбираем название конфигурации и сохраняем файл.

Теперь можно запустить ДКС, и проверить, что на индикаторы выводится показание скорости.

 

 

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

Либо, чтобы конфигурация загружалась автоматически при запуске роутера, можно в "Параметрах" на вкладке "Файлы", выбрать сохраненный файл в качестве автозагрузки.

28.png.38835b312618c26c0393bfdc8613c00b.png

  • Нравится 2
  • Спасибо! 1
Опубликовано:
17 часов назад, kreml сказал:

!!!Нашел ошибку в f3route, нужно скачать новый архив 2_1_27947.zip, и распаковать содержимое в тот же каталог!!!

 

Продолжаем. Для примера сделаем вывод на индикаторы приборной скорости.

!!!Все описанные тут шаги можно пропустить, просто загрузив готовый файл настроек. См. в самом конце!!!

Сначала найдем нужный нам параметр в файле DataTable.xls, он находится на вкладке "Общие". 

19.png.0684f6f236c04869a045d173b6f53f92.png

Нам нужно запомнить номер переменной (20), в которой передается скорость, и размерность значения (0.1 км/ч). Т.е., если например значение равно 342, то это означает скорость  = 34.2 км/ч. Выводить на индикаторы дробную часть скорости не будем, поэтому нулевой разряд значения использовать не будем.

Для вывода скорости, нам понадобятся 4 цифровых индикатора на плате.

 

Подключаем контроллер и в запускаем f3route.exe.

16.png.111780cdeaedfeac2dc2d15b02a51a4b.png

Отображается наша новая конфигурация, в которой присутствует наш контроллер, у которого далее идут подключения:

0 - тут можно настраивать работу непосредственно с пинами самого контроллера

1 - первый каскад светодиодных плат

(кроме контроллера ProMicro, в списке могут также отображаться подключенные джойстики. Нас они пока не интересуют.)

 

Сейчас сразу настроим нашу светодиодную плату, для этого двойным щелчком откроем окно настроек.

17.png.73e1b17a10633327049280b8d4ed5894.png

Тут видим 64 элемента вывода (это если в настройках конфигуратора был выбран один драйвер MAX7219, если кол-во было больше, то и число элементов вывода увеличится кратно кол-ву драйверов), каждый элемент соответствует одному из сегментов какого то индикатора на плате.

Для проверки, по каждому элементу можно щелкать ПКМ, на плате будет включаться соответствующий ему сегмент индикатора. Так можно понять, какой именно индикатор настраивать.

Начнем с самого первого элемента, в верхнем левом углу. Он должен соответствовать крайнему индикатору на плате. Откроем его настройки щелчком ЛКМ.

18.png.4bfd59b9ed92831d48ef3cb4efd15bf5.png

В поле "Передача", выбираем передачу из "Локального сервера"

"Переменная"  - указываем номер переменной (20) из таблицы.

Поле "Название" произвольное, для памяти можем туда что-то написать."Разрядность", позволяет объединить несколько отдельных сегментов, в один общий элемент. Тут ставим значение "8", таким образом, все 8 сегментов одного индикатора, будут работать совместно, и управлять ими можно будет также совместно, а не каждым в отдельности.

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

"Постобработка по шаблону", тут мы создадим нужный нам знакогенератор, так чтобы передавая на индикатор числа от 0 до 9, они отображались на нем в нормальном виде. Выбираем "Создать шаблон" и нажимаем появившуюся справа кнопку "Создать".

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

20.png.93fb2b7349ac8df8482741d7fab3c7cd.png

Если лень создавать в ручную, можно просто загрузить уже готовый. Для этого в верхней части щелкаем пиктограмму загрузить из файла6.png.29b3074aa20ebaefc5b0558276892cd6.png, и загрузить содержимое архива MAX7219_DIG.zip

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

Для этого начинаем редактировать новую строку, включая методом подбора нужные сегменты индикатора, так что бы на индикаторе отображался знак "0".

И так добавляем строки для всех нужных нам знаков "0...9"

Во время редактирования, на индикаторах сразу будет отображаться получаемый результат, например как у меня:

21.png.1dfb1eb0ff698408f5710b241f197836.png

По окончанию нажимаем "Ок", и возвращаемся в окно настройки элемента вывода, должно получится так:

22.png.d366552b398d5117c96f2746e6290ab4.png

Заканчиваем редактирование первого индикатора нажатием "Ок", и возвратом в предыдущее окно.

В результате видим как объединись несколько отдельных сегментов.

Далее начинаем настраивать следующий индикатор, ставим точно такие же настройки, только меняем номер десятичного разряда на "2"

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

И так повторяем для все оставшихся индикаторов. (всего для отображения скорости мы используем 4 индикатора)

Вот так будут выглядеть настройки оставшихся разрядов

24.png.ce5cbc35fc9f01473102f3428eb0e768.png

Итоговое окно настроенной платы индикации

25.png.a481769405b4dcbf49cda1c48de77486.png

Просто закрываем.

 

Теперь как все это не делать самому, а просто загрузить уже готовый файл конфигурации:

Открываем контекстное меню, щелкнув по плате индикации ПКМ. Выбираем пункт "Загрузить", и выбираем в качестве файла, содержимое архива MAX7219_SPEED.zip.

26.png.01ca09256e2773a0e64ea68dfe6041bb.png

 

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

Для этого, открываем контекстное меню всей конфигурации, щелкнув ПКМ по названию конфы (NewConfig), и выбрав пункт "Записать"

27.png.42a2286039b5ac85d2796797b3fdec07.png

Выбираем название конфигурации и сохраняем файл.

Теперь можно запустить ДКС, и проверить, что на индикаторы выводится показание скорости.

 

 

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

Либо, чтобы конфигурация загружалась автоматически при запуске роутера, можно в "Параметрах" на вкладке "Файлы", выбрать сохраненный файл в качестве автозагрузки.

28.png.38835b312618c26c0393bfdc8613c00b.png

 

Kreml, спасибо большое! Это просто супер! Радости нет предела!

362801938_DSC_0082(1).thumb.JPG.93e2c14408d5a81d129fdb5b8e52a32e.JPG

 

 

Опубликовано: (изменено)

Всем, добрый день! 

Я подключил последовательно 4 драйвера к usb-порту ноутбука. Как-то нестабильно себя ведёт эта сборка. Не пойму, почему. То некорректно отображаются цифры при проверке, то наблюдаю слабое мерцание индикаторов. При отображении всех или почти сегментов слышен писк. Пробовал менять их местами. Подобрал, вроде как, комбинацию, когда все отображается правильно. Но осадочек, что называется, остался. 

Может ли быть дело в питании? Может, нужно индикаторы отдельно записывать от usb-хаба или блока питания?

Или дело в том, что два индикатора на зелёной плате со съёмными головками, а два на синей несьемные... 

Диоды я удалил со всех четырёх и поставил перемычку.

DSC_0096~2.JPG

Изменено пользователем Pilot27
Опубликовано:

Кстати, а питание с какого пина контроллера идет, RAW или VCC ?

Опубликовано: (изменено)

Померил питание - 4,4 вольта.

Пойду покупать блок питания, а то работает через раз на пятый раз.

 

 

Скрытый текст

IMG-20210124-WA0000.jpg

 

Изменено пользователем Pilot27
Опубликовано:

Добрый вечер!

 

Протестировал сборку на модуле Ми-8. Настройки прилагаю.

При медленном изменении значений, (например, стоя на стоянке), или их отсутствии, устройство работает.

Когда начинаются активные изменения, то минут через 5-10 после взлета вылетает ошибка "Платформа NET Framework".

При этом цифры на индикаторах замирают, данные больше не меняются.

Вот текст ошибки:

Скрытый текст

 

Подробная информация об использовании оперативной 
(JIT) отладки вместо данного диалогового 
окна содержится в конце этого сообщения.

************** Текст исключения **************
System.ArgumentException: Длина результирующего массива недостаточна. Проверьте значения destIndex и length, а также нижние границы массива.
   в System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable)
   в System.Collections.Generic.List`1.CopyTo(T[] array, Int32 arrayIndex)
   в System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   в f3route2.LocalDataServer.EndOfReceive()
   в f3route2.cConfig.cControllerConfig.in_data_refresh()
   в f3route2.MainForm.f3_in_data_refresh()
   в f3route2.MainForm.timer1_Tick(Object sender, EventArgs e)
   в System.Windows.Forms.Timer.OnTick(EventArgs e)
   в System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
   в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Загруженные сборки **************
mscorlib
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4300.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
f3route
    Версия сборки: 2.1.7689.42873
    Версия Win32: 1.0.0.0
    CodeBase: file:///D:/Google%20%D0%94%D0%B8%D1%81%D0%BA/DCS%20%D1%83%D1%82%D0%B8%D0%BB%D0%B8%D1%82%D1%8B/LED%20Indicators/f3route/f3route.exe
----------------------------------------
System.Windows.Forms
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4270.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4300.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4190.0 built by: NET48REL1LAST_B
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4300.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
f3route.resources
    Версия сборки: 2.1.7689.42873
    Версия Win32: 1.0.0.0
    CodeBase: file:///D:/Google%20%D0%94%D0%B8%D1%81%D0%BA/DCS%20%D1%83%D1%82%D0%B8%D0%BB%D0%B8%D1%82%D1%8B/LED%20Indicators/f3route/ru-RU/f3route.resources.DLL
----------------------------------------
WindowsBase
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4300.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/WindowsBase/v4.0_4.0.0.0__31bf3856ad364e35/WindowsBase.dll
----------------------------------------
System.Windows.Forms.resources
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------
Microsoft.DirectX.DirectInput
    Версия сборки: 1.0.2902.0
    Версия Win32: 5.04.00.2904
    CodeBase: file:///C:/Windows/assembly/GAC/Microsoft.DirectX.DirectInput/1.0.2902.0__31bf3856ad364e35/Microsoft.DirectX.DirectInput.dll
----------------------------------------
Microsoft.DirectX
    Версия сборки: 1.0.2902.0
    Версия Win32: 5.04.00.2904
    CodeBase: file:///C:/Windows/assembly/GAC/Microsoft.DirectX/1.0.2902.0__31bf3856ad364e35/Microsoft.DirectX.dll
----------------------------------------
Microsoft.VisualC
    Версия сборки: 10.0.0.0
    Версия Win32: 12.00.52519.0 built by: VSWINSERVICING
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualC/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualC.dll
----------------------------------------
NLua
    Версия сборки: 1.3.2.0
    Версия Win32: 1.3.2
    CodeBase: file:///D:/Google%20%D0%94%D0%B8%D1%81%D0%BA/DCS%20%D1%83%D1%82%D0%B8%D0%BB%D0%B8%D1%82%D1%8B/LED%20Indicators/f3route/NLua.DLL
----------------------------------------
KeraLua
    Версия сборки: 1.3.2.0
    Версия Win32: 1.3.2.0
    CodeBase: file:///D:/Google%20%D0%94%D0%B8%D1%81%D0%BA/DCS%20%D1%83%D1%82%D0%B8%D0%BB%D0%B8%D1%82%D1%8B/LED%20Indicators/f3route/KeraLua.DLL
----------------------------------------
mscorlib.resources
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/mscorlib.resources.dll
----------------------------------------
System.Xml.Linq
    Версия сборки: 4.0.0.0
    Версия Win32: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml.Linq/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.Linq.dll
----------------------------------------

************** Оперативная отладка (JIT) **************
Для подключения оперативной (JIT) отладки файл .config данного
приложения или компьютера (machine.config) должен иметь
значение jitDebugging, установленное в секции system.windows.forms.
Приложение также должно быть скомпилировано с включенной
отладкой.

Например:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

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

 

 

Как с этим бороться?

 


 

Test mi8.zip

  • 2 года спустя...
Опубликовано: (изменено)
15.01.2021 в 09:05, kreml сказал:

Еще могу предложить вариант на плате ProMicro (такая же используется в MMJoy ), либо на Teensy2.0.

20210114_220110.thumb.jpg.7f610a69ad907e46f1d33a5240e26472.jpg

Есть готовая прошивка: оси, кнопки светодиоды. Плюс под это готовые файлы экспорта под DCS

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

20210114_220728.thumb.jpg.02c39c41962531e53d250bf079954aaf.jpg

Здравствуйте ,а прошивок для других плат у вас нет случайно? 

Изменено пользователем Lev724
Опубликовано:
13.02.2023 в 03:44, Lev724 сказал:

Здравствуйте ,а прошивок для других плат у вас нет случайно? 

Нет, только для 2х чипов делал, какие под рукой были)

Опубликовано:
15.01.2021 в 16:43, kreml сказал:

1. Для платы ProMicro, скачать архив с прошивкой atmega32u4_16000_v2.7z из директории

2. После прошивки платы, установить конфигуратор, архив из данной директории

3. В конфигураторе, зайти в общие настройки

 

Приветствую, у меня почему то нет общих настроек.

1537835689_2023-02-14205641.thumb.jpg.c58d0d0ce823a04231000e67ee4505bf.jpg

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

Собрал индикатор для теста. Не знаю на сколько правильны мои настройки, но индикация работает.

Проблема тут в том что это для старой ка-50, а для третьей версии к сожалению фала с параметрами нет.

Этот бы софт для stm32 и модулей больше, было бы конечно интересно поковыряться.

 

А напрямую светодиоды подключать можно или только через драйвер?

 

 

Опубликовано:
4 часа назад, Krysnic сказал:

Собрал индикатор для теста. Не знаю на сколько правильны мои настройки, но индикация работает.

Проблема тут в том что это для старой ка-50, а для третьей версии к сожалению фала с параметрами нет.

Этот бы софт для stm32 и модулей больше, было бы конечно интересно поковыряться.

 

А напрямую светодиоды подключать можно или только через драйвер?

 

 

Со всем уважением и благодарностью к Станиславу, который создал такой инструмент, я перешёл от его использования на  Dcs-bios Flightpanel fork. Дело в том, что dcs-bios имеет большое сообщество, и поддержка новых модулей появляется достаточно быстро. Кроме того, это не проприетарный продукт, а открытая платформа, где ты сам должен разбираться в том, как работают подключённые устройства, как использовать написанные для них библиотеки. Тем не менее, благодаря примерам - это вполне себе доступно даже для лингвиста и доступно для масштабирования. И даже если какой-то индикатор не реализован в конкретном модуле, потратив 2-3 часа ты сам сможешь создать сущность и заставить работать сегментный дисплей, или стрелочный, или жидкокристаллический - все что есть под рукой.

20230107_003013.jpg

  • Нравится 1
Опубликовано:
11 часов назад, Pilot27 сказал:

Со всем уважением и благодарностью к Станиславу, который создал такой инструмент, я перешёл от его использования на  Dcs-bios Flightpanel fork. Дело в том, что dcs-bios имеет большое сообщество, и поддержка новых модулей появляется достаточно быстро. Кроме того, это не проприетарный продукт, а открытая платформа, где ты сам должен разбираться в том, как работают подключённые устройства, как использовать написанные для них библиотеки. Тем не менее, благодаря примерам - это вполне себе доступно даже для лингвиста и доступно для масштабирования. И даже если какой-то индикатор не реализован в конкретном модуле, потратив 2-3 часа ты сам сможешь создать сущность и заставить работать сегментный дисплей, или стрелочный, или жидкокристаллический - все что есть под рукой.

 

 

dcs-bios хорош для кокпитостроения и для постройки приборных панелей для конкретных модулей. Опять же одно дело вывести цифровые значения на семи сегментный индикатор, или подключить светодиоды это по сути простейшее . А вот если попробуете вывести тип вооружения у ка-50 как на моем видео, то уже ничего не выйдет, потому что выводятся другие символы и уже нужно писать какой то код что бы на индикаторе отображалось то что надо. А дальше еще сложнее и результат будет зависеть от знаний и умения правильно написать код. Для подключения кнопок через диодную матрицу опять нужно написать код. Подключение кнопок через сдвиговые регистры я вообще даже не представляю как реализовать. И опять же это будет работать с дкс биосом, а вот можно ли сделать так что бы контроллер отображался как plug&play устройство и работала индикация через дкс биос я сомневаюсь. У меня реализован УВ-26 для ка-50, но кнопки и индикация работают только с dcs-bios.

 

А данный софт как и ммджой, хорош тем что у меня полноценный plug&play контроллер. Я могу подключить кнопки посредством сдвиговых регистров или диодной матрицы, датчики осей и просто настроить в софте. При подключение к компу это будет просто игровой контроллер. Настроив вывод данных получаем индикацию. Для постройки универсальных панелей с индикацией или отдельных устройств, данного рода софт более удобен.

Я делаю пульт UFC для A-10C, для примера в данном софте я подключаю кнопки по средствам диодной матрицы и настраиваю их в нем. Все у меня простой игровой контроллер, кнопки которого можно назначить для любого модуля и в любой игре. Для индикации кнопки master caution 3 настраиваем вывод данных и все.

Не нужно писать какой то код, устройство можно использовать в любой игре(кроме индикации).

 

 

 

  • Нравится 1
Опубликовано:
14 минут назад, Krysnic сказал:

 

dcs-bios хорош для кокпитостроения и для постройки приборных панелей для конкретных модулей. Опять же одно дело вывести цифровые значения на семи сегментный индикатор, или подключить светодиоды это по сути простейшее . А вот если попробуете вывести тип вооружения у ка-50 как на моем видео, то уже ничего не выйдет, потому что выводятся другие символы и уже нужно писать какой то код что бы на индикаторе отображалось то что надо. А дальше еще сложнее и результат будет зависеть от знаний и умения правильно написать код. Для подключения кнопок через диодную матрицу опять нужно написать код. Подключение кнопок через сдвиговые регистры я вообще даже не представляю как реализовать. И опять же это будет работать с дкс биосом, а вот можно ли сделать так что бы контроллер отображался как plug&play устройство и работала индикация через дкс биос я сомневаюсь. У меня реализован УВ-26 для ка-50, но кнопки и индикация работают только с dcs-bios.

 

А данный софт как и ммджой, хорош тем что у меня полноценный plug&play контроллер. Я могу подключить кнопки посредством сдвиговых регистров или диодной матрицы, датчики осей и просто настроить в софте. При подключение к компу это будет просто игровой контроллер. Настроив вывод данных получаем индикацию. Для постройки универсальных панелей с индикацией или отдельных устройств, данного рода софт более удобен.

Я делаю пульт UFC для A-10C, для примера в данном софте я подключаю кнопки по средствам диодной матрицы и настраиваю их в нем. Все у меня простой игровой контроллер, кнопки которого можно назначить для любого модуля и в любой игре. Для индикации кнопки master caution 3 настраиваем вывод данных и все.

Не нужно писать какой то код, устройство можно использовать в любой игре(кроме индикации).

 

 

 

В последних библиотеках реализованы матрицы кнопок в разных режимах, и матрицы энкодеров и энкодеров с ускорением. Конечно это будет не plug-in-play, а ком-порт. Ну да, сдвиговый регистр в dcs-bios я ещё не осилил, но в принципе люди это делают. Но я пока ограничивался матрицами. Про инпут осей ничего сказать не могу - не делал. А вот активировать любую комбинацию диодов на сегментном дисплее - возможно. Да, придётся самому прописывать адреса сегментов. Здесь за нас это сделал Станислав в своей программе. Нам остаётся натыкать желаемые радио-кнопки. Но Вы же сами говорите, что поддержки Ка-50 пока нет, если я правильно понял. Я вот Станислава наверно уже замучал с просьбами сделать табличку для ми-24)))

Опубликовано:
18.02.2023 в 00:48, Pilot27 сказал:

Со всем уважением и благодарностью к Станиславу, который создал такой инструмент, я перешёл от его использования на  Dcs-bios Flightpanel fork. Дело в том, что dcs-bios имеет большое сообщество, и поддержка новых модулей появляется достаточно быстро. Кроме того, это не проприетарный продукт, а открытая платформа, где ты сам должен разбираться в том, как работают подключённые устройства, как использовать написанные для них библиотеки. Тем не менее, благодаря примерам - это вполне себе доступно даже для лингвиста и доступно для масштабирования. И даже если какой-то индикатор не реализован в конкретном модуле, потратив 2-3 часа ты сам сможешь создать сущность и заставить работать сегментный дисплей, или стрелочный, или жидкокристаллический - все что есть под рукой.

20230107_003013.jpg

Здравствуйте,если вы разобрались с dcs bios,можете подсказать где взять информацию как сней работать.Летаю на су 25 хочу вывести индикацию выпуска шасси ,закрылков итд.Я не могу понять откуда брать эти коды чтобы вставить их в скетч.

Опубликовано:
1 час назад, Lev724 сказал:

Здравствуйте,если вы разобрались с dcs bios,можете подсказать где взять информацию как сней работать.Летаю на су 25 хочу вывести индикацию выпуска шасси ,закрылков итд.Я не могу понять откуда брать эти коды чтобы вставить их в скетч.

Здравствуйте. Если Вы все правильно установили, и проблема только в поиске кода, то...

Су-25 входит в пакет Горячие скалы 3 (Flamming Cliffs 3), т.е. искать надо в выпадающем списке модуль FM3.

Далее смотрим списки и ищем что-то более-менее похожее.

Например, индикация шасси находися под вкладкой Mechanical.

image.png.472e3b75043fd6a4d0fbf937c6d51ae6.png

 

Т.е. для активации светодиодов Вам достаточно использовать строку

DcsBios::LED fc3Gear(0x601a, 0x0400, PIN); //где PIN - адрес выхода на плате Arduino, если светодиод подключен напрямую

 

Если нужно активировать иные устройства по положению шасси, то нужна конструкция типа

void onFc3GearChange(unsigned int newValue) {
    /* Сюда вписываете свой код для активации устройства  */
}
DcsBios::IntegerBuffer fc3GearBuffer(0x601a, 0x0400, 10, onFc3GearChange);

 

Что касается закрылков, то готового кода для них не вижу...Однако, известны аргументы индикации - 42 и 43 для маневренного, 284 и 285 для посадочного.

Т.е. если кода готового нет, то надо изучить структуру аналогичного существующего индикатора и создать свой по аналогии с соответствующими аргументами.

В DCS-BIOS все "устройства" сохраняются в lua-файлах модулей. Для FC3 это C:\Users\ваша папка пользователя\Saved Games\DCS\Scripts\DCS-BIOS\lib\FC3.lua

 

 

 

  • Нравится 1

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

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...