Страница 14 из 17
Re: Arduino GRBL Companion - Автономный контроллер для GRBL
Добавлено: 22 янв 2019, 07:08
tecnocat
Для русского языка можно поковыряться в сторону Optiboot,
тогда для прошивки будет полных 32К,
ну и русский придется делать в однобайтной кодировке типа DOS или Win1251 чтобы сэкономить память,
что с переходом на среду Arduino 1.8.XX довольно проблематично.
Re: Arduino GRBL Companion - Автономный контроллер для GRBL
Добавлено: 22 янв 2019, 22:05
Ddimon
Здравствуйте , я не могу разобраться в части кода выполнения УП буфер заполняется одной строкой или несколько целых строк , можно попросить этот кусочек скетча с подробными комментариями. И работа со строками для меня тёмный лес а тоже хотелось бы понять как происходит подмена скорости и она не работает если строка начинается с F.
Re: Arduino GRBL Companion - Автономный контроллер для GRBL
Добавлено: 24 янв 2019, 07:43
tecnocat
Код: Выделить всё
void execute_file(String &fname) {
current_line = skip = skip_page = 0;
int8_t pos_start = 0;
int8_t pos_end = 0;
char feed[10];
char temp[40];
feed_dig = feed_safe;
if (EEPROM.read(EEPROM_START) == 1) {
exec_mode = EXEC_PLAY;
} else if (EEPROM.read(EEPROM_START) == 0) {
exec_mode = EXEC_PAUSE;
}
Serial.flush();
pp_menu = 0;
exec_screen();
buttons_screen();
process_keys();
File text = SD.open(fname, O_READ); // открытие файла
if (text) {
while (text.available()) {
process_keys();
if (exec_mode == EXEC_EXIT) {
text.close();
exit;
}
current_line++;
memset(buff, 0, sizeof(buff));
readcnt = text.readBytesUntil(0x0A, buff, sizeof(buff)); // Читаем строку до перевода строки
if (readcnt > 0) {
buff[readcnt] = 0;
pos_start = 0;
for (int8_t pe = 0; pe < sizeof(buff); pe++) { // Ищем букву F как начало команды FEED RATE
if ((buff[pe] == 0x46)) {
pos_start = pe;
break;
}
}
if (pos_start > 0) { // если нашли - ищем конец команды
for (int8_t pe = pos_start + 1; pe < sizeof(buff); pe++) {
if ((buff[pe] > 0x39) || (buff[pe] == 0)) {
pos_end = pe;
break;
}
}
strncpy(feed, buff + pos_start + 1, pos_end - pos_start); // выделяем значение FEED
feed_dig = strtol(feed, 0, 0); // конвертируем значение FEED в число
if (feed_dig > feed_safe) feed_dig = feed_safe; // сравниваем значение FEED с безопасным
ltoa(feed_dig, feed, 10);
for (int8_t pe = 0; pe < 10; pe++) {
if (feed[pe] == 0) {
pos_end = pe - 1;
break;
}
}
strncpy(buff + pos_start + 1, feed, pos_end); // заменяем значение FEED безопасным
}
for (int8_t pe = 0; pe < sizeof(buff); pe++) {
if (buff[pe] == 0x0D) {
buff[pe] = 0x0A;
buff[pe + 1] = 0x00;
break;
}
if (buff[pe] == 0x0A) {
buff[pe + 1] = 0x00;
break;
}
}
Serial.print(buff); // Выдаем строку в порт
Serial.flush();
memset(temp, 0, sizeof(temp));
strncpy(temp, buff, sizeof(temp));
for (int8_t pe = 0; pe < sizeof(temp); pe++) {
if ((temp[pe] == 0x0D) || (temp[pe] == 0x0A)) {
temp[pe] = 0x00;
break;
}
}
if (exec_mode == EXEC_STEP) { // если пошаговое исполнение печатаем команду на экран
tft.setTextSize(1);
tft.setCursor(0, (skip + 3)* CHAR_HEIGHT);
printTFTString((char*)empty_line); tft.println();
printTFTString((char*)empty_line); tft.println();
tft.setCursor(0, (skip + 3)* CHAR_HEIGHT);
tft.setTextColor(YELLOW, BLACK);
tft.print(buff);
skip++;
}
Serial.flush();
}
while (Serial.available() == 0) { // ждем ответа от GRBL
encRead(); if ((encClick) && (exec_mode == EXEC_PLAY)) {
pp_menu = 2;
exec_mode = EXEC_PAUSE;
process_keys();
}
if (exec_mode == EXEC_EXIT) break;
}
while (Serial.available() > 0) { // если пришел ответ от GRBL
memset(buff, 0, sizeof(buff));
readcnt = Serial.readBytesUntil(0x0A, buff, sizeof(buff));
if (readcnt > 0) {
buff[readcnt] = 0;
if (strncmp(buff, "error", 5) == 0) { // смотрим ошибку и печатаем на экран
delay(10);
Serial.flush();
tft.setTextSize(1);
tft.setCursor(0, (skip + 3)* CHAR_HEIGHT);
printTFTString((char*)empty_line);
printTFTString((char*)empty_line);
printTFTString((char*)empty_line);
tft.setCursor(0, (skip + 3)* CHAR_HEIGHT);
tft.setTextColor(RED, BLACK);
tft.print(current_line);
printTFTString((char*)trail);
tft.println(temp);
tft.print(buff);
memset(temp, 0, sizeof(temp));
if (EEPROM.read(EEPROM_PAUSE) == 1) exec_mode = EXEC_PAUSE;
skip++;
}
if ((strncmp(buff, "ok", 2) == 0)) { // от GRBL пришло сообщение о нормальном исполнении
delay(10);
Serial.flush();
}
}
encRead();
if ((encClick) && (exec_mode == EXEC_PLAY)) { // обработка клика энкодера
pp_menu = 2;
exec_mode = EXEC_PAUSE;
OK_KEY = encClick = false;
process_keys();
}
if (exec_mode == EXEC_EXIT) break;
}
exec_screen();
if (skip > (MAX_DISPLAY_LINES - 5))skip = 0;
}
}
text.close();
}
Re: Arduino GRBL Companion - Автономный контроллер для GRBL
Добавлено: 30 янв 2019, 12:59
tecnocat
Ddimon писал(а):
Здравствуйте , я не могу разобраться в части кода выполнения УП буфер заполняется одной строкой или несколько целых строк , можно попросить этот кусочек скетча с подробными комментариями. И работа со строками для меня тёмный лес а тоже хотелось бы понять как происходит подмена скорости и она не работает если строка начинается с F.
И никаких комментариев не последовало
Re: Arduino GRBL Companion - Автономный контроллер для GRBL
Добавлено: 17 фев 2019, 11:52
Lucyfire999
druksel писал(а):уважаемый Технокот, вы данную разработку забросили?? попробовал повторить - но имеются вопросы.
при старте данного девайса не всегда удается получить одинаковые скорости обмена между ардуинками.
ардушка с вашей прошивкой похоже работает на 57600. а ардуха с ГРБЛ - на 115200.
есть ли в вашей прошивке возможность жестко установить скорость обмена между ардуинками?
с уважением, Андрей.
Добрый день. У меня такиеже проблемы ((( подскажи пожалуйста как их решить.
Re: Arduino GRBL Companion - Автономный контроллер для GRBL
Добавлено: 12 апр 2019, 10:05
maximius
Добрый день всем форумчанам. Давно наблюдаю за данной темой, и наконец-то получил все запчасти для реализации. Собрал по схеме. Дисплей работает, файлы с карты читает, но есть несколько ошибок:
1. В ручном режиме после того, как выбираю ось, при повороте энкодера появляется шаг от 1 до 5 и все, девайс на повороты энкодера не реагирует. Только на кнопку энкодера, по которому выходит в выбор оси. Так во всех прошивках, включая загрузку hex.
2. При запуске управляющей программы с карты перечень файлов читается, но при запуске файла экран белеет. Фото во вложении.
В терминале сообщения проходят, пробовал разные версии grbl и контроллера. Пробовал подключать внешнее питание. Результат тот же.
Re: Arduino GRBL Companion - Автономный контроллер для GRBL
Добавлено: 15 апр 2019, 18:30
tecnocat
Почему белый экран не скажу, да и прошивку надо пересобирать под свежую версию Arduino Idea, может глюки уйдут
Re: Arduino GRBL Companion - Автономный контроллер для GRBL
Добавлено: 15 апр 2019, 18:33
tecnocat
Lucyfire999 писал(а):druksel писал(а):уважаемый Технокот, вы данную разработку забросили?? попробовал повторить - но имеются вопросы.
при старте данного девайса не всегда удается получить одинаковые скорости обмена между ардуинками.
ардушка с вашей прошивкой похоже работает на 57600. а ардуха с ГРБЛ - на 115200.
есть ли в вашей прошивке возможность жестко установить скорость обмена между ардуинками?
с уважением, Андрей.
Добрый день. У меня такиеже проблемы ((( подскажи пожалуйста как их решить.
Если посмотреть раздел Setup скетча - там инициализация 115200, либо неправильно выбрана модель ардуины при компиляции, либо с переходом на свежую версию ice есть глюк в библиотеках
Re: Arduino GRBL Companion - Автономный контроллер для GRBL
Добавлено: 04 май 2019, 01:56
Yashcher
maks9744 писал(а):контролер на grbl в качестве дисплея использовать сенсорный дисплей Nextion
Какой именно Nextion, и можно ли посмотреть что у Вас получилось?
Re: Arduino GRBL Companion - Автономный контроллер для GRBL
Добавлено: 17 май 2019, 21:35
Yashcher
Вопрос к уважаемому tecnocat.
Возможно ли добавить команду типа
M47 Repeat program from first line ?
Re: Arduino GRBL Companion - Автономный контроллер для GRBL
Добавлено: 02 июн 2019, 20:31
Alex261153
Здравствуйте все. Наконец я все собрал и запустил. Но есть два вопроса. 1- мерцание экрана. 2- по команде M5S0 выдает error2.Просто M5 или M5S1000 работает без ошибок. Помогите.
Re: Arduino GRBL Companion - Автономный контроллер для GRBL
Добавлено: 03 июн 2019, 08:42
nevkon
Что делает этот код не пытались выяснить?
M5 - остановка шпинделя.
S1000 (S0) - задать частоту вращения в 1000 об/мин (0 об/мин) шпинделю.
А теперь скажите какой смысл задавать частоту вращения остановленному шпинделю?
Re: Arduino GRBL Companion - Автономный контроллер для GRBL
Добавлено: 03 июн 2019, 09:23
Alex261153
Сейчас точно не помню, но было по М5 лазер не выключился, надо было дописывать S0.
«Error: 2»: _ («Формат числового значения недопустим или отсутствует ожидаемое значение.»),
Re: Arduino GRBL Companion - Автономный контроллер для GRBL
Добавлено: 21 июн 2019, 22:21
udaff
tecnocat, Приветствую! Купил, собрал, полетело. Arduino Pro mini, энкодер ky-040, Дисплей на st7735 (по заявлению продавца)
Но есть проблема с отображением спец. символов:
Перепробовал оба скетча под разные библиотеки, пробовал заливать старой IDE 1.6.7 - безрезультатно.
Помогите пожалуйста
Re: Arduino GRBL Companion - Автономный контроллер для GRBL
Добавлено: 23 июн 2019, 11:35
Alex261153
Вот попробуй вот это, не обращай внимание на <TFT_ILI9163C.h>, они одинаковые похоже.
Не получается вставить картинку.
Re: Arduino GRBL Companion - Автономный контроллер для GRBL
Добавлено: 23 июн 2019, 11:46
Alex261153
Вот и картинки.
Re: Arduino GRBL Companion - Автономный контроллер для GRBL
Добавлено: 23 июн 2019, 14:27
udaff
Ничего не изменилось. Возможно мне нужны библиотеки как у Вас
Re: Arduino GRBL Companion - Автономный контроллер для GRBL
Добавлено: 23 июн 2019, 15:13
Alex261153
Все библиотеки с 1-ой страницы "Обновление проекта - собрал все в кучу
Архив с исходниками и библиотеками:
full_pack_27_02_2017.zip"
Библиотеки не обновляй и все получится.
Re: Arduino GRBL Companion - Автономный контроллер для GRBL
Добавлено: 23 июн 2019, 15:24
udaff
Получилось) Наверное какая-то из библиотек обновилась. IDE 1.8.2. Удалил свои библиотеки, залил из шапки. Очистил eeprom на всякий. Залил скетч - и все стало ок.
Осталось только побороть "дребезг" энкодера.
Re: Arduino GRBL Companion - Автономный контроллер для GRBL
Добавлено: 23 июн 2019, 16:55
Alex261153
Я поставил три подтягивающих резистора, без них не пробовал. У меня энкодер ЕС11 без резисторов.