- Регистрация
- 10.01.2021
- Сообщения
- 6
- Реакции
- 9
- Баллы
- 23
- Город
- Poght,bot
- Имя
- Taras
Уважаемые форумчане. Всем спасибо за помощь и наконец-то могу похвастаться своим изобретением для CNC 3018. Я наконец-то смог завершить проект - пульт для управления станком совместно с управляющей программой.
И так, начну с того, что сердцем этого пульта стал atmega8 (софт для него пилил на Atmel studio, точнее уже Microchip studio) с 9-ю кнопками управления и дисплейчиком от Nokia 5110.
Из функционала что есть и что он может:
Помимо управления движениями предусмотрена кнопка экстренной остановки если что, функцией разблокировки, снятие пробы Z.
Сделал меню в котором есть:
const char str1[] PROGMEM = "Поиск '0'";
const char str2[] PROGMEM = "Сброс X0 Y0";
const char str3[] PROGMEM = "Сброс Z0";
const char str4[] PROGMEM = "Разблокировать";
const char str5[] PROGMEM = "Проба Z";
const char str6[] PROGMEM = "Go X0 Y0";
const char str7[] PROGMEM = "Go Z0";
const char str8[] PROGMEM = "Настройки";
const char str9[] PROGMEM = "Выход";
В настройках:
const char str10[] PROGMEM = "Скорость X Y";
const char str11[] PROGMEM = "Скорость Z";
const char str12[] PROGMEM = "Дистанция XY";
const char str13[] PROGMEM = "Дистанция Z";
Выбор скоростей:
const char str16[] PROGMEM = "800";
const char str17[] PROGMEM = "500";
const char str18[] PROGMEM = "300";
const char str19[] PROGMEM = "100";
const char str20[] PROGMEM = "50";
const char str21[] PROGMEM = "10";
const char str22[] PROGMEM = "5";
И естественно установка таких дистанций для удобства:
const char str23[] PROGMEM = "100";
const char str24[] PROGMEM = "50";
const char str25[] PROGMEM = "20";
const char str26[] PROGMEM = "10";
const char str27[] PROGMEM = "5";
const char str28[] PROGMEM = "1";
const char str29[] PROGMEM = "0.5";
const char str30[] PROGMEM = "0.1";
const char str31[] PROGMEM = "0.05";
const char str32[] PROGMEM = "0.02";
const char str33[] PROGMEM = "0.01";
Думал дополнить пульт картой памяти, что б можно было использовать станок OffLine, но потом передумал поскольку использую станок исключительно для изготовления печатных плат с использованием карты высот. Возможно в дальнейшем буду обрабатывать деревянные поверхности, тогда возможно сделаю версию 3 уже с картридером.
В общем работает все так:
Питается пульт от самого станка, общается со станком посредствам Rx и Tx на скорости 115200 бод.
справа от дисплея под правую руку расположил 5 кнопок:
Управление движениями по всем осям X, Y и Z соответственно. Скорость движения и дистанции при однократном нажатию на кнопку выставляется в настройках. Это для позиционирования шпинделя. с левой стороны под левой рукой расположены 3 кнопки:
Меню, Сет и кнопка экстренной остановки.
Когда не в меню значение кнопки СЕТ меняется на сброс ошибки, если таковая была.
На дисплее отображается команда, которая была отправлена последней с пульта и какой ответ на эту команду получили в ответ. Думаю допилить прошивку: что б отображались координаты шпинделя и некоторые настройки:
Скорость движения по осям X/Y Скорость движения по Z, и установленные дистанции движений по X/Y и отдельно для Z.
Если кому интересны схема пульта, печатная плата в sprint loyout 6 и софт - могу выложить. В данный момент занимаюсь разработкой красивой коробочки для пульта, что б он имел более презентабельный вид и удобство в использовании.
И так, начну с того, что сердцем этого пульта стал atmega8 (софт для него пилил на Atmel studio, точнее уже Microchip studio) с 9-ю кнопками управления и дисплейчиком от Nokia 5110.
Из функционала что есть и что он может:
Помимо управления движениями предусмотрена кнопка экстренной остановки если что, функцией разблокировки, снятие пробы Z.
Сделал меню в котором есть:
const char str1[] PROGMEM = "Поиск '0'";
const char str2[] PROGMEM = "Сброс X0 Y0";
const char str3[] PROGMEM = "Сброс Z0";
const char str4[] PROGMEM = "Разблокировать";
const char str5[] PROGMEM = "Проба Z";
const char str6[] PROGMEM = "Go X0 Y0";
const char str7[] PROGMEM = "Go Z0";
const char str8[] PROGMEM = "Настройки";
const char str9[] PROGMEM = "Выход";
В настройках:
const char str10[] PROGMEM = "Скорость X Y";
const char str11[] PROGMEM = "Скорость Z";
const char str12[] PROGMEM = "Дистанция XY";
const char str13[] PROGMEM = "Дистанция Z";
Выбор скоростей:
const char str16[] PROGMEM = "800";
const char str17[] PROGMEM = "500";
const char str18[] PROGMEM = "300";
const char str19[] PROGMEM = "100";
const char str20[] PROGMEM = "50";
const char str21[] PROGMEM = "10";
const char str22[] PROGMEM = "5";
И естественно установка таких дистанций для удобства:
const char str23[] PROGMEM = "100";
const char str24[] PROGMEM = "50";
const char str25[] PROGMEM = "20";
const char str26[] PROGMEM = "10";
const char str27[] PROGMEM = "5";
const char str28[] PROGMEM = "1";
const char str29[] PROGMEM = "0.5";
const char str30[] PROGMEM = "0.1";
const char str31[] PROGMEM = "0.05";
const char str32[] PROGMEM = "0.02";
const char str33[] PROGMEM = "0.01";
Думал дополнить пульт картой памяти, что б можно было использовать станок OffLine, но потом передумал поскольку использую станок исключительно для изготовления печатных плат с использованием карты высот. Возможно в дальнейшем буду обрабатывать деревянные поверхности, тогда возможно сделаю версию 3 уже с картридером.
В общем работает все так:
Питается пульт от самого станка, общается со станком посредствам Rx и Tx на скорости 115200 бод.
справа от дисплея под правую руку расположил 5 кнопок:
Управление движениями по всем осям X, Y и Z соответственно. Скорость движения и дистанции при однократном нажатию на кнопку выставляется в настройках. Это для позиционирования шпинделя. с левой стороны под левой рукой расположены 3 кнопки:
Меню, Сет и кнопка экстренной остановки.
Когда не в меню значение кнопки СЕТ меняется на сброс ошибки, если таковая была.
На дисплее отображается команда, которая была отправлена последней с пульта и какой ответ на эту команду получили в ответ. Думаю допилить прошивку: что б отображались координаты шпинделя и некоторые настройки:
Скорость движения по осям X/Y Скорость движения по Z, и установленные дистанции движений по X/Y и отдельно для Z.
Если кому интересны схема пульта, печатная плата в sprint loyout 6 и софт - могу выложить. В данный момент занимаюсь разработкой красивой коробочки для пульта, что б он имел более презентабельный вид и удобство в использовании.