Стреляющий Бисмарк 1/200

Xenon_L

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

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

Конечно, то устройство, что у меня на корабле, это скорее преобразователь сигналов на микроконтроллере, но название «демультиплексор» мне нравится больше.
Предыстория:
В процессе постройки, с ростом количества функций стало понятно, что обычным 8-канальным приемником не обойтись. Два канала требовалось под ходовые функции, два - под подъем стволов башен и поворот, один- для переключения выбора артиллерии. Еще один канал на запал, один на освещение…😃
Но ведь нельзя стрелять изо всех стволов разом- получится, что боезапас расходуется излишне быстро, учитывая довольно сложный процесс перезараядки. Соответственно, нужно еще хотя бы 4 канала, а лучше 8 на выбор стволов.
По началу, не имея опыта в электронике я хотел делать механические селекторы, вроде такого:

Сервомашинка кулачками замыкает нужные контакты. Но чем дольше я пытался воспроизвести это устройство, тем больше мне становилось ясно, что механический переключатель я не смогу сделать с нужным качеством и надежностью. Кроме того, подобная конструкция весьма громоздка.
Поиски готовых решений тоже не увенчались успехом.
Можно бы было попробовать втыкнуть галетник, но на 8 положений я у себя в городе не нашел.

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

Однажды, один мой очень талантливый в электронике друг, посоветовал самому сделать устройство, которое будет воспринимать сигнал ШИМ с канала приемника и, например, открывать полевой транзистор, который может коммутировать нужные мне цепи.
Так родился проект демультиплексора, который даст недостающие каналы.
Лучше всего под такие цели подходил микроконтроллеры в среде Ардуино.
Они просты, дешевы и их язык достаточно прост и понятен даже для новичков, плюс очень много материала для обучения в сети.
Было решено приобрести Ардуино Нано, он из Китая обошелся в сущие копейки, примерно в 120 рублей.

Распиновка:

По первоначальному замыслу, микроконтроллер должен был брать сигнал ШИМ с четырех каналов приемника и подавать напряжение на 13 полевых транзисторов, вроде IRFZ44N:

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

Схема принципиальная, не рекомендую собирать что-либо по ней, т.к. присутствует масса недочетов.

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

На схеме разводки дорожек ошибки уже исправлены, плата была мной спроектирована и вытравлена (это один из полезных навыков, которым научил меня мой линкор), элементная база куплена и установлена. После рытья в сети, пробных запусков и консультации друга, я написал программу, загрузил ее в контроллер и опробовал устройство. Все заработало, транзисторы прозванивались, радости моей не было предела.😁 Но, беда подкралась откуда не ждали.😦
При включении источника питания (батарейки) для накала в сеть оказалось, что свечи не хотят зажигаться. Путем долгих тестов методом научного тыка выяснилось, транзисторы хоть и открываются, но не полностью, у них остается сопротивление порядка 1 Ома, что сравнимо с сопротивлением свечи. Возможно, ток был слишком мал, возможно напряжение, а может батарейка просто не могла обеспечить нужную мощность и стоило сразу начать использовать DC-DC конвертер, я не знал тогда этого. На мой вопрос что могло пойти не так, специалисты подсказали, что почти все полевики нормально открываются от 7-10 В и выше. У меня напрямую с контроллера подавалось всего 5 В и если взглянуть на характеристику транзистора, то видно, что этого маловато для открытия затвора. Кроме того, интернет выдал, что обычно затвором полевика управляют через биполярный транзистор, а уж им управляют с помощью контроллера.

Также удалось выяснить что в природе, есть такие полевые транзисторы, которые управляются «логическим уровнем» в 5 В.
Я сильно расстроился, ведь нужное мне устройство почти работало, но главной функции не выполняло и потребовалась бы серьезная модернизация платы, закупка большего числа недешевых компонентов и т.д…
Но, немного подумав и еще раз прошерстив интернет, я наткнулся на такие чудесные вещи, как блоки реле для Ардуино.

Они представляют собой готовую плату с управляющей схемой, контактами и индикацией. Достаточно лишь подать сигнал с контроллера и питание для того, чтобы замкнулось одно или несколько реле.
На этом решении я и остановился. К счастью, у китайских братьев проводилась распродажа, и мне удалось буквально за пару-тройку сотен рублей приобрести 2 блока реле по 8 штук, провода и сенсорную плату расширения Arduino Shield. Так же я приобрел еще несколько преобразователей напряжения постоянного тока (DC-DC конвертер)
Итак, собственно демультиплексор:

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

Ардуино Нано установлен сверху на плате расширения.
Это удобно тем, что контроллер закреплен и к каждому выводу (ножке) легко что-либо подключить. Кроме того, в этой плате предусмотрена защита от перенапряжения и кнопка перезагрузки. К аналоговым входам микроконтроллера подсоединены сигнальные выходы приемника (5,6,7,8 каналы).

Земля приемника (минусовой провод) соединена с землей МК. Управляющие входы блоков реле соединены с цифровыми выходами контроллера (кстати, у Ардуино входы настраиваются как выходы и наоборот, а так же множество других интересных функций, но подробно я не буду здесь расписывать – это материал других статей). У блоков реле отдельное питание 5 В, которое приходит с БЕКа регулятора, соответственно, земля блоков также соединена с землей МК. Кроме того, к Ардуино подключена оптопара (из старого принтера) датчика уровня жидкости в дымогенераторе.

К нормально разомкнутым контактам (НРК) реле под номерами 1-8 подключены выводы со свечей накаливания в стволах ГК, а к центральному контакту (ЦК) у этих же реле параллельно подключен плюсовой провод с преобразователя напряжения накала. К ЦК реле Trigger (Т), подключен минус с того же преобразователя, а к НРК общий минус всех стволов. При замыкании реле нужного ствола и реле «Т» подается напряжение на свечу и происходит выстрел.
К ЦК реле Artillery Selection (AS) подключен минус с приемника, к нормально замкнутому контакту (НЗК) подключен минус сервомашинок артиллерии среднего калибра, а к НРК того же реле минус машинок башен главного калибра. Плюсовые и сигнальные провода серво идут напрямую от приемника к машинкам. При этом, замыкая нужный минус работает артиллерия СК или ГК.
Реле Basic (В) Anchor(А) и Flashlight (F) управляют освещением основным, якорными огнями и прожекторами соответственно.
К ЦК и НРК Реле Smoke Generator (SG) подключен плюсовой провод нагревательного элемента дымогенератора. Пока нет сигнала - цепь разомкнута. Такое состояние остается при остутствии питания и при низком уровне дымовой жидкости.
Реле Horn (H) возможно будет управлять тифоном, в будущем.

Управляющая программа (про операторы и структуры программ на языке Ардуино можно почитать здесь)
Есть 4 канала управления
первый -крутилка, которая включает реле выбора артиллерии, которое замкнуто пока положение крутилки от 10 до100% иначе разомкнуто
Затем положением крутилки от 10-100%
отдельно включаются реле на каждый ствол.
Второй канал-управление выстрелом. Тут просто подпружиненый тумблер, если сигнал меньше 30%, то реле выстрела выключено, если больше 30% то включено
Третий канал управляет освещением(трехпозиционный тумблер)
Если тумблер выключен, то все реле освещения выключены
Если тумблер больше 40% то включается первое реле
Если больше 80% то параллельно с первым включается второе реле
Четвертый канал просто замыкает реле при сигнале больше чем 40%
Если на входе оптопары дымогенератора 0, то реле ДГ разомкнуто иначе замкнуто.

Сам код:

int shot = 16; // ch5 a2 присвоение переменной shot значения 16
int barrels = 17;//ch6 a3 аналогично
int lights = 18;// ch7 a4
int horn = 19;// ch8 a5
int sg_sensor = 15;//вход для датчика уровня дымогенератора a1
int b1 = 2; //d2 присвоение переменной b1 значения 2
int b2 = 3; //d3 аналогично
int b3 = 4; //d4
int b4 = 5; //d5
int b5 = 6; //d6
int b6 = 7; //d7
int b7 = 8; //d8
int b8 = 9; //d9
int trig = 10; //d10
int aselect = 11; //d11
int basic = 12; //d12
int anchor = 1; //tx
int searchlight = 14; //a0
int sg_sw = 13; //d13
int horn_out = 0; //rx
unsigned long shot_d; // переменная для хранения значения ШИМ в микросекундах для канала выстрела
unsigned long barrels_d; // aналогично для выбора стволов
unsigned long lights_d; // освещение
unsigned long horn_d; // тифон
int sg_level = 0;

void setup()
{
pinMode(shot, INPUT); // установка режимов логических входов и присвоение им номеров
pinMode(barrels, INPUT);
pinMode(lights, INPUT);
pinMode(horn, INPUT);
pinMode(sg_sensor, INPUT_PULLUP); //включение резистора оттяжки
pinMode(b1 , OUTPUT); //установка режимов логических выходов стволов и присвоение им номеров
pinMode(b2 , OUTPUT); //аналогично
pinMode(b3 , OUTPUT);
pinMode(b4 , OUTPUT);
pinMode(b5 , OUTPUT);
pinMode(b6 , OUTPUT);
pinMode(b7 , OUTPUT);
pinMode(b8 , OUTPUT);
pinMode(trig , OUTPUT); //установка режима логического выхода спускового крючка и присвоение ему номера
pinMode(aselect , OUTPUT); //аналогично селектор артиллерии
pinMode(basic , OUTPUT); // освещение основное
pinMode(anchor, OUTPUT); // якорное
pinMode(searchlight, OUTPUT); // прожекторы
pinMode(sg_sw, OUTPUT); // Защита ДГ
pinMode(horn_out, OUTPUT); // Тифон
}

void loop()
{
barrels_d = pulseIn(barrels, HIGH);
if (barrels_d<1019 )digitalWrite(aselect, LOW);//выбор артиллерии ГК или СК
else
digitalWrite(aselect, HIGH);
if (barrels_d>1020&& barrels_d<1130 )digitalWrite(b1, LOW);//начало алгоритма выбора стволов
else
digitalWrite(b1, HIGH);
if (barrels_d>1150 && barrels_d< 1260)digitalWrite(b2, LOW);
else
digitalWrite(b2, HIGH);
if (barrels_d>1280 && barrels_d< 1390)digitalWrite(b3, LOW);
else
digitalWrite(b3, HIGH);
if (barrels_d>1410 && barrels_d< 1520)digitalWrite(b4, LOW);
else
digitalWrite(b4, HIGH);
if (barrels_d>1540 && barrels_d< 1650)digitalWrite(b5, LOW);
else
digitalWrite(b5, HIGH);
if (barrels_d>1670 && barrels_d< 1780)digitalWrite(b6, LOW);
else
digitalWrite(b6, HIGH);
if (barrels_d>1800 && barrels_d< 1910)digitalWrite(b7, LOW);
else
digitalWrite(b7, HIGH);
if (barrels_d>1930 && barrels_d< 2200)digitalWrite(b8, LOW);
else
digitalWrite(b8, HIGH);//конец алгоритма выбора стволов
shot_d = pulseIn(shot, HIGH);//выстрел
if (shot_d>1600)digitalWrite(trig, LOW);
else
digitalWrite(trig, HIGH);//конец выстрела
lights_d = pulseIn(lights, HIGH);//выбор режима освещения
if (lights_d<1200)digitalWrite(searchlight, LOW);
else
digitalWrite(searchlight, HIGH);
if (lights_d>1300)digitalWrite(basic, LOW);
else
digitalWrite(basic, HIGH);
if (lights_d>1700)digitalWrite(anchor, LOW);
else
digitalWrite(anchor, HIGH);//конец выбора режима освещения
horn_d = pulseIn(horn, HIGH);//тифон
if (horn_d>1600)digitalWrite(horn_out, LOW);
else
digitalWrite(horn_out, HIGH);
if (digitalRead (sg_sensor)) digitalWrite(sg_sw, LOW);
else digitalWrite(sg_sw, HIGH);
}

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

Возможно, программа покажется громоздкой и излишней, но к сожалению, я далек от программирования и написал ее как умел. Однако она работает и это главное.
Если есть желание разобраться в среде и написать свою программу на Ардуино, то здесь все для этого есть здесь
На самом деле, все гораздо проще, чем кажется
Следующий пост будет посвящен силовой установке и рулевому управлениею
Спасибо за внимание!😃

lz130

…Здравствуйте Сергей…Объясните поподробней как осуществляется выстрел. Понятно что замыкается реле по команде через Ардуино.Но непонятно что происходит дальше.Что накаливается? Каким током ? На какое время?Что при этом поджигается? C уважением…

ZigZag_ZZ

Свечка КС, пыж из салфетки, всё описано выше около фотографий…
Посмотрите внимательно…

Xenon_L
lz130:

…Здравствуйте Сергей…Объясните поподробней как осуществляется выстрел. Понятно что замыкается реле по команде через Ардуино.Но непонятно что происходит дальше.Что накаливается? Каким током ? На какое время?Что при этом поджигается? C уважением…

Приветствую!
Накаливается свеча накаливания 😃
Ток примерно 2-2,5 А на 1,5 В
Время примерно 2-3 секунды, по-разному.
Поджигается горючая смесь из петарды типа К201. Что там внутри по составу -врать не буду, не знаю.

Barsik44

Сергей, добрый вечер!
Отличная работа!
Если не возражаете - вот некоторые рекомендации по Вашему коду (из того, что бросилось в глаза):

Структуры типа

if (barrels_d>1150 && barrels_d< 1260)digitalWrite(b2, LOW);
else
digitalWrite(b2, HIGH);

можно заменить на

digitalWrite(b2, !(barrels_d>1150 && barrels_d< 1260));

Немного лаконичнее, не так ли? 😃
В arduino Си LOW <=> false <=> 0, а HIGH <=> true <=> 1;
Символ “!” - это логическое НЕ;
Соответственно
!(barrels_d>1150 && barrels_d< 1260) вернет нам 0 в том случае, если условие выполняется и 1 если нет.

Далее…

int b6 = 7; //d7
int b7 = 8; //d8

Рекомендую при объявлении входов использовать #define вместо объявления такого кол-ва переменных. Это уменьшит вес программы и улучшит читаемость кода. (особенно если Вы сделаете отдельный файл настроек)

#define b6 7
#define b7 8

Еще один лайвхак 😃


pinMode(b1 , OUTPUT);
​__pinMode(b2 , OUTPUT);

Вполне можно загнать в цикл for для инициализации выводов с 2 по 12 (с б1 по бэйсик)

for (int i=b1; i<=basic; i++)
{

pinMode(i , OUTPUT);
}

Еще рекомендую вместо rx/tx uart использовать a6 и a7.

Если кому-либо что-то еще подсказать - спрашивайте в лс.

Xenon_L
Barsik44:

Еще рекомендую вместо rx/tx uart использовать a6 и a7.

Если кому-либо что-то еще подсказать - спрашивайте в лс.

Здравствуйте!
Спасибо, попробую оптимизировать программку, считаю ваши замечания вполне уместными.
А почему RX/TX лучше не использовать?
Я понимаю, что это входы связи, но в данном случае это роли не играет…?

Barsik44
Xenon_L:

А почему RX/TX лучше не использовать?
Я понимаю, что это входы связи, но в данном случае это роли не играет…?

Ну мало ли, расширить как-нибудь решите 😃
А так - просто лучше не брать это в привычку - иногда может неожиданно понадобится, например, отладка по uart…

1 month later
Xenon_L

Всем привет и поздравления с Днем Космонавтики!

Кстати, 4 года назад, в этот день, я начал строительство своего Бисмарка.😒

Сегодня я хочу рассказать про силовую и энергетическую часть модели линкора.

Любая ходовая модель начинается именно с силовой установки- ее параметры закладываются в первую очередь, вслед за корпусом, т.к. именно от нее зависят большинство динамических характеристик.
По замыслу Амати, вместе с журналами можно бы было приобрести комплект аппаратуры, двигателей и АКБ и сделать корабль действующим.

Однако, состав комплекта в виде двухканального пульта на 40 МГц, двух моторов с винтами (вместо трех),одного регулятора, да рулевой машинка за десять тысяч рублей мне показался, мягко говоря, нелепым и непомерно дорогим.😵

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

На модели применена схема с одним реверсивным коллекторным регулятором на 12 вольт , тремя коллекторными двигателями, раздраем на микровыключателях. В оригинальных планах Амати предполагалось установить только два мотора, поскольку для третьего “не хватало места и прочность киля не позволит это сделать”. Как видно, третий мотор прекрасно себя чувствует и прочность корпуса нисколько не упала.

Итак, попродробнее о состовляющих:

Регулятор.
Без опознавательных знаков на корпусе, сделан в России, специально для судомоделей, имеет BEC 2A, реверс, напряжение работы 12 В. Приобрел в кружке

Моторы.
Позаимствованы из фенов “Скарлетт SC-076”

Имеют пятиламельную конструкцию якоря, на 12 В выдают порядка 10000 об/мин.


По габаритам похожи на 370 класс. Ток под нагрузкой около 0.5 А
Их мощности вполне хватает для уверенного хода модели даже против слабого ветра.

Винты.
Первые запуски были на штатных пластиковых винтах, однако, они оказались достаточно хрупкими и тонкими. Я приобрел отдельно 3 латунных винта под стендовую модель Бисмарка в нужном масштабе и нарезал внутри резьбу.
Валы изготовлены из 2 мм велосипедных спиц.

Дейдвудные трубы и гельмпорты сделаны из латунной трубки диаметром 6 мм
С торцов впаяны латунные втулочки. Внутри трубы набиты ЦИАТИМом-221
Возможно, не самое лучшее решение,но пока все работает.

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

Во втором варианте были заказаны маленькие стальные карданчики 2,5-2 мм из Китая. Качество и цена у них вполне приличные.

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

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

Система питания.
Корабль имеет две независимые электрические полусистемы, левого и правого бортов. Сделано это для увеличения надежности, поскольку энергоемкие потребители разнесены равномерно.
Источником энергии являются два литий-полимерных аккумулятора Зиппи-компакт на 11,4 В 2700 мАч.

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

По бортам линкора установлены 4 геркона, по два на каждое распредустройство. Один геркон для включения, другой для выключения.
Схема выключателя

Взято отсюда. Замечательный сайт об электронике для подводных лодок.
Схема распредустройства.

К левому борту подключены регулятор оборотов (12 В), приемник(5 В), демультиплексор(5 В), сервомашики(5 В).
К правому борту подключены дымогенератор (12 В), все огни освещения (12 В), устройство электрозапала (1,5 В).
Потребители 12 В подключены напрямую к силовым АКБ, а потребители 5 В и 1,5 В подключены через соответствующие преобразователи.

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

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

Спасибо за внимание!😃

1 month later
Zolotoy_al

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

7 days later
Xenon_L
Zolotoy_al:

Здравствуйте товарищи судомоделисты, из числа людей пользующих дымогенераторы, никто не экспериментировал с окраской дымов?

Приветствую! Нет, красители не добавлял, однако в сети на эту тему есть варианты…

28.05.2017, ровно через 76 лет и 1 день после гибели прототипа, моя модель линкора Бисмарк, наконец, полноценно прошла по большой воде на камеру.

Погода пришла майская и позволила сделать запуск линкора!

Были проведены стрельбы, правда, в кадр попали только два выстрела из башни Бруно (на видео 02.29)

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

6 months later
zmak2003

День добрый. Чтоб не плодить темы спрошу тут. Есть сборная модель Аризоны от Трумпетера в 200 масштабе. Хочу сделать ее на рудиоуправлении. Есть ли ссылки на винты и дэйдвуды, которые можно поставить на данную модель. Смотрел буржуйские наборы для переделки, но там цены космические.

Xenon_L
zmak2003:

День добрый. Чтоб не плодить темы спрошу тут. Есть сборная модель Аризоны от Трумпетера в 200 масштабе. Хочу сделать ее на рудиоуправлении. Есть ли ссылки на винты и дэйдвуды, которые можно поставить на данную модель. Смотрел буржуйские наборы для переделки, но там цены космические.

Приветствую!
Дейдвуды я делал сам, латунная трубка из хозгипермаркета 6мм и 2 латунные заклепки
Все спаивается между собой,набивается силиконовой смазкой или циатимом.
Вал- велосипедная спица
Для Аризоны есть латунные винты
Ищите по словам Arizona 1:200 propellers g-factor

2 months later
romzess_48

я сейчас ожидаю данный комплект модели…
тоже купил частично собранный… не знаю о комплектности… но обещали что все цело…
начну второй проект…
с первым я торопился,почему не знаю… был собран стендовым…
в итоге продал другу…
с этим хотел заморочится… ходовой…
но то что , ВЫ сотворили,

Shar75

Так сделайте просто ходовой, без наворотов. Я для себя решил делать с управлением на винты и рули, т. к. считаю что этого достаточно.
Только единственное винтов всеже скорее - 3

Oshin

Титанический труд.Я просто в шоке.
Респект вам от души.

7 days later
romzess_48

доброго времени…
подскажите… можно ли остеклить?

или те лючки которые с низу и имели стекла?

ZigZag_ZZ

То чЬто открылось и висит и есть иллюминатор, он и держит стекло, открываются для проветривания кают…
Задраиваются в непогоду…

Xenon_L

Приветствую!
Спасибо за отзывы!
На фото отчетливо видно,что крышки без стекол-сами стекла внутри надстройки.
Застеклить можно каплей клея Момент-кристалл,кусочком прозрачного пластика или дюбым стандартным способом для копий. Гуглить «остекление на моделях»

romzess_48

спасибо Сергей. и извини что твою тему вопросами засорил.