aleksandr.ru - блог https://aleksandr.ru/blog Последние посты блога Sun, 04 Dec 2022 22:41:21 +0300 ru aleksandr.ru Рабочие газового хранилища на макете https://aleksandr.ru/blog/rabochie_gazovogo_hranilischa_na_makete https://aleksandr.ru/blog/rabochie_gazovogo_hranilischa_na_makete#comments Sun, 04 Dec 2022 22:41:21 +0300 https://aleksandr.ru/blog/rabochie_gazovogo_hranilischa_na_makete nonadult aleksandr.ru Хобби H0 1:87 Preiser Noch Рабочие газового хранилища на макете

Газовое хранилище с рабочими

Рабочие на газовом хранилище явно что-то напортачили и к ним спешит бригадир... участники этой сцены были взяты из 3 наборов, слева направо: Noch 15279, Preiser 10105 и Preiser 10420.

]]>
Романтика на ЖД макете https://aleksandr.ru/blog/romantika_na_zhd_makete https://aleksandr.ru/blog/romantika_na_zhd_makete#comments Sat, 03 Dec 2022 21:54:45 +0300 https://aleksandr.ru/blog/romantika_na_zhd_makete nonadult aleksandr.ru Хобби H0 1:87 Noch Романтика на ЖД макете

Noch 15510

Как же без романтики! Молодая пара на кабриолете сделала романтическую остановку на живописной смотровой в горах над туннелем.


Noch 15510

А тем временем, другая, уже немолодая пара, расположилась на лавочке среди цветущих китайских кустов.

Обе пары из набора Noch 15510.

]]>
Застолье на макете https://aleksandr.ru/blog/zastole_na_makete https://aleksandr.ru/blog/zastole_na_makete#comments Fri, 02 Dec 2022 22:34:16 +0300 https://aleksandr.ru/blog/zastole_na_makete nonadult aleksandr.ru Хобби H0 1:87 Preiser Застолье на макете

Preiser 10701

2 декабря считается днем железнодорожного моделиста, и кто-то из набора Preiser 10701 уже начал отмечать праздник прямо на макете железной дороги)

]]>
Первые на макете https://aleksandr.ru/blog/pervie_na_makete https://aleksandr.ru/blog/pervie_na_makete#comments Thu, 01 Dec 2022 22:28:07 +0300 https://aleksandr.ru/blog/pervie_na_makete nonadult aleksandr.ru Хобби H0 1:87 Preiser Первые на макете

Preiser 10337

Никогда не думал, что первыми поселенцами на моем макете станут торговцы. Но так вышло, что первой появилась торговка и покупатели на вокзальной площади из набора Preiser 10337.


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

20221202_000324.jpg

Это не просто набор "взять поставить", тут есть к чему приложить руки. Ящики изначально на литнике, их нужно откусывать с него. Хорошо, что содержимое уже внутри. Композицию из ящиков нужно собирать и склеивать самому. Ящики весьма качественные со всеми рейками даже снизу, содержимое также хорошо проработано и не повторяется. Ценники расположены все вместе на одной плотной бумажке, их надо вырезать и приклеивать на места. Среди ценников много повторяющихся, но разнообразия хватает, как по содержимому, так и по размеру и форме. В общем, это набор для тех, кто хочет поковыряться и получить что-то индивидуальное.

]]>
Инжектор питания XpressNet https://aleksandr.ru/blog/inzhektor_pitaniya_xpressnet https://aleksandr.ru/blog/inzhektor_pitaniya_xpressnet#comments Thu, 17 Nov 2022 16:10:15 +0300 https://aleksandr.ru/blog/inzhektor_pitaniya_xpressnet nonadult aleksandr.ru Хобби Железо Инжектор питания XpressNet

 XpressNet power injector

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


Немного теории. Для организации обратной связи на макете используется шина XpressNet, она же X-Bus и она же R-Bus, c 6-пиновым разъемом RJ-12. (спецификация шины в PDF). В рамках этого разъема передаются данные и подается питание.

XpressNet pinout

Линейный регулятор в бустере Roco 10764 (откуда начинается гирлянда устройств обратной связи) не всегда может обеспечить нужной мощностью большое количество устройств на шине.

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

Чтоб не колхозить хитросплетение из проводов, я решил сделать схему, которая будет правильно добавлять питание в XpressNet и служить транзитом для линии питания.

Схема внешнего питания XpressNet

Такие платы будут размещены под каждым модулем макета и равномерно разделят модули обратной связи на 3 части по питанию.

Прототип платы

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

]]>
Обратная сторона цифрового скитальца https://aleksandr.ru/blog/obratnaya_storona_cifrovogo_skitalca https://aleksandr.ru/blog/obratnaya_storona_cifrovogo_skitalca#comments Fri, 11 Nov 2022 23:40:24 +0300 https://aleksandr.ru/blog/obratnaya_storona_cifrovogo_skitalca nonadult aleksandr.ru За жизнь Обратная сторона цифрового скитальца

P21029-155427.jpg

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


P21015-181936.jpg

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

Прилетели, здесь уже ночь. За время полета удалось подремать несколько часов, все затекло и болит шея. В очередной раз задумался о подушке на шею для путешествий, которую некуда положить. Выходим в "кишку" и длинный коридор с тусклым светом, в конце встречают женщины-полицейские и просят паспорт. Они явно удивлены несоответствию цвета паспорта тому, откуда прилетел рейс. Зал паспортного контроля небольшой, опять мутный тусклый свет. Стоим в будку "other countries", хорошо что здесь вопросов не возникает. Пока ждем багаж меняю немного денег автомате-обменнике, трепетно, но все хорошо и в кармане оказываются новенькие купюры. Берем багаж и официальное такси. Опять мутный коридор, бетонный сырой. Выходим на улицу, к такси. Языковой барьер вроде преодолен, "инглиш из окей", едем в отель. Такси вообще лицо страны. Едем, разглядываем виды из окна, здесь вроде уютно, не так уныло как было в аэропорту.

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

P21023-181854.jpg

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

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

P21026-091018.jpg

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

Конец недели. Букинг ругается на карту, но отель подтвердил, что ждет нас и все нормально. Улетаем в ночь, чтоб выиграть день в транзитной локации. Мутный аэропорт теперь выглядит совсем по-другому. Перелет короче чем ожидание в аэропорту, и вот мы уже в другой стране. Опят ночь, но аэропорт просторный и светлый. Первыми пробегаем километры до паспортного контроля, хочется уже быстрее добраться. Здесь в зоне выдачи багажа обмен валют с человеком, меняю немого денег. Курс оказался грабительский, этой фейл. К сожалению, осознание этого пришло когда обмен уже был давно произведен. Стоило потерпеть и менять деньги у самого выхода из аэропорта. Выходим и идем к такси. Тут мы подготовились и точно знаем куда идти и сколько будет стоить.

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

На утро необычный завтрак: растворимый кофе и тарелка закусок, на выбор только омлет от которого можно отказаться или нет. Идем на улицу, чтоб оглядеться. Оказывается мы живем в каком-то рыночном квартале, все первые этажи близлежащих зданий заняты под торговлю автозапчастями и шмотками. Продираемся сквозь толпы непонятных людей навешенные прямо на улице шмотки. Задворки ТПУ, через них до магистрали, оттуда на автостанцию и в парк. Парк большой и бестолковый, но хоть нет кучи непонятных людей. Пронизывающий ветер не дает наслаждаться прогулкой, берем такси и в центр, в туристическую зону. Обед вкусный и сытный, на удивление сработала китайская платежная карта, менять наличные не придется. Вечереет. Возвращаемся пешком, туристическая зона плавно перерастает в уличный рынок. Нужно расслабиться и принять это окружение, не получается из-за пачки денег не поясе, нужно быть внимательным. Хорошо что утром отсюда уезжаем.

Ранее утро. Рыночная суета еще не началась. Ждем такси и помогаем другим постояльцам и сотрудникам с переводом. Едем в аэропорт. Хитросплетения улиц и многоэтажные развязки за окном. Здесь не уютно, хорошо что уезжаем.

P21104-181424.jpg

Тот же аэропорт, новый рейс. В полете предстоит более 4 часов. Прилетаем опять в темноту, другой часовой пояс. Опять весь помятый, видимо 4 часа - это мой предел в самолете. На улице дождь, разгружаемся в автобус. Аэропорт маленький, стоим на паспортный контроль не в очереди, а просто в куче людей. Кто-то лезет, кого-то проводят в обход очереди, уходит куча времени. Как-то пробиваемся к выдаче багажа. Ожидание намного дольше чем на паспортном. Сумка в руках, общаемся с таможней. Невероятно, но в этом аду они весьма приветливы и дружелюбны. Меняем деньги на выходе из аэропорта, 3 часа от входа до выхода это рекорд. Произошло чудо: бесплатный трансфер от отля нас дождался, а таксисты, вместо того чтоб отвезти нас задесятикратную сумму, проводили нас к встречающему. Дождь на улице превратился в ливень, но не смотря на это здесь почему-то уютно. 

Опять начинается рабочая неделя. В этот раз в отеле все хорошо. Нужно привыкнуть к новому часовому поясу, работа теперь начинается в обед, а заканчивается перед сном. Свободное утро позволяет комфортно заниматься делами. Все что хотелось получается сделать на удивление быстро но дороже, чем планировал, но это удобство того стоило.

Новый режим. Теперь двухразовое питание. Завтрак в отеле, вместо обеда разгар рабочего дня, ужин во время обеда на работе, кофе и десерты перед сном. Интернет плохой, как мобильный так и отельный, причем еще зависит от погоды и времени суток. На совещаниях стало сложно, приходится переключаться с wi-fi на мобилу и обратно по нескольку раз. Если бы не проблемы с интернетом, здесь было бы прекрасное место для жизни и работы.

P21031-162215.jpg

Середина недели. Опять выбираем билеты. В этот раз не все гладко. Из-за ошибки в билете приходится до ночи тщетно искать способы исправления, утром забег в поисках представительства авиакомпании по городу. Представительства нет, но агенты по продажам билетов заверяют, что ничего страшного и проблем не будет. Остается еще одно утро, чтоб погулять и ощутить местный колорит. Ощущение уютности не растворилось, здесь действительно все хорошо, кроме интернета. Уезжать не хочется.

День отъезда. Опять дождь. Вместо прогулок простое ожидание. В аэропорт пораньше из-за ошибки в билете, на всякий случай. В маленьком аэропорту опять очереди-кучи по поводу и без. Но мы теперь подготовленные. Способ обхода очереди находит нас сам. Торг здесь везде и во всем. Теперь мы везде первые и все воспринимают это как должное. Даже таможне мы не интересны. Садимся в самолет, в этот раз он большой и просторный. Людей мало. На борту все платное, и еда и питье. Преимущество первых рядов в том, что можно купить что хочется, а не то, что осталось. Хоть и с комфортом, но лететь опять почти 5 часов. Через некоторое время ловлю себя на мысли, что виски омерзительный, а я измотан и хочу домой...

Let’s go chasing stars this evening
Eyes wide shut
In fast cars dreaming
Oooh
We’re tripping at the speed of light
Who thought this could be paradise

[слушать]

]]>
Недостатки Anet ET4 Pro после года использования https://aleksandr.ru/blog/nedostatki_anet_et4_pro_posle_goda_ispolzovaniya https://aleksandr.ru/blog/nedostatki_anet_et4_pro_posle_goda_ispolzovaniya#comments Sun, 09 Oct 2022 17:10:36 +0300 https://aleksandr.ru/blog/nedostatki_anet_et4_pro_posle_goda_ispolzovaniya nonadult aleksandr.ru Железо 3D Недостатки Anet ET4 Pro после года использования

Anet ET4 Pro

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


Спешу разочаровать тех, кто ждет ниже много картинок - их не будет. Будет только "многа букаф" рассуждений о причинах и следствиях, и как со всем этим жить.

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

Начало печати

Перед началом печати, когда пластик уже загружен и все разогрето, за то время, пока принтер позиционирует головку к точке начала, из сопла успевает вытечь ниточка пластика. Если не убирать этот кусочек, то он может стать частью модели или остаться бугорком на юбке/кайме. В целом, это не страшно для большинства моделей, но из-за того, что часть пластика вытекла, принтер начинает печатать не сразу т.к. пластик из сопла ушел, а подача рассчитана на то, что он там есть. Это можно легко компенсировать более широкой юбкой или каймой, но в случае с подложкой так не получится. Справедливости ради отмечу, что на качество подложки это не влияет, по крайней мере у меня проблем не было. С этим можно побороться уменьшив температуру печати первого слоя и/или увеличив поток пластика для него.

А что касается вытекания пластика, то было бы очень кстати, если бы перед началом печати была процедура очистки (как, например, у Flying Bear), когда головка проходит по краю стола и оставляет там все вытекшие сопли. В принципе, если заморочиться, можно самому написать этот G-код и добавить в профиль в слайсере, но это уже совсем не для новичков.

Температура

В целом, принтер быстро нагревается и нормально держит температуру при печати PLA пластиком. Однако, для нормальной печати PLA у меня выставлено 215 и 60 градусов сопло и стол соответсвенно (против рекомендованных 190 и 50 для большинства PLA). Это говорит о проблемах либо с нагревателем, либо с термодатчиком, либо с софтом. Сейчас я склонен верить в то, что возможные проблемы связаны с моими многочисленными сборками-разборками хотэнда. И если говорить о печати PLA, то это вообще не страшно т.к. подкрутил температуру и все печатает. 

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

Открытая конструкция

Это продолжение истории про температуру. Конструкция принтера известная и хорошо себя зарекомендовала за годы у разных производителей. Но она хороша, когда принтер стоит в отдельном помещении, где нет сквозняков, а лучше вообще нет движения воздуха. Но если принтер стоит рядом с балконной дверью (как у меня) или в комнате есть кондиционер или другое устройство вентиляции, то как только начинается движение воздуха или изменение его температуры, то резко возрастает вероятность того, что деталь оторвет от стола. Эти риски можно снизить если (не выходить на балкон во время печати и не включать кондиционер) и использовать кант для улучшения прилипания к столу. Чем шире кант, тем лучше он будет держать деталь или примет удар на себя. И тут нет особой разницы какой у вас стол: родное стекло или наклейка, или ультрабаза. 

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

Проблемная высота стола

Вот этот момент выпил, наверное, больше всего крови. Одна из фишек принтера - это датчик высоты головки над столом, который позволяет провести автоматическую калибровку положения стола по 9 точкам. Однако, это не избавляет вас от необходимости в ручную выставить высоту стола при помощи гаек, а лишь показывает насколько криво вы их накрутили. При этом намеренные значения при авто калибровке теряются после выключения принтера. И тут нужно либо после каждого включения прогонять авто-калибровку (что с большой вероятностью кончится правкой положения стола, которое займет много времени и отобьет желание что-то печатать) или один раз поставить "более-менее нормально" и печатать без мучительной подготовки.

Вторая часть проблемы - это то, что при первой и последующих печатях после включения принтер выставляет головку на разной высоте от стола! Если при первой печати все хорошо, то при второй почти гарантировано, что модель отлипнет тк головка слишком высоко. И тут нужно либо делать мучительную авто-калибровку после каждого включения, либо делать фиктивную печать маленькой детали без пластика (у меня это просто квадратик толщиной в 1 слой). Далее все идет более-мнее стабильно, хотя если печатать много подряд наблюдается, что положение головки становится опять выше, чем хотелось. Уж не знаю с чем связано такое нелогичное поведение, то-ли что-то прогревается и ведет себя по-разному, это может быть как деформация стола, так и разница в показаниях датчика, который висит прямо на горячем хотэнде, то-ли это просто программный глюк, связанный с отсутствием значений авто-калибровки. По началу это очень портило жизнь т.к. превращало печать в лотерею или мучительную подготовку.

Все

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

Поскольку сейчас все большую популярность набирает тренд "критикуешь - предлагай", то если бы сейчас мне предстояло выбрать 3D-принтер, то были бы нелегкие терзания между следующими вариантами:

FlashForge Adventurer 3: компактный и дорогой, максимально упрощенный, но для 90% задач его вполне хватит. Достоинства: малый размер, закрытая конструкция, даже катушка с пластиком прячется в корпусе, не нужна регулировка стола, есть своя память, нормальный разъем USB-A (а не microSD карточка) и wi-fi, печать идет из памяти принтера, а не с носителя. Недостатки: цена, свой слайсер, малая область печати, в корпус не влезет большая (стандартная) катушка пластика, bowden экструдер.

Flying Bear Ghost 6: это просто супер-агрегат за доступную цену. Достоинства: direct экструдер, усиленная механика, железный корпус и хороший запас по температуре, для печати всем, что только можно, простая калибровка по 4 точкам без заморочек со всякими датчиками, цена. Недостатки: размер, странная шапка со щелями, которые явно усложнят поддержание правильной температуры при печати высокотемпературным пластиком.

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

]]>
Прошёл второй год стройки ЖД-макета дома https://aleksandr.ru/blog/proshel_vtoroy_god_stroyki_zhd_maketa_doma https://aleksandr.ru/blog/proshel_vtoroy_god_stroyki_zhd_maketa_doma#comments Sun, 18 Sep 2022 14:44:38 +0300 https://aleksandr.ru/blog/proshel_vtoroy_god_stroyki_zhd_maketa_doma nonadult aleksandr.ru Хобби H0 1:87 Прошёл второй год стройки ЖД-макета дома

Мой макет

Прошел еще год стройки макета дома. Активная фаза строительства завершена и можно подводить итоги. Сделано все, что было задумано: все построено, подключено, светится и ездит. Остались какие-то вещи на уровне обслуживания и автоматизации, но глобально стройка завершена. Здесь как с ремонтом, его невозможно закончить, можно только прекратить. Всегда останется что улучшить, доделать или переделать.


Не могу сказать, что за прошедший год уделял макету столько времени, сколько планировал год назад. Но даже не смотря на это, удалось довести макет до состояния, в котором в него можно играться. Это очень важно, поскольку теперь можно пользоваться плодами длительного процесса стройки, а не только строить и строить. Результат достигнут.

Макет ночью

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

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

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

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

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

Вечерний макет

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

На свое хобби я потратил 262.000 руб. за два года, сюда включена фиктивная стоимость строений и не включена стоимость существующего подвижного состава, так же не включена стоимость будущих закупок человечков и уже купленных автомобилей. Если грубо округлить, то получим примерно 300.000 руб. без стоимости подвижного состава. Много это или мало, каждый решает сам, а для меня главным результатом этих трат стал совсем не маленький мир под прозрачным колпаком, и даже не радость от процесса его постройки, а тот бесценный опыт и умения, которые удалось приобрести за это время. Это тот случай, когда саморазвитие происходит с удовольствием.

Я намеренно не учитываю стоимость подвижного состава в расходах, поскольку он не фиксируется на макете (машинки, кстати, тоже). Опять же, подвижного состава может быть больше, чем позволяет макет и его можно менять, чтоб было интереснее. Тем не менее, локомотивы и вагоны добавят еще примерно 100.000-200.000 руб. к расходам на макет, такой разброс в цене обусловлен большой разницей в цене моделей в зависимости от функций и производителя. Ну а стоимость автотранспорта сейчас сочтем пренебрежимо малой на фоне ЖД транспорта.

Итого, чтоб получить макет железной дороги дом из ничего, вам всего-то понадобится пол-миллиона денег и пару лет свободного времени по вечерам :)

Поезд ночью на станции

Немного о грустном

Ремонт Piko BR-120

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

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

  • Breuer Traktor ждал 10 лет на полке, чтоб оказаться непригодным из-за того, что его конструкция подвержена диагональному вывешиванию, которое мешает преодолевать неровности путей и стрелки с изолированной крестовиной. Возможно, что-то удастся придумать со временем, но для уверенных маневровых работ нужна замена с независимой подвеской колес.
  • BR-120 269-6 возрастом более 30 лет, который резво бегал в аналоге и лишь немногим более 10 лет назад был оцифрован, так же зря провел все эти годы на полке. К моменту начла эксплуатации на макете обнаружился серьезный дефект ходовой, который не удалось устранить ни заменой шестерней, ни запчастями с брата-близнеца. Для него теперь нужна эквивалентная замена.

Ввиду этих событий, приобретение современной модели паровоза для таскания пассажирских вагонов откладывается до лучших времен, и я снова возвращаюсь к мысли об оцифровке старенького BR-64, купленного как раз под эти цели, но выглядящего уже совсем не солидно на фоне современных моделей. Теперь как раз есть возможность взять декодер для оцифровки из BR-120 и лампочку для освещения кабины из стартового BR-80, декодер в котором сгорел нарезая круги под новогодней елкой из-за плохого токосъема на старых П-образных рельсах еще до начала стройки макета. 

Все эти потери увеличивают расходы на макет на стоимость 2-3 локомотивов, а это 50.000-80.000 руб. по сегодняшним ценам.

О планах на будущее

Сейчас будущее весьма туманно, но в оптимистичном раскладе хотелось бы еще кое-что сделать. Впереди закупка и расстановка жителей и другой мелочевки на макете. Помимо этого предстоит еще вынужденная замена вышедшего из строя подвижного состава. Так же предстоит установить крышки снизу и реализовать сценарии автоматического движения на макете.

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

]]>
Когда лень придумывать сообщение коммита https://aleksandr.ru/blog/kogda_len_pridumivat_soobschenie_kommita https://aleksandr.ru/blog/kogda_len_pridumivat_soobschenie_kommita#comments Fri, 16 Sep 2022 23:44:56 +0300 https://aleksandr.ru/blog/kogda_len_pridumivat_soobschenie_kommita nonadult aleksandr.ru Про работу Git Когда лень придумывать сообщение коммита

git

Попалась в пятницу вечером ссылка на ресурс http://whatthecommit.com, который генерирует случайные сообщения для коммитов.


Мне регулярно бывает лень выдумывать сообщение или описывать, что сделано в промежуточном коммите, поэтому ресурс оказался мне полезным. Сначала написал скрипт, который достает сообщение из HTML, но чуть позже подсказали, что есть просто текстовая версия, и все стало в разы проще.

Добавляем в ~/.bash_profile или в ~/.bash_aliases (для Ubuntu)

alias mycommit='git commit -m "$(curl -s https://whatthecommit.com/index.txt)"'

и теперь в репозитории

> git add .
> mycommit
[master (корневой коммит) d54a765] somebody keeps erasing my changes.
 1 file changed, 1 insertion(+)

> git add .
> mycommit
[master cc07fca] these guys are flipped
 1 file changed, 1 insertion(+), 1 deletion(-)

> git add .
> mycommit
[master 558033b] Commit committed....
 1 file changed, 2 insertions(+)

 То, что надо! 

]]>
Компьютерное управление макетом железной дороги https://aleksandr.ru/blog/kompyuternoe_upravlenie_maketom_zheleznoy_dorogi https://aleksandr.ru/blog/kompyuternoe_upravlenie_maketom_zheleznoy_dorogi#comments Tue, 13 Sep 2022 22:52:21 +0300 https://aleksandr.ru/blog/kompyuternoe_upravlenie_maketom_zheleznoy_dorogi nonadult aleksandr.ru Хобби Raspberry Pi Python Компьютерное управление макетом железной дороги

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

В качестве компьютера, управляющего моим макетом выступает малютка Raspberry Pi 3. Само по себе "компьютерное управление" делится на две части: взаимодействие с аппаратным пультом управления макетом (экран, кнопки) и автоматика в движении поездов на макете.


Перед тем как чем-то управлять, нужно подключить все органы управления, а именно кнопки и экран от пульта управления и последовательный порт от модуля RocoBus. В общем виде схема подключения к разъему GPIO выглядит так:

Подключение к GPIO

Физически - то три разъема dupont: кнопки со светом, i2c дисплей, последовательный порт и еще один провод, который туда не вписался. Для того, чтоб это все могло работать нужно провести настройки на Raspbery. 

sudo raspi-config

В меню выбираем "Interfacing Options" 

И там включаем три пункта: SSH, I2C, Serial. SSH понадобится, чтоб крутить что-то без монитора и клавиатуры по сети, I2C для работы LCD экрана, Serial - для RocoBus.

А для того, чтоб подключить гребенку GPIO в стандартный разъем DB9 на рокобасе, потребуется RS232 to TTL Serial Port Converter с али. По непонятным пока причинам конструкция с последовательным портом на гребенке GPIO в связке с RocRail не взлетела, но, на удивление, заработало через самый бюджетный кабель HL-340 USB, приобретенный вместе конвертером так же на али. И еще удивительно, что не заработало через более дорогой кабель USB-RS232 на (якобы) чипе FTDI купленный в РФ, через который прописывал номера модулям обратной связи.

И раз уж затронул тему модулей обратной связи, то в процессе присвоения им номеров столкнулся с некоторыми трудностями. На MacOS не удалось подключиться к модулям FB2 через фирменный софт "Диспетчер", запущенный в эмуляторе CrossOver, даже руками прописав в wine порт, который появляется после подключения USB-Serial кабеля к маку. Порт становился доступен, но ничего не работает. Зато прекрасно все удалось сделать через Windows XP, запущенный в VirtualBox. 

Возвращаясь к малине, так же рекомендую для экономии ресурсов и уменьшения тепловыделения отключить Wi-fi, Bluetooth и звук. Для этого идем в файл /boot/config.txt и находим там строчку

# Additional overlays and parameters are documented /boot/overlays/README

ниже нее добавляем

dtoverlay=disable-wifi
dtoverlay=disable-bt

а еще ниже комментируем или меняем

# dtparam=audio=on
dtparam=audio=off

После всех этих действий придется перезагрузиться.

Работа с пультом управления

Экран и кнопки пульта управления макетом

Здесь придется немного освоить лже-язык программирования Python. Почему "лже", это мое субъективное мнение и останется за пределами этого поста. Для начала доставим немного софта из интернета

sudo apt-get install git i2c-tools python3-smbus python3-pip

Затем узнаем i2c-адрес нашего дисплея с помощью

i2cdetect -y 1

Если он отличается от 27, то нужно будет править в исходниках далее.

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

sudo pip install RPLCD

И напишем коротенькую программу, которая будет показывать температуру и IP-адрес на экране, а так же отображать спиннер-индикатор, что все не повисло:

import os
from time import sleep 
from RPLCD.i2c import CharLCD

def get_ip():
    out = os.popen("hostname -I").readline()
    return out.strip()

def get_temp():
    out = os.popen("vcgencmd measure_temp").readline()
    return out.replace("temp=", "").strip()

backslash = (
        0b00000,
        0b10000,
        0b01000,
        0b00100,
        0b00010,
        0b00001,
        0b00000,
        0b00000
        )
lcd = CharLCD('PCF8574', 0x27, rows=2, cols=16)
lcd.create_char(0, backslash)
lcd.clear()

ip = old_ip = temp = old_temp = ''
star = ["|", "/", "-", '\x00']
s = 0

while True:
    if s >= len(star): s = 0
    lcd.cursor_pos = (0, 15)
    lcd.write_string(star[s])
    s += 1

    if s % 2:
        temp = get_temp()
        if old_temp != temp:
            old_temp = temp
            lcd.cursor_pos = (0, 0)
            lcd.write_string(temp)

        ip = get_ip()
        if old_ip != ip:
            old_ip = ip
            lcd.cursor_pos = (1, 0)
            lcd.write_string(ip)

    sleep(1)

lcd.clear()

Логика работы простая: мы раз в 2 секунды получаем IP адрес и измеряем температуру, и если значение изменилось, перерисовываем его на экране. Спиннер рисуем последовательным перебором символов из массива, один из которых, обратный слэш, отсутствующий в нашем дисплее, приходится создавать вручную. Программу можно запускать при старте системы и иметь на дисплее актуальную информацию во время пользования макетом.

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

Теперь кнопки. Для начала просто сделаем возможность включать и выключать подсветку кнопки при нажатии на нее. Программу так же можно запускать при старте системы и играться в кнопки :)

Ставим прослойку для работы с GPIO 

sudo apt-get install python3-gpiozero

И пишем простую программу, которая будет переключать светодиоды в кнопках по нажатию:

from gpiozero import LED, Button
from time import sleep 
from signal import pause

YL = 13
YB = 16
GL = 19
GB = 20
RL = 26
RB = 21

debounce = 0.3

red_led = LED(RL)
red_btn = Button(RB)
green_led = LED(GL)
green_btn = Button(GB)
yellow_led = LED(YL)
yellow_btn = Button(YB)

def on_red(btn):
    red_led.toggle()
    print("red", red_led.value)
    sleep(debounce)

def on_green(btn):
    green_led.toggle()
    print("green", green_led.value)
    sleep(debounce)

def on_yellow(btn):
    yellow_led.toggle()
    print("yellow", yellow_led.value)
    sleep(debounce)


red_btn.when_pressed = on_red
green_btn.when_pressed = on_green
yellow_btn.when_pressed = on_yellow

pause()

Я специально сделал три почти одинаковых обработчика нажатия на кнопки для того, чтобы потом, при включении и выключении подсветки кнопки, добавить выполнение команд в системе. Желтая кнопка - при включении запуск vlc и начало вещания картинки с камеры в сеть, при выключении закрытие vlc. Зеленая кнопка - при включении запустить RocRail (если еще не запущен) и включить автоматический режим движения поездов на макете, при выключении отключить автоматический режим. Красная кнопка - при включении остановить все на макете на случай аварии, при отключении выключить режим "stop". Так же следует добавить периодическую проверку происходящего, чтоб состояния индикаторов на кнопках соответствовали происходящему, например, чтоб красная загоралась так же при нажатии "stop" на рокомышке, а зеленая выключалась, если рокрейл по каким-то причинам вышел из автоматического режима. Обо всем этом будет отдельный пост по мере развития.

Автоматизация движения

Схема макета в RocRail

Для автоматизации движения поездов на макете буду использовать RocRail. Точнее его серверную часть, установленную на Raspberry и клиентскую часть на своем ноутбуке.

Все дальнейшее описание будет относительно моей конфигурации: командная станция Roco Multimaus (не путать с Z21) и 9 модулей обратной связи от Modelldepo (8 из которых FB2 и один RocoBus2 для связи с рокрейл). Перед началом во все модули были прописаны адреса по порядку, модуль рокобас получил номер 4.

На малине качаем и распаковываем рокрейл по инструкции. Затем запускаем сервер, для этого есть готовый rocrail.sh в папке куда распаковали. Теперь идем на ноутбук, там открываем рокрейл и подключаемся к серверу. Теперь весь вывод данных от сервера мы получим в области слева внизу окна.

Теперь согласно инструкции от рокобас добавляем нашу командную станцию. Некоторые замечания, относительно Raspberry pi: порт /dev/ttyS0 - это тот что на GPIO, а /dev/usbTTY0 - это usb-переходник. Так же в списке будет еще порт - это последовательный порт bluetooth, который никак не пригодится.

В том же диалоге свойств интерфейса в блоке Sensors поле Number - это количество модулей обратной связи (в моем случае 9), а не количество датчиков на них. Теперь можно переходить к рисованию схемы.

Добавление датчиков обратной связи

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

Адрес = (Номер модуля на шине - 1) * 8 + Номер порта + 1

Например для 5-го порта на 3 модуле получится адрес 22, а для 0-го порта на 4 модуле - 25.

Управление стрелками

Поскольку я использую собственные декодеры для управления стрелками, то готового рецепта адресации в рокрейл для них нет. Мои декодеры реализуют максимально простую адресацию, где один адрес = одна стрелка. Это вполне очевидно работает на рокомышке, а вот в рокрейле все сложнее, но вполне решаемо, если применить FADA-адресацию (когда порт всегда 0) и адрес стрелки вычислять по формуле

Адрес = (Номер на рокомыши - 1) * 2 + 1

Таким образом стрелка 1 имеет адрес 1, а стрелка 5 - адрес 9. Далее на вкладке Wiring надо указать датчики обратной связи, через которые рокрейл будет понимать положение и занятость стрелки.

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

Блоки

Теперь можно собирать блоки. В блоках следует использовать как можно больше датчиков для начала, а далее можно будет скорректировать, в зависимости от целей автоматизации движения. На моей схеме получились блоки, содержащие от 3 до 5 датчиков. Если блок не тупиковый, то важно описать все датчики как в прямом направлении (+) так и в обратном (-), на вкладке Routing в свойствах блока для этого есть два первых маршрута. Каждому датчику надо присвоить событие, которое будет происходить при попадании поезда на него. 

Локомотивы

Локомотивы добавляются через список в меню Tables. В принципе, для них достаточно задать лишь адрес, но при настройках по-умолчанию на моем маленьком макете локомотив Herkules от Piko несется крайне быстро и выглядит это не очень. Поэтому на вкладке Speed я уменьшил максимальную скорость до 40, а минимальную наоборот поднял до 11. Остальные значение выставил примерно пропорционально. Теперь локомотив едет красиво между блоками и ползет без рывков перед остановкой. Для других локомотивов, естественно, будут другие параметры, например, Breuer Traktor от Rivarossi начинает нормально ехать без рывков только на 30% мощности, а при 100% ползет совсем не быстро.

Поехали!

Теперь в меню File -> Routing -> Routing запускаем генерацию маршрутов для автоматики, дожидаемся, пока он все построит. На моей схеме получилось аж 44 маршрута! Включаем питание и автоматический режим. Назначаем локомотив в блок в котором он физически находится, перетаскиваем его мышкой в другой блок и... если все сделано правильно, наблюдаем чудо, сначала на схеме строится маршрут следования, затем начинают переключаться стрелки и поезд поехал! Прибыв в нужный блок, он плавно тормозит, медленно подползает к концу и останавливается. А если этот блок не был конечным, то снова переключаются стрелки и начинается движение дальше...

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

]]>