Пайтон скрипт тут http://kontakts.ru/showthread.php/40973
Описание проекта
Мы собрали демонстрационный стенд: GRBL 1.1 + Arduino UNO + CNC Shield + 3 драйвера + 3 шаговых NEMA17, управляемый с ПК через Python GUI по USB (Serial).
Python-программа выполняет роль “пульта”:
подключается к COM-порту,
показывает статус GRBL (Idle/Run/Hold/Alarm),
даёт удобный JOG (вперёд/назад по X/Y/Z),
управляет скоростью подачи (F) и шагом перемещения (мм),
умеет STOP / RESUME / RESET / UNLOCK,
позволяет отправлять любые команды GRBL/G-code вручную через консоль.
Идея: объединить софт + железо общей концепцией — быстрый прототип управления станком/механизмом без “тяжёлых” контроллеров и без сложной логики на Arduino.
Быстрый старт
Залита прошивка GRBL 1.1 на Arduino UNO
Драйверы (A4988/DRV8825) стоят на CNC Shield
Python GUI подключается по USB Serial (115200)
Примеры команд (что можно отправлять)
1) Реального времени (мгновенно)
Эти команды работают сразу, без очереди:
? — статус
! — пауза/стоп (Feed Hold)
~ — продолжить после паузы
Ctrl+X — reset GRBL (soft reset)
0x85 — Jog Cancel (мгновенно отменяет джог)
2) Системные команды GRBL
$$ — показать все настройки
$X — снять ALARM (unlock)
$H — homing (если есть концевики)
$RST=$ — сброс настроек (осторожно)
$30=1000 — max S (лазер/шпиндель)
$32=1 — Laser mode (если нужно)
3) Движение через G-code
Относительный режим (удобно для тестов):
G91
G0 X10
G0 X-10
G0 Y5
G0 Z-1
Скорость через F (мм/мин):
G91
G1 X20 F600
Пауза 0.2 сек:
G4 P0.2
4) JOG (рекомендуемый способ для ручного управления)
GRBL 1.1 поддерживает $J:
$J=G91 X1 F800
$J=G91 Y-0.5 F400
$J=G91 Z2 F200
Отмена джога: отправить 0x85.
Полезные “шпаргалки” для теста стенда
Проверка статуса:
?
Если вылез ALARM:
$X
Проверка шага на оси X:
G91
G0 X1
G0 X-1
Экстренная остановка:
! (hold)
затем 0x85 (jog cancel) если это был джог
Предложения названий проекта
GRBL Python Console
PyGRBL Control Panel
CNC Shield Python GUI
GRBL Desk Controller
PyJog for GRBL
UNO + GRBL + Python: Control Stack
Idea2Motion: Python x GRBL
GRBL Pilot (Python)
Идеи улучшения кода (без усложнения логики)
1) Надёжность и совместимость
Авто-определение GRBL версии (1.1 / 0.9) и выбор режима: $J или fallback G91/G0.
Авто-проверка ALARM → подсказка “Нажми $X”.
Поддержка “reconnect”: если порт отвалился — быстро переподключить.
2) Удобство GUI
Быстрые кнопки шага: 0.1 / 1 / 10 мм (рядом со Step).
Отдельная большая кнопка E-STOP (делает ! + 0x85).
Отображение координат WPos/MPos (разбор строки статуса).
Лимиты скорости (ползунок с “профилями”: медленно/норм/быстро).
3) Настройки “одной кнопкой”
Окно “Настройка станка”: читает $$, позволяет менять $100/$101/$102 (steps/mm), $110..$112 (скорости), $120..$122 (ускорения).
Экспорт/импорт профилей настроек в JSON.
4) Логи и диагностика
Сохранение логов в файл (с датой/временем).
Режим “демо”: проигрывание заранее заданной последовательности команд.
“Специальные исполнения” (кастомные версии под разные задачи)
1) Демонстрационная версия (для презентаций)
Крупные кнопки, “красивый” статус-индикатор (Idle зелёный / Alarm красный).
3 режима: TEST / DEMO / MANUAL
Кнопка “Showcase”: делает серию безопасных джогов по X/Y/Z с паузами.
2) Производственная версия (операторская)
Блокировка опасных команд (например, запрет $RST).
Логи действий оператора.
“Контроль доступа” (PIN/пароль на настройки).
3) Версия под датчики/концевики
Панель “Inputs”: отображение состояния концевиков, probe, door (если подключено).
Авто-пауза при срабатывании “Door”.
4) Версия “Шаги вместо мм” (как тебе было изначально)
GUI показывает “шаги”, а внутри переводит в мм через $100/$101/$102.
Кнопки: “+30 шагов / -30 шагов” по выбранной оси.
5) Версия “Макросы”
Пользовательские кнопки-макросы:
“Разблокировать + поднять Z + отъехать X”
“Вернуться в ноль”
“Прогрев/калибровка”
Макросы хранятся в JSON и редактируются прямо из GUI.
===
GRBL 1.1, Arduino UNO, CNC Shield, Python GRBL GUI,
управление GRBL через Python, GRBL Serial Control,
шаговые двигатели NEMA17, CNC контроллер Arduino,
Python CNC controller, GRBL jog control,
G-code управление, CNC automation, DIY CNC,
Arduino Python Serial, GRBL control panel
===
#GRBL #GRBL11 #Arduino #ArduinoUNO #CNC #CNCSHIELD #Python
#PythonGUI #serialcommunication
==
#NEMA17 #StepperMotor #StepDriver #A4988 #DRV8825 #DIYElectronics
#embeddedvision
===
#GCode #Automation #CNCControl #PythonAutomation #OpenSource
#prototyping
===
#Makers #DIY #Engineering #Robotics #Mechatronics #techdemo
===
Если вы работаете с GRBL, Arduino или шаговыми двигателями — присоединяйтесь!
Этот стенд — наглядный пример того, как Python, компьютер и железо
могут быть объединены одной идеей и работать как единая система.
Используйте как основу для своих проектов, учебных демонстраций и прототипов.
Будем рады фидбеку, идеям и совместному развитию проекта 🚀
Информация по комментариям в разработке