MDS-800

Нужно прочитать

Andrey Koleshko. Rake Task Management Essentials.
Bala Paranj. Test Driven Development in Ruby.
Steve Freeman, Nat Pryce. Growing Object-Oriented Software, Guided by Tests.
Ben Klemens. 21st Century C.
Brent Laster. Professional Git.
Travis Swicegood. Pragmatic Version Control Using Git.
Ian Dees, Matt Wynne, Aslak Hellesoy. Cucumber Recipes. Automate Anything with BDD Tools and Techniques.
Shankar Garg. Cucumber Cookbook.
Dr. Mark Fisher. ARM Cortex M4 Cookbook.
Howard Johnson. High-Speed Digital Design: A Handbook of Black Magic.
Marty Cagan. Inspired: How To Create Products Customers Love.
Tags:
MDS-800

Прочитано

Автор: Mani Tadayon.
Название: RSpec Essentials. Develop testable. modular, and maintainbale Ruby software for the real world using RSpec.
Издательство: Packt Publishing, 2016.
ISBN: 978-1-78439-590-2



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


Рецензия: https://embedded-books.livejournal.com/75235.html
MDS-800

Читаю

Авторы: Ian Dees, Matt Wynne, Aslak Hellesoy.
Название: Cucumber Recipes. Automate Anything with BDD Tools and Techniques.
Издательство: The Pragmatic Programmers, 2013/
ISBN-13: 978-1-937785-01-7

Tags:
MDS-800

Прочитано

Автор: Avdi Grimm.
Название: Confident Ruby.
Издательство: The Pragmatic Programmer, 2013.



Тяжела и неказиста жизнь простого программиста... Вот уже, кажется, почти достиг вершин мастерства, осталось чуть подтянуться из последних сил - и ты на пике. И тут мимо тебя проходит какой-то малый и бросает на ходу: "Эй, приятель! Не надоело барахтаться в этом лягушатнике? Пойдем-ка я покажу тебе путь к вершине".

После изучения нескольких букварей по языку Ruby я уж было возомнил, что смогу писать на нем хорошие программы. И даже действительно попробовал, и они даже делают то, что от них требуется. Но вот результат все равно как-то не радует. За много лет кодирования выработалось чутье на изящный код, способность чувствовать "запахи кода", как их стали называть с легкой руки Кента Бека. Так вот, аромат, источаемый кодом, не слишком похож на "Шанель №5". Хотя, повторюсь, работает. Но аргумент "зато работает!" к лицу скорее школяру.

Начал читать "Confident Ruby" и с первых страниц понял: это именно то, чего не хватало в добавление к букварям. Книга содержит 32 паттерна хорошего стиля программирования на языке с динамической типизацией (все примеры приводятся на Ruby, но применимы и для других "утиных" языков).Эти паттерны позволят отбросить громоздкие проверки типов (которыми грешат многие пришедшие в Ruby из мира статической типизации, включая вашего покорного слугу) и писать красивый устойчивый код. Причем не обязательно закладывать эти паттерны с самого начала разработки. Вполне возможно плавно ввести их в уже работающий, но топорный код посредством рефакторинга.

Рекомендую программистам продвинутого уровня (не обязательно пишущим именно на Ruby, достаточно понимать основные идеи). Книга явно не рядовая, хоть и не раскручена в программистских кругах.

Up: обзор.
MDS-800

Вестник станкостроителя №2

Пришла посылка с инкрементальным энкодером:



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

Официальный datasheet не нашел, надергал из данных от продавцов:

  • Точность: 600 импульсов/оборот

  • Рабочее напряжение: DC 5-24V

  • Максимальная механическая скорость: 5000 об/мин

  • Потребление: ≤ 80mA

  • Нагрузка: 40mA

  • Уровень лог. 1: ≥ Vcc*70%

  • Уровень лог. 0: ≤ 0.4V

  • Время нарастания: ≤ 1us

  • Время спада: ≤ 1us

  • Максимальная нагрузка на ось: радиальная 50N, осевая 20N

  • Ударная стойкость: 50G/11ms

  • Вибрационная стойкость: 10G 10-2000Hz

  • Рабочая температура: -30~85℃

  • Вес: 100g


Так и просится на роль датчика положения каретки в вальцовый трубогиб.

Заказал в начале июня за ~650р. Посылка шла месяц. Посмотрел на сайте продавца - за время пути собака могла подрасти цена неприятно изменилась: сегодня этот энкодер стоит почти на 100р. дороже. Так захотелось сказать кое-кому большое человеческое спасибо за наше счастливое детство...
MDS-800

Вестник станкостроителя №1

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

Первым делом установил программу GrblController с диска из комплекта поставки. Запустил:



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

Попробовал включить шпиндель. Он едва заметно дернулся и затих.

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

Поглядел повнимательнее на плату контроллера (раньше все как-то недосуг было):



Увидел, что включением шпинделя управляет ключ на транзисторе IRF540NS. На его затвор через резистор 10 Ом поступает управляющий сигнал с вывода 15 ATmega 328 (PB3/PCINT3/OC2A/MOSI0). Теоретически вывод можно сконфигурировать на PWM и управлять оборотами шпинделя (точнее, напряжением на шпинделе при отсутствии обратной связи). Но факт, что затвор обычного ключа MOS управляется 5-вольтовым выходом CMOS, несколько озадачил. IMHO это не должно работать в принципе. Надо бы заменить низковольтным аналогичным ключом, например, IRL540NS. Но, увы, в закромах такового в наличии не оказалось. Заказал десяток на Али, чтобы впредь было, но ждать придется долго. Наверное, заменю пока каким-нибудь подходящим тумблером.

That's all folks!
MDS-800

Finita (?)

В первом приближении сборку завершил:



Шпиндель отложил на потом. Включать еще не пробовал. Окончательную юстировку механики тоже пока отложил.

Первые впечатления:

  • Есть небольшой люфт в каретках по всем трем осям (не измерял, субъективно микрон 300). Этот люфт выбирается довольно тугими пружинами. Пока еще не понял, хорошо это или плохо (небольшое демпфирование для шагового перемещения может и не повредить). Если по ходу эксплуатации выяснится, что плохо, есть идея, как этот люфт выбрать экономными средствами (либо вовсе заменить трапециевидную подачу на ШВП).

  • Крепления линейных подшипников выполнены из пластика. Есть в закромах подобные из алюминия (правда, не полностью идентичные, так что придется менять конструкцию, если пластик поведет себя плохо).

  • Неприятно удивило полное отсутствие концевиков на осях. Для реального мира несколько рискованно, особенно при шаговом приводе, где недолго и позицию потерять. Попробую добавить самостоятельно. Правда, для них нет не разъемов, ни программной поддержки. Однако управляющую плату, похоже, конструировали люди, пораженные чумой XXI века (ардуино головного мозга в запущенной стадии), поэтому можно попробовать вклиниться со своими доработками.

  • Также очень не хватает большой красной кнопки, которой можно было бы вырубить всю конструкцию, если что-то пойдет не так. Хоть шпиндель жидковат и фрезы 3.17 мм не столь брутальны, но мало ли что. Лучше на всякий случай иметь механизм прекращения любых внеплановых безобразий.

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


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

Портал

Собрал портал и прилепил его на раму:



Крепеж в комплекте, как я и ожидал, не самого высокого качества, что отражается на скорости сборки. На прочность это, к счастью, никак не влияет.
MDS-800

Рама

Итоги праведных трудов сегодня вечером:



По тактильным ощущениям рама получилась прочной, в руках не болтается, не гнется. Правда, прямоугольность пришлось проверять столярным угольником, ибо купленный в "Кастораме" слесарный никуда не годится, и ничего лучше не попадается. Набрел как-то на винтажный магазин инструментов в каких-то трущобах, над которым не властно время; затарился там линейками разной длины, сделанными еще по ГОСТу, еще в СССР. По нынешним временам просто уникальный инструмент: берешь две линейки разной длины, складываешь вместе - и видишь, как деления совпадают! Сейчас этот секрет давно утерян. Но даже в этом реликтовом магазине не нашлось слесарного угольника, увы...

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

Далее планирую собрать портал.
MDS-800

"Вам посылка из Шанхая"...



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

1.


2.


3.


И все вместе:


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

Возвращаясь к нынешнему девайсу: меня несколько насторожила реализация интерфейса USB в его контроллере на основе CH340. Как-то не складывалась у меня до сих пор дружба с этим кристаллом: купил пару-тройку переходников USB<->RS232 на нем, и ни один не возжелал работать под Windows 10. Поэтому первым делом установил драйвер из комплекта поставки, подключил контроллер - и, о чудо, все нормально заработало. Вообще к FTDI как-то больше доверия.

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