Автономный Контроллер Чпу (stm32f103) |
Здравствуйте, гость ( Вход | Регистрация )
Автономный Контроллер Чпу (stm32f103) |
31.12.2012, 10:36
Сообщение
#1
|
|
Завсегдатай Группа: Пользователи Сообщений: 220 Регистрация: 27.5.2012 Пользователь №: 33702 |
https://docs.google.com/open?id=0B3hH5_ZXlbvwY2RIUnZwZGhGZXM - исходники и прошивка
https://docs.google.com/open?id=0B3hH5_ZXlb...mRjZjUyOTZmZWU3 - оболочка для сборки и кросскомпилятор по windows Стоимость платы с экраном на e-bay < $50 клавиатура пленочная 4x4 - $3-5 История создания: захотелось сделать управляющий контроллер, что бы работал в автономе по загруженным G-code. Захотелось - сделал :) Текущее состояние и реализованный функционал в контроллере: 1. Хранение G-code файлов на SD карте. 2. При подключении по USB к компу - откликается и работает как MassStorage устройство (внешний диск). 3. Функция симуляция выполнения g-code файла c отображением на экране 2D изображения (цвет - высота) и расчета точного (до 1сек) времени выполнения данного G-code файла. 4. работа с файлами (списком): просмотр, удаление, выполнение, симуляция выполнения. 5. Ручное управление позиционированием с клавиатуры контроллера. 6. Режим управления траекторией - точное следование с расчетом ускорения/торможения только на шаг вперед. Работает. Пилит. Сбоев нет. Скорость устраивает. Не доделано до конца и, скорее всего, уже не будет доделано (неинтересно стало): 1. Управление 4-м шаговиком на экструдере (для режима 3D принтера) 2. Датчик температуры на шпиндель/экструдер. 3. Сканер 3D через механический контактный датчик. 4. Не точное следование траектории (сплайн) и анализ на основе нескольких g-кодов вперед.. |
|
|
1.1.2013, 15:58
Сообщение
#2
|
|
Завсегдатай Группа: Пользователи Сообщений: 220 Регистрация: 27.5.2012 Пользователь №: 33702 |
в дополнение.
Для управлния шаговыми двигателями используется китайская плата (4 axis TB6560 driver board). С управлением по PIN 25 of Parallel Interface без переделок. По уровням сигналов соместимо. Хотя я сразу выкинул с нее медленные оптопроны и заменил перемычками. Поскольку питание от одного источника и развязка опторонная не актуальна. Т.е. вместо контроллера движками через эту плату может управлять mach3 на обычном компе с LPT. Этот вариант у меня тоже опробывался. Выдергиваешь разъем DB25 от контроллера и включаешт туда кабель от компа. Никаких дополнительных схемных решений нет. Из пайки требуется только спаять: 1. шлейф переходника между разъемом контроллера на STM32 и DB25 драйвера движков. 2. шлейф переходника между разъемом контроллера на STM32 и пленочной клавиатурой. Разводка зависит от конкретного варианта платы контроллера и.. в сорцах определна в h-файлах. Какой сигнальный вывод под что задействован. На фотке с общим планом видно подключение. Третий шлейф - опциональный. Я на него собирался датчик температуры подвесить, датчик для 3D сканера и пр. RFU (reserved for future used). |
|
|
1.1.2013, 16:55
Сообщение
#3
|
|
Прописанный Группа: CNC-Magic friends Сообщений: 1623 Регистрация: 25.1.2007 Из: Northern Ireland Пользователь №: 88 |
в дополнение. На фотке с общим планом видно подключение. Третий шлейф - опциональный. Я на него собирался датчик температуры подвесить, датчик для 3D сканера и пр. RFU (reserved for future used). Здорово, только не слабовато ли STM32 под такой контроллер? я видел проекты под него, вроде бы кто-то собирался портировать контроллер на STM32Discovery4. Но более ли менее серьезные решения все поголовно используют DSP процессоры. Вы код сами писали или от какого-то проекта отталкивались? |
|
|
2.1.2013, 9:06
Сообщение
#4
|
|
Завсегдатай Группа: Пользователи Сообщений: 220 Регистрация: 27.5.2012 Пользователь №: 33702 |
Здорово, только не слабовато ли STM32 под такой контроллер? На грани для высоких скоростей. Хотя 72Мгц тактовая, команда на такт и целочисленное 32-бит умножение в ядре. Пришлось местами задействовать по максимуму извращения с целочисленным умножением вместо double. Не понимаю, как народ пытается это (обработку g-code) сделать на дохленьких 8-и разрядных ATMega.. В принципе, для скоростей до 2000мм/мин заведомо хватает, а существенно большей и не пробовал. На большей скорости, на сучках/изгибах волокон у меня пару раз фрезу ломало (1мм сфера, бук, 0.15мм шаг). Так что выше и не режу. Да и смысла нет. Общее время, с учетом торможений разгонов, уменьшается нелинейно от максимальной скорости. я видел проекты под него, вроде бы кто-то собирался портировать контроллер на STM32Discovery4. Но более ли менее серьезные решения все поголовно используют DSP процессоры. Вопрос цены.. http://www.ebay.com/itm/STM32-STM32F103VET...=item5ae0b05ba4 STM32F103 - наименее дорогой из всех и более доступный на e-bay. Кстати, подорожали.. я еще за $49 брал... DSP процессоры это немного не в тему.. хотя в общем случае любой современный контроллер можно назвать DSP и с пеной у рта отстаивать свое мнение :) Вы код сами писали или от какого-то проекта отталкивались? Сам. Своих наработок хватает.. Хотя, обработку дуг и некоторые элементы разбора g-code взял из проекта "Grbl" (на что есть ссылка в исходниках). Реализация в Grbl расчета трапеции ускорений не понравилась. Сделал свою, ориентированную на некоторые особенности/возможности проца. Проект не коммерческий (лицензия GPL) и буду очень огорчен, если кто решит на нем зарабатывать, продавая прошивки. Любые модификации исходной прошивки - только в сопровождении исходников! |
|
|
2.1.2013, 11:02
Сообщение
#5
|
|
Прописанный Группа: Пользователи Сообщений: 621 Регистрация: 7.1.2007 Из: Железногорск Пользователь №: 53 |
mm.Mike, спасибо за новогодний подарок!
Поскольку комментарии в тексте практически отсутствуют, нельзя ли получить из первых рук пояснение: как работает генератор шагов? По поводу подорожавших плат: скорее, они подешевели, я брал дороже, чем, например здесь: http://www.aliexpress.com/item/Free-Shippi.../707823751.html |
|
|
2.1.2013, 13:58
Сообщение
#6
|
|
Завсегдатай Группа: Пользователи Сообщений: 220 Регистрация: 27.5.2012 Пользователь №: 33702 |
mm.Mike, спасибо за новогодний подарок! Поскольку комментарии в тексте практически отсутствуют, нельзя ли получить из первых рук пояснение: как работает генератор шагов? Мда.. мне стыдно.. :) Сам ругаю чужой код и требую от своих сотрудников и учасников проектов коментарии в сорцах.. а сам :))) считывание строк из файла - gcode_exec.c точка входа в обработку строки gc_execute_line(..) gcode.c. В этой функции выполняется разбор и преобразование к внутренним координатам с вызовом cnc_line(...) ->smothLine(..) smothLine, используя циклический буфер на 3 перемещения полученных из g-code, резбивает текущее перемещение на N отрезков исходя из конфгурационных параметров (максимальная скорость, ускорение и пр.) и вызывает sendLine() для каждого отрезка. sendLine() выполняет необходимые действия (вывод на экран, отладка и пр.) и заполняет очередь на обработку вызовом stepm_addMove()/ stepmotor.c /steps_buf[STEPS_BUF_SZ]; генерация шагов выполняется по таймерам (по одному на каждый шаговик). Функция stepm_proc(), вызываемая обработчиком прерывания каждого таймера вычерпывает очередную порцию из очереди и задает частоту таймеров, синхронизируя их заодно. Основное отличие от типичного подхода с плавающим шагом step (плавным) - ступечатое изменение частоты (скорости). Это упрощение позволяет использовать целочисленое интегрирование и уменьшает вычислительные затраты в целом. Как показали эксперименты, при выводе отрезков с разной скоростью и маленькой dV (экспериментально подобрано в gcode.h) потерь шагов нет и на слух не слышно. Визуально - плавное торможение/разгон. Под другой станок скорее всего понадобится адаптация. В принципе, есть конфиг файл, но я его не отлаживал. За то времени на вывод на экран и пр. остается масса. Попытка применения классического варианта с исходниками от grbl (Sungeun K. Jeon) и тех, что есть в Linux-CNC показала, что на высоких скоростях - не тянет проц. double библиотека для данного проца тормозная. А отставание расчета очередного значения и пауза даже в несколько msec приводит к очень неприятным "звукам/ударам" и потере координаты. Так что от классического подхода я ущел. Может быть и в нем можно что то было вылизать оптимизировать. Но, захотелось попробовать другое. Плопробовал - работает. Код конечно не причесан, да еще С, а не С++ (лень было стыковать библиотеки от ST). Много не выкашенных лишних или корявых конструкций, как результат эспериментов и отладки. Но что есть, то уже есть. По поводу подорожавших плат: скорее, они подешевели, я брал дороже, чем, например здесь: http://www.aliexpress.com/item/Free-Shippi.../707823751.html Инфляция.. кризис... Были все же по < $50 (год назад) Кстати :), через 5 часов у меня самолет в теплые края и 2 недели отпуска.. Интеренета там нет... Ура! Отпуск! 2 недели дайвига!!! урааа.. |
|
|
2.1.2013, 18:38
Сообщение
#7
|
|
Новичок Группа: Пользователи Сообщений: 42 Регистрация: 1.1.2013 Пользователь №: 34517 |
|
|
|
3.1.2013, 12:56
Сообщение
#8
|
|
Прописанный Группа: Пользователи Сообщений: 638 Регистрация: 19.2.2011 Из: Киселевск Пользователь №: 32173 |
Че хорошего?
-------------------- Улыбаемся и машем!
|
|
|
3.1.2013, 15:43
Сообщение
#9
|
|
Прописанный Группа: Пользователи Сообщений: 621 Регистрация: 7.1.2007 Из: Железногорск Пользователь №: 53 |
|
|
|
4.1.2013, 16:45
Сообщение
#10
|
|
Технический турист Группа: Пользователи Сообщений: 12 Регистрация: 1.7.2012 Пользователь №: 33792 |
Наверное выбор 103го камешка всеже не очень удачен, попробую партировать Ваши труды под чуть более серьезный проц.
Сообщение отредактировал MORRO - 4.1.2013, 17:29 |
|
|
4.1.2013, 17:04
Сообщение
#11
|
|
Прописанный Группа: Пользователи Сообщений: 621 Регистрация: 7.1.2007 Из: Железногорск Пользователь №: 53 |
Автор в 4 посте приводил ссылку на ebay.
Ниже я давал ссылку на aliexpress - плата на том же STM32F103VET6 с таким же экраном, скорее всего полностью аналогичная авторской. А автора не будет 2 недели. |
|
|
5.1.2013, 9:17
Сообщение
#12
|
|
Технический турист Группа: Пользователи Сообщений: 13 Регистрация: 8.6.2012 Пользователь №: 33733 |
mm.Mike, спасибо за новогодний подарок! Поскольку комментарии в тексте практически отсутствуют, нельзя ли получить из первых рук пояснение: как работает генератор шагов? По поводу подорожавших плат: скорее, они подешевели, я брал дороже, чем, например здесь: http://www.aliexpress.com/item/Free-Shippi.../707823751.html К сожалению на алиэкспресс данного товара у данного продавца нет, и никогда не было... Вот сейчас и ругаюсь с ним по этому поводу, он просит отказаться, а я оказываюсь отказываться. |
|
|
5.1.2013, 10:23
Сообщение
#13
|
|
Новичок Группа: Пользователи Сообщений: 42 Регистрация: 1.1.2013 Пользователь №: 34517 |
Наверное выбор 103го камешка всеже не очень удачен, попробую партировать Ваши труды под чуть более серьезный проц. Какой именно? А такая подойдет? |
|
|
5.1.2013, 15:27
Сообщение
#14
|
|
Технический турист Группа: Пользователи Сообщений: 12 Регистрация: 1.7.2012 Пользователь №: 33792 |
Ну идея простая, уходим от 103 камней, ставим 107й или 207й попутно прикручиваем Ethernet ну и пару тройку полезных фич. ТС будет не против если я буду выкладывать все свои труды в этот топик? Одно но, пишу в IAR потому как GCC не перевариваю на дух. |
|
|
5.1.2013, 16:44
Сообщение
#15
|
|
Прописанный Группа: Пользователи Сообщений: 621 Регистрация: 7.1.2007 Из: Железногорск Пользователь №: 53 |
К сожалению на алиэкспресс данного товара у данного продавца нет, и никогда не было... Вот сейчас и ругаюсь с ним по этому поводу, он просит отказаться, а я оказываюсь отказываться. Понятно, почему он пошел в отказ: у него цена была выставлена примерно на 10-12$ (25%) ниже чем у других, ошибся наверное. В принципе, то, что выложил автор - работает. Не знаю, как там насчет уверенной работы на станке, но на столе работает, не без огрехов, конечно. В частности, сразу заметна чувствительность к сетевым наводкам. Ну и клавитура подключается не так, как описано в global.h - строки и столбцы перепутаны местами, плюс еще и внутри они переставлены. Не смог войти в "manual mode", "set time" ничего не делает, "scan mode" и "conf.file" тоже ничего не делают, но об этом автор вроде писал. По исходникам построить прошивку не получилось: Eclipse надо уметь настраивать. При генерации вываливается куча ошибок, с наскоку победить не удалось, да и ладно - нет у меня цели глубоко в это дело влазить, так, размять мозги на праздниках. В заключение, несколько фотографий. P.S. Если кто загорится заказать такую плату, обратите внимание на ее внешний вид на фото: кнопка там одна, два светодиода, МК - STM32F103VET6, разъем под microSD, разъемы под USB и RS232. Если искать на aliexpress, то по ключевым словам "STM32F103VET6 mini board 2.4 LCD" выпадает вроде то, что нужно, цена около 50$ Free Shipping |
|
|
5.1.2013, 17:05
Сообщение
#16
|
|
Прописанный Группа: Пользователи Сообщений: 621 Регистрация: 7.1.2007 Из: Железногорск Пользователь №: 53 |
Повтор, удален
Сообщение отредактировал ATLab - 5.1.2013, 17:21 |
|
|
5.1.2013, 17:20
Сообщение
#17
|
|
Прописанный Группа: Пользователи Сообщений: 621 Регистрация: 7.1.2007 Из: Железногорск Пользователь №: 53 |
Ну идея простая, уходим от 103 камней, ставим 107й или 207й попутно прикручиваем Ethernet ну и пару тройку полезных фич... А в чем суперидея? 107й работает на тех же 72МГц, 207й - на 120МГц, т.е. радикального повышения производительности (скорости) не предвидется. Ethеrnet? Зачем? Плата со 107м существенно дороже, с 207м ... Я лучше куплю miniITX c наворотами за эти деньги и за еще немного денег нормальный монитор, а не мелкую фигульку, на которой лично я уже нифига не вижу - мелко. Я понимаю затею автора: сделать на дешевой плате автономный контроллер, у Вас эти прелести теряются, а с ними и смысл в такой разработке. Imho, конечно. Если только целью поставить портирование из GCC в IAR, ну так это другое дело... Сообщение отредактировал ATLab - 5.1.2013, 17:20 |
|
|
6.1.2013, 14:43
Сообщение
#18
|
|
Прописанный Группа: Пользователи Сообщений: 638 Регистрация: 19.2.2011 Из: Киселевск Пользователь №: 32173 |
А какие вообще G коды его прошивка поддерживает?
Какой функционал реализован по сравнению с Mach3? Сообщение отредактировал Oxford - 6.1.2013, 14:45 -------------------- Улыбаемся и машем!
|
|
|
6.1.2013, 16:18
Сообщение
#19
|
|
Прописанный Группа: Пользователи Сообщений: 621 Регистрация: 7.1.2007 Из: Железногорск Пользователь №: 53 |
Судя по тексту:
G0,G1,G2,G3,G4,G17,G20,G21,G28,G30,G40,G64,G90,G49,G91,G92,G94,G98,G97 M0,M2,M3,M4,M5,M6,M8,M9,M23,M24,M48,M49,M52,M101,M102,M103,M104,M105,M106,M107, M108,M109,M110,M112,M113,M140,M141,M142 Сообщение отредактировал ATLab - 6.1.2013, 16:19 |
|
|
7.1.2013, 11:42
Сообщение
#20
|
|
Новичок Группа: Пользователи Сообщений: 42 Регистрация: 1.1.2013 Пользователь №: 34517 |
mm.Mike Поскольку комментарии в тексте практически отсутствуют, нельзя ли получить из первых рук пояснение: как работает генератор шагов? ATLab, разобрались с генератором шагов, распишите подробно путь от считывания очередного gcode, до непосредственно выдачи сигналов step и dir? Сообщение отредактировал som.andrew - 7.1.2013, 11:44 |
|
|
7.1.2013, 16:18
Сообщение
#21
|
|
Прописанный Группа: Пользователи Сообщений: 621 Регистрация: 7.1.2007 Из: Железногорск Пользователь №: 53 |
Не, не разбирался. Лучше подождать автора и терзать его.
|
|
|
8.1.2013, 3:25
Сообщение
#22
|
|
Прописанный Группа: Пользователи Сообщений: 638 Регистрация: 19.2.2011 Из: Киселевск Пользователь №: 32173 |
Внутренняя ошибка связи
Вы попытались получить доступ к адресу https://docs.google.com/open?id=0B3hH5_ZXlbvwY2RIUnZwZGhGZXM, который сейчас недоступен. Убедитесь, что веб-адрес (URL) введён правильно, и попытайтесь перезагрузить страницу. Залейте куданить заново кто успел качнуть -------------------- Улыбаемся и машем!
|
|
|
8.1.2013, 6:11
Сообщение
#23
|
|
Прописанный Группа: Пользователи Сообщений: 621 Регистрация: 7.1.2007 Из: Железногорск Пользователь №: 53 |
|
|
|
8.1.2013, 11:00
Сообщение
#24
|
|
Технический турист Группа: Пользователи Сообщений: 12 Регистрация: 1.7.2012 Пользователь №: 33792 |
А в чем суперидея? 107й работает на тех же 72МГц, 207й - на 120МГц, т.е. радикального повышения производительности (скорости) не предвидется. Ethеrnet? Зачем? Плата со 107м существенно дороже, с 207м ... Я лучше куплю miniITX c наворотами за эти деньги и за еще немного денег нормальный монитор, а не мелкую фигульку, на которой лично я уже нифига не вижу - мелко. Я понимаю затею автора: сделать на дешевой плате автономный контроллер, у Вас эти прелести теряются, а с ними и смысл в такой разработке. Imho, конечно. Если только целью поставить портирование из GCC в IAR, ну так это другое дело... А где в моем посте фигурировало слово "СУПЕР"? Идея сделать плату доступной для повторения и не более, ETHERNET - это на любителя, мне например его наличие удобно. Портирование GCC->IAR труда не составляет и цели исполнить именно это нет, цель простая сделать законченный опенсорсный дэвайс и не более того)))) |
|
|
8.1.2013, 12:05
Сообщение
#25
|
|
Прописанный Группа: Пользователи Сообщений: 621 Регистрация: 7.1.2007 Из: Железногорск Пользователь №: 53 |
...Идея сделать плату доступной для повторения и не более... Куда уж доступнее, чем у автора? QUOTE , цель простая сделать законченный опенсорсный дэвайс и не более того)))) Так и автор помимо готовой прошивки исходники предоставил - вполне опенсорс. А вот Ваш порт на отнюдь не дешевом IAR на настоящий опенсорс уже не тянет. Хотя, если Вы к тексту программы добавите подробные комментарии, его можно будет портировать обратно в GCC. Не поймите меня неправильно: я не хочу Вас отговаривать. Просто мысли вслух по поводу. Получится и Вы выложите проект - честь Вам и хвала. |
|
|
Текстовая версия | Сейчас: 29.3.2024, 14:58 |