После долгого периода разработки, наконец вышел NoRT CNC Control 0.5.
Он являет собой систему управления трехкоординатным фрезерным станком с ЧПУ, позволяющую в качестве управляющего компьютера использовать обычный ноутбук или даже планшет.
Ключевая особенность заключается в разделении кода на 2 большие части: требующую realtime и не требующую. Та часть, которая требует realtime, выполняется на недорогом микроконтроллере. А остальное исполняется на обычном компьютере. И в отличии от других схожих систем, где к компьютеру добавляется некая плата расширения, тут нет жестких realtime требований к каналу связи, достаточно чтобы хватало пропускной способности. В качестве такого канала может выступать ethernet, uart (включая usb-uart переходник).
Это позволяет с одной стороны, обходиться доступным компьютерным железом, с другой объем памяти микроконтроллеров ограничен и поместить все в него было бы тупиком, т.к. это накладывает ограничения на развитие проекта.
Проект состоит из 3 компонент:
В качестве микроконтроллеров поддерживаются stm32f103 с модулем enc28j60 для связи, а также arduino mega2560 со связью через штатный usb
Изменения:
- Добавлена поддержка ethernet для увеличения пропускной способности по сравнению с uart
- Код сервера полностью переписан на C#
- Добавлена поддержка arduino mega2560
- Устранены многочисленные баги (но возможно появились новые)
- Добавлен режим эмуляции в прошивку. В этом случае компилируется программа, выполняемая на компьютере, а не на микроконтроллере, что позволяет «пощупать» работу системы без наличия железа
- Добавлена возможность включать/выключать лазер или иное устройство во время движения
- UI тоже переписан, на QT
Обработка нештатных ситуаций:
- детектирование упирания в концевики. При этом происходит немедленная остановка. При движении на большой скорости фактическое положение головки не гарантируется, т.к. инерция
Система используется мною на моем настольном ЧПУ роутере
>>> Подробности
cnc, nortcnccontrol