Наши проекты: 3D печать и услуги : Wiki : Сувениры : Walkarounds :
Войти Регистрация
Форум моделистов на ScaleModels.ru
 Наблюдаемые темыНаблюдаемые темы    FAQFAQ   ПоискПоиск   ПользователиПользователи   medals.phpНаграды   ИзбранноеИзбранное   РегистрацияРегистрация 
  Наблюдаемые форумыНаблюдаемые форумы  ПрофильПрофиль    Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Что там, в небесах! Белый лебедь? Белый слон??.. Ту-160 1/72

На страницу 12  След.
 Список форумов Форум моделистов на ScaleModels.ru -> Самолеты СССР после 1950 года - СССР -> Самолеты СССР после 1950 - ОКБ Туполева
новая тема  ответить  для печати Предыдущая тема Следующая тема 
Автор
Сообщение


в игноре у 2 пользователей
Во-первых: окраска будет очень нестандартная. Раскрывать прежде времени не буду, сюрприз будет. Хотя намёки можно найти на моём аватаре. Wink
Во-вторых, работать с моделью одно удовольствие(планирую захомячить ещё один набор к концу года), т.к. огромные внутренние объёмы легко фаршируются разными, в том числе весьма громоздкими, внутренностями.
В-третьих, работа идёт уже год. Однако мотивация очень сильна Wink, так что если не случится ничего катастрофичного, рассчитываю завершить за полгода-год.
В-четвёртых, значитальная часть доработок незавершена, поскольку перепрыгиваю от (теоретически) решённых проблем к тем местам, где требуется творческий подход.
# # ## # # # # # # # # #
Батарейный отсек. 3хLR44. Наверное надо было установить его горизонтально. Mad
#
Думаете самое трудное удержать бомболюки закрытыми? Открываются вот таким поршнем.
##
Из-за шпатлёвки не видно, но алюминиевая трубка справа ведёт к заднему бомбоотсеку. Левая соответственно к переднему.
# #
Потянешь за верёвочку, он и откроется.
# # #

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

P.S.
Белый слон.
^
    


в игноре у 5 пользователей
Ну всё! Понеслась!!! Будет интересно! Очень посмотрю!
^
    
Весьма интересно!
^
    


в игноре у 1 пользователей
Звучит прям как угроза,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,  ,,,,,,,,,,,,,,,,,,,,,,,,,
^
    


в игноре у 2 пользователей
Хотя физически данная работа будет имитировать Ту-160 насколько это возможно с движущимися деталями, из-за окраски перенесите тему в раздел "Фантастика".

Крайне необходимая деталь для всего проекта.
# #
Кончик - от стержня шариковой ручки.
#
Необходимая, но всё же опциональная. Просто потому что могу. Razz Всего лишь сменная пластина.
#
Сказал А, говори и Б. Механизм выталкивания пластины.
#
В фарах (Эльфа) - светодиоды от подсветки экрана телефона.
# #

Добавил пояснения к первому посту.

gorbatuy111 всё гораздо хуже. Это любовь. Crying or Very sad
^
    


в игноре у 2 пользователей
Закончил со внутренностями киля. Склеил и приклеил его.
#
Переделал выхлопные отверстия (чего-то там) над двигателями.
#
Торчащая трубка не только дотошность, она передаёт нажатие на скрытый внутри выключатель подсветки. Хотя у меня подозрение что она уходит в стенку, а не идёт внутри канала.

Попробовал спаять электронную схему мигания на надёрганных из БП ПК транзисторах. Удачно! Так что как минимум с навигационными огнями вопрос (теоретически) решён.
#
Также спаял схему строба. Получил фэйл. Вспыхивает, но неравномерно.

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


в игноре у 1 пользователей
Закрылки полностью не отклоняются, но "треугольнички" вверх отклоняются.
Вот здесь видно:

Для управления всей электро-/свето-техникой попробуйте использовать Arduino Mini Pro - места займет не больше чем схема нескольких мультивибраторов, а возможностей появится - просто неограниченное количество. Вплоть до последовательного включения/выключений огней по программе с заданными задержками.
^
    


в игноре у 2 пользователей
Похоже закрылки придётся выламывать. А ведь предчувствовал, когда решил приклеить их на эпоксидку.
^
    


в игноре у 1 пользователей
WhiteKnight, а вы с PIC или ATTiny не работали? Может, все БАНО завести на один контроллер и не мучаться с мультивибратором?

Добавлено спустя 3 минуты 58 секунд:

Да, или как посоветовал Atlant, на ардуинине. Там даже программатор не нужен, порог вхождения минимальный.
^
    


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


У меня идефикс на разделение, дублирование, запас прочности. Поэтому внутренняя подсветка, фар, нав. огней и стробов будут раздельными + нав. огни НЧК постоянные/мигающие(на случай если схема сдохнет, сдохнут стробы - не так страшно). Планирую ещё переменные резисторы вставить для регуляции.
^
    


в игноре у 1 пользователей
WhiteKnight, ну если надо резервирование, то две ардуинины, выходы идут на элемент ИЛИ, с него снимаем управляющий сигнал )) Можно и троирование с голосованием сделать ))
Спрячьте плату за какой-нибудь откидной панелькой, соединения на разъемах. В случае чего панельку откинули, плату поменяли, радуетесь дальше.
^
    


в игноре у 2 пользователей
В принципе, в гондолах двигателей пустоты ~2,5х4,5х6 см. Shocked И панели на их нижних-внутренних сторонах Трумпетер дал отдельно... Если сделаю, то легко выламываемыми, хочется поменьше щелей.

Дабы оправдать флуд, вот вам плюшки - открывающиеся створки переднего шасси:
Унитаза нибудет, вместо него вот такая конструкция. #Створки в закрытом положении. Магнит для противодействия резинкам. Знаю, знаю, топорная работа. Embarassed
# # Чуть-чуть несимметрично. Ну и ладно, главное как выглядит в закрытом виде.#
#Под засветившимся выше пластилином - антенна.
^
    


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

# Долго колебался делать или нет вообще.
# Видит бог, я попробовал сделать как в оригинале, с открывающимися створками-опускающимися фарами, но естественно оказалось слишком мелко, коряво.
## В результате вместо четырёх мелких створок - одна большая.
# И пара вынимаемых модулей с фарами.
# Недоволен "температурой" света. Так у фар на передней стойке шасси гораздо более " тёплый ламповый" свет. Но под рукой просто нет подходящих светодиодов. Если найду, переделаю, тем более что надо поправить разный угол наклона.

Разобрался с Ардуиной(нано). В программу поместились четыре режима: проблесковый 1,5/6 сек, белый-красный-зелёный мигают/постоянны. Единственное, что не вошло, белый-красный-зелёный должны бы загораться-потухать по синусоиде.

Цитата:
// constants won't change. Used here to set a pin number :
const int buttonPin1 = 2;
const int buttonPin2 = 3;
const int ledPin8 = 8; // the number of the LED pin
const int ledPin9 = 9;
const int ledPin10 = 10;
const int ledPin11 = 11;
const int ledPin12 = 12;

int buttonState1 = 0;
int buttonState2 = 0;
int ledState8 = LOW;
int ledState9 = LOW; // ledState used to set the LED
int ledState10 = LOW;
int ledState11 = LOW;
int ledState12 = LOW;

unsigned long currentMillis = 0;
unsigned long previousMillis9 = 0;
unsigned long previousMillis10 = 0;
unsigned long previousMillis12 = 0;
unsigned long previousMillis13 = 0;
unsigned long previousMillis14 = 0;
unsigned long previousMillis15 = 0;
unsigned long interval2 = 0;
unsigned long interval3 = 0;

const long interval1 = 2000;

void setup() {
// set the digital pin as output:
pinMode(ledPin8, OUTPUT);
pinMode(ledPin9, OUTPUT);
pinMode(ledPin10, OUTPUT);
pinMode(ledPin11, OUTPUT);
pinMode(ledPin12, OUTPUT);
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
}

void loop()
{
unsigned long currentMillis = millis();
buttonState1 = digitalRead(buttonPin1);
buttonState2 = digitalRead(buttonPin2);
if (buttonState1 == HIGH) { //режим АНО постоянно вкл
ledState8 = HIGH;
ledState9 = HIGH;
ledState10 = HIGH;
digitalWrite(ledPin8, ledState8);
digitalWrite(ledPin9, ledState9);
digitalWrite(ledPin10, ledState10);
}
if (buttonState1 == LOW) { //режим АНО мигающие
if (currentMillis - previousMillis9 >= interval1) { //горит-не горит интервал 2 сек
previousMillis9 = currentMillis;
if (ledState8 == LOW) {
ledState8 = HIGH;
ledState10 = LOW; //третий горит если первый не горит и наоборот
digitalWrite(ledPin8, ledState8);
digitalWrite(ledPin10, ledState10);
}
else {
ledState8 = LOW;
ledState10 = HIGH;
digitalWrite(ledPin8, ledState8);
digitalWrite(ledPin10, ledState10);
}
}
if (currentMillis - previousMillis10 >= interval1) { //задержка загорания второго после первого 1 сек
previousMillis10 = previousMillis9 + 1000;
if (ledState9 == LOW) ledState9 = HIGH;
else ledState9 = LOW;
digitalWrite(ledPin9, ledState9);
}
}
//стробы выбор режима
if (buttonState2 == HIGH) {
interval2 = 6000;
interval3 = 6010;
}
if (buttonState2 == LOW) {
interval2 = 1500;
interval3 = 1510;
}
// верхний строб загорается
if (currentMillis - previousMillis12 >= interval2) {
previousMillis12 = currentMillis;
ledState11 = HIGH;
//верхний строб тухнет
}
if (currentMillis - previousMillis13 >= interval3) {
previousMillis13 = previousMillis12;
ledState11 = LOW;
}
// нижний строб загорается
if (currentMillis - previousMillis14 >= interval2 + 200) {
previousMillis14 = previousMillis12;
ledState12 = HIGH;
// нижний строб тухнет
}
if (currentMillis - previousMillis15 >= interval3 + 200) {
previousMillis15 = previousMillis12;
ledState12 = LOW;
}
digitalWrite(ledPin11, ledState11);
digitalWrite(ledPin12, ledState12);
}


P.S.
Если кому интересно как вытачивал диски из тонкой жести: напаивал заготовку на стержень, зажимал в дрель, прикладывал надфиль и наждачку.
^
    


в игноре у 1 пользователей
WhiteKnight
Сделать "моргание по синусоиде" (то-есть имитацию вращающегося маячка, а не "моргалки") можно - я уже делал.
Мне кажется что Ваша программа усложнена больше чем это нужно.
Пришлите мне описание того что хотите получить (с указанием всех временных интервалов) я попробую помочь сделать программу более "читаемой".
^
    


в игноре у 2 пользователей
Atlant, проблемы с постепенным изменением яркости одних только белого-зелёного-красного нет, можно написать с функцией "delay()", которая приостанавливает все действия. Проблемы с том, что:
1). Параллельно выполняются вспышки(короткое включение, долгий промежуток между ними) проблесковых, поэтому все действия сверяются с "millis()"(отсчёт времени с включения). А так же проверки на текущие режимы.
2). Ограничение программы(1884 байта) оперативной памятью в 2048 байта не даёт её расширить.

За основу взята программа BlinkWithoutDelay из примеров.

(с 0:48 )
^
    


в игноре у 1 пользователей
WhiteKnight
Есть и другие методы управления, кроме учета текущего времени (millis()) и задержки (delay()).
В 2 килобайта пямяти можно засунуть ой как много чего! Как я уже сказал - Если пришлете описание того что хотите получить (с указанием всех временных интервалов и режимов работы), то я помогу написать программу которая будет делать то, что Вам хочется получить.
Я вижу что у Вас в программе 2 переключателя. 1-ый насколько я понял отвечает за "моргание/постоянное свечение" АНО (выводы 8, 9 и 10). А для чего второй? Он насколько я понял меняет интервалы, так?
Это перереключатели? Можно поставить "кнопки" , которые по нажатию просто будут переключать режим работы. Может можно и одной кнопкой обойтись, или вообше по "таймеру" работать - скажем 30-40 секунд работа в одном режиме, потом 20 в другом, а потом 50 в третьем, а потом еще 30 в первом. (Комбинацию можно придумать любую по длительности/сложности). Это даст исключение переключателей (и как следствие - уменьшение вероятности что-то сломать в модели в момент переключений/тряски) и увеличение надежности (ибо как раз переключатели - как механические компоненты - самые ненадежные).
^
    


в игноре у 2 пользователей
1 режим(его вообще можно порезать): белый-красный-зелёный горят постоянно.
2 режим:
Зелёный 0 - 0,5 постепенно загорается; 0,5 - 1 постепенно потухает; 1 - 2 не горит.

Белый 0,5 - 1 загорается; 1 - 1,5 потухает; 1,5 - 2,5 не горит.

Красный 1 - 1,5 загорается; 1,5 - 2 потухает; 2 - 3 не горит.


1 режим стробов:
строб 1: начало 0, интервал 1,5 вспышка 0,001
строб 2: начало 0,5 - интервал 1,5 вспышка 0,001


2 режим стробов:
строб 1: начало 0 - интервал 6 вспышка 0,001
строб 2: начало 0,5(?) - интервал 6 вспышка 0,001
^
    


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

АНО горят по одинаковой схеме, только со смещением на 0,5 секунды друг от друга, так?

Стробы как мне кажется моргают четко в "противофазе", то-есть при интервале в 1,5 секунд задержка между верхним и нижним должна быть 0,75 секунды.

Оставляем переключатели на контактах 1/2 или меняем их на кнопки или полностью их убираем и переходим на переключение режимов по времени?
^
    


в игноре у 2 пользователей
Лишний нуль. В программе была вспышка 10 мс.

Зелёный-красный в противофазе, белый отстаёт от зелёного на полфазы. Хотя бывает белого не видать вообще. Rolling Eyes

А чёрт его знает как относительно друг друга работают стробы, чувство ритма у меня то ещё.

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


в игноре у 1 пользователей
Понял, длина цикла для АНО - 2 секунды, 1 секунда свечения (по пол-секунды нарастания и убывания яркости) и 1 секунда тенмноты. Красный и Зеленый - в противофазе, белый - посередке между ними, после зеленого.
Ждите, скоро сделаю.

Добавлено спустя 9 часов 48 минут 1 секунду:

Вот такое вот у меня получилось:

Код:
//*********************** начало ****************
const int RedLEDPin = 5;
const int GreenLEDPin = 6;

const int WhiteLEDPin = 9;
const int BlackLEDPin = 8;

const int Button1Pin = 2;
const int Button2Pin = 3;

const bool BANOMODEBLINK = true;
const bool BANOMODESTEADY = false;

const int Blink1LED = 11;
const int Blink2LED = 12;

int Button1State = HIGH;
int Button2State = HIGH;

int Counter1 = 0;
int Direction1 = 1;

int Counter2 = 50;
int Direction2 = 1;

int RedOrGreen = RedLEDPin;
int WhiteOrBlack = WhiteLEDPin;

bool Button1Pressed = false;
bool Button2Pressed = false;

bool BANOMode = true;

int BlinkLED = Blink1LED;
int blinkDelay = 37;
int blinkCounter = 0;

void setup(){
 
    pinMode(RedLEDPin, OUTPUT);
    pinMode(GreenLEDPin, OUTPUT);
   
    pinMode(Button1Pin, INPUT_PULLUP);
    pinMode(Button2Pin, INPUT_PULLUP);
   
    digitalWrite(Button1Pin, HIGH);
    digitalWrite(Button2Pin, HIGH);

    pinMode(WhiteLEDPin, OUTPUT);
    pinMode(BlackLEDPin, OUTPUT);
   
    pinMode(Blink1LED, OUTPUT);
    pinMode(Blink2LED, OUTPUT);

}
 
void loop(){ 
 
      Button1Pressed = false;
      Button2Pressed = false;
     
      int button1Reading = digitalRead(Button1Pin);
      int button2Reading = digitalRead(Button2Pin);
     
      if (button1Reading != Button1State)
      {
        Button1State = button1Reading;
        if (Button1State == HIGH)
        {
          // button released - process
          Button1Pressed = true;
        }
      }
     

      if (button2Reading != Button2State)
      {
        Button2State = button2Reading;
        if (Button2State == HIGH)
        {
          // button released - process
          Button2Pressed = true;
        }
      }

      delay(20);              // wait for a 20 milli-seconds     
     
      digitalWrite(Blink1LED, LOW);
      digitalWrite(Blink2LED, LOW);

      if (Button1Pressed)   // меняем режим работы БАНО
      {
        BANOMode = ! BANOMode;
        if (! BANOMode)
        {
          analogWrite(RedLEDPin, 50);
          analogWrite(GreenLEDPin, 50);
          analogWrite(WhiteLEDPin, 50);
        }
        else
        {
          analogWrite(RedLEDPin, 0);
          analogWrite(GreenLEDPin, 0);
          analogWrite(WhiteLEDPin, 0);
        }
 
      }
           
      if (BANOMode)
      {
          Counter1 += Direction1;
         
          analogWrite(RedOrGreen, Counter1);
   
          if (Counter1 > 50)     
            Direction1 = -1;
           
          if (Counter1 == 0) 
          {
              Direction1 = 1;
              if (RedOrGreen == RedLEDPin)
                RedOrGreen = GreenLEDPin;
              else
                RedOrGreen = RedLEDPin;
          }     
   
          Counter2 += Direction2;
   
          analogWrite(WhiteOrBlack, Counter2);
   
          if (Counter2 > 50)     
            Direction2 = -1;
           
          if (Counter2 == 0) 
          {
              Direction2 = 1;
              if (WhiteOrBlack == WhiteLEDPin)
                WhiteOrBlack = BlackLEDPin;
              else
                WhiteOrBlack = WhiteLEDPin;
          }     

      }


      if (Button2Pressed)
      {
        if (blinkDelay == 37)
            blinkDelay = 150;
        else
            blinkDelay = 37;
      }

     
      blinkCounter ++;
     
      if (blinkCounter > blinkDelay)
      {
        digitalWrite(BlinkLED, HIGH);
        blinkCounter=0;
        if (BlinkLED == Blink1LED) 
          BlinkLED = Blink2LED;
        else
          BlinkLED = Blink1LED;
      }
     
}
// ************************** конец ************************


Очень важно !!!
Для БАНО надо использовать выводы с ШИМ (PWM) - в данном случае я использовал 5,6 и 9.
Стробы можно использовать любые, лишь-бы не было совпадения с неиспользуемым BlackLEDPin.

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

Яркости зеленых/красных светодиодов могут отличаться. Програмку написал бегом-бегом, используя некоторые "хитрости" (читай - лень было), поэтому вполне возможно понадобятся доработки. Если нужна помощь - просите.

Сама программа занимает вот сколько места:

Sketch uses 1,938 bytes (6%) of program storage space. Maximum is 32,256 bytes.
Global variables use 35 bytes (1%) of dynamic memory, leaving 2,013 bytes for local variables. Maximum is 2,048 bytes.

Туда еще ой как много чего можно понаписать - и звук играть можно и по таймеру остальные огни включать/выключать и моторами/магнитами управлять если надо....
^
    
Страница 1 из 2 На страницу 12  След.

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы
Канал на Дзене Телеграм ScaleModels.ru Вконтакте Подписаться на RSS
ScaleModels.ru - сборные масштабные модели. © 2005-2022
Privacy Policy