Grbl и FLprog

Шаговые двигатели , ускорение

Вопросы от новичков
Ответить
solo
Рядовой
Сообщения: 54
Зарегистрирован: 06.12.2016{, 18:04}
Репутация: 0
Откуда: Харьков

Grbl и FLprog

#1

Сообщение solo » 13.09.2019{, 11:48}

захотелось мне подружить две программы Grbl (программа для управления 3-4 шаговыми двигателями) и FLprog , залил в одну ардуинку (нано) GRBL в другую (уна) скетч от FLprog соединил ардуинки по ком порту и шаговики закрутились , ура :smile9:
Есть проблемы , может кто поможет решить :smile37:
1 при отправке с УНЫ на GRBL Ж-кода , плата отвечает "оК"( если смотреть в ком порте платы с GRBL) ответ приходит 2 раза , хотелось бы чтобы ответ был один , скорее всего первый ответ приходит после окончания передаваемой строки, а второй ОК приходит с КОМ порта "Закончить переводом строки " без этого не работает
2 я не как не могу прочитать этот ответ "оК" на ардуинке УНЕ ( с FLprog ) так, что бы была возможность следить за буфером загрузки
3 хотелось бы дополнительно посылать команды на плату с Grbl с платы с FLprog такие как "?" и в зависимости от ответа формировать посылать разные управляющие команды

Изображение
Вложения
грбл.png
проба ГРБЛ2.flp
(53.6 КБ) 54 скачивания

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Grbl и FLprog

#2

Сообщение Sancho » 13.09.2019{, 12:40}

мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

solo
Рядовой
Сообщения: 54
Зарегистрирован: 06.12.2016{, 18:04}
Репутация: 0
Откуда: Харьков

Grbl и FLprog

#3

Сообщение solo » 13.09.2019{, 13:23}

спасибо
но я так пробовал :smile427:
вот повторил еще раз , немного изменил , насколько я понимаю в моем варианте после получения строки , должен вспыхнуть светодиод (13) на плате, а это не происходит , следовательно ничего не приходит по КОМ порту :smile453:
может во всем вина скорости КОМ порта 115200 и ардуинка не успевает записать
Вложения
проба ГРБЛ2.flp
(133.6 КБ) 44 скачивания
грбл2.png

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Grbl и FLprog

#4

Сообщение Sancho » 13.09.2019{, 15:15}

solo, Возьмите uart тестер - иначе ничего не проясним.

Отправлено спустя 1 час 6 минут 15 секунд:
Здесь описал. :)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

solo
Рядовой
Сообщения: 54
Зарегистрирован: 06.12.2016{, 18:04}
Репутация: 0
Откуда: Харьков

Grbl и FLprog

#5

Сообщение solo » 13.09.2019{, 16:34}

от я старый слепой , нашел непропай
зато узнал, что есть программа терминал для тестирования ком порта , 2 дня бился из за своей невнимательности
так что-то начало появятся но я смотрю то, что мне приходит ,по софт-сериалу (ардуинки соединены между собой так) на ардуину с FLprog по ком порту этой ардуинки .
приходит "ок" с краказяблами , наверно нада чета подправить :smile390:

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Grbl и FLprog

#6

Сообщение Sancho » 13.09.2019{, 16:47}

solo писал(а):
13.09.2019{, 16:34}
приходит "ок" с краказяблами , наверно нада чета подправить
А чего пишет "тестер", когда принимает "ок" от драйвера, только в режиме HEX?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

solo
Рядовой
Сообщения: 54
Зарегистрирован: 06.12.2016{, 18:04}
Репутация: 0
Откуда: Харьков

Grbl и FLprog

#7

Сообщение solo » 13.09.2019{, 16:54}

в режиме НЕХ показывает 16-ричные циферки а в ASCII пишет оК
вот скрин первых две строчки в НЕХ
Вложения
тестер.png

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Grbl и FLprog

#8

Сообщение Sancho » 13.09.2019{, 17:02}

0А и 0D - это и есть каретка и перевод строки. Остальное смотри по ASCII таблице.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

solo
Рядовой
Сообщения: 54
Зарегистрирован: 06.12.2016{, 18:04}
Репутация: 0
Откуда: Харьков

Grbl и FLprog

#9

Сообщение solo » 16.09.2019{, 17:06}

подскажите пж как можно с передаваемой строки по КОМ порту удалить последний НЕХ код (0А) то есть чтобы строка заканчивалась "новой строкой"
Вложения
проба ГРБЛ3.flp
(79.89 КБ) 50 скачиваний
16.09.png

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

Grbl и FLprog

#10

Сообщение AlexCrane » 16.09.2019{, 21:36}

solo, Как-то так
Стринг+Чар.png
Стринг+Чар.png (3.39 КБ) 1091 просмотр
Перевод строки в блоке убрать
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

solo
Рядовой
Сообщения: 54
Зарегистрирован: 06.12.2016{, 18:04}
Репутация: 0
Откуда: Харьков

Grbl и FLprog

#11

Сообщение solo » 17.09.2019{, 09:13}

так у меня сейчас так и сделано , но если убираю в отправке в UART "закончить переводом строки " то тогда передаваемая строка не воспринимается другой ардуинкой и не отрабатывается шаговыми двигателями , очевидно "перевод строки " и "перевод каретки " воспринимается как окончание принятой команды, и вторая ардуина с прошивкой GRBL отвечает оК или еррор . То есть сейчас ардуинка с прошивкой GRBL на каждую переданную строку отвечает 2 раза оК , что по моим субъективным ощущениям замедляет выполнение Ж кода ( посылаемых команд ) , а хочется чтобы было все по шустрее

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Grbl и FLprog

#12

Сообщение Sancho » 17.09.2019{, 09:59}

solo, Ну вот так сделай:
Вложения
проба ГРБЛ3_01.flp
(112.15 КБ) 67 скачиваний
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

solo
Рядовой
Сообщения: 54
Зарегистрирован: 06.12.2016{, 18:04}
Репутация: 0
Откуда: Харьков

Grbl и FLprog

#13

Сообщение solo » 17.09.2019{, 10:22}

УРАааааа заработало , странно но я так пробовал :smile427: , но у меня почему то не заработало , наверное по тому , что я не использовал переменной "11" перед передачей данных в UART :smile390: и на вход преобразователя в "ЧАР" я тоже вставлял константу, а не переменную , возьму на заметку эти хитрости :smile198:

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Grbl и FLprog

#14

Сообщение Sancho » 17.09.2019{, 10:29}

solo, Замени переменную "Новая строка" на 13 тип байт, в hex это 0D - будет то-же самое.
Переменная типа стринг, 11(назвал от фонаря) - потребляет память, но код читабельнее, и время программы немного меньше(почему - догадайся).
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

solo
Рядовой
Сообщения: 54
Зарегистрирован: 06.12.2016{, 18:04}
Репутация: 0
Откуда: Харьков

Grbl и FLprog

#15

Сообщение solo » 17.09.2019{, 12:38}

Sancho писал(а):
17.09.2019{, 10:29}
время программы немного меньше(почему - догадайся).
наверное по тому, что доступ к памяти где лежат переменные меньше чем время доступа к памяти где лежит программа и константы , ну это ПМСМ

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Grbl и FLprog

#16

Сообщение Sancho » 17.09.2019{, 12:52}

solo писал(а):
17.09.2019{, 12:38}
наверное по тому,....
Потому, что в таких случаях код выглядит так:

Код: Выделить всё

if (!(0)){if(!(( ((String("X")) + ((String((_FLPArray54669742[_count2_Value]), DEC))) + (String("Y")) + ((String((_FLPArray38217284[_count2_Value]), DEC))) + (String("Z")) + ((String((_FLPArray49028703[_count2_Value]), DEC)))))==(_stou1))){Serial.println(((String("X")) + ((String((_FLPArray54669742[_count2_Value]), DEC))) + (String("Y")) + ((String((_FLPArray38217284[_count2_Value]), DEC))) + (String("Z")) + ((String((_FLPArray49028703[_count2_Value]), DEC)))));}} _stou1 = ((String("X")) + ((String((_FLPArray54669742[_count2_Value]), DEC))) + (String("Y")) + ((String((_FLPArray38217284[_count2_Value]), DEC))) + (String("Z")) + ((String((_FLPArray49028703[_count2_Value]), DEC)))); 
Т.е один раз достаём из массива, конвертируем, складываем,прибавим символ - сравниваем с тем, что было, _stou1
Если изменилось, то:
второй раз раз достаём из массива, конвертируем, складываем, прибавим символ - отправляем
третий раз раз достаём из массива, конвертируем, складываем, прибавим символ - запоминаем, _stou1
В новом формате:
один раз достаём из массива, конвертируем, складываем, прибавим символ - новая переменная.
сравниваем с тем, что было, _stou1
Если изменилось, то:
отправляем переменную,
запоминаем, _stou1
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

solo
Рядовой
Сообщения: 54
Зарегистрирован: 06.12.2016{, 18:04}
Репутация: 0
Откуда: Харьков

Grbl и FLprog

#17

Сообщение solo » 17.09.2019{, 13:19}

ну это мне уже тяжело понять :smile44:

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

Grbl и FLprog

#18

Сообщение AlexCrane » 17.09.2019{, 20:29}

solo, зачем лишние блоки городить когда можно сразу прибавить \x0D....
проба ГРБЛ3_02.flp
(93.15 КБ) 70 скачиваний
Получится тоже самое что и в посте viewtopic.php?p=76264#p76264
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

solo
Рядовой
Сообщения: 54
Зарегистрирован: 06.12.2016{, 18:04}
Репутация: 0
Откуда: Харьков

Grbl и FLprog

#19

Сообщение solo » 18.09.2019{, 09:03}

У меня Ваш проект не открывается ? я пользуюсь FLprog 5.3
на сколько я понимаю по задумке нужно просто в блоке сложении строк последней строкой добавить строку "\x0D"
если так то не получается , в терминале порта выводит нолики (23 строки ), а должно выводить строку типа (X0Y0Z0) или X10Y10Z10
Вложения
не пошло.png

solo
Рядовой
Сообщения: 54
Зарегистрирован: 06.12.2016{, 18:04}
Репутация: 0
Откуда: Харьков

Grbl и FLprog

#20

Сообщение solo » 18.09.2019{, 09:07}

все получилось из-за невнимательности не правильно выставил скорость КОМ порта
Спасибо :smile9:

Ответить

Вернуться в «Начинающим»