IPB IPB

Здравствуйте, гость ( Вход | Регистрация )

28 страниц V   1 2 3 > »   
Ответить в данную темуНачать новую тему
> Автономный Контроллер Чпу (stm32f103)
mm.Mike
сообщение 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-кодов вперед..



Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 
Перейти в начало страницы
 
+Цитировать сообщение
mm.Mike
сообщение 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).
Перейти в начало страницы
 
+Цитировать сообщение
constantine
сообщение 1.1.2013, 16:55
Сообщение #3


Прописаный
*****

Группа: CNC-Magic friends
Сообщений: 1623
Регистрация: 25.1.2007
Из: Northern Ireland
Пользователь №: 88



Цитата(mm.Mike @ 1.1.2013, 12:58) *
в дополнение.

На фотке с общим планом видно подключение. Третий шлейф - опциональный. Я на него собирался датчик температуры подвесить, датчик для 3D сканера и пр. RFU (reserved for future used).

Здорово, только не слабовато ли STM32 под такой контроллер?

я видел проекты под него, вроде бы кто-то собирался портировать контроллер на STM32Discovery4.
Но более ли менее серьезные решения все поголовно используют DSP процессоры.

Вы код сами писали или от какого-то проекта отталкивались?
Перейти в начало страницы
 
+Цитировать сообщение
mm.Mike
сообщение 2.1.2013, 9:06
Сообщение #4


Завсегдатай
****

Группа: Пользователи
Сообщений: 220
Регистрация: 27.5.2012
Пользователь №: 33702



Цитата(constantine @ 1.1.2013, 20:55) *
Здорово, только не слабовато ли STM32 под такой контроллер?

На грани для высоких скоростей. Хотя 72Мгц тактовая, команда на такт и целочисленное 32-бит умножение в ядре.
Пришлось местами задействовать по максимуму извращения с целочисленным умножением вместо double.
Не понимаю, как народ пытается это (обработку g-code) сделать на дохленьких 8-и разрядных ATMega..

В принципе, для скоростей до 2000мм/мин заведомо хватает, а существенно большей и не пробовал. На большей скорости, на сучках/изгибах волокон у меня пару раз фрезу ломало (1мм сфера, бук, 0.15мм шаг). Так что выше и не режу. Да и смысла нет. Общее время, с учетом торможений разгонов, уменьшается нелинейно от максимальной скорости.

Цитата(constantine @ 1.1.2013, 20:55) *
я видел проекты под него, вроде бы кто-то собирался портировать контроллер на STM32Discovery4.
Но более ли менее серьезные решения все поголовно используют DSP процессоры.

Вопрос цены..
http://www.ebay.com/itm/STM32-STM32F103VET...=item5ae0b05ba4
STM32F103 - наименее дорогой из всех и более доступный на e-bay. Кстати, подорожали.. я еще за $49 брал...

DSP процессоры это немного не в тему.. хотя в общем случае любой современный контроллер можно назвать DSP и с пеной у рта отстаивать свое мнение :)

Цитата(constantine @ 1.1.2013, 20:55) *
Вы код сами писали или от какого-то проекта отталкивались?

Сам. Своих наработок хватает.. Хотя, обработку дуг и некоторые элементы разбора g-code взял из проекта "Grbl" (на что есть ссылка в исходниках).
Реализация в Grbl расчета трапеции ускорений не понравилась. Сделал свою, ориентированную на некоторые особенности/возможности проца.


Проект не коммерческий (лицензия GPL) и буду очень огорчен, если кто решит на нем зарабатывать, продавая прошивки. Любые модификации исходной прошивки - только в сопровождении исходников!


Перейти в начало страницы
 
+Цитировать сообщение
ATLab
сообщение 2.1.2013, 11:02
Сообщение #5


Прописаный
*****

Группа: Пользователи
Сообщений: 616
Регистрация: 7.1.2007
Из: Железногорск
Пользователь №: 53



mm.Mike, спасибо за новогодний подарок! biggrin.gif

Поскольку комментарии в тексте практически отсутствуют, нельзя ли получить из первых рук пояснение: как работает генератор шагов?

По поводу подорожавших плат: скорее, они подешевели, я брал дороже, чем, например здесь:
http://www.aliexpress.com/item/Free-Shippi.../707823751.html
Перейти в начало страницы
 
+Цитировать сообщение
mm.Mike
сообщение 2.1.2013, 13:58
Сообщение #6


Завсегдатай
****

Группа: Пользователи
Сообщений: 220
Регистрация: 27.5.2012
Пользователь №: 33702



Цитата(ATLab @ 2.1.2013, 15:02) *
mm.Mike, спасибо за новогодний подарок! biggrin.gif
Поскольку комментарии в тексте практически отсутствуют, нельзя ли получить из первых рук пояснение: как работает генератор шагов?

Мда.. мне стыдно.. :) Сам ругаю чужой код и требую от своих сотрудников и учасников проектов коментарии в сорцах.. а сам :)))

считывание строк из файла - 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). Много не выкашенных лишних или корявых конструкций, как результат эспериментов и отладки. Но что есть, то уже есть.


Цитата(ATLab @ 2.1.2013, 15:02) *
По поводу подорожавших плат: скорее, они подешевели, я брал дороже, чем, например здесь:
http://www.aliexpress.com/item/Free-Shippi.../707823751.html

Инфляция.. кризис... Были все же по < $50 (год назад)



Кстати :), через 5 часов у меня самолет в теплые края и 2 недели отпуска.. Интеренета там нет...
Ура! Отпуск! 2 недели дайвига!!! урааа.. biggrin.gif
Перейти в начало страницы
 
+Цитировать сообщение
som.andrew
сообщение 2.1.2013, 18:38
Сообщение #7


Новичок
**

Группа: Пользователи
Сообщений: 42
Регистрация: 1.1.2013
Пользователь №: 34517



Отличный проект, нужно опробывать.
Эх не успел задать пару вопросов по коду...
Цитата(mm.Mike @ 2.1.2013, 14:58) *
Кстати :), через 5 часов у меня самолет в теплые края и 2 недели отпуска.. Интеренета там нет...
Ура! Отпуск! 2 недели дайвига!!! урааа.. biggrin.gif

Хорошо отдохнуть и набраться сил...

Перейти в начало страницы
 
+Цитировать сообщение
Oxford
сообщение 3.1.2013, 12:56
Сообщение #8


Прописаный
*****

Группа: Пользователи
Сообщений: 638
Регистрация: 19.2.2011
Из: Киселевск
Пользователь №: 32173



Че хорошего?


--------------------
Улыбаемся и машем!
Перейти в начало страницы
 
+Цитировать сообщение
ATLab
сообщение 3.1.2013, 15:43
Сообщение #9


Прописаный
*****

Группа: Пользователи
Сообщений: 616
Регистрация: 7.1.2007
Из: Железногорск
Пользователь №: 53



QUOTE (Oxford @ 3.1.2013, 16:56) *
Че хорошего?
В чем?
Если в бьющей по глазам рекламе Вашего пустого сайта, то ничего.

Сообщение отредактировал ATLab - 3.1.2013, 15:45
Перейти в начало страницы
 
+Цитировать сообщение
MORRO
сообщение 4.1.2013, 16:45
Сообщение #10


Технический турист
*

Группа: Пользователи
Сообщений: 12
Регистрация: 1.7.2012
Пользователь №: 33792



Наверное выбор 103го камешка всеже не очень удачен, попробую партировать Ваши труды под чуть более серьезный проц.

Сообщение отредактировал MORRO - 4.1.2013, 17:29
Перейти в начало страницы
 
+Цитировать сообщение
ATLab
сообщение 4.1.2013, 17:04
Сообщение #11


Прописаный
*****

Группа: Пользователи
Сообщений: 616
Регистрация: 7.1.2007
Из: Железногорск
Пользователь №: 53



Автор в 4 посте приводил ссылку на ebay.
Ниже я давал ссылку на aliexpress - плата на том же STM32F103VET6 с таким же экраном, скорее всего полностью аналогичная авторской.
А автора не будет 2 недели.
Перейти в начало страницы
 
+Цитировать сообщение
vladumur
сообщение 5.1.2013, 9:17
Сообщение #12


Технический турист
*

Группа: Пользователи
Сообщений: 13
Регистрация: 8.6.2012
Пользователь №: 33733



Цитата(ATLab @ 2.1.2013, 11:02) *
mm.Mike, спасибо за новогодний подарок! biggrin.gif

Поскольку комментарии в тексте практически отсутствуют, нельзя ли получить из первых рук пояснение: как работает генератор шагов?

По поводу подорожавших плат: скорее, они подешевели, я брал дороже, чем, например здесь:
http://www.aliexpress.com/item/Free-Shippi.../707823751.html


К сожалению на алиэкспресс данного товара у данного продавца нет, и никогда не было... Вот сейчас и ругаюсь с ним по этому поводу, он просит отказаться, а я оказываюсь отказываться.
Перейти в начало страницы
 
+Цитировать сообщение
som.andrew
сообщение 5.1.2013, 10:23
Сообщение #13


Новичок
**

Группа: Пользователи
Сообщений: 42
Регистрация: 1.1.2013
Пользователь №: 34517



Цитата(MORRO @ 4.1.2013, 17:45) *
Наверное выбор 103го камешка всеже не очень удачен, попробую партировать Ваши труды под чуть более серьезный проц.

Какой именно?

А такая подойдет?
Перейти в начало страницы
 
+Цитировать сообщение
MORRO
сообщение 5.1.2013, 15:27
Сообщение #14


Технический турист
*

Группа: Пользователи
Сообщений: 12
Регистрация: 1.7.2012
Пользователь №: 33792



Цитата(som.andrew @ 5.1.2013, 9:23) *
Какой именно?

А такая подойдет?

Ну идея простая, уходим от 103 камней, ставим 107й или 207й попутно прикручиваем Ethernet ну и пару тройку полезных фич.
ТС будет не против если я буду выкладывать все свои труды в этот топик?
Одно но, пишу в IAR потому как GCC не перевариваю на дух.
Перейти в начало страницы
 
+Цитировать сообщение
ATLab
сообщение 5.1.2013, 16:44
Сообщение #15


Прописаный
*****

Группа: Пользователи
Сообщений: 616
Регистрация: 7.1.2007
Из: Железногорск
Пользователь №: 53



QUOTE (vladumur @ 5.1.2013, 13:17) *
К сожалению на алиэкспресс данного товара у данного продавца нет, и никогда не было... Вот сейчас и ругаюсь с ним по этому поводу, он просит отказаться, а я оказываюсь отказываться.
Понятно, почему он пошел в отказ: у него цена была выставлена примерно на 10-12$ (25%) ниже чем у других, ошибся наверное. biggrin.gif

В принципе, то, что выложил автор - работает.
Не знаю, как там насчет уверенной работы на станке, но на столе работает, не без огрехов, конечно. В частности, сразу заметна чувствительность к сетевым наводкам.
Ну и клавитура подключается не так, как описано в 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
Перейти в начало страницы
 
+Цитировать сообщение
ATLab
сообщение 5.1.2013, 17:05
Сообщение #16


Прописаный
*****

Группа: Пользователи
Сообщений: 616
Регистрация: 7.1.2007
Из: Железногорск
Пользователь №: 53



Повтор, удален

Сообщение отредактировал ATLab - 5.1.2013, 17:21
Перейти в начало страницы
 
+Цитировать сообщение
ATLab
сообщение 5.1.2013, 17:20
Сообщение #17


Прописаный
*****

Группа: Пользователи
Сообщений: 616
Регистрация: 7.1.2007
Из: Железногорск
Пользователь №: 53



QUOTE (MORRO @ 5.1.2013, 19:27) *
Ну идея простая, уходим от 103 камней, ставим 107й или 207й попутно прикручиваем Ethernet ну и пару тройку полезных фич...

А в чем суперидея? 107й работает на тех же 72МГц, 207й - на 120МГц, т.е. радикального повышения производительности (скорости) не предвидется.
Ethеrnet? Зачем?
Плата со 107м существенно дороже, с 207м ... Я лучше куплю miniITX c наворотами за эти деньги и за еще немного денег нормальный монитор, а не мелкую фигульку, на которой лично я уже нифига не вижу - мелко.

Я понимаю затею автора: сделать на дешевой плате автономный контроллер, у Вас эти прелести теряются, а с ними и смысл в такой разработке. Imho, конечно.
Если только целью поставить портирование из GCC в IAR, ну так это другое дело...

Сообщение отредактировал ATLab - 5.1.2013, 17:20
Перейти в начало страницы
 
+Цитировать сообщение
Oxford
сообщение 6.1.2013, 14:43
Сообщение #18


Прописаный
*****

Группа: Пользователи
Сообщений: 638
Регистрация: 19.2.2011
Из: Киселевск
Пользователь №: 32173



А какие вообще G коды его прошивка поддерживает?
Какой функционал реализован по сравнению с Mach3?

Сообщение отредактировал Oxford - 6.1.2013, 14:45


--------------------
Улыбаемся и машем!
Перейти в начало страницы
 
+Цитировать сообщение
ATLab
сообщение 6.1.2013, 16:18
Сообщение #19


Прописаный
*****

Группа: Пользователи
Сообщений: 616
Регистрация: 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
Перейти в начало страницы
 
+Цитировать сообщение
som.andrew
сообщение 7.1.2013, 11:42
Сообщение #20


Новичок
**

Группа: Пользователи
Сообщений: 42
Регистрация: 1.1.2013
Пользователь №: 34517



Цитата(ATLab @ 2.1.2013, 12:02) *
mm.Mike
Поскольку комментарии в тексте практически отсутствуют, нельзя ли получить из первых рук пояснение: как работает генератор шагов?


ATLab, разобрались с генератором шагов, распишите подробно путь от считывания очередного gcode, до непосредственно выдачи сигналов step и dir?

Сообщение отредактировал som.andrew - 7.1.2013, 11:44
Перейти в начало страницы
 
+Цитировать сообщение
ATLab
сообщение 7.1.2013, 16:18
Сообщение #21


Прописаный
*****

Группа: Пользователи
Сообщений: 616
Регистрация: 7.1.2007
Из: Железногорск
Пользователь №: 53



Не, не разбирался. Лучше подождать автора и терзать его.
Перейти в начало страницы
 
+Цитировать сообщение
Oxford
сообщение 8.1.2013, 3:25
Сообщение #22


Прописаный
*****

Группа: Пользователи
Сообщений: 638
Регистрация: 19.2.2011
Из: Киселевск
Пользователь №: 32173



Внутренняя ошибка связи

Вы попытались получить доступ к адресу https://docs.google.com/open?id=0B3hH5_ZXlbvwY2RIUnZwZGhGZXM, который сейчас недоступен. Убедитесь, что веб-адрес (URL) введён правильно, и попытайтесь перезагрузить страницу.

Залейте куданить заново кто успел качнуть


--------------------
Улыбаемся и машем!
Перейти в начало страницы
 
+Цитировать сообщение
ATLab
сообщение 8.1.2013, 6:11
Сообщение #23


Прописаный
*****

Группа: Пользователи
Сообщений: 616
Регистрация: 7.1.2007
Из: Железногорск
Пользователь №: 53



QUOTE (Oxford @ 8.1.2013, 7:25) *
...Залейте куданить заново кто успел качнуть
Только что проверил - качается.
Перейти в начало страницы
 
+Цитировать сообщение
MORRO
сообщение 8.1.2013, 11:00
Сообщение #24


Технический турист
*

Группа: Пользователи
Сообщений: 12
Регистрация: 1.7.2012
Пользователь №: 33792



Цитата(ATLab @ 5.1.2013, 16:20) *
А в чем суперидея? 107й работает на тех же 72МГц, 207й - на 120МГц, т.е. радикального повышения производительности (скорости) не предвидется.
Ethеrnet? Зачем?
Плата со 107м существенно дороже, с 207м ... Я лучше куплю miniITX c наворотами за эти деньги и за еще немного денег нормальный монитор, а не мелкую фигульку, на которой лично я уже нифига не вижу - мелко.

Я понимаю затею автора: сделать на дешевой плате автономный контроллер, у Вас эти прелести теряются, а с ними и смысл в такой разработке. Imho, конечно.
Если только целью поставить портирование из GCC в IAR, ну так это другое дело...

А где в моем посте фигурировало слово "СУПЕР"?
Идея сделать плату доступной для повторения и не более, ETHERNET - это на любителя, мне например его наличие удобно.
Портирование GCC->IAR труда не составляет и цели исполнить именно это нет, цель простая сделать законченный опенсорсный дэвайс и не более того))))
Перейти в начало страницы
 
+Цитировать сообщение
ATLab
сообщение 8.1.2013, 12:05
Сообщение #25


Прописаный
*****

Группа: Пользователи
Сообщений: 616
Регистрация: 7.1.2007
Из: Железногорск
Пользователь №: 53



QUOTE (MORRO @ 8.1.2013, 15:00) *
...Идея сделать плату доступной для повторения и не более...

Куда уж доступнее, чем у автора? biggrin.gif
QUOTE
, цель простая сделать законченный опенсорсный дэвайс и не более того))))

Так и автор помимо готовой прошивки исходники предоставил - вполне опенсорс.
А вот Ваш порт на отнюдь не дешевом IAR на настоящий опенсорс уже не тянет.
Хотя, если Вы к тексту программы добавите подробные комментарии, его можно будет портировать обратно в GCC. biggrin.gif

Не поймите меня неправильно: я не хочу Вас отговаривать. Просто мысли вслух по поводу.
Получится и Вы выложите проект - честь Вам и хвала.
Перейти в начало страницы
 
+Цитировать сообщение

28 страниц V   1 2 3 > » 
Ответить в данную темуНачать новую тему
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0


Текстовая версия Сейчас: 28.8.2016, 23:31