Страница 1 из 1
Grbl и FLprog
Добавлено: 13 сен 2019, 11:48
solo
захотелось мне подружить две программы Grbl (программа для управления 3-4 шаговыми двигателями) и FLprog , залил в одну ардуинку (нано) GRBL в другую (уна) скетч от FLprog соединил ардуинки по ком порту и шаговики закрутились , ура
Есть проблемы , может кто поможет решить
1 при отправке с УНЫ на GRBL Ж-кода , плата отвечает "оК"( если смотреть в ком порте платы с GRBL) ответ приходит 2 раза , хотелось бы чтобы ответ был один , скорее всего первый ответ приходит после окончания передаваемой строки, а второй ОК приходит с КОМ порта "Закончить переводом строки " без этого не работает
2 я не как не могу прочитать этот ответ "оК" на ардуинке УНЕ ( с FLprog ) так, что бы была возможность следить за буфером загрузки
3 хотелось бы дополнительно посылать команды на плату с Grbl с платы с FLprog такие как "?" и в зависимости от ответа формировать посылать разные управляющие команды
![Изображение]()
Grbl и FLprog
Добавлено: 13 сен 2019, 12:40
Sancho
Grbl и FLprog
Добавлено: 13 сен 2019, 13:23
solo
спасибо
но я так пробовал
вот повторил еще раз , немного изменил , насколько я понимаю в моем варианте после получения строки , должен вспыхнуть светодиод (13) на плате, а это не происходит , следовательно ничего не приходит по КОМ порту
может во всем вина скорости КОМ порта 115200 и ардуинка не успевает записать
Grbl и FLprog
Добавлено: 13 сен 2019, 16:21
Sancho
[ref]solo[/ref], Возьмите uart тестер - иначе ничего не проясним.
Отправлено спустя 1 час 6 минут 15 секунд:
Здесь описал.

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

Grbl и FLprog
Добавлено: 13 сен 2019, 16:47
Sancho
solo писал(а): 13 сен 2019, 16:34
приходит "ок" с краказяблами , наверно нада чета подправить
А чего пишет "тестер", когда принимает "ок" от драйвера, только в режиме HEX?
Grbl и FLprog
Добавлено: 13 сен 2019, 16:54
solo
в режиме НЕХ показывает 16-ричные циферки а в ASCII пишет оК
вот скрин первых две строчки в НЕХ
Grbl и FLprog
Добавлено: 13 сен 2019, 17:02
Sancho
0А и 0D - это и есть каретка и перевод строки. Остальное смотри по
ASCII таблице.
Grbl и FLprog
Добавлено: 16 сен 2019, 17:06
solo
подскажите пж как можно с передаваемой строки по КОМ порту удалить последний НЕХ код (0А) то есть чтобы строка заканчивалась "новой строкой"
Grbl и FLprog
Добавлено: 16 сен 2019, 21:36
AlexCrane
[ref]solo[/ref], Как-то так
Стринг+Чар.png
Перевод строки в блоке убрать
Grbl и FLprog
Добавлено: 17 сен 2019, 09:13
solo
так у меня сейчас так и сделано , но если убираю в отправке в UART "закончить переводом строки " то тогда передаваемая строка не воспринимается другой ардуинкой и не отрабатывается шаговыми двигателями , очевидно "перевод строки " и "перевод каретки " воспринимается как окончание принятой команды, и вторая ардуина с прошивкой GRBL отвечает оК или еррор . То есть сейчас ардуинка с прошивкой GRBL на каждую переданную строку отвечает 2 раза оК , что по моим субъективным ощущениям замедляет выполнение Ж кода ( посылаемых команд ) , а хочется чтобы было все по шустрее
Grbl и FLprog
Добавлено: 17 сен 2019, 09:59
Sancho
[ref]solo[/ref], Ну вот так сделай:
Grbl и FLprog
Добавлено: 17 сен 2019, 10:22
solo
УРАааааа заработало , странно но я так пробовал

, но у меня почему то не заработало , наверное по тому , что я не использовал переменной "11" перед передачей данных в UART

и на вход преобразователя в "ЧАР" я тоже вставлял константу, а не переменную , возьму на заметку эти хитрости

Grbl и FLprog
Добавлено: 17 сен 2019, 10:29
Sancho
[ref]solo[/ref], Замени переменную "Новая строка" на 13 тип байт, в hex это 0D - будет то-же самое.
Переменная типа стринг, 11(назвал от фонаря) - потребляет память, но код читабельнее, и время программы немного меньше(почему - догадайся).
Grbl и FLprog
Добавлено: 17 сен 2019, 12:38
solo
Sancho писал(а): 17 сен 2019, 10:29
время программы немного меньше(почему - догадайся).
наверное по тому, что доступ к памяти где лежат переменные меньше чем время доступа к памяти где лежит программа и константы , ну это ПМСМ
Grbl и FLprog
Добавлено: 17 сен 2019, 12:52
Sancho
solo писал(а): 17 сен 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
Grbl и FLprog
Добавлено: 17 сен 2019, 13:19
solo
ну это мне уже тяжело понять

Grbl и FLprog
Добавлено: 17 сен 2019, 20:29
AlexCrane
[ref]solo[/ref], зачем лишние блоки городить когда можно сразу прибавить \x0D....
проба ГРБЛ3_02.flp
Получится тоже самое что и в посте
viewtopic.php?p=76264#p76264
Grbl и FLprog
Добавлено: 18 сен 2019, 09:03
solo
У меня Ваш проект не открывается ? я пользуюсь FLprog 5.3
на сколько я понимаю по задумке нужно просто в блоке сложении строк последней строкой добавить строку "\x0D"
если так то не получается , в терминале порта выводит нолики (23 строки ), а должно выводить строку типа (X0Y0Z0) или X10Y10Z10
Grbl и FLprog
Добавлено: 18 сен 2019, 09:07
solo
все получилось из-за невнимательности не правильно выставил скорость КОМ порта
Спасибо
