aleksandr.ru - блог https://aleksandr.ru/blog Последние посты блога Sat, 25 May 2024 14:49:38 +0300 ru aleksandr.ru Супер-пупер часоиды https://aleksandr.ru/blog/super_puper_chasoidi https://aleksandr.ru/blog/super_puper_chasoidi#comments Sat, 25 May 2024 14:49:38 +0300 https://aleksandr.ru/blog/super_puper_chasoidi nonadult aleksandr.ru Железо 3D Arduino Супер-пупер часоиды

Супер-пупер часы

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


Да, в современных часах сейчас обычно встречаются только черно-серые LCD экраны, в лучшем случае с подсветкой по кнопке, а VFD - это удел дорогой аудио техники, потому, что в нем есть что-то теплое, ламповое... и, конечно, цена.

Итак, главный герой наших часов - это 16-символьный VFD экран Futaba 16-SD-13GINK с зеленым оттенком свечения. Это самый дорогой компонент в часах, но он того стоит. Я давно хотел что-то сделать с VFD дисплеем, но всегда отпугивала цена и то, что большинство таких дисплеев продавались вообще без всякой обвязки, а тут есть вариант с SPI и даже с UART. За магическую красоту VFD свечения приходится платить не только деньгами, потребление у такого дисплея составляет почти 200 мА, это не критично, но нужно учитывать. А еще нет никакой официальной библиотеки для работы в ардуино-среде с этим дисплеем. Пришлось разбираться и писать свою библиотеку на основе разных неофициальных и информации из даташита. Приятный момент, что в памяти самого дисплея уже "прошит" русский алфавит.

Открытый корпус

Второстепенное действующее лицо - датчик SCD40, тоже недешевый модуль и весьма интеллектуальное устройство. Он измеряет концентрацию CO2 в диапазоне 400-2000 ppm, что вполне достаточно для домашнего использования (более дорогой SCD41 в данном случае не имеет смысла). Для этого датчика есть официальная библиотека от производителя. В качестве бонуса этот датчик умеет мерить еще температуру и влажность.

Далее интересный модуль, который совмещает на одной плате AHT20 + BMP280 (термометр и барометр). Модуль AHT20 умеет измерять температуру и влажность, а BMP280 - атмосферное давление и температуру. Продавец заявляет, что вся эта конструкция работает от 5В, хотя в спецификации BMP280 заявлено 3.3В. Поэтому, по примеру индуса с ютуба, я использовал линию 3.3В для питания модуля, а логические пины не трогал, и оно пока нормально работает. Хотя, стоило бы использовать конвертер уровней для собственного спокойствия.

Ну и конечно, сами часы - модуль RTC DS1307. Он предполагает использование аккумулятора LIR2032, который можно заменить батарейкой CR2032. И что удивительно, там тоже предусмотрен датчик температуры, на плате подготовлено место под впаивание DS18B20. На модуле есть 2 набора ножек, что облегчает подключение следующего устройства на шине.

Из мелочей, датчик освещенности - делитель напряжения из фоторезистора 5506 и обычного резистора 1кОм, и стандартные кнопки 6х6х4.3 в DIP корпусе.

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

Модель корпуса

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

Не смотря на то, что все модули подключаются по I2C, научить их слаженно работать всем вместе у меня не получилось. Возможно, дело было в глючной LGT8F328P (которую в результате пришлось заменить на Arduino Nano); или в самописной библиотеке управления дисплеем (которая приводит к зависанию даже не глючной LGT8F328P при использовании I2C и Serial); или в самих модулях и их библиотеках, которые некорректно реализуют совместную работу на одной шине.

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

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

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

С SCD40 все не так просто, там тоже есть возможность принудительного блокирующего измерения, но оно занимает не менее 5 секунд, поэтому в таком режиме работать нельзя. Но у него есть команды включения и выключения режима периодических измерений, используя которые можно дождаться появления данных, выключить и перейти к другому датчику. Однако, если так делать, то теряется возможность автоматической калибровки, которая происходит примерно через 7 дней непрерывных измерений. С SCD40 считывается концентрация CO2 и влажность. У него есть возможность корректировки измерений на атмосферное давление, поэтому барометр рядом весьма кстати.

Алгоритм автоматической калибровки SCD40 предполагает, что хотя бы раз в неделю сенсор находится в чистом воздухе (концентрация CO2 ~400 ppm), что, в общем, типично для жилых помещений. К счастью, SCD40 нормально работает в режиме постоянно включенного периодического измерения, если барометр BMP280 вклинивается в режиме принудительного измерения раз в несколько секунд. Подробнее про возможности и особенности SCD40 и SCD41 можно тут и тут. На практике оказалось, что, похоже, можно прерывать процесс периодических измерений и даже выключать питание, корректировка показаний все равно происходит.

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

Схема получилась очень простой и не вижу смысла ее описывать. Исходный код, включая библиотеку для управления VFD дисплеем доступен на моем гитхабе. 3D-модель корпуса можно скачать с моего thingiverse.

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

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

]]>
Электросцепка для Piko BR78 https://aleksandr.ru/blog/elektroscepka_dlya_piko_br78 https://aleksandr.ru/blog/elektroscepka_dlya_piko_br78#comments Thu, 21 Mar 2024 17:45:38 +0300 https://aleksandr.ru/blog/elektroscepka_dlya_piko_br78 nonadult aleksandr.ru Хобби H0 1:87 Piko Электросцепка для Piko BR78

Piko BR 78 с электромагнитной сцепкой ESU 41002

Спустя чуть больше года эксплуатации Piko 50614 на макете, я решил дооснастить паровоз автоматической цифровой электромагнитной сцепкой ESU 41002.


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

Основываясь на удачном опыте с Piko 52440, я буду использовать декодер ESU LokPilot 5, который так же решит проблему с эффектом огня в топке, о которой писал в предыдущем посте. Для управления сцепкой я изначально хотел использовать выход AUX5, отведенный под дымогенератор, который я никогда не планирую его устанавливать.

Плата Piko 50614

На плате контактная площадка этого выхода накрыта разъемом для подключения освещения будки, поэтому припаять к ней провод сцепки, не повредив разъем, не получится. Зато рядом есть доступные площадки AUX6 и AUX7, которые в других версиях модели отвечают за передний и задний прожекторы, но поскольку у меня прожекторов нет, буду использовать AUX7. Это сразу накладывает ограничение на выбор используемого декодера: для управления сцепкой нужен силовой выход, а у многих производителей они заканчиваются на AUX4, к моему счастью у LokPilot 5 все выходы силовые.

Установка сцепки

Установка сцепки началась с неожиданных проблем, добраться снизу до защелки, которая держит сцепку в NEM-шахте, нет возможности, она надежно прикрыта декоративным бачком.

Передняя тележка Piko 50614

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

Крепеж сцепки Piko 50614

Со сцепками у Piko BR 78 вообще все не очень здорово. Я снял переднюю сцепку и заменил накладные детали на те, что были в комплекте для варианта "без сцепки". Но при прохождении радиуса 371 мм. выступающая часть телеги упирается в свисающие накладные и... ну в общем как повезет, либо упрется и паровоз застрянет, либо телега снесет накладные или сломает их. Накладные пришлось оставить те, что были изначально, зря только их снимал.

От задней, теперь электромагнитной, сцепки я проложил провода между тележкой и корпусом, внутрь пропустил там же, где проходят провода токосъема с тележки. Родные провода от сцепки ESU 41002 пришлось удлинить почти в 3 раза, поскольку их хватало только до противоположного края тележки. Учитывая предыдущий опыт с проводами, я закупил специальный тонкий провод 30 AWG, и он действительно пригодился. 

Внутри модели все оказалось несравнимо сложнее, чем в подготовленной под сцепки Piko 52440. Плата утоплена в корпус, поэтому подлезть паяльником, чтоб припаять провода сцепки не получится (наверное можно попробовать но риск поверить корпус слишком велик). Плюс отверстие, через которое вхоядят провода от сцепки в корпус находятся под платой, поэтому ее точно придется снимать.

Piko BR 78 изнутри

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

Это была простая часть, теперь сложное. Плата держится на 3 винтах, два видны сразу, а вот третий... находится под мотором! Что бы туда добраться нужно: освободить все провода, которые красиво проложены под котлом, отвернуть 2 винта на крышке мотора, по которой были проложены провода, используя запас проводов, плотно сложенный в будке, снять крышку над мотором.

Мотор Piko 50614

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

Пружинные контакты Piko 50614

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

Разобранный Piko 50614

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

Настройка декодера

Далее по тексту снова будут отсылки к страницам инструкции для декодера ESU LokPilot 5, которую можно скачать отсюда.

Первым делом произвожу рекомендованные настройки для моторов Piko и затем автоматическую калибровку мотора: нужно записать CV54=0 и нажать F1 на пульте, модель проедет почти 1 метр на полной скорости и запишет себе CV51-55. Подробнее см. страницу 53 и 55 из инструкции:

  CV2 CV9 CV51 CV52 CV53 CV54 CV55 CV56 CV116 CV117 CV118 CV119
По-умолчанию 3 40 10 10 130 50 100 255 50 150 15 20
PIKO® 5-Pol Motors (new Motor) 3 25 15 20 110 30 40 220 50 100 10 25
Результат авто калибровки     11 5 83 24 23          

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

Теперь произвожу настройку выхода AUX7 для управления сцепкой, см. страницу 65 инструкции:

  CV Значение  
Index register 31 16 12.2.1. Index CV access, стр. 56
Index register 32 0 12.2.1. Index CV access, стр. 56
AUX7 Mode Select CV 323 33 Autocoupler coil#2
AUX7 Switching-On/-Off Delay 324 3 Range 0-15, Time 0-6,144 sec
AUX7 Automatic Switch Off 325 4 unit is 0.4 sec * 5 = 2.0 seс
AUX7 Brightness CV 326 8 range 0 - 31

Значение для Mode Select CV равное 33 (Autocoupler coil#2) нет в документации, взято из LokProgrammer и еще одной неофициальной инструкции.

Задержка "Switching-On/-Off Delay" нужна для того, чтоб сцепка не включалась сразу при толкании в рамках маневра расцепления, это немного снизит ее износ. В ручном режиме эта настройка не имеет смысла.

Можно проверить работу сцепки в ручном режиме кнопкой F9. Будьте готовы сразу убрать модель с рельсов, чтоб не спалить сцепку, если что-то пойдет не так.

После успешной проверки нужно задать параметры маневра автоматического расцепления (см. стр. 83 инструкции):

  CV Значение  
Automatic decoupling speed 246 16 range 0 - 255
Automatic decoupling move 247 44 unit is 0.016 sec * 125 = 0.64 sec
Automatic decoupling push 248 15 unit is 0.016 sec * 49 = 0.12 sec

И затем изменить настройки работы кнопки F7 на вызов маневра расцепления, а кнопке F9 задать активацию AUX5, который не используется дла того, что бы один выход не активировался двумя кнопками (см. страницы 60 и 61):

  CV Значение  
Index register 32 3  
Row 10 Control CV A 401 4 Locomotive is stopped = 2, Direction is forward = 4
Row 10 Control CV C 403 4 Key F7 is On = 4, это по идее уже есть там
Row 12 Control CV C 467 64 Key F9 is On = 64, нужно проверить что это там
Index register 32 8  
Row 10 Control CV K 401 0 Output AUX5 On = 64, это было там в оригинале
Row 10 Control CV L 402 1 Output AUX7 On = 1
Row 10 Control CV N 404 64 Uncoupling cycle = 64
Row 12 Control CV K 433 64 Output AUX5 On = 64
Row 12 Control CV L 434 0 Output AUX7 On = 1, это было там в оригинале

Я меняю значения в 10 и 12 рядах, это отличается от информации в таблице "Function Mapping Chart" со стр. 58 инструкции, нужные ряды были найдены опытным путем.

Снова не получится использовать условие "если локомотив остановлен" (зачеркнуто в таблице), которое ломает выполнение "маневрового танго".

Эффект топки

Завершающим этапом я настроил выход AUX4 на режим "интеллектуальной топки", в котором интенсивность эффекта будет зависеть от скорости движения, см. "12.5.1. Available lighting effects" на странице 66. Кроме ручного включения по кнопке F6 я добавил автоматизацию, чтоб топка светилась во время движения (см. таблицу на стр. 58):

  CV Значение  
Index register 31 16 12.2.1. Index CV access, стр. 56
Index register 32 0 12.2.1. Index CV access, стр. 56
AUX4 Mode Select CV 299 4 Firebox = 3, Intelligent firebox  = 4
AUX4 Brightness CV 302 16 range 0 - 31
Index register 32 4  
Row 24 Control CV A 369 1 Locomotive drives = 1
Index register 32 9  
Row 24 Control CV K 369 32 Output AUX4 On = 32

Я использовал ряд 24 из "Function Mapping Chart", как первый не занятый функциональными выходами. Описания значений есть в разделе "12.2.2.1. Conditions block" на страницах 60 и 61. В принципе, можно использовать любой другой ряд на выбор из "Default mapping LokPilot 5 Decoder" со стр. 64.

После всего проделанного

В результате все получилось, хоть я и не совсем доволен. Сначала о негативном. Попытка сделать спереди красивую декоративную сцепку провалилась. Видимо, декоративные накладные можно ставить только при эксплуатации на больших радиусах, не спроста на официальном cайте написано, что минимальный радиус 422 мм. (R2). 

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

После замены декодера Lenz Silver+ на ESU LokPilot 5, ход модели и изменился и стал похож на Piko 52440​​​​​​​. Опять закралась мысль, что вроде едет хорошо, но звук не нравится, что если надо было все таки удалить конденсатор C4, пока плата была в руках... С этой мыслью, видимо, мне еще долго предстоит мириться, поскольку повторять опыт доставания платы я совсем не хочу. Да и в декодере есть еще масса настроек, которые можно покрутить, чтоб что-то улучшилось.

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

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

P.S.

Я еще раз проникся сцепками "роко универсальная" (Roco 40397), помимо того, что они легко сцепляются-расцепляются и надежно держат, при их использовании расстояние между вагонами заметно уменьшается и состав выглядит более натурально.

]]>
Piko 52440 Diesellok D.141 FS IV https://aleksandr.ru/blog/piko_52440_diesellok_d_141_fs_iv https://aleksandr.ru/blog/piko_52440_diesellok_d_141_fs_iv#comments Sun, 10 Mar 2024 17:01:51 +0300 https://aleksandr.ru/blog/piko_52440_diesellok_d_141_fs_iv nonadult aleksandr.ru Хобби H0 1:87 Piko Обзор Piko 52440 Diesellok D.141 FS IV

Piko 52440 на макете

Невероятные приключения итальянца в России! Это еще один локомотив, который был куплен просто потому, что понравился, не взирая на приписку к FS. А поскольку он маневровый, то был так же приобретен комплект электромагнитных цифровых сцепок ESU 41002. Таким образом я попробую сделать крутую модель за недорого.


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

Именно эта модель была выбрана из всей серии за черные поручни и минимум желтого на кузове. А всего в таком кузове я насчитал 8 моделей для постоянного тока, артикулы: 52440, 52440, 52447, 52449, 52450, 52451, 52452, 55912; которые отличаются окрасом, наличием звука и декодера, и последний, expert plus еще и с автоматическими сцепками.

В комплекте есть накладные детали, если захочется выкинуть сцепки или сделать модель стендовой. Но это не наш случай.

Упаковка Piko 52440

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

Piko 52440

Сама модель смотрится восхитительно благодаря прекрасной проработке деталей, не даром столько внимания этому уделили в рекламном ролике.

Видео на youtube

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

Подсветка приборов Piko 52440

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

Вскрытие модели

На картинке из инструкции модель разбирается несложно, нужно вывернуть 2 винта под кабиной:

Винт под кабиной Piko 52440

А затем немного отвести поручни в сторону от кабины и снять кузов вверх:

Поручни на кабине Piko 52440

Но на практике все не так просто. Вывернув винты, корпус и не думает сдвигаться с места. Мне удалось его подцепить только с передней стороны локомотива. Для этого пригодился пластиковый инструмент для разбора мобильников с али.

Снятие корпуса Piko 52440

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

Открытый корпус Piko 52440

В самом корпусе, кстати, тоже есть грузы для увеличения массы локомотива. А под корпусом приятно радует наличие пауэр-пака: ионистор 3V 1F и контроллер к нему.

Установка декодера

Далее в тексте периодически будут отсылки к страницам инструкции для декодера ESU LokPilot 5, которую можно скачать отсюда.

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

Распиновка разъема Plux22 на плате Piko 52440

Под управлением декодера ESU LokPilot 5 локомотив нормально поехал, но все же пришлось внести настройки для пиковского мотора из инструкции к декодеру со страницы 53:

  CV2 CV9 CV51 CV52 CV53 CV54 CV55 CV56 CV116 CV117 CV118 CV119
PIKO® 5-Pol Motors (new Motor) 3 25 15 20 110 30 40 220 50 100 10 25
Результат авто калибровки     16 6 84 32 25          

После рекомендуемых настроек модель стала ехать значительно лучше, но все равно решил провести авто-калибровку мотора со страницы 55. Для начала калибровки нужно записать CV54=0 и нажать F1 на пульте, модель проедет почти 1 метр на полной скорости и сама себе запишет нужные значения в CV51-55. Перед началом надо убедится, что выбрано правильное направление движения и впереди есть достаточный участок пути. После автоматической калибровки стало еще лучше, практически идеально.

Что-ж, мделька явно не plug-n-play, а ведь впереди еще самое интересное...

Электромагнитные сцепки

Немного теории о том, как работает электромагнитная сцепка. При подаче напряжения электромагнитная катушка поднимет кронштейн и локомотив может отъехать, оставив состав стоять. Но поскольку провода, которыми намотана катушка внутри сцепки, крайне тонкие, то после включения она достаточно быстро сгорает (условно за 5 секунд). Чтоб сберечь катушку, ее включают на короткое время на полную мощность, чтоб механизм сдвинулся, а затем при помощи ШИМ, снижают мощность до минимально достаточной для поддержания сцепки открытой. В таком режиме катушка живет значительно дольше.

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

Физическое подключение сцепок

Электрическое подключение к декодеру (на примере AUX1, AUX2 в LokPilot V5.0)

На практике при подключении к декодеру нужно соблюдать полярность, чтоб при активации сцепка толкала кронштейн вверх, а не пыталась прижимать вниз. В общем случае "+" сцепки подключаем к общему "U+" декодера, а "-" к нужному функциональному выходу AUX.

Мне повезло, поскольку существует исполнение модели с электромагнитными сцепками (артикул 55912), поэтому внутри на плате есть подготовка для подключения сцепок в виде контактных площадок. Для первого опыта установки электро-сцепок это то, что надо.

Подготовка на плате Piko 52440 для установки сцпки спереди

Подготовка на плате Piko 52440 для установки сцпки сзади

Поскольку у сцепок ESU 41002 оба провода черные, то один стоит разметить, чтоб не перепутать при подключении. Сами провода производитель предлагает пропускать через NEM-шахту, там для них предусмотрено специальное место.

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

На динамическом механизме сцепки предусмотрены маленькие держатели (вроде как) для проводов от электросцепок, но провода ESU 41002 оказались слишком толстыми для них.

Механизм динамической сцепки Piko 52440 с держателями проводов

Прокладка проводов от задней сцепки прошла без проблем. Под ионистором оказалось отверстие около винта, через которое провода дотянулись до платы с небольшим запасом. А вот с передней сцепкой вышла незадача: не смотря на примерку до установки, длины проводов до платы не хватило буквально на 1-2 мм., пришлось наращивать прямо на модели.

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

Программирование Piko 52440

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

Настройка декодера

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

В моем локомотиве для управления сцепками зарезервированы выходы AUX4 и AUX5. Сначала на декодере нужно настроить параметры этих выходов на управление электромагнитными сцепками.

Для конфигурации AUX4 обращаемся к инструкции стр. 65 и находим необходимые CV для него: Mode Select CV - 299, Switching-On/-Off Delay - 300, Automatic Switch Off - 301, Brightness CV - 302. Для AUX5 аналогично - 307, 308, 309, 310.

Далее нужно записать значения в эти CV согласно таблице:

  CV Значение  
Index register 31 16 12.2.1. Index CV access, стр. 56
Index register 32 0 12.2.1. Index CV access, стр. 56
AUX4 Mode Select CV 299 33 Autocoupler coil#2
AUX4 Switching-On/-Off Delay 300 2 Range 0-15, Time 0-6,144 sec
AUX4 Automatic Switch Off 301 4 unit is 0.4 sec * 5 = 2.0 seс
AUX4 Brightness CV 302 16 range 0 - 31
AUX5 Mode Select CV 307 33 Autocoupler coil#2
AUX5 Switching-On/-Off Delay 308 2 Range 0-15, Time 0-6,144 sec
AUX5 Automatic Switch Off 309 4 unit is 0.4 sec * 5 = 2.0 seс
AUX5 Brightness CV 310 16 range 0 - 31

Значение для Mode Select CV равное 33 (Autocoupler coil#2) нет в документации, взято из LokProgrammer и еще одной неофициальной инструкции. О проблеме в документации я написал в саппорт ESU, но не жду, что они скоро ответят.

Я использую задержку в Switching-On/-Off Delay для того, чтоб сцепка не включалась сразу при толкании в рамках маневра расцепления, это чуть-чуть снизит ее износ. В ручном режиме это не имеет смысла.

Теперь можно проверить работу сцепок кнопками F6 и F7, согласно "Default mapping LokPilot 5 Decoder" на странице 64. Будьте готовы сразу убрать модель с рельсов, чтоб не спалить сцепки, если что-то пойдет не так.

Когда в ручном режиме все работает, нужно настроить параметры маневра расцепления, для того, чтоб его можно было использовать. За "маневровое танго" отвечают следующие параметры (см. стр. 83):

  CV Значение  
Automatic decoupling speed 246 16 range 0 - 255
Automatic decoupling move 247 64 unit is 0.016 sec * 125 = 0.64 sec
Automatic decoupling push 248 10 unit is 0.016 sec * 49 = 0.12 sec

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

Затем нужно заменить действия на кнопках F6 и F7 на выполнение маневра расцепления в нужную сторону. Для этого потребуется таблица "Function Mapping Chart" со стр. 58, в которой будем заменять значения для рядов 9 и 10. Не смотря на информацию на стр. 64, за кнопки F6 и F7 отвечают именно ряды 9 и 10 соответственно, они были найдены опытным путем. Нужно записать CV согласно таблице:

  CV Значение  
Index register 32 3  
Row 9 Control CV A 385 8 Locomotive is stopped = 2, Direction is reverse = 8
Row 9 Control CV C 371 1 Key F6 is On = 1, это по идее уже есть там
Index register 32 8  
Row 9 Control CV K 385 32 Output AUX4 On = 32, это по идее уже есть там
Row 9 Control CV N 388 64 Uncoupling cycle = 64
Index register 32 3  
Row 10 Control CV A 401 4 Locomotive is stopped = 2, Direction is forward = 4
Row 10 Control CV C 403 4 Key F7 is On = 4, это по идее уже есть там
Index register 32 8  
Row 10 Control CV K 401 64 Output AUX5 On = 64, это по идее уже есть там
Row 10 Control CV N 404 64 Uncoupling cycle = 64

Пояснения по значениям CV можно посмотреть в разделе "12.2.2.1. Conditions block" на стр. 60 и "12.2.2.2. Physical function outputs" на стр. 61 в инструкции. Зачеркнутые значения, которые должны были позволять выполнять маневр только когда локомотив не движется, по факту оказались не рабочими и их наличие ломало выполнение маневра. К сожалению, придется без них.

На всякий случай небольшая шпаргалка об аппаратно-программном:

Выход декодера Сцепка Кнопка Ряд в настройках
AUX4 Передняя F6 9
AUX5 Задняя F7 10

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

И еще немного автоматики

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

Для реализации я буду использовать ряд 24 из "Function Mapping Chart", поскольку он первый не занят функциональными выходами. В принципе, можно использовать любой другой ряд на выбор из "Default mapping LokPilot 5 Decoder" со стр. 64. Итак, согласно таблице на стр. 58, для реализации задуманного мне нужно записать следующие CV:

  CV Значение  
Index register 32 4  
Row 24 Control CV A 369 1 Locomotive drives = 1
Index register 32 9  
Row 24 Control CV K 369 128 Output AUX6 On = 128

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

Результаты и впечатления

Piko 52440 со сцепками ESU 41002 на столе

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

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

Ходовые испытания на макете так же показали отличный результат. Локомотив с вагоном ни разу не расцепился на разных скоростях при прохождении радиусов R1=371 мм. и уклонов 4%, стрелок с отклонением 22.5°, и всего этого вместе взятого. Я, конечно, не гонял на полной скорости через полосу препятствий, но на нормальной, на мой взгляд, скорости все хорошо.

Piko 52440 на макете

Сама модель так же оставила приятные впечатления, хотя работа мотора и его звук на ходу мне не очень понравился, в отличии от V200 52904, где звук мотора прямо подходит к модели. Автоматическая калибровка двигателя действительно удобная и нужная функция в LokPilot 5, она улучшила ход модели, но звук от мотора ей не подвластен.

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

Piko 52440 с вагоном Piko 54601

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

]]>
Домашняя поливалка растений https://aleksandr.ru/blog/domashnyaya_polivalka_rasteniy https://aleksandr.ru/blog/domashnyaya_polivalka_rasteniy#comments Sun, 11 Feb 2024 12:05:11 +0300 https://aleksandr.ru/blog/domashnyaya_polivalka_rasteniy nonadult aleksandr.ru Железо 3D Arduino Домашняя поливалка растений

Устройство полива цветов

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


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

В первом устройстве я взял два насоса на 5В, напечатал для них держатели, засунул в вырезанный их ПВХ корпус, добавил модуль с 2 реле для управления, давно валявшийся без дела 0.91" OLED дисплей, чтоб было информативно, и энкодер, чтоб всем этим управлять. Для определения влажности почвы использовал самые доступные емкостные датчики.

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

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

Поскольку размещать емкость с запасом воды для полива на подоконнике (а не на полу) не входило в мои планы, а слушать затяжной будильник - тем более, от такой конструкции пришлось отказаться.

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

Устройство получилось в компактном форм-факторе, близким к кубику, но это было, похоже, его единственное достоинство. И снова было 2 недостатка.

  • Во-первых, емкостные датчики влажности оказались не так хороши, как мне бы хотелось: фактически, рабочий диапазон от "земля полностью сухая" до "все залито и перелито" составлял примерно 5%, даже при условии нормирования минимальных и максимальных значений измерений, плюс была большая погрешность измерений. Позже выяснилось, что, возможно, с ними было не все так плохо, см. P.P.S. внизу страницы.
  • Во-вторых, достаточно часто (без закономерности) после завершения цикла полива, устройство отключалось (ну как минимум дисплей, висящий на 3.3В ноже МК).

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

Третья версия устройства

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

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

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

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

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

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

Прямо на насосах я собрал обвязку из диода 1N4001 (который просто был под рукой) и конденсатора 0.1uF на 50В. Эффект не заставил себя ждать, теперь дисплей всегда выключался непосредственно при включении насоса, но устройство продолжало работать.

Насосы с обвязкой из диода и конденсатора

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

Экран устройства

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

Конструкция в разобранном виде

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

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

Корпус был поставлен на очень давно пропадающие мебельные то-ли ножки, то-ли стопоры для дверей, а для сборки всего вместе, помимо супер-клея, понадобилось несколько винтов и гаек М3 и М4.

Собранное устройство

На закуску самое интересное - играбельный проект на эмуляторе и все 3D-модели на thingiverse. А так же исхожный код на github.

P.S.

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

Чтоб уменьшить коррозию и продлить жизнь датчиков, я попробовал отключать их питание, когда показания не нужны. Получилось что-то вроде: 100-150 мс. датчик включен, считываем показания, отключаем на 1 секунду. В теории это должно было продлить жизнь датчика аж в 10 раз и сэкономить немного электричества. На практике оказалось, что для "прогрева" датчика требуется много секунд, и только после прошествия длительного времени он выходит на нормальные показания. В режиме включил-померил-выключил показания сильно завышены. Емкостные датчики, кстати, если верить всяким обзорам, прогреваются и измеряют за 50 мс., но проверять на практике в рамках текущей конструкции уже нет желания.

P.P.S. Про емкостные датчики влажности почвы

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

Видео на youtube

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

]]>
Рельсовый холивар: Piko vs Peco https://aleksandr.ru/blog/relsoviy_holivar__piko_vs_peco https://aleksandr.ru/blog/relsoviy_holivar__piko_vs_peco#comments Wed, 31 Jan 2024 23:16:53 +0300 https://aleksandr.ru/blog/relsoviy_holivar__piko_vs_peco nonadult aleksandr.ru Хобби H0 1:87 Рельсовый холивар: Piko vs Peco

Модельные рельсы

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


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

В последнее время мне довелось поупражняться в проектировании рельсовых схем из разного материала, и моя точка зрения немного изменилась. Но обо всем по порядку. Для сравнения с буду рассматривать Piko A-Track без балласта и Peco Setrack вместе с Streamline в коде 100.

Внешний вид

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

Качество исполнения

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

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

Приводы стрелок

Оба производителя предлагают электромагнитные приводы для своих стрелок. У пико это компактный привод Piko 55271, который крепится винтами сбоку к самой стрелке. У пеко это более громоздкая конструкция Peco PL-11, которая располагается дальше от стрелки и крепится отдельно к поверхности на которой лежит стрерлка. Так же есть привод Peco PL-10, который крепится под стрелкой с помощью загибания железных ушек, проходящих сквозь шпальную решетку. Так же у подмакетного привода пеко требуется подбирать длину поводка и откусывать его по месту. Помимо большего размера, приводы пеко сильно громче щелкают при работе. У пико тоже есть подмакетный привод Piko 55272, но в нем вместо электромагнита используется сервопривод со всеми его достоинствами и недостатками.

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

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

Разнообразие номенклатуры

Просто посчитав элементы пути, доступные в WinTrack 13, у пеко выходит 6 прямых, 9 радиусных, 26 стрелочных; у пико - 7 прямых, 7 радиусных, 11 стрелочных. Тупики и эталоны межпутевого расстояние не считаю, а под стрелочными понимаются не только сами стрелки, но и все другие пути из этого раздела, вроде перекрестков или сбрасывающих. Да, у пеко больше позиций 41 против 25 у пико, но у пеко тут смешаны 2 серии, при этом в серии SL для профессионалов вообще нет радиусных, только флексы, а обилие стрелок обусловлено тем, что большинство стрелок представлено с двух видах - с обычной крестовиной и электрической. 

Номенклатура Piko Номенклатура Peco

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

Геометрия

Вот это, пожалуй самый интересный пункт. При всем своем разнообразии и качестве, с геометрией у пеко не все так хорошо. Самый простой пример - нам нужно сделать из одного прямого пути два прямых параллельных. С пико все просто: берем стрелку, добавляем радиус R9 и прямую 231 мм., получаем что хотелось с правильным расстоянием между путями. С пеко сложнее: берем стрелку из серии ST, добавляем радиус R2 и прямую 168 мм., получаем два пути, но на большем расстоянии, чем их же эталон. Попытки использовать другие радиусы приводят разной длине путей (один начинается дальше другого) или просто к тому, что пути не параллельны. Второй пример, серия SL, берем стрелку, и какой не возьми радиусный, все равно не получится параллельных пуей, даже самый ближайший по размеру радиусный рельс отличается на 0.5° от стрелки. В первом примере с пеко можно использовать флекс или согласиться с бОльшим расстоянием между путями, что не всегда подходит. Во втором же, только использовать фтекс (ну да, мы же профессионалы). Ну и укладка флекса на местности всегда происходит сложнее, чем жестких элементов пути.

Piko vs Peco

В дополнение к тому, что выше, у пико вся геометрия хорошо документирована в картинках с типовыми соединениями, свободно доступна везде в интернете, включая сайт производителя. Геометрия пеко - тайна за семью печатями, производитель предлагает на сайте купить(!) у него материалы по укладке рельсов разного вида, чтоб в ней разобраться. В свободном доступе встречается только геометрия для ST, которую нарисовали энтузиасты в AnyRail.

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

Доступность и стоимость

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

Итоги сравнения

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

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

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

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

]]>
Буря в стакане https://aleksandr.ru/blog/burya_v_stakane https://aleksandr.ru/blog/burya_v_stakane#comments Thu, 30 Nov 2023 12:14:01 +0300 https://aleksandr.ru/blog/burya_v_stakane nonadult aleksandr.ru За жизнь Про работу Буря в стакане

Менеджер и чайник​​​​​​​

Ноябрьское полнолуние: Бобровая Луна 27 ноября. Полярное сияние может появиться над Москвой 30 ноября и 1 декабря, ожидается одна из сильнейших магнитных бурь года, сообщает РИА Новости.

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

И получаем идеальные условия для обострения личностных расстройств всех типов, в том числе тех, про которые анекдот на картинке.

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

]]>
Немного о грузах в модельных вагонах https://aleksandr.ru/blog/nemnogo_o_gruzah_v_modelnih_vagonah https://aleksandr.ru/blog/nemnogo_o_gruzah_v_modelnih_vagonah#comments Mon, 18 Sep 2023 17:34:58 +0300 https://aleksandr.ru/blog/nemnogo_o_gruzah_v_modelnih_vagonah nonadult aleksandr.ru Хобби H0 1:87 3D Немного о грузах в модельных вагонах

Поезд с самодельным грузом

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


Самодельный груз бревна

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

Самодельный груз ящики

Дальше интереснее. Берем модель деревянного ящика, увеличиваем в размерах так, что была пригодна для вагона (примерно 20 мм. в ширину), распечатываем с максимально возможным качеством и увеличенной до 3 линий толщиной стенок, чтоб не проступал рисунок заполнения. Модель грунтуем, красим акрилом древесного цвета. Для большей правдоподобности можно использовать разные цвета дерева или разбавить тот, что есть. Затем акриловый лак и чуть-чуть черной смывки. Ну и финальный штрих - переводилки (или по-современному декали) для придания окончательного вида. У меня нашлись только от старой модельки в масштабе 1:72, но подошли вполне сносно.

Самодельный груз маховик

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

А еще на 3D-принтере вполне можно делать даже сыпучие грузы! Спустя некоторое время после написания этого поста, я стал обладателем вагона Piko 54601. При всех его наворотах: откидной в обе стороны кузов и откидные борты, в него очень хочется добавить какой-то груз. В качестве груза я выбрал песок, который у меня остался от Faller 120146. После некоторого количества проб и ошибок, получилось сделать 3D-модель, которая лучше всего походит на кучи песка в вагоне.

Груз песок для Piko 54601

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

]]>
Мониторинг скорости интернета без MRTG https://aleksandr.ru/blog/monitoring_skorosti_interneta_bez_mrtg https://aleksandr.ru/blog/monitoring_skorosti_interneta_bez_mrtg#comments Fri, 15 Sep 2023 11:24:38 +0300 https://aleksandr.ru/blog/monitoring_skorosti_interneta_bez_mrtg nonadult aleksandr.ru Linux RRDtool Мониторинг скорости интернета без MRTG

Speedtest graph

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


Есть хорошо известный Speedtest от Ookla, который привычно использовать в виде приложения или на сайте, чтоб узнать скорость после смены тарифа или провайдера, но что делать, когда хочется понимать какая скорость была на протяжении времени, если канал от провайдера оставляет желать лучшего?

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

Как выяснилось, существует Speedtest CLI, который было решено использовать для сбора данных. Этот инструмент умеет выдавать результаты в разных форматах, включая JSON и CSV (см. актуальный хелп в приложении, а не тот что от 2018 года разбросан по интернету, с тех пор все немного изменилось).

Завести этот инструмент в collectd через exec-plugin не получилось, приложение speedtest, запускаемое collectd насыпает в STDERR и в результаты exec-plugin попадает не пойми что. Зато оно прекрасно работает чрез cron от текущего пользователя. Поскольку сбор метрик от speedtest нужен совсем не часто, раз в 10 минут или реже, и разбираться с collectd было совсем неохота, то остановился на решении, которое по крону собирает метрики скорости и записывает в RRD. А данные из RRD рисуются на страничке мониторинга рядом с графиками собранными collectd.

Для реализации задуманного понадобится rrdtool и nginx, предполагается, что это все уже было установлено вместе с collectd.

Создаем базу для хранения данных (краткий мануал тут, подробнее тут):

rrdtool create /var/lib/collectd/rrd/speedtest.rrd \
        --step 10m \
        DS:download:GAUGE:30m:0:U \
        DS:upload:GAUGE:30m:0:U \
        RRA:AVERAGE:0.5:10m:7d \
        RRA:AVERAGE:0.5:1h:2M \
        RRA:AVERAGE:0.5:1d:3y

И ставим в крон раз в 10 минут скрипт:

#!/bin/sh

TEST=$(/usr/bin/speedtest -f csv)
RET=$?

if [ $RET -eq 0 ]; then
    D=$(echo \"$TEST\" | cut -d, -f6 | tr -d '\"')
    U=$(echo \"$TEST\" | cut -d, -f7 | tr -d '\"')
else
    D="0"
    U="0"
fi

rrdtool update /var/lib/collectd/rrd/speddtest.rrd N:$D:$U

Важный момент, Speedtest CLI в машинных форматах скорости загрузки и скачивания выдает в байтах в секунду (Bps), поэтому чтоб получить привычные мегабиты из, например, CSV, нужно значение умножить на 8 и поделить на 1000000 (ну или просто поделить значение на 125000). Это будет сделано ниже при рисовании графика.

На веб сервере в конфиге убеждаемся что есть для нужного хоста:

location ~ \.cgi {
        fastcgi_pass unix:/var/run/fcgiwrap.socket;
        include fastcgi_params;
    }

И создаем или изменяем файл collectd.cgi (он должен лежать где-то в document_root и быть исполняемым):

#!/usr/bin/rrdcgi
<RRD::GOODFOR 60>
<RRD::SETENV LANG ru_RU.UTF-8>
<RRD::SETENV LC_TIME ru_RU.UTF-8>
<RRD::SETVAR dt '<RRD::TIME::NOW "%d.%m.%Y %H:%M">'>

<RRD::SETVAR graph_w 900>
<RRD::SETVAR graph_h 200>
<RRD::SETVAR graph_path "graph">
<RRD::SETVAR font "DEFAULT:9:">
<RRD::SETVAR start "-12 hours">

<RRD::SETVAR data_dir "/var/lib/collectd/rrd">
<RRD::SETVAR speedtestdb "<RRD::GETVAR data_dir>/speedtest.rrd">
<!DOCTYPE html>
<html lang="ru-RU">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="refresh" content="60">
    <title><RRD::GETVAR dt></title>
</head>
<body>

<RRD::GRAPH <RRD::GETVAR graph_path>/speedtest-<RRD::CV show>.png
    --lazy
    --imginfo '<img src="<RRD::GETVAR graph_path>/%s" width="%lu" height="%lu">'
    --title="Speedtest"
    --vertical-label="Mbits"
    -w <RRD::GETVAR graph_w> -h <RRD::GETVAR graph_h>
    --slope-mode
    --font <RRD::GETVAR font>
    --start "-1 <RRD::CV show>" --end "-0"
    --lower-limit 0

    DEF:down=<RRD::GETVAR speedtestdb>:download:AVERAGE
    DEF:up=<RRD::GETVAR speedtestdb>:upload:AVERAGE
    CDEF:in=down,125000,/
    CDEF:out=up,125000,/

    AREA:in#6afff380:"Download" GPRINT:in:MIN:"Min\: %1.1lf%s" GPRINT:in:MAX:"Max\: %1.1lf%s" GPRINT:in:AVERAGE:"Avg\: %.1lf%s" GPRINT:in:LAST:"Last\: %.1lf%s\j"
    LINE2:out#bf71ff:"Upload" GPRINT:out:MIN:"Min\: %.1lf%s" GPRINT:out:MAX:"Max\: %.1lf%s" GPRINT:out:AVERAGE:"Avg\: %.1lf%s" GPRINT:out:LAST:"Last\: %.1lf%s\j"
    LINE:in#00b3a4
>

</body>
</html>

Подробнее по работе с rrdcgi можно посмотреть в официальном мануале. А обращаться к нему нужно по ссылкам вида http://myhost/collectd.cgi?show=[hour|day|week|month|year]. Результат такого графика в самом верху.

]]>
Другая голова Anet ET4 Pro https://aleksandr.ru/blog/drugaya_golova_anet_et4_pro https://aleksandr.ru/blog/drugaya_golova_anet_et4_pro#comments Wed, 26 Jul 2023 23:32:42 +0300 https://aleksandr.ru/blog/drugaya_golova_anet_et4_pro nonadult aleksandr.ru Железо 3D Marlin Anet Другая голова Anet ET4 Pro

Дурная голова... нормально печатать не дает!
(с) старинная 3д-пословица

Anet ET4 Pro Titan Aero

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


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

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

E3D Titan Aero

Когда мне на глаза попался китайский клон E3D Titan Aero - полностью собранный директ экструдер на тележке под профиль 2020, да еще и по цене около 3000 руб., то заказал его без колебаний. Идея дорогостоящей замены принтера превратилась в бюджетное приключение по замене головы.

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

Хорошо, что в комплекте идет провод-удлиннитель для подключения мотора на головке от старой проводки. Не очень хорошо, что провода никак не подписаны, поэтому вентиляторы придется искать "методом тыка".

Все провода длинные с хорошим запасом. Провода нагревателя заметно толще, на конце просто залужены, видимо предполагается их подключение в клеммную колодку, а не в разъем. Для подключения вместо родного нагревателя Anet ET4 Pro, их придется обжать в разъем JST XH 2.54mm. Поскольку провода толстые, то для их обжима потребуется не только обжималка с тонкими губами, но еще терпение, сноровка и точный размер зачистки провода. Я запорол 3 клеммы перед тем, как вышло нормально.

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

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

Anet ET4 Pro adapter board

Маркировка Назначение
S-Z Концевик оси Z (впаять разъем если нет)
END Нагреватель хотенда
BL Вентилятор обдува сопла
MAT Датчик конца филамента
LV Автоматический датчик уровня (не исползуется)
TMP Датчик температуры хотенда
FAN  Вентилятор охлаждения радиатора хотенда
E-M Мотор экструдера
S-X X-M Совмещенный разъем концевика оси X и мотора оси X

Anet ET4 Pro adapter board pinout

Огромная благодарность авторам картинки с детальным описанием пинов выше за то, что они ее сделали, она единственная в интернете и очень полезная!

К сожалению, просто так поставить новую головку на место старой не получится, придется снять пассивный ролик ремня на оси X, после чего тележка достаточно туго оденется на рельсу, но это не страшно, разработается. Если совсем не лезет, нужно проверить втулку нижнего ролика, она должна быть правильно установлена и утоплена в отверстие на тележке. Для того, чтоб натянуть приводной ремень на новую тележку, придется ослабить крепление мотора на оси X, и почти полностью сдвинуть его к центру, поскольку расстояние между креплениями ремня на новой тележке меньше, чем на родной. Ну или использовать другой более длинный ремень (тип GT2, ширина 6 мм., но его по краям придется обжать вот в такие скобы или что-то аналогичное).

Когда я все собрал и установил, то заработало все, кроме экструдера: вместо подачи пластика он подергивался или вообще не шевелился. Причина в том, что на новом экструдере установлен (предположительно тк нет маркировки) мотор 17HS4023, а на старом был 42SHDC3025-24B (по ссылке идентичный).

Эксперимент по подключению 17HS4023 вместо 42SHDC3025-24B

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

Пин Провод 42SHDC3025-24B 17HS4023 Должно быть Получилось у меня
1 Красный A+ A+ Красный Зеленый
3 Синий A- B+ Зеленый Красный
4 Зеленый B+ A- Синий Черный
6 Черный B- B- Черный Синий

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

Разъем мотора 17HS4023 с измененным положением проводов

Разница электрических характеристик моторов минимальна: у 42SHDC3025-24B опорное напряжение 3.96V, ток 0.9A, а у 17HS4023 - 4.1V и 1.0A соответственно. Если почитать описание замены экструдеров в интернете, то при замене мотора обычно делается настройка драйвера под новые параметры, но у Anet ET4 Pro на плате нет подстроечных резисторов для драйверов, поэтому этот шаг пропускаем, уповая на минимальную разницу характеристик.

Разобранный экструдер с разными моторами

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

Когда эксперименты с моторами закончены и голова вновь собрана и установлена, выясняется, что сопло теперь слишком высоко и не достает до стола примерно на 10-15 мм. даже в самом низком положении оси Z. Стол придется поднимать. Для этого штатные винты М4х30 нужно заменить на М4х40 (можно и 45 лишь бы ремень не задело), а недостаток высоты пружин компенсировать широкополыми кузовными шайбами М5 и гайками М6. Понадобится 3 шайбы и 2 гайки на каждую опору, итого 12 шайб и 8 гаек. Можно убрать по одной из гаек и поставить более длинные пружины, но цена вопроса возрастет на стоимость новых пружин против стоимости гаек.

Подъем стола Anet ET4 Pro

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

Пробная печать V6 Titan Aero на Anet ET4 Pro

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

Калибровка нагревателей и прочий тюнинг

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

Настройки Pronterface

Для калибровки хотенда отправляем команду M303

M303 E0 C10 S200

И дожидаемся окончания, в выводе будет что-то вроде

#define DEFAULT_Kp 16.62
#define DEFAULT_Ki 1.21
#define DEFAULT_Kd 57.16

Устанавливаем полученные параметры с помощью M301 и сохраняем командой M500

M301 P16.62 I1.21 D57.16
M500

Теперь калибровка нагревателя стола, для этого используется та же M303, но с другими параметрами

M303 E-1 C10 S60

Так же дожидаемся окончания и результата вроде

#define DEFAULT_bedKp 104.30
#define DEFAULT_bedKi 20.06
#define DEFAULT_bedKd 361.59

Устанавливаем параметры теперь с помощью M304 и сохраняем M500

M304 P104.30 I20.06 D361.59
M500

Для контроля можно перезагрузить принтер и спросить у него настройки с помощью M503

Вывод M503 после перезагрузки принтера

В выводе должны быть цифры, полученные выше (см Hotend PID и Bed PID). После этого качество печати действительно улучшается, а так же в моем случае, стол стал нагреваться значительно быстрее.

В последней строке видна команда M603, отвечающая за длину загрузки и выгрузки филамента. Значения остались от старого экструдера - 350 мм., для нового можно поставить 25 мм. при загрузке и 40 мм. при выгрузке:

M603 L25.00 U40.00
M500

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

Характеристики мотора 17HS4023

Формула расчета шагов экструдера Titan Aero

В моем случае получается Standard motor steps / rev = 360 / 1.8 = 200, остальные значения стандартные. Рассчитываем:

200 * 16 * 3 / (7.3 * 3.142) = 418.54

Получилось 418.54 против 837 из оригинальной инструкции к экструдеру. Заносим значения в принтер и сохраняем:

M92 E418.54
M500

С этим значением качество печати значительно улучшилось

Пример печати с разными значениями шагов экструдера

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

]]>
Marlin для Anet ET4 Pro https://aleksandr.ru/blog/marlin_dlya_anet_et4_pro https://aleksandr.ru/blog/marlin_dlya_anet_et4_pro#comments Tue, 18 Jul 2023 14:13:27 +0300 https://aleksandr.ru/blog/marlin_dlya_anet_et4_pro nonadult aleksandr.ru Железо 3D STM32 Marlin Anet Marlin для Anet ET4 Pro

Marlin в работе

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


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

Видео на youtube

Так же набор всех необходимых деталей можно купить за 25$, но это не наш метод. А теперь то, о чем производитель забыл упомянуть 

Размеры концевика 20х10 мм., например, подойдет вот такой. Однако, заявленные винты М3х10 слишком толстые для концевика и его держателя, нужно что-то поменьше и лучше саморезы, например, подойдут М1.7х12 по размеру отверстий в держателе или М2.5х16 по размеру отверстий в концевике.

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

Limit Switch Adapter for Z Axis Mod

Разъема на плате вполне может не оказаться, его придется припаивать, хорошо хоть разводка под него есть. Тут может пригодится вот такой набор разъемов JST XH 2.54 mm.

Родные винты крепления платы после установки крепления концевика окажутся слишком короткими, их придется заменить на более длинные М3х10 или М3х12 мм.

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

Ну и самое главное, если у вас установлена прошивка версии 3.0, то так просто сменить ее у вас не получится. Дело в том, что с этой прошивкой принтер перестает считать себя ET4 Pro, пишет, что он обычный ET4. При этом переименование файлов из et4p.* в et4n.* не спасает: с переименованными файлами принтер показывает что прошивается, но никаких изменений это не приносит, прошивка так и остается старая 3.0.

Справедливости ради надо заметить, что есть альтернативное решение от индусов, как подключить концевик в разъем емкостного датчика и не перепрошивать принтер

Видео на youtube

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

В основе принтера лежит микроконтроллер STM32, а значит для его прошивки потребуется программатор ST-Link. Хорошо, что на плате есть выводы для его подключения.

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

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

Сама прошивка Marlin состоит из 2 частей: непосредственно прошивки и кучи конфигураций под всевозможные принтеры, включая Anet ET4 Pro. Для упрощения жизни обывателя есть также расширение Auto Build Marlin для Visual Studio Code. Ну а чтоб всем этим воспользоваться понадобится либо фирменная ST-Link utility под Windows, либо открытая STlink Tools под нормальные ОС. Под MacOS ставится через brew, на всякий случай инструкция, которая даст понимание процесса в общих чертах.

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

  SWD Header on ET Series motherboard
     ___
  U | o |  (not connected)
    |---|
    | o |  SWDIO
    |---|
    | o |  SWCLCK
    |---|
  G | o |  GND
     ---

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

st-flash read backup.bin 0x08000000 0x100000

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

Теперь можно приступать к прошивке. Распаковываем скаченную прошивку в любое место, потом в ней в папке Marlin заменяем файлы Configuration.h и Configuration_adv.h на те, что скачали из репозитория конфигурация для своего принтера. Важно, чтоб версия прошивки и версия конфигурации совпадали (в репозитории конфигов есть ветки для каждой версии).

Запускам VS Code и ставим расширение Auto Build Marlin. Оно затянет за собой PlatfomIO. Теперь в студии открываем папку, куда распаковали прошивку (не ту куда положили конфиги, а на уровень выше). Если все сделали правильно, то запустив расширение, увидите примерно вот такой экран:

Marlin Auto Build Visual Studio Code

На этом экране нужно выбрать Build напротив Anet_ET4_OpenBLT. Это запустит процесс сборки прошивки, в результате которого откроется папка, содержащая файл firmware.srec. Этот файл нужно скопировать на пустую microSD-карту. Затем нажимаем Upload, это запишет загрузчик OpenBLT в память принтера, это нужно сделать один раз, больше не понадобится.

Или можно просто скачать свежий OpenBLT bootloader for Anet ET4/ET5 series printers и прошить его командой

st-flash write openblt_et4.bin 0x08000000

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

OpenBLT в действии

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

Если вкратце, то суть изменений сводится к тому, чтоб отключить автоматическую пробу положения по оси Z и заменить ее на ручную, плюс подкрутить параметры ручной пробы, чтоб головка не выезжала за стол в процессе. В качестве бонуса, мне пришлось так же подправить параметры подогрева, чтоб принтер на сваливался в красный экран "heating failed printer halted" в процессе подготовки к печати, возможно это проблема только моего конкретного принтера или связана с массивным стеклом ультрабазы, которое сложнее прогреть, но тем не менее.

Конфиги, которые у меня получились, можно посмотреть на моем гитхабе. Для особо интересующихся ниже дифф оригинального конфига ET4 Pro и того, что сделал я для работы без емкостного сенсора.

Marlin config Anet ET4 Pro Z-stop diff

После смены прошивки стала более раздражающей проблема вытекающего из сопла филамента перед печатью, для этого пришлось немного освоить G-код и дописать кусочек для очистки сопла перед началом печати. За основу взял вот эту статью. Идем в Cura, меню "Настройки" -> "Принтер" -> "Управление принтерами" -> выбираем свой принтер и кнопка "Параметры принтера". Далее в поле стартовый G-код надо вставить вот это:

G28 ;Home
G0 X5 Y0 F9000 ; Go to front
G0 Z0.15 ; Drop to bed
G92 E0 ; zero the extruded length
G1 Y40 E20 F500 ; Extrude 20mm of filament in a 4cm line
G92 E0 ; zero the extruded length
G1 E-1 F500 ; Retract a little
G1 Y100 F4000 ; Quickly wipe away from the filament line
G1 Z15.0 F2000 ;Move the platform

В отличие от оригинала из статьи выше, в моем случае головка при нулевых значениях выходит за пределы стола, поэтому пришлось сменить направление очистки (у меня вдоль оси Y, чтоб сопло не цепляло о крепежи ультрабазы), а выход головки за пределы стола используется для улучшения эффективности очистки. И это сработало, детали стали печататься без мусора на первых слоях.

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

P.S.

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

]]>