Jump to content

Рабочий вариометр Вар-30МК для DCS


Recommended Posts

Всем привет!

И так будет сказ о том, как я прибор "пилил" 

На одном из маркетплейсов был приобретен за недорого списанный симпатичный вариометр Вар-30МК. Как говорится: "Уходя с аэродрома..." Первоначально планировался просто для красоты, но потом в мою голову полезла идея его "оживить".. И понеслось ))

 

imitator-variometra_2.jpg


Edited by Vzhik
Link to comment
Share on other sites

По железу в итоге я остановился на Arduino Uno R3, шаговом движке x27-168, контроллере EasyDriver и пачке проводов папа-мама/; папа/папа.

 

Теперь ссылки для самостоятельного изуверства изготовления подобного:

Я не первый и не последний. Вот тут прям много всего, но на забугорном ((

Очень хорошее видео для скачивания нужных программ и настройки железо/софта. (Читаемо с русскими с субтитрами, если Вы не переводчик)) )

DCS-BIOS , BORT- обе проги нужны для того, чтобы вытащить нужные цифры из игры и отправить их в Arduino. 

Ещё более НУЖНОЕ видео для понимания того, что куда паять и втыкать. (Читаемо с русскими с субтитрами, если Вы опять же не переводчик)) )

Код скетча к видео выше для Arduino

 

З.Ы. Можно запилить практически любой прибор под любую поддерживаемую летаблу. Список оных есть в readme по ссылке на DCS-BIOS


Edited by Vzhik
правки
Link to comment
Share on other sites

Ну и теперь подробности:

Для разборки прибора потребовался плунжер для снятия стрелки (есть на втором фото) Заказывал из поднебесной за копейки. Ждать только писец... Можно и вилкой, обмотанной изолентой, но мне хотелось красиво ))

Набор "часовых" отверток. Те которые очень маленькие для того чтобы открутить два малюсеньких винтика крепления циферблата.

Обычные отвёрточки из фикспрайса.

Снаружи/внутри прибора:

 

20240127_111232.jpg

20240127_111515.jpg

20240127_112302.jpg

20240127_112938.jpg

20240127_112942.jpg

20240127_112958.jpg

20240127_113001.jpg

20240127_113132.jpg

Методом научного "тыка" был слегка разобран ))

 

 

20240127_115846.jpg

Link to comment
Share on other sites

Решено было оставить из родного две крайние шестерёнки (трибки или как их там...) потому что они на керамических втулках и прецизионно подогнаны друг к другу. Ведущий валик я решил сделать на резиновом ходу, потому что у меня не нашлось шестерёнки с таким же мельчайшим зубом. Позже допилил конструкцию пружиной натяжения, на случай выработки резинового изделия №2 валика )) 

В версии 1.0 я решил попробовать сервопривод, что значительно упрощало реализацию ввиду готового кода из проги BORT, но оказалось что купленная серва весьма и весьма неточная. Неточная потому что дешёвая, а хорошая дорогая стоит около 6 тыр...

Результат соответствовал: задержки, дёргания туда/сюда, резкие толчки...

Короче пришлось отказаться от этой идеи.

 

 

20240129_195946.jpg

20240131_194504.jpg

20240131_203544.jpg

20240131_204930.jpg


Edited by Vzhik
правки
Link to comment
Share on other sites

Версия 2.0 подразумевает шаговый движок x27-168 (на алике их завались) от спидометра машин корпорации GM. Умельцы с помощью контроллера EasyDriver (на алике их тоже завались) и подобных научились управлять им через Arduino, чем я воспользовался и водрузил его в прибор )) 

Готовый код для реализации в DCS есть по ссылке выше

Обратите внимание, что подключение движка к контроллеру по пинам будет: 1-1, 2-2, 3-4, 4-3 (В видео по ссылке выше об этом будет!)

З.Ы. С помощью библиотеки Swtecx25 для Arduino можно включить движ прямо в плату без контроллера (скрин с тытрубы ниже), но я отказался от этой идеи ввиду отсутствия удобоваримого кода для DCS, а писать их я не то чтобы умею ))

 

20240205_165026.jpg

20240205_215759.jpg

20240205_215815.jpg

20240207_190940.jpg

20240208_135751.jpg

20240208_184207.jpg

20240208_184216.jpg

20240208_184737.jpg

Link to comment
Share on other sites

Что нужно изменить в коде есть в видео по ссылке выше. То что лично я менял в части кода для себя выделено зелёным:

/* define stepper parameters
  multiple Vid29Stepper instances can share the same StepperConfig object */
struct StepperConfig stepperConfig = {
 3600,  // maxSteps (максимальное количество шагов. Изменять для каждого прибора в зависимости от его рабочей "окружности") 
 1000, // maxSpeed (максимальная скорость. Тоже менять "под себя". Пишут, что чем больше, тем больше "дёргается") 
 10000 // acceleration
 };


// define AccelStepper instance
[b]AccelStepper stepper(AccelStepper::DRIVER, 11, 10);[/b]
// define Vid29Stepper class that uses the AccelStepper instance defined in the line above
//           +-- arbitrary name
//           |   +-- Address of stepper data (from control reference)
//           |   |       +-- name of AccelStepper instance
//           v   v       v        v-- StepperConfig struct instance
Vid29Stepper vvi(0x10a0, stepper, stepperConfig, [](unsigned int newValue) -> unsigned int { //"адрес" откуда берутся данные из DCS. Индивидуален для каждого прибора каждой летаблы!!! 
 /* this function needs to map newValue to the correct number of steps */
 return map(newValue, 0, 65535, 0, stepperConfig.maxSteps);
}); 
Link to comment
Share on other sites

Напоследок хочу сказать, что приборчик у меня вышел "дёрганым" из-за передаточных чисел с больших шестерёнок на маленькую. Соответственно каждый мелкий шаг передаётся бОльшим шагом на стрелку. Вызвано это было тем что угол поворота шагового двигателя x27-168 всего 315 градусов, а мне нужно было 360. Имейте это ввиду, если надумаете делать подобное!!!

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

Сказано-сделано. Поставил валик меньшего диаметра и параметр максимального количества шагов увеличился с 3600 до 4790. Визуально стало чуть‐чуть лучше, но, как ни крути, шаговый двигатель, он и в африке шаговый двигатель))

Собственно Усё!

Спасибо за внимание! Задавайте вопросы, если интересно ))

Всем удачных полётов!!!

Vzhik (он же Удав_Каа)


Edited by Vzhik
правки
  • Like 3
  • Thanks 1
Link to comment
Share on other sites

Браво! 👏 Просто шикарно получилось! 👍 

А скажите, и в магазине можно так же стенку приподнять?(с)  выходит, такое возможно сделать с любым аналоговым авиаприбором!

  • Thanks 1
Link to comment
Share on other sites

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

Браво! 👏 Просто шикарно получилось! 👍 

А скажите, и в магазине можно так же стенку приподнять?(с)  выходит, такое возможно сделать с любым аналоговым авиаприбором!

Здравствуйте, спасибо! 🤝

Точно так. Можно сделать практически любой авиаприбор.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Все, разобрался вопрос снят)  нужно было изменить выделенную строку на вот это....  AccelStepper stepper(AccelStepper::DRIVER, 11, 10);

Еще для пояснения, числа 10 и 11 это пины , где 10 - Dir, 11 - Step.


Edited by atkinson
Link to comment
Share on other sites

1 час назад, atkinson сказал:

Все, разобрался вопрос снят)  нужно было изменить выделенную строку на вот это....  AccelStepper stepper(AccelStepper::DRIVER, 11, 10);

Еще для пояснения, числа 10 и 11 это пины , где 10 - Dir, 11 - Step.

 

Привет! Это пины на контроллере. Фото далее

20240225_143350.jpg

17088607377327412374116205984546.jpg

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...