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

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

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

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

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

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

Тут я допустил досадный промах. Приобрел на Ali индикатор перемещений:



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

Пришлось вдогонку заказать штатив для него. После трех недель ожидания наконец-то прибор в полном комплекте:



Первым делом, пожалуй, выставлю направляющие оси X. После этого можно будет заняться юстировкой соосности координатного стола с направляющими по X. Очень жаль, что не смог раздобыть поверенный (или хотя бы просто достаточно качественный) слесарный уголок. Качество столярного под вопросом, а сейчас располагаю только им. Уголок очень понадобится для юстировки перпендикулярности осей X и Y (на случай, если координатный стол не слишком прямоуголен).
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 мм не столь брутальны, но мало ли что. Лучше на всякий случай иметь механизм прекращения любых внеплановых безобразий.

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


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