Автономный контроллер своими руками.

  • Последнее редактирование:
    Рекомендованный
  • #46
Последнее редактирование:
функциональные - управление какой нибудь силой, типа подсветки, пылесоса, ОСЖ и т.д.
Точно, Подсветки пылесоса.
Ваши сообщения автоматически объединены:

Пины от кнопок можно освободить, а на один аналоговый вход навесить целую резистивную клавиатуру и отслеживать нажатия кнопки функцией analogRead(), я так отслеживал клавиатуру 4х8 кнопок, спокойно 1 нога справляется! Вообще желательно установить на плату контроллера разьем на 3 пина для подключения отдельной клавиатуры, тогда кнопки можно будет переделывать как угодно не трогая контроллер и только менять значения в функции обработки выполняя необходимые команды.
Ваши сообщения автоматически объединены:


Можно использовать старый добрый LM338, ток до 5 ампер и отсутствие на выходе ВЧ составляющей от шим.
LM138-238-338
Если добавить к нему термопредохранитель на радиатор, будет автоматическое включение обдува при нагреве.

Вот скетч для обработки клавиатуры.

Вот примерная схема, если резистор подтяжки оставить на контроллере, подключается по двум проводам, масса и сигнал с кнопок.
дык вроде для ардуинки клавы с дровами есть чуть ли не на стандартную 102 кнопочную
Ваши сообщения автоматически объединены:

кнопки на резистивной матрице 4х4
 
Пины от кнопок можно освободить, а на один аналоговый вход навесить целую резистивную клавиатуру и отслеживать нажатия кнопки функцией analogRead(),
Верно, кнопки перемещения именно так и сделаны.
Можно использовать старый добрый LM338
Вот за это огромное спасибо.
 
  • Последнее редактирование:
Последнее редактирование:
дык вроде для ардуинки клавы с дровами есть чуть ли не на стандартную 102 кнопочную
Для этого необходимо целую либу в скетч пихать, а это занимает память, для обработки 1 кнопки нужно всего 3 строки кода, 10 кнопок - 30 строк, меньше килобайта, а на место либы дописать дополнительные полезные функции использующие освободившиеся от нопок пины.
На освободившихся ногах можно организовать дополнительные выходы управления нагрузкой, если есть свободный аналоговый, то потенциометром регулируем скорость оборотов шпинделя, если есть еще один, регулируем скорость перемещения по осям вторым потенциометром, на цифровые можно повесить управление вентиляторами, управление обычным зуммером для оповещения об шибке или перегреве, организовать линию 1-wire для термометров 18b20 хоть на каждый радиатор, при достижении заданной температуры они включат обдув, при превышении на 5 градусов подадут звуковой сигнал зуммером, при превышении на 10 градусов остановят выполнение программы включив паузу до снижения температуры, потом после остывания продолжат, еще можно добавить функцию сохранения контрольных точек выполнения программы через каждые 100-500 шагов и после отключения и включения электричества не придётся станку лопатить больше половины кода в холостую, найдёт последнюю точку, вернётся на 2точки назад, пройдёт в пустую 200 шагов и продолжит выполнение, если программа на несколько часов очень даже актульная функция!
Много можно добавить удобных штук, особенно если контроллер вспомогательный и у него есть не задействованые ноги
Ваши сообщения автоматически объединены:

Ещё есть одна нога на основном контроллере, наследованая в прошивке от принтеров и на нашем станке не актуальная, это открытая дверь, вход аналоговый, можно использовать для контроля наличия сетевого питания через резистивный делитель, как только напряжение упадеёт ниже заданного минимума, в файл sD карты Report.txt будет произведена запись об отключении питания, заряда гасящих конденсаторов блока питания на запись хватит с лихвой, зато станок при старте уже будет знать, что отключился свет и что ему нужно делать если свет включили, прописать это отдельной функцией при старте.
1-начать выполнение программы с начала
2-выполнять программу вернувшись на 2 точки назад
3-ждать команды начальника пилорамы
Ваши сообщения автоматически объединены:

Еще хорошо-бы чтоб при запуске, на карте было 4 файла, допустим command.txt-программа грбл, settings.txt-все настройки проекта которые считываютя при старте и правятся обычным блокнотом без всяких интерфейсов, файл point.txt-для записи контрольных точек и файл report.txt-куда записываются все ошибки
Ваши сообщения автоматически объединены:

В глобальные переменные добавить переменную типа "int Error_count = 0;" и при каждой ошибке увеличивать её на единицу, после завершенния программы выводить на дисплей сообщение: если равно нулю-проект успешно завершён, если не равно нулю проект завершён с количеством № ошибок, анализируем файл ошибок на карте и правим скетч
 
2-выполнять программу вернувшись на 2 точки назад
Думал об этом. Но тут есть большая вероятность Что работа начнётся с выключенным шпинделем. или ещё какой сбой.
 
  • Последнее редактирование:
Последнее редактирование:
Обычный алгоритм, при включении питания читаем текстовый файл настроек проекта на карте, если в настройках указано продолжать, отправляем станок в дом, устанавливаем ноль, читаем контрольную точку минус 2 точки назад, выводим инструмент чтоб фреза находилась в пройденой точке по осям X и Y, запускаем шпиндель, медленно выводим его в положение оси Z и продолжаем фрезеровку, на всё про всё порядка 2 минут примерно, поправьте если я ошибаюсь.
Ваши сообщения автоматически объединены:

Учтите ещё такой нюанс, что при предыдущих проходах феза работала под нагрузкой и её перемещения были обусловлены оборотами шпинделя, твёрдостью материала и люфтами передач, если она пройдёт это в течении нескольких минут по воздуху и впилится в заготовку будет упсс...
Ваши сообщения автоматически объединены:

А если будет ездить несколько часов повторяя программу с самого начала по воздху, точность будет +- 1сантиметр
Ваши сообщения автоматически объединены:

Думал об этом. Но тут есть большая вероятность Что работа начнётся с выключенным шпинделем. или ещё какой сбой.
Команда идущая на включение драйверов шаговых двигателей может автоматом врубать как низковольтовый шпиндель через ключ или реле, так и симистор BTA-41 через опттрон MOC-3142 мощностью до 5 килловат примерно
Ваши сообщения автоматически объединены:

У меня в частном доме "BTA-41 через опттрон MOC-3142" уже третий год через ардуино отоплением рулит, в самые сильные холода пластина 15х15см радиатор, слегка тёплая, ещё изоляция 800 вольт, не надо ни каких прокладок, крепи куда хочешь, между радиатором и ногами семистора
150 мегаом, управляеся через обычую моську!
 
Обычный алгоритм, при включении питания читаем текстовый файл настроек проекта на карте, если в настройках указано продолжать, отправляем станок в дом, устанавливаем ноль, читаем контрольную точку минус 2 точки назад, выводим инструмент чтоб фреза находилась в пройденой точке по осям X и Y, запускаем шпиндель, медленно выводим его в положение оси Z и продолжаем фрезеровку, на всё про всё порядка 2 минут примерно, поправьте если я ошибаюсь.
В начале кода идут команды включения шпинделя, задаётся скорость передвижения. Так же в процессе работы скорость может меняться, например при погружении фрезы. И вот мы с вами , полностью игнорируем часть кода и начинаем неизвестно с чего с непонятно каких установок. Какую скорость рабочую задавать?
 
уважаемый Sany-sch
добрый день
ценю ваш труд
думал что нашел что искал , но .... ?????
обратил внимание что при выполнение работы с file-а
(видео 9.20 )дисплай не меняется и изучив код убедился
-- в самом деле LCD у вас отображает то что посылает кнопки , а не состояние GRBL . Если не прав поправьте мне
не разумно было если бы отображался информация/статус/состояние ... с самого GRBL
(опрос по "?" и отображение кординат с самого GRBL)

с уважением
P.S. -извеняюсь за мой руский .мне очень трудно писать кириллицей (сам не руский) а то заволил форум
 
в самом деле LCD у вас отображает то что посылает кнопки , а не состояние GRBL
Ну так и вопрос в видео стоял "Какие функции присвоить кнопкам".
Отображать текущую команду, а соответственно и координаты не сложно, Но поясните мне, что это даст? Какая от этого реальная польза?
 
Ну так и вопрос в видео стоял "Какие функции присвоить кнопкам".
Отображать текущую команду, а соответственно и координаты не сложно, Но поясните мне, что это даст? Какая от этого реальная польза?
ну поскольку вы посылаете команды управления кнопками и не принимаете ответ от GRBL, он получил его или нет, и, кроме того, он выполнялся ли правильно
например, вы отправляете x0.01y0.01z0.01 LCD покажет x0.01y0.01z0.01 даже если станок не будет реагировать или перешeл к другим координатам
согласитесь визуальный контроль за машиной не в счет
что я предлагаю - что LCD показал координаты полученные от GRBL a не то что отправляет кнопки.
выводы за Вами
p.s. в самом деле думаете что непрерывное отображение координат не так сложно?
то есть непрерывно отработать ответ на "?" такого типа
<Run,MPos:4.934,0.000,0.000,WPos:4.934,0.000,0.000>
так чтобы можно было отправить потом на LCD????????
 
вы посылаете команды управления кнопками и не принимаете ответ от GRBL
Как, же, мы ждём ответ от GRBL. Без ответа следующая команда не посылается. Иначе действительно координаты не совпадут. Я пытался отслеживать что присылает GRBL в ответ, OK или ERROR но там есть разделительные символы и сравнивать не получалось. В общем я от затеи отказался. А собственно отобразить что ответил GRBL на команду вполне можно. вот только места на экране мало. Но вы будете видеть, если ОК, то координаты совпадают. Так подойдёт?
p.s. в самом деле думаете что непрерывное отображение координат не так сложно?
то есть непрерывно отработать ответ на "?" такого типа
<Run,MPos:4.934,0.000,0.000,WPos:4.934,0.000,0.000>
так чтобы можно было отправить потом на LCD????????
А вот этого я не говорил. Я написал: " Отображать текущую команду, а соответственно и координаты не сложно " То есть, брать координаты из команд, а не из GRBL. Какой смысл всё время посылать "?" ? Это даже ни одна программа не делает.
 
.....
Я пытался отслеживать что присылает GRBL в ответ, (OK или ERROR) но там есть разделительные символы и сравнивать не получалось.
вот это и мне надо, только не сравнить а выделить
Это даже ни одна программа не делает.
почти все программи Win,Linux,Android,Mac
и любой серьезный пульт управления к примеру
 
почти все программи ПОД Win,Linux,Android,Mac
никому не дам умерат дураком !!
 
Ну, так отобразить это не проблема.
из <Run,MPos:1.234,5.678,9.999,WPos:8.69,0.000,0.000> ?
status-- RUN
x=1.234
y=5.678
z=9.999
нужно так
 
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

МЫ ДОГАДЫВАЕМСЯ, ЧТО РЕКЛАМА ВАС РАЗДРАЖАЕТ!

Конечно, Ваше программное обеспечение для блокировки рекламы отлично справляется с блокировкой рекламы на нашем сайте, но оно также блокирует полезные функции. Мы стараемся для Вас и не обязываем Вас донатить и скидывать денег на наши кошельки, чтобы пользоваться форумом, но реклама это единственное, что позволяет поддерживать проект и развивать его.

Спасибо за Ваше понимание!

Я отключил свой AdBlock    Нет, я не буду ничего отключать