Помгите с работой систем модели подводной лодки

tl_972

Добрый день.
Строю модель подводной лодки, и вот столкнулся с некоторыми проблемами по части электроники. Прошу помочь мне с алгоритмом действий, код я постараюсь написать сам.
Что я хочу сделать(в порядке необходимости):

  1. Контроллер балластных цистерн. В моей лодке их приходится делать две. Цистерны поршневые, т.е. шестерня с резьбой внутри двигает насаженный на конец шпинделя поршень(я взял шприц на 50 мл).Привод от коллекторного моторчика, через редуктор. Обычно для контроля таких цистерн применяют выключатели на два крайних положения, т.е. либо цистерна пустая, лодка на поверхности, либо полная, и лодка погружена. Я же хочу сделать управление цистерной пропорциональным. На главную шестерню повесить диск - оптический инкрементальный энкодер, и считать обороты. Чтобы не возникала разность положений поршней во время работы, при старте проверять положение шпинделя фотопрерывателем, и если надо - утапливать шпиндель в ноль.
    Из контроллеров у меня есть тини13 и ардуино уно(в лодку я собираюсь поставить нано). Управление бц собираюсь делать на дуне, в ней есть как раз таки два внешних прерывания, через них можно считывать обороты с энкодеров.
    Алгоритм работы я вижу такой - при старте проверяем нулевое положение поршней, таймером захватываем импульсы с приемника, сверяем с текущим положением поршней, и при необходимости крутим мотор туда или сюда, пока не будет соответствия положение-сигнал. При этом еще нужно как-то притормаживать перед требуемым положением, либо постепенно скважность шима снижать, либо управлять вообще без шима, выключая мотор за несколько оборотов до нужного положения. По-моему такой алгоритм рабочий, прошу критиковать:).

  2. Фэйлсэйф. Ну здесь просто. Транзистором инвертировать сигнал с приёмника, подавать на вход тини. На этом входе сделать прерывание по низкому уровню, в прерывании включать выходную ножку, т.е. как бы копировать сигнал. При этом в прерывании обнулять значение счетчика, а в основном цикле проверять его значение, и если он достигнет определенного значения из-за пропадания прерываний и, значит, сигнала, то подавать на выход сигнал, соответствующий пустым цистернам. По-моему тоже должно работать:).

  3. Реверс серво задних рулей глубины.
    Смотрел я разные видео про модели пл, и заметил что у всех рули глубины работают враздрай, и при срочном погружении на ходу, когда начинает заполняться балласт, а рули отклоняются на погружение, из-за раздрая задние рули поднимают корму и винт вылетает из воды, и никакого срочного погружения не получается:).
    У моей аппаратуры есть канал для шасси, управляемый с аппаратуры кнопкой. Я решил его применить для включения реверса. На выходе приемника сигнал либо 1.1ms, либо 1.7ms. Как инверснуть серво мне понятно, но вот чтобы измерить сигнал нужен таймер, а в тини он уже будет занят фэйлсэйфом.😦 Я могу заменить тини на 2313, или мегу8, но может есть какая-нибудь дешевая аналоговая схема, с помощью которой можно будет более длинный сигнал представить как лог. 1?

4.Авто-контроль дифферента.
Чтобы можно было совершать длинные заплывы под водой, в особенности если лодку плохо видно. То есть, если лодка погрузилась на нужную глубину и теперь руль глубины стоит в нейтрали, то лодка сама исправляет дифферент, если он появляется, чтобы оставаться примерно на заданной глубине. Для этого уже купил gy-521. Тут алгоритм планируется такой: считываем длительность сигнала и сравниваем с предыдущим значением, если оно совпадает(и соответствует нейтрали), то переключаемся на “авто-пилот”. Эту задачу я собираюсь возложить на дуню, управлять она будет только передними рулями. Для этого судя по всему понадобится пид-регулятор, и его реализация вызывает у меня больше всего вопросов.

Собственно, я прошу указать на недочеты в моих идеях по реализации всех этих систем. Последний пункт в принципе не обязателен, хотя и очень хочется:). Может что подскажете по части реализации ПИДа?

Иван

Какой канал управления предполагаете использовать:
МГц ?
ГГц?
ультразвук??

tl_972:

если он появляется, чтобы оставаться примерно на заданной глубине. Для этого уже купил gy-521. Тут алгоритм планируется такой: считываем длительность сигнала и сравниваем с предыдущим значением, если оно совпадает(и соответствует нейтрали), то переключаемся на “авто-пилот”. Эту задачу я собираюсь возложить на дуню, управлять она будет только

посмотрите коды для Мультивия - там есть функционал который может здорово помочь с “дунькой”

пс. у самого “мечта идиота” сваять подлодку с автоматическим погружением-всплытием для соревнований на дистанции 10м. в классе EL-600

вопрос у меня к себе только один - как продувать балласт при всплытии?

tl_972

О, про мултивии я совсем забыл. Спасибо!

Иван:

Какой канал управления предполагаете использовать:
МГц ?

вопрос у меня к себе только один - как продувать балласт при всплытии?

Я использую старую аппаратуру на 35мгц, на 2 метра точно пробивает, проверял.

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

Иван
tl_972:

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

это офтоп но всё таки:
я не придираюсь, хочу понять КАК ??? после цикла забора балласта… воздух внутри ПЛ сжимается этим же “шприцом” ??

tl_972:

Я использую старую аппаратуру на 35мгц, на 2 метра точно пробивает, проверял.

Возьму на заметку:))

foster
Иван:

воздух внутри ПЛ сжимается этим же "шприцом

или когда выдавливается вода, вместо нее возникает вакуум. в обоих случаях нужен нехилый редуктор и только червячный, чтоб обратного самохода не было…
мне тоже интересно как продувать воздухом, баллон с углекислотой монтировать?))

tl_972

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

Сегодня написал для тини программу фэйлсэйфа. Писал на ассемблере, откомпилировалось без ошибок, но проверять в железе буду завтра, куплю макетку и распаяю на ней инвертор. Ради проверки мк написал прогу, выставляющую серву в определенное положение. Попробовал с разными положениями, приходилось правда для этого каждый раз перешивать мк. Заработало! Рад, впервые запрограммировал “голый” мк. 😃

Завтра отпишу о результатах испытаний.😃

22 days later
Elisco

Вот подобная ветка про управление. Здесь какой то Немец балуется с Ардуиной, и кстати неплохо получается. У него там три балластные цистерны : центральная главная, а передняя и задняя уравнительные. Ждём результатов испытаний.

tl_972

Спасибо. Уже видел некоторые его видео. Правда он использует реле, а в комментариях ему предлагают мосфеты, а он отказывается:). Но у него хорошие видео про изготовление винтов и вообще про механику, например прижимаемые к корпусу рули.
Я тут понаписал столько всего, а пытался сделать только фейлсейф, но он пока не закончен. Немного поменял принцип, программа упростилась. Пока занимался только строительством - выклеил корпус и выточил заглушки прочного корпуса. Жду резинки на уплотнение заглушек. Почти собрал бц, осталось сделать стойки под двигатели и собрать все это дело. Читаю книгу по программированию авр’ок, вроде понятно, посмотрим что получится на деле:)

Elisco

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

  1. Контроллер балластных цистерн. Должен быть простым в управлении, на двух реле (наполнение, откачка воды). Остановка двигателя двумя конечными выключателями. Управлять цистернами при помощи энкодерной системы довольно сложно, да и не к чему это.

  2. Фэйлсэйф ? После пропадания сигнала в течении 10 секунд должна сработать защита (продувка балластной цистерны), аварийный буй.

  3. Реверс серво задних рулей . Опять же какой у тебя тип лодки? Если тихоходные типа немецкой 7С то делается элементарно через Y разветвитель. Если скоростные современные атомные то достаточно задних рулей глубины.

  4. Авто-контроль дифферента? Очень нужная вещь. Стабилизация положения лодки линейная т.е. угол отклонения гироскопа должен соответствовать углу отклонения на сервоприводе. Эффект маятника. Я такой переделал из старого вертолётного электромеханического гироскопа с маятником.

melnikov_ivan

Влад, тоже сейчас в процессе постройки, тоже будоражат меня идеи автоматики на ПЛ. Вот какие мысли.
0) Я правильно понял, что ты хочешь принимать сигнал на приемник, а уже с каналов брать сигналы на МК.

  1. Играясь в ванной с балластной цистерной, я понял что очень не просто поймать лодку на какой-нибудь глубине (т.е. плотность воды практически константа). Кажется проще подключить датчик давления воды, пересчитывать в высоту водяного столба (точность 10см) и передавать его значение “телеметрией” (я тут собираюсь свою замутить еще и с водонепроницаемыем ультразвуковым дальномером для замера глубины под килем).
  2. Заказал на Али фейлсейф на один канал (300руб), там задаешь значение при потере сигнала (кажется самый простой способ, ставишь цистерны на продувку).
  3. Мне не нравится когда винт выпрыгивает из воды. Буду прикручивать электронный гироскоп и отдельной сервой управлять передними рулями, чтобы лодка всегда была горизонтальна (там еще надо поглядывать вперед мы едем или назад). А задние рули глубины управляются с аппаратуры.
  4. Авто-контроль дифферента. В статике у меня ничего не будет. В динамике надеюсь на все тот же гироскоп (еще не смотрел его чувствительность) и показания глубины.

Телеметрию собираюсь делать на отдельном ВЧ модуле для ардуино. Передавать значения:
* давление воды
* УЗ датчик расстояния
* напряжение питания
* ток в силовых двигателях (ходовой, насос)
* компас + дифферент
Некоторые эксперименты с самодельным радиоуправлением на ардуино.

Kuzma

ребят, а реально собрать герметичный блок всех систем, для модели масштаба 1\144 (46,9см) U VII\41 ?

  • мотор на 2 винта
  • рулевые по вертикали, рулевые по горизонтали
  • одна цистерна забора и спуска воды
  • индикация на погружение и на всплытие

ничего забубенного,только основные узлы для полноценного функционала пл

никто не занимается созданием таких блоков на заказ? 😒

2 months later
melnikov_ivan

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

Я бы на вашем месте смотрел в сторону 72го масштаба. Их так же легко перевозить, но на много проще разместить все необходимое. Ну и приглашаю полистать ветку про подлодки.