Jump to content

Udav_Kaa

Members
  • Posts

    32
  • Joined

  • Last visited

Everything posted by Udav_Kaa

  1. @Vinc_Vega Hi, Vinc! Many thanks for you answer! It's rebooting only inflaght. Offcourse it's 0x184E hex code. Sorry. My mistake )) Seems like the problem was with the driver board. Changed code with your recomendation. The Var-30 is now working prefect! Thank you very much! Have nice flights!
  2. Hi everyone! I used code below for my Var-30 (Black Shark 3 KA-50) It works but not so good as I want. Randomly my "gauge" (arduino uno r3 + easydriver + x27 168 stepper motor) is starting to reboot. (( It could be once or many times during the flight (~one hour) I changed the power source from USB and external adapter (12V). It didn't work. Wired 5V and RES pins on Arduino. Also didn't work. Help me please! #define DCSBIOS_IRQ_SERIAL #include <AccelStepper.h> #include "DcsBios.h" struct StepperConfig { unsigned int maxSteps; unsigned int acceleration; unsigned int maxSpeed; }; class Vid29Stepper : public DcsBios::Int16Buffer { private: AccelStepper& stepper; StepperConfig& stepperConfig; unsigned int (*map_function)(unsigned int); unsigned char initState; public: Vid29Stepper(unsigned int address, AccelStepper& stepper, StepperConfig& stepperConfig, unsigned int (*map_function)(unsigned int)) : Int16Buffer(address), stepper(stepper), stepperConfig(stepperConfig), map_function(map_function), initState(0) { } virtual void loop() { if (initState == 0) { // not initialized yet stepper.setMaxSpeed(stepperConfig.maxSpeed); stepper.setAcceleration(stepperConfig.acceleration); stepper.moveTo(-((long)stepperConfig.maxSteps)); initState = 1; } if (initState == 1) { // zeroing stepper.run(); if (stepper.currentPosition() <= -((long)stepperConfig.maxSteps)) { stepper.setCurrentPosition(0); initState = 2; stepper.moveTo(stepperConfig.maxSteps/2); } } if (initState == 2) { // running normally if (hasUpdatedData()) { unsigned int newPosition = map_function(getData()); newPosition = constrain(newPosition, 0, stepperConfig.maxSteps); stepper.moveTo(newPosition); } stepper.run(); } } }; /* modify below this line */ /* define stepper parameters multiple Vid29Stepper instances can share the same StepperConfig object */ struct StepperConfig stepperConfig = { 3600, // maxSteps 1000, // maxSpeed 10000 // acceleration }; // define AccelStepper instance AccelStepper stepper(AccelStepper::DRIVER, 11, 10); // 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(0x184e, stepper, stepperConfig, [](unsigned int newValue) -> unsigned int { /* this function needs to map newValue to the correct number of steps */ return map(newValue, 0, 65535, 0, stepperConfig.maxSteps); }); void setup() { DcsBios::setup(); } void loop() { DcsBios::loop(); }
  3. Привет! Это пины на контроллере. Фото далее
  4. Здравствуйте, спасибо! Точно так. Можно сделать практически любой авиаприбор.
  5. Напоследок хочу сказать, что приборчик у меня вышел "дёрганым" из-за передаточных чисел с больших шестерёнок на маленькую. Соответственно каждый мелкий шаг передаётся бОльшим шагом на стрелку. Вызвано это было тем что угол поворота шагового двигателя x27-168 всего 315 градусов, а мне нужно было 360. Имейте это ввиду, если надумаете делать подобное!!! Возможно позже уменьшу диаметр резинового валика, чтобы диапазон вращения движка был максимальным, а шаги передавались более мелкими. Сказано-сделано. Поставил валик меньшего диаметра и параметр максимального количества шагов увеличился с 3600 до 4790. Визуально стало чуть‐чуть лучше, но, как ни крути, шаговый двигатель, он и в африке шаговый двигатель)) Собственно Усё! Спасибо за внимание! Задавайте вопросы, если интересно )) Всем удачных полётов!!! Udav_Kaa
  6. Что нужно изменить в коде есть в видео по ссылке выше. То что лично я менял в части кода для себя выделено зелёным: /* 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); });
  7. Версия 2.0 подразумевает шаговый движок x27-168 (на алике их завались) от спидометра машин корпорации GM. Умельцы с помощью контроллера EasyDriver (на алике их тоже завались) и подобных научились управлять им через Arduino, чем я воспользовался и водрузил его в прибор )) Готовый код для реализации в DCS есть по ссылке выше Обратите внимание, что подключение движка к контроллеру по пинам будет: 1-1, 2-2, 3-4, 4-3 (В видео по ссылке выше об этом будет!) З.Ы. С помощью библиотеки Swtecx25 для Arduino можно включить движ прямо в плату без контроллера (скрин с тытрубы ниже), но я отказался от этой идеи ввиду отсутствия удобоваримого кода для DCS, а писать их я не то чтобы умею ))
  8. Решено было оставить из родного две крайние шестерёнки (трибки или как их там...) потому что они на керамических втулках и прецизионно подогнаны друг к другу. Ведущий валик я решил сделать на резиновом ходу, потому что у меня не нашлось шестерёнки с таким же мельчайшим зубом. Позже допилил конструкцию пружиной натяжения, на случай выработки резинового изделия №2 валика )) В версии 1.0 я решил попробовать сервопривод, что значительно упрощало реализацию ввиду готового кода из проги BORT, но оказалось что купленная серва весьма и весьма неточная. Неточная потому что дешёвая, а хорошая дорогая стоит около 6 тыр... Результат соответствовал: задержки, дёргания туда/сюда, резкие толчки... Короче пришлось отказаться от этой идеи.
  9. Ну и теперь подробности: Для разборки прибора потребовался плунжер для снятия стрелки (есть на втором фото) Заказывал из поднебесной за копейки. Ждать только писец... Можно и вилкой, обмотанной изолентой, но мне хотелось красиво )) Набор "часовых" отверток. Те которые очень маленькие для того чтобы открутить два малюсеньких винтика крепления циферблата. Обычные отвёрточки из фикспрайса. Снаружи/внутри прибора: Методом научного "тыка" был слегка разобран ))
  10. Самое вкусное. Видео работы вариометра в модуле Ка-50 III. Дерганый немного, но это профессиональное )) VID-20240210-WA0006.mp4
  11. По железу в итоге я остановился на Arduino Uno R3, шаговом движке x27-168, контроллере EasyDriver и пачке проводов папа-мама/; папа/папа. Теперь ссылки для самостоятельного изуверства изготовления подобного: Я не первый и не последний. Вот тут прям много всего, но на забугорном (( Очень хорошее видео для скачивания нужных программ и настройки железо/софта. (Читаемо с русскими с субтитрами, если Вы не переводчик)) ) DCS-BIOS , BORT- обе проги нужны для того, чтобы вытащить нужные цифры из игры и отправить их в Arduino. Ещё более НУЖНОЕ видео для понимания того, что куда паять и втыкать. (Читаемо с русскими с субтитрами, если Вы опять же не переводчик)) ) Код скетча к видео выше для Arduino З.Ы. Можно запилить практически любой прибор под любую поддерживаемую летаблу. Список оных есть в readme по ссылке на DCS-BIOS
  12. Всем привет! И так будет сказ о том, как я прибор "пилил" На одном из маркетплейсов был приобретен за недорого списанный симпатичный вариометр Вар-30МК. Как говорится: "Уходя с аэродрома..." Первоначально планировался просто для красоты, но потом в мою голову полезла идея его "оживить".. И понеслось ))
  13. Аналогично. При винтах до запуска движков и при малых оборотах видно, а при номинальных оборотах неть. Можно починять ибо красивое с ними по ночам летать?
  14. Фишка с получасовым охлаждением "Причала" не работает. (( Отстерлял все 12 "Вихрей", вырубил дальномер, засёк время, вернулся на базу, загрузил новый БК, вышел в район целей и на 7 ракете ЛД кончился... Охлаждался (был выключен) 50 минут, пока я чаи гонял
  15. После ремонта КАБРИС перестаёт ловить спутники. Можно это пофиксить?
  16. Ну да. Это надо весь сервер просить о помощи в атаке )))
  17. Коллеги Вирпилы, доброго пространства и времени! Может есть у кого рлэ на Акулу или какое-нибудь руководство по её боевому применению? Хочется подятнуть скилы теорией, а то что-то часто сбиваютъ (( На худой конец, хоть от любой вертушки доументик по ведению боя бы нырыть. За ранее спасибо!
  18. А за спиной штурмана потенциомер крутили? Он, как раз, за яркость 5,5 В отвечает
  19. Ладно обновы.. Давайте начнём с РВ. Да, летать не мешает, но как я (и не только лишь я) ранее писал, было убито два часа времени на теорию, полночи на раздумья и энное кол-во времени на поиски ответа.. а ларчик просто открыаался он просто в 3D не так крутится.. открутите с Ми-24 модель винта и прикрутите к восьмерке. Неужели скрипты сильно отличаются?
  20. Так после моей обновы до 2.9 они были. Я даже полетал на них пару дней. В частности БК сервера. Неужто откатились до 2.8 обратно
  21. Всем привет! У меня пропали все русские сервера (( Что в ST, что MT версии. По IP не находит тоже. Версия 2.9 Три дня назад были Забугорных полно, а наших нет, что это может быть?
  22. А я вот поддержу вопрос товарища spinaker. Когда лопасти 3D модели рулевого винта будут смотреть и двигаться нужном направлении?! Я два раза перечитал за реактивный момент и потратил 2 часа на поиски ответа, какого хрена они не туда глядят.
  23. В проекте, кстати, было )) "Поэтому поначалу ставка была сделана на аппаратуру низкоуровневого телевидения "Меркурий", макетные образцы которой были установлены на 2-й и 3-й летные экземпляры В-80 (планировалось применить ее также на Ми-28 и самолетах Су-25Т)." http://www.airwar.ru/enc/ah/ka50sh.html
×
×
  • Create New...