Самопал ЧПУ для stm32f407

Mach, популярные и не очень CAD, CAM. Обсуждение и разработка программ для управления станками.

Самопал ЧПУ для stm32f407

Сообщение Крафтер » 09 янв 2019, 00:15

Как уже говорил, переписал на праздники свою систему под более популярный контроллер и за одно поправил пачку багов.
Начало можно почитать здесь viewtopic.php?f=16&t=7628

Сам пользуюсь, в принципе хватает. Если у кого-то есть желание попробовать, в архиве лежит exe, к нему надо подкинуть dll из другого архива. Не закидывал в общий архив, потому что эти dll будут дублироваться для следующих версий (если конечно они будут ) ).
Прошивка в архиве f407_bin, её можно залить через flash loader demonstrator.
Плату брал здесь https://ru.aliexpress.com/item/STM32F40 ... 32138.html
Разводка платы есть здесь http://wiki.stm32duino.com/index.php?ti ... _sch-1.pdf
Разводка ножек есть в исходниках в .ioc файле.
Ну и здесь напишу: (step dir) (PD12 PD10) (PD13 PD11) (PD14 PG2) (PD15 PG3) (PG4 PG6)
В конфиге можно задать, какой оси какая группа соответствует.
Кто захочет собрать из исходников, для компиляции exe нужна библиотека glm.

Немного подробносте насчет микроконтроллера.
(для просмотра содержимого нажмите на ссылку)
1) У него есть область памяти под названием CCM, к которой есть доступ только со стороны процессора. Из-за этого время доступа процессора сокращается до 0 тактов, и во-вторых, процессор не мешает работать DMA. Отмапить на эту память можно что угодно, но я отмапил только стек, потому что к статическим переменным обращается DMA.

2) Если не включить кэш процессора, работать будет раза в 2-3 медленнее.
FLASH->ACR |= FLASH_ACR_PRFTEN | FLASH_ACR_DCEN | FLASH_ACR_ICEN;

3) Работа с USART. Если работать через прерывания, то надо не забывать про FPU. Если не отключить сохранение его состояния, на каждое прерывание будет тратиться примерно 60 тактов
//отключает сохранение 32 регистров FPU при возникновении прерывания
FPU->FPCCR &= ~(FPU_FPCCR_ASPEN_Msk | FPU_FPCCR_LSPEN_Msk);
Но лучше вообще отказаться от прерываний. Вместо этого через DMA посылать байты в буфер и потом обрабатывать их в главном цикле.

4) Генерация шагов опять сделана через DMA. Надеялся, что здесь куча таймеров и можно включить их каскадно, но нет, на 6 осей каскадов не набралось. И даже выдачи сигнала на произвольные ножки с помощью BSRR не получилось. Все из-за того, что DMA1 не умеет посылать из памяти в память.

5) Опять наступил на граблю с пролетом таймера мимо максимума. На этот раз из-за того что CNT обновляется сразу, а ARR не сразу, поэтому даже если задать CNT < ARR, может оказаться, что он больше старого значения ARR. Лечится принудительным обновлением.
tim->EGR = TIM_EGR_UG; //переносим значения из shadow регистров

6) printf("%f") может приводить к падениям, если использовать урезанную библиотеку(nano specs и всё такое)

7) Не совсем про контроллер. usart на pl2303 оказался глючным, и если выключить программу, она не выключалась, пока не выдернешь переходник из ноута, или ждать пока отлипнет. А вот ft232 работает как надо.


Список изменений:
Немного доделано ручное передвижение. Если зажать шифт, станок двигается на максимальной скорости.
Переписан протокол связи с устройством, теперь пакеты шлются окном для ускорения посылки, упрощена разметка пакетов, отложенная обработка очереди usart.
Немного правок по чтению окружностей.
Правка циклов сверления.
Поддержка выходных файлов "как для mach3".
Правки прерывания обработки.
Правка расчета ускорения в разных случаях.
Проект переведен на coocox.
Проект переведен на stm32f407.
Улучшена диагностика ошибок.

Исполняемый файл.
CraftTool.zip
(110.65 Кб) Скачиваний: 105

Библиотеки к нему.
Qt_dll.zip
(14.75 Мб) Скачиваний: 90

Прошивка контроллера.
f407_bin.zip
(125.13 Кб) Скачиваний: 94

Исходники.
CNC_818b5c2.zip
(927.76 Кб) Скачиваний: 128
Последний раз редактировалось Крафтер 08 май 2019, 22:27, всего редактировалось 3 раз(а).
Аватара пользователя
Крафтер
Мастер
 
Сообщения: 202
Зарегистрирован: 27 мар 2015, 22:25
Откуда: Ростов-на-Дону
Репутация: 59
Настоящее имя: Андрей

Re: Самопал ЧПУ для stm32f407

Сообщение Крафтер » 09 янв 2019, 23:22

Пример работы интерпретатора. В 23 часа ночи пилил шестерню, никто не жаловался ).

Дисковые фрезы рулят, ими обработка идет тише.

Здесь осмелел, попробовал быструю выборку паза сделать.

Это пример, насколько точно можно обработать деталь, хотя есть и элемент везения ) .

Посмотрите, какая красивая стружечка.

Это в 20 часов пилил шайбу из стали.


И можно на видосах заметить, как зажимы были сначала деревянными, потом алюминиевыми, потом стальными. :)
Аватара пользователя
Крафтер
Мастер
 
Сообщения: 202
Зарегистрирован: 27 мар 2015, 22:25
Откуда: Ростов-на-Дону
Репутация: 59
Настоящее имя: Андрей

Re: Самопал ЧПУ для stm32f407

Сообщение Крафтер » 10 янв 2019, 22:26

Мелкую фрезу отгибает, поэтому сложно попасть в размер. Но если пилить вертикально (плунжерное фрезерование), тогда сразу хорошо снимает, и поверхность приличная выходит. Если предварительно дырки насверлить, то потом можно фрезой потолще по окружности отрезать. Шестерня была нужна для ремня HTD-5М, там по расчетам на 60 зубов длина окружности должна быть 300 мм, а по факту от силы 295.
Самопал ЧПУ для stm32f407 DSC05408.JPG


А это немного темного прошлого станка :hehehe: . Сначала станок был деревянный и даже при обработке дерева сильно гудел. Поэтому сразу начал пилить на нем алюминиевый.



Когда допилил и начал разбирать старый станок, там половина гаек была откручена и направляющие просто болтались туда-сюда. Короче вибрации зло, надо их забарывать ) .

Пробовал вырезать кабель-канал из тонкой фанеры, потом склеил канцелярским клеем. Вроде работоспособно, но места занимает много и трение большое. Проще купить и не тратить время.


Еще была проблема с тем, что моторы питались от компьютерного блока питания 12 вольт. Когда станок гонял на максималке, освещение станка тухло, и конечно же моторы пропускали шаги. Странно, что мне не было это очевидно, думал, проблема в контроллере. Так вот, потом станок начал постоянно проглючивать на одной программе, нашел там конкретную команду, и оказалось, что это G0 с движением одновременно по всем осям, причем пропускало не при всяком угле наклона. Купил светодиодный БП на 24 вольта, поставил, и все, никаких глюков. Плюс скорость выросла в 2 раза, до 3000 мм/мин.
Аватара пользователя
Крафтер
Мастер
 
Сообщения: 202
Зарегистрирован: 27 мар 2015, 22:25
Откуда: Ростов-на-Дону
Репутация: 59
Настоящее имя: Андрей

Re: Самопал ЧПУ для stm32f407

Сообщение Крафтер » 10 янв 2019, 23:14

Пробовал фрезеровать платы... не пошло. Если плата неровная, то фреза в одном месте прорезает на половину толщины, в другом не достаёт. Если взять конус с маленьким углом, тогда может хотя бы ширина дорожек будет меньше плавать. А вот сверлит красиво.
Самопал ЧПУ для stm32f407 DSC05381.JPG

Самопал ЧПУ для stm32f407 DSC05382.JPG

С ЛУТом масштаб не совпадает, видимо бумага от нагрева немного сжимается. Хорошо бы сделать корректировку положений дырок по камере.
Аватара пользователя
Крафтер
Мастер
 
Сообщения: 202
Зарегистрирован: 27 мар 2015, 22:25
Откуда: Ростов-на-Дону
Репутация: 59
Настоящее имя: Андрей

Re: Самопал ЧПУ для stm32f407

Сообщение NikolayUa24 » 12 янв 2019, 14:15

Крафтер писал(а):Проект переведен на stm32f407.

Китайцы выпускают на stm32f407 автономный контролер 6 осей частота 2МГЦ экран 3.5 дюйма.
Прощать не сложно,сложно заново поверить.
NikolayUa24
Мастер
 
Сообщения: 879
Зарегистрирован: 31 июл 2013, 20:05
Репутация: 152
Настоящее имя: Николай

Re: Самопал ЧПУ для stm32f407

Сообщение MX_Master » 12 янв 2019, 14:17

NikolayUa24 писал(а):Китайцы выпускают на stm32f407 автономный контролер 6 осей частота 2МГЦ экран 3.5 дюйма.

Где посмотреть сие чудо техники?
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 4655
Зарегистрирован: 27 июн 2015, 19:45
Откуда: KZ
Репутация: 2168
Медальки:
Настоящее имя: Михаил

Re: Самопал ЧПУ для stm32f407

Сообщение NikolayUa24 » 12 янв 2019, 14:52

MX_Master писал(а):
NikolayUa24 писал(а):Китайцы выпускают на stm32f407 автономный контролер 6 осей частота 2МГЦ экран 3.5 дюйма.

Где посмотреть сие чудо техники?

Посмотреть фото плат ?
Прощать не сложно,сложно заново поверить.
NikolayUa24
Мастер
 
Сообщения: 879
Зарегистрирован: 31 июл 2013, 20:05
Репутация: 152
Настоящее имя: Николай

Re: Самопал ЧПУ для stm32f407

Сообщение xenon-alien » 12 янв 2019, 15:22

NikolayUa24 писал(а):
MX_Master писал(а):
NikolayUa24 писал(а):Китайцы выпускают на stm32f407 автономный контролер 6 осей частота 2МГЦ экран 3.5 дюйма.

Где посмотреть сие чудо техники?

Посмотреть фото плат ?

Ссылку на продукт можно...?
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
 
Сообщения: 1565
Зарегистрирован: 01 янв 2013, 13:13
Откуда: Закарпатская обл. Украина
Репутация: 454
Медальки:
Настоящее имя: Daniel

Re: Самопал ЧПУ для stm32f407

Сообщение Крафтер » 12 янв 2019, 15:34

Про автономные контроллеры я знаю, здесь можно и без китайцев обойтись. Где-то на просторах нашего интернета выкладывали исходный код. Мне надо было именно с ноутбука сидеть, и не хотелось ловить глюки с пропуском шагов.
Аватара пользователя
Крафтер
Мастер
 
Сообщения: 202
Зарегистрирован: 27 мар 2015, 22:25
Откуда: Ростов-на-Дону
Репутация: 59
Настоящее имя: Андрей

Re: Самопал ЧПУ для stm32f407

Сообщение bberkhin » 21 янв 2019, 14:32

Круто. А не было мысли взять парсер GCod-а из LinuxCNC или GRBL ? И почему мультипоточность на WinAPI сделали, а не средствами QT - было бы мультиплатформенно сразу?
bberkhin
Новичок
 
Сообщения: 2
Зарегистрирован: 21 янв 2019, 13:48
Репутация: 0
Настоящее имя: Борис

Re: Самопал ЧПУ для stm32f407

Сообщение Крафтер » 24 янв 2019, 23:06

bberkhin писал(а):Круто. А не было мысли взять парсер GCod-а из LinuxCNC или GRBL ? И почему мультипоточность на WinAPI сделали, а не средствами QT - было бы мультиплатформенно сразу?

Взять открытый парсер лицензия не позволяет, а свой может отполирую и барыжить буду :D . Потоки хорошо бы на std::thread и std::recursive_mutex переделать, но не принципиально.

PS. Ой, только доперло, что я не на работе и кто-то всё же посмотрел мой код :shock: . Как оцениваешь архитектуру?
Аватара пользователя
Крафтер
Мастер
 
Сообщения: 202
Зарегистрирован: 27 мар 2015, 22:25
Откуда: Ростов-на-Дону
Репутация: 59
Настоящее имя: Андрей

Re: Самопал ЧПУ для stm32f407

Сообщение bberkhin » 26 янв 2019, 09:21

Взять открытый парсер лицензия не позволяет, а свой может отполирую и барыжить буду

Понятно, да это правильно и дальновидно ;)

PS. Ой, только доперло, что я не на работе и кто-то всё же посмотрел мой код :shock: . Как оцениваешь архитектуру?


Ну как сказать,я неделю проковырялся с кодом KMotion - там прямо кровь из глаз, не помню чтобы видел что-то хуже, удивительно, что он вообще работает. После этого твой ( на ты норм?) показался образцом. Там есть архитектура, хороший с++. комментарии в конце концов...

Главное что не понравилось: ты попытался запихать в интерпретатор все логику работу системы, класс перегружен и плохо расширяем ( все ИМХО конечно)
Я бы в интерпретаторе оставил только собственно парсинг g codа, а выполнение вынес в отдельный интерфейс. И если нужно выполнять на устройстве подсовывал бы реализацию работы с портом ( через планировщик траекторий), а если симуляцию (отрисовку) то соответсвующую реализацию симулятора, если одновременно то суперпозицию этих двух.
Ну и еще по мелочи - сам парсер плохо расширяем. Если делать, например, поддержку вызова подпрограмм и переменных то будут трудности.

Вот примерно что у меня получилось на базе твоего кода. Открыл его и как-то незаметно стал править :)
Вложения
Gcode.zip
(9.65 Кб) Скачиваний: 87
bberkhin
Новичок
 
Сообщения: 2
Зарегистрирован: 21 янв 2019, 13:48
Репутация: 0
Настоящее имя: Борис

Re: Самопал ЧПУ для stm32f407

Сообщение Крафтер » 26 янв 2019, 22:35

Здесь все на ты, так что пожалуйста :) .
KMotion - это оно https://github.com/parhansson/KMotionX/ ... 274ngc.cpp ? Одна только read_x чего стоит. Её вообще не должно было быть.

GCodeInterpreter уже предназначен для предварительного выполнения команд (перевод в команды движения). А для парсинга есть Parser. Хотя надо подумать, может действительно конвейер переставить. Чтобы не GCodeInterpreter вызывал парсинг, а наоборот, парсер вызывал интерпретатор. Если вытащить execute_file и execute_line в Parser, возможно получится то что нужно. Выполнение вынесено в отдельный интерфейс IRemoteDevice, и то думаю его выпилить. То есть изначально была идея, что если хочешь катать принтер, подключаешь одну реализацию, хочешь токарный - другую. Посылка на удаленное устройство засунута внутрь конкретной реализации CRemoteDevice.
И твой код надо глянуть )
Аватара пользователя
Крафтер
Мастер
 
Сообщения: 202
Зарегистрирован: 27 мар 2015, 22:25
Откуда: Ростов-на-Дону
Репутация: 59
Настоящее имя: Андрей

Re: Самопал ЧПУ для stm32f407

Сообщение stefan63 » 11 фев 2019, 10:27

Не захотел Craft Tool запуститься, захотел Qt plugin "windows".
Пошел инсталировать Qt ...захотел 40 ГБ, и отказался.
stefan63
Новичок
 
Сообщения: 4
Зарегистрирован: 11 фев 2019, 10:22
Репутация: 0

Re: Самопал ЧПУ для stm32f407

Сообщение Крафтер » 03 мар 2019, 21:30

Добавил еще библиотеку в QT_dll.zip, должно починиться.
Аватара пользователя
Крафтер
Мастер
 
Сообщения: 202
Зарегистрирован: 27 мар 2015, 22:25
Откуда: Ростов-на-Дону
Репутация: 59
Настоящее имя: Андрей

Re: Самопал ЧПУ для stm32f407

Сообщение vladumur » 27 мар 2019, 15:37

Не увидел нигде, опторазвязку или какую либо защиту входов, выходов не использовали?
Можно фото вашего электронного контролера со всей его обвязкой как есть (на станке)?
vladumur
Мастер
 
Сообщения: 251
Зарегистрирован: 07 авг 2014, 16:44
Откуда: Россия, Красноярский край
Репутация: 35

Re: Самопал ЧПУ для stm32f407

Сообщение daemon78 » 01 апр 2019, 17:40

Крафтер писал(а):А это немного темного прошлого станка . Сначала станок был деревянный и даже при обработке дерева сильно гудел. Поэтому сразу начал пилить на нем алюминиевый.

А что за режим на втором видео? Визуально кажется, что подача где то в районе 250мм/мин?
Аватара пользователя
daemon78
Мастер
 
Сообщения: 1191
Зарегистрирован: 02 окт 2018, 15:02
Откуда: Москва
Репутация: 42
Настоящее имя: Владимир

Re: Самопал ЧПУ для stm32f407

Сообщение Крафтер » 01 апр 2019, 23:09

vladumur писал(а):Не увидел нигде, опторазвязку или какую либо защиту входов, выходов не использовали?
Можно фото вашего электронного контролера со всей его обвязкой как есть (на станке)?

В первом сообщении ссылка на плату, там есть фото. Нет там никакой защиты, голые выводы микроконтроллера. Хотел плату опторазвязки спаять, но она слишком длинная получилась, переходные отверстия разъехались и в общем пришлось обойтись без нее :thinking: . И так работает, поэтому забил. Полный комплект - это usb-uart переходник, контроллер, БП и драйверы шаговиков. Драйверы тоже самоделка, там входы к микроконтроллеру идут.

daemon78 писал(а):А что за режим на втором видео? Визуально кажется, что подача где то в районе 250мм/мин?

Если речь про фанерный станок, возможно, там еще руками рулил, боялся программы запускать. Так что подачу не посчитать )
Аватара пользователя
Крафтер
Мастер
 
Сообщения: 202
Зарегистрирован: 27 мар 2015, 22:25
Откуда: Ростов-на-Дону
Репутация: 59
Настоящее имя: Андрей

Re: Самопал ЧПУ для stm32f407

Сообщение Механник » 19 апр 2019, 14:20

Здравствуйте, очень заинтересовал Ваш проект, немогу найти где прописываются параметры станка (кол-во шагов , рабочие размеры стола и тд) нашол пока только пины , не могли бы Вы подсказать где искать эти настройки. до этого тока с ардуино сталкивался, собрал 3д принтер, еше заинтересовал Ваш проект для шд , он с энкодерами? заранее спасибо за ответ
Механник
Новичок
 
Сообщения: 6
Зарегистрирован: 29 окт 2017, 11:21
Репутация: 0
Настоящее имя: Александр

Re: Самопал ЧПУ для stm32f407

Сообщение Крафтер » 19 апр 2019, 21:28

Всё что может быть отрегулировано, прописано в config.cfg с комментариями. Если там чего-то нет, значит поменять можно, только пересобрав проект. Вот насобирается у меня месяц отпуска и тогда... :) . Сейчас дочерчиваю 4 ось, так что придётся впиливать её поддержку в свою прогу.

Проект для шд без энкодеров. Там стоит заменить контроллер на stm32f030f4p6. Предыдущих купил пачку по сотне и думал что хитрый пятачок, а эти в чипидип вообще по полтинничку :thinking: .
Аватара пользователя
Крафтер
Мастер
 
Сообщения: 202
Зарегистрирован: 27 мар 2015, 22:25
Откуда: Ростов-на-Дону
Репутация: 59
Настоящее имя: Андрей

След.

Вернуться в Windows / Mach

Кто сейчас на конференции

Зарегистрированные пользователи: _vit, Argon-11, Belorez, Bender, Bing [Bot], daemon78, evgenymcp, gigs, Google [Bot], Lexxa, mikehv, Nikolas8, pegas13, Q-starь, sergejko, Topman, uralpt, Yandex [bot]

Reputation System ©'