Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Автономный Контроллер Чпу (stm32f103)
Все о станках с ЧПУ > Станки с ЧПУ, Hobby CNC > Электронные компоненты
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
mm.Mike
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
в дополнение.

Для управлния шаговыми двигателями используется китайская плата (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
Цитата(mm.Mike @ 1.1.2013, 12:58) *
в дополнение.

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

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

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

Вы код сами писали или от какого-то проекта отталкивались?
mm.Mike
Цитата(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
mm.Mike, спасибо за новогодний подарок! biggrin.gif

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

По поводу подорожавших плат: скорее, они подешевели, я брал дороже, чем, например здесь:
http://www.aliexpress.com/item/Free-Shippi.../707823751.html
mm.Mike
Цитата(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
Отличный проект, нужно опробывать.
Эх не успел задать пару вопросов по коду...
Цитата(mm.Mike @ 2.1.2013, 14:58) *
Кстати :), через 5 часов у меня самолет в теплые края и 2 недели отпуска.. Интеренета там нет...
Ура! Отпуск! 2 недели дайвига!!! урааа.. biggrin.gif

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

Oxford
Че хорошего?
ATLab
QUOTE (Oxford @ 3.1.2013, 16:56) *
Че хорошего?
В чем?
Если в бьющей по глазам рекламе Вашего пустого сайта, то ничего.
MORRO
Наверное выбор 103го камешка всеже не очень удачен, попробую партировать Ваши труды под чуть более серьезный проц.
ATLab
Автор в 4 посте приводил ссылку на ebay.
Ниже я давал ссылку на aliexpress - плата на том же STM32F103VET6 с таким же экраном, скорее всего полностью аналогичная авторской.
А автора не будет 2 недели.
vladumur
Цитата(ATLab @ 2.1.2013, 11:02) *
mm.Mike, спасибо за новогодний подарок! biggrin.gif

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

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


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

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

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

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

Ну идея простая, уходим от 103 камней, ставим 107й или 207й попутно прикручиваем Ethernet ну и пару тройку полезных фич.
ТС будет не против если я буду выкладывать все свои труды в этот топик?
Одно но, пишу в IAR потому как GCC не перевариваю на дух.
ATLab
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
Повтор, удален
ATLab
QUOTE (MORRO @ 5.1.2013, 19:27) *
Ну идея простая, уходим от 103 камней, ставим 107й или 207й попутно прикручиваем Ethernet ну и пару тройку полезных фич...

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

Я понимаю затею автора: сделать на дешевой плате автономный контроллер, у Вас эти прелести теряются, а с ними и смысл в такой разработке. Imho, конечно.
Если только целью поставить портирование из GCC в IAR, ну так это другое дело...
Oxford
А какие вообще G коды его прошивка поддерживает?
Какой функционал реализован по сравнению с Mach3?
ATLab
Судя по тексту:
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
som.andrew
Цитата(ATLab @ 2.1.2013, 12:02) *
mm.Mike
Поскольку комментарии в тексте практически отсутствуют, нельзя ли получить из первых рук пояснение: как работает генератор шагов?


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

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

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

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

А где в моем посте фигурировало слово "СУПЕР"?
Идея сделать плату доступной для повторения и не более, ETHERNET - это на любителя, мне например его наличие удобно.
Портирование GCC->IAR труда не составляет и цели исполнить именно это нет, цель простая сделать законченный опенсорсный дэвайс и не более того))))
ATLab
QUOTE (MORRO @ 8.1.2013, 15:00) *
...Идея сделать плату доступной для повторения и не более...

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

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

Не поймите меня неправильно: я не хочу Вас отговаривать. Просто мысли вслух по поводу.
Получится и Вы выложите проект - честь Вам и хвала.
inosat
Скажите, на данный момент реализовано для 3 осей? На фотках вроде как присутствует 4-я ось, и в исходниках тоже, но в заголовке автор пишет что это не реализовано... Не понятно wacko.gif
ATLab
QUOTE (ATLab @ 6.1.2013, 20:18) *
Судя по тексту:
G0....
M0,...

Прошу пардона за то, что ввел в заблуждение процитировав case из программы не вникая в его содержание.
На самом деле поддерживаются только
G0,G1,G2,G3,G4,G20,G21,G28,G90,G91,G92
и ограниченный набор M, причем изрядная часть M связана с экструдером.
ATLab
QUOTE (inosat @ 8.1.2013, 17:05) *
Скажите, на данный момент реализовано для 3 осей? На фотках вроде как присутствует 4-я ось, и в исходниках тоже, но в заголовке автор пишет что это не реализовано... Не понятно wacko.gif
В исходнике gcode.c:
CODE
dx = gc.position[X_AXIS] - oldPosition[X_AXIS];  
dy = gc.position[Y_AXIS] - oldPosition[Y_AXIS];
dz = gc.position[Z_AXIS] - oldPosition[Z_AXIS];
...
moveLength = sqrt(dx*dx+dy*dy+dz*dz);

Видно, что вычисления ведутся для 3 осей координат. Так что 3 оси.
Oxford
Да понятное дело человек для своих задач затачивал и у него не было цели реализовать что-то там на будущее и для кого то ибо время требует это )
mm.Mike
Цитата(Oxford @ 9.1.2013, 5:19) *
Да понятное дело человек для своих задач затачивал и у него не было цели реализовать что-то там на будущее и для кого то ибо время требует это )


Без сомнения.. :) чисто для развлечения, как хобби.. Но хоть какая то польза от этого проекта есть! Сувениры друзьям и подругам :)
А то металлоискатель с прямым анализом сигнала - валяется..(не увлекло копательство с комарами, грязью и пр. И восторги по поводу разного хлама)
Робот, напичканый датчиками и пр.. на работе стоит уже год (ну ездит, ну говорит.. ну за народом гоняется.. а смысл!?)

Просто в качестве комментария:

В первом посте так же есть ссылка на уже собранный и настроенный eclipse+gcc (распаковать в c:\eclipse и запустить exe). IAR.. не люблю пользоватся ломанным комерческим софтом, если (!) есть бесплатная альтернатива.

Все, что выкладывал http://www.cnczone.ru/forums/index.php?sho...0&start=500 выпиливал на своем станке с этим контроллером. Так что, то, что от него хотелось - делает.

Плату взял самую дешевую из более менее грамотно разведенных китайцами (экран у нее правильно заведен на шину..). Из тех АРМ плат, что доступны на e-bay и сразу интегрированы с USB+SD+экран. Собственно это было главным (ну и плата от других экспериметов валялась :)).
Ценовой диапазон более старших моделей АРМ уже пересекается с ценой подержанного ноута... и/или модных "ягодных" платок. Да и не так распространнены на e-bay и обладают избыточной переферией (вот только WiFi не хватало для контроллера :)))).

Кнопки... смутно вспоминаю, что то перепутал в распайке шлейфа клавитуры и просто поменял в программе... Хотя, что там сложного? Матрица 4x4.. кнопок.

Механический сканер - мертворожденная штука. Сделал. Пробовал. Не советую. При более менее приличном шаге (0.1) требуется острый наконечник. Царапает медь сканируемого изделия. Ставишь прижимающую пружину послабей - иногда залип контактов и... В общем, обмусоленный в Инете маханический датчик с 6-ю шариками и 3-мя опорами мне не понравился. Хотя... сделать его не сложно и сканировать профиль пропеллера, например, наверное подошел бы. Но это к авиамоделистам.
Поэтому, сканер в исходниках не доделан, но и принцип сканирования простой. Доделать желающим - пара часов с отладкой.

3D принтер.. начал делать (экструдер, подачу прутка софт и пр.) и понял: А нафига мне он нужен?! Все что нужно могу сделать из гетинакса/текстолита на фрезере. А делать свистки :) из пластмассы - маразм. Тем более - на станке, заточенном на фрезерорвку (масса/инерция/скорость не та)
Так и валяется и экструдер и плата контроллера температры и бобина прутка и пр.

4-я ось.. те, кому надо, разберутся в исходниках и прикрутят за 1 день. ничего там сложного нет. Мне пока не нужно. Будет лето - попробую отливки делать. Понравится - буду делать 4-ю ось. Хотя обычно и 3-мя обходятся! (вместо X или Y - врашение).

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

Наводки.. не сталкивался. Хотя, у меня конструктивно вся разводка (обычным проводом в скрутку, без брони) шаговиков минимум в 40 см от платы (на другой стороне станка). И блок питания китайский импульсник..

Энкодер купленный на e-bay валяется. Хотел сделать динамическую коррекцию по Z что бы быстрее пилило (вниз уплывает на большой скорости/ускорении, выставленном для Z). Но.. сделав режим эмуляции, в котором выдается рельная (совпадает до 1сек) скорость обработки файла, понял, что выставление ускорения, при котором аж станок дергается (и координата теряется) дает всего на 20-30% уменьшения общего времени.
Выставил (экспрериментально) максимальное ускорение по X/Y/Z при котором координата не уходит (возврат в 0+-0.1) после выпиличания модели и успокоился.

Набор G,М команд довел до того, который выдет ArtCam и такие программки как CamВam. Все остальное - это управление оборудованием типа охладилка и специфичные режимы коррекции, которые все одно мое ПО не поддерживает. Я даже заглушки на них не ставил! Специально, что бы выявить, если встретится в g-code и понять, что с этим делать.

Еще раз повторюсь, что делал из соображений развлечься и как платформу для экспериментов.
mm.Mike
Цитата(ATLab @ 8.1.2013, 18:49) *
В исходнике gcode.c:
Код
dx = gc.position[X_AXIS] - oldPosition[X_AXIS];  
dy = gc.position[Y_AXIS] - oldPosition[Y_AXIS];
dz = gc.position[Z_AXIS] - oldPosition[Z_AXIS];
...
moveLength = sqrt(dx*dx+dy*dy+dz*dz);

Видно, что вычисления ведутся для 3 осей координат. Так что 3 оси.


4-я ось. Управление 4-й поворотной осью и экструдером.
Не стал делать до конца, но и убирать до конца не стал. Вдруг захочтеся использовать. Патрон от токарника выляется.. Плата на 4-й шаговика...
mm.Mike
Цитата(som.andrew @ 5.1.2013, 14:23) *
Какой именно?

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


судя по описанию
2.4-inch TFT ..FSMC 16-bit interface mode.
1 X Micro SD (TF) card socket, interface with SDIO connection mode.
USB2.0 SLAVE device interface.

Пойдет на первый вгдял (схему не смотрел).
А то, что у нее "USB to serial Converter, based on PL2303-HX." - так даже лучше!
мне пришлось внешний USB-COM использовать для загрузки ПО
На первый взгяд она даже получше той, на которой я делал. И на 300 руб дешевле rolleyes.gif

Главное, на что нужно обратить внимание:
1. USB slave (можно конечно и SD карту вытаскивать для запис на нее файлов, но втыкать в комп контроллер как usb диск удобнее)
2. SD карта по SDIO (по SPI скорость недостаточна)
3. TTF на шине FSMC (иначе экран тормозной)

Ну, а наличие всего остального - опционально и бонусно. Типа ацп (для контроля температуры термистором), кнопки (обойтись без внешней клавиатуры) и пр.
ATLab
О, отпускник появился. С возвращением!
Как море окиянное? Не пересохло? Рыба не перевелась в дайвинге? biggrin.gif

mm.Mike
Цитата(ATLab @ 17.1.2013, 17:43) *
О, отпускник появился. С возвращением!
Как море окиянное? Не пересохло? Рыба не перевелась в дайвинге? biggrin.gif


Холодно в Дахабе! ab.gif Как там народ в мокряках ныряет.. Синии и в пупырышках переодеваются на ветру. Я и в сухаре то к концу дайва подмерзал..
Впрочем.. это уже тема для другого тусовочного места biggrin.gif
ATLab
mm.Mike, поделитесь опытом: как нужно настроить эклипс, чтобы шла компиляция? Что-то у меня ничего не вышло ни с Вашей копией ни с нуля поставленной.
som.andrew
mm.Mike опиши пожалуйста более подробно как линия разбивается на отрезки (с учетом ускорения и скорости) и затем как происходит генерация сигналов dir step.
Oxford
исходники не могу скачать.
mm.Mike
Цитата(ATLab @ 17.1.2013, 19:32) *
mm.Mike, поделитесь опытом: как нужно настроить эклипс, чтобы шла компиляция? Что-то у меня ничего не вышло ни с Вашей копией ни с нуля поставленной.


Хм.. провел эксперимент. Удалил все старое.
Скачал cnc_workspace.zip и stm32f103_gcc.zip
по:
https://docs.google.com/file/d/0B3hH5_ZXlbv...UyOTZmZWU3/edit
https://docs.google.com/file/d/0B3hH5_ZXlbv...nZwZGhGZXM/edit

создал папку c:\eclipse и распаковал в ней оба файла.
запустил C:\eclipse\eclipse_arm\eclipsec.exe
выбрал File->Switch Workspace->Other... и выбрал каталог с проектом C:\eclipse\cnc_workspace\cnc_workspace\

Сборка выполняется выбором соответвующего makefile в оболочке (см. картинку). В принципе, можно собирать и через командную строку (make)

Наверное, я зря не указал, что нужно дополнительно пути в переменных окружения прописать, но показалось это очевидным ad.gif

!C:=C:\eclipse
PATH=/usr/bin:/c/eclipse/bin/

Собралось без проблем...

файлы пробовал и с работы (где точно моего google account нет) и из дома. Ссылки на гогловский сервис 100% живые и расшарены всем




Oxford
Нет доступа, скачать не может. кликаю качать ничего не делается.
через телнет ресурс docs.google.com недоступен
mm.Mike
Цитата(som.andrew @ 17.1.2013, 22:24) *
mm.Mike опиши пожалуйста более подробно как линия разбивается на отрезки (с учетом ускорения и скорости) и затем как происходит генерация сигналов dir step.


разбиение на отрезки - целочисленное интегрирование по времени (фиксированный dT) по отрезкам, с проверкой сходимости на каждом шаге для получения "трапеции ускорения"..
Блин.. да мне в программе было бы гораздо понятнее чем в таком словесном описании! angry.gif Терпеть не могу доки писать.. У меня для этого сотрудники есть.. по работе.. на работе... biggrin.gif

Генерация сигналов по трем таймерам (я уже писал) с дерганьем портов по прерыванию от таймеров. Расчет таймеров по X,Y,Z отрезков на которых разбиты начальные отрезки G-code. stepmotor.c stepm_addMove(..
Сигнал в пределах отрезка - меандр. Для китайского контроллера это не принципиально. TB6560 работает по фронту сигнала step.

Подробней - я пас... на это уже мой альтруиз сегодня не распространятся.. smile.gif извини ak.gif
som.andrew
Цитата(mm.Mike @ 18.1.2013, 19:00) *
разбиение на отрезки - целочисленное интегрирование по времени (фиксированный dT) по отрезкам, с проверкой сходимости на каждом шаге для получения "трапеции ускорения"..
Блин.. да мне в программе было бы гораздо понятнее чем в таком словесном описании! angry.gif Терпеть не могу доки писать.. У меня для этого сотрудники есть.. по работе.. на работе... biggrin.gif

Генерация сигналов по трем таймерам (я уже писал) с дерганьем портов по прерыванию от таймеров. Расчет таймеров по X,Y,Z отрезков на которых разбиты начальные отрезки G-code. stepmotor.c stepm_addMove(..
Сигнал в пределах отрезка - меандр. Для китайского контроллера это не принципиально. TB6560 работает по фронту сигнала step.

Подробней - я пас... на это уже мой альтруиз сегодня не распространятся.. smile.gif извини ak.gif

Спасибо что частично ответили на вопрос. Я спрашиваю потому что я работаю с другими МК и с stm32f103 разбираюсь только сейчас чтобы понять код.
ATLab
QUOTE (mm.Mike @ 18.1.2013, 21:43) *
Хм.. провел эксперимент. Удалил все старое...
Спасибо за ответ, попробую.
ponyatov
mm.Mike: а можете засунуть исходники в .git репозиторий и выложить на github ?
скачать исходник и скинуть в свой аккаунт на github я конечно и сам могу, но хотелось бы чтобы был "официальный" репо от
основного разработчика

вижу в форуме есть много активно интересующихся такими контроллерами -- может сделать какой-то обобщенный
проект, в котором разделить
1) железо-независимую часть -- алгоритмы расчета траекторий, парсер G-кода и т.п.
2) интерфейс
3) код работы с конкретным железом -- таймеры, ввод/вывода, низкоурово.драйверная часть GUI и т.п.

пошел делать github-репу из исходников...
подозрительно большие файлы wacko.gif
ATLab
QUOTE (ATLab @ 19.1.2013, 17:10) *
Спасибо за ответ, попробую.
Попробовал.
Вот за что я "люблю" FREE пакеты, так это за их желание сделать юзера умнее: без бубна, плясок и прочих "радостей" обычно не работают.
А если заработали - значит ты что-то не замечаешь, или не знаешь. biggrin.gif

Попробовал на рабочей машине - облом. Вычистил все хвосты от установок кокоса и эклипса - облом, не собирается.
На полностью чистом буке поставил все по рекомендации, догрузил JRE - собралось.

Стоят рядом рабочий комп и бук, на одном собирается, на другом - нет.

Разбаловала нас Windows и проприетарный софт - отвыкли от шаманства командных строк и настроек config.sys, autoexec.bat, про линукс уж и не заикаюсь biggrin.gif
mm.Mike
Цитата(ATLab @ 20.1.2013, 16:31) *
Попробовал.
Вот за что я "люблю" FREE пакеты, так это за их желание сделать юзера умнее: без бубна, плясок и прочих "радостей" обычно не работают.
А если заработали - значит ты что-то не замечаешь, или не знаешь. biggrin.gif

Попробовал на рабочей машине - облом. Вычистил все хвосты от установок кокоса и эклипса - облом, не собирается.
На полностью чистом буке поставил все по рекомендации, догрузил JRE - собралось.

Стоят рядом рабочий комп и бук, на одном собирается, на другом - нет.

Разбаловала нас Windows и проприетарный софт - отвыкли от шаманства командных строк и настроек config.sys, autoexec.bat, про линукс уж и не заикаюсь biggrin.gif


В принципе, там и eclipse нужен только как оболочка-редактор (если привыкнуть - удобная). Сборка - обычные make файлы и кросскомпилятор gcc. Можно и из командной строки собирать.

Я в основном под Unix разрабатываю и.. особых проблем с настройки путей/make файлов не имею. Привычно.. rolleyes.gif

Хвосты не обязательно чистить.. можно просто запусакать и соотвествующего sh файла, с прописанными настройками путей (ой.. прростите.. bat файла biggrin.gif ). А так, могу предположить, что make.exe не тот запускается. Например, make.exe от MS несколько другой чем от GCC, Oracle(Sun).

На мой взгляд, управление работой программм через переменные окружения (Unix) и конфиг.файлы - это гораздо правильней и честней, чем Winows со своими реестром. Из которого фиг что вычистишь до конца...

Цитата(ATLab @ 20.1.2013, 16:31) *
А если заработали - значит ты что-то не замечаешь, или не знаешь. biggrin.gif

Нууу... Полезно понимать что то куда берется.
А то всем кнопку "счастье" подавай wink.gif
Я имеею в виду, конечно разработчиков.. Пользователей нужно облизывать...

Oxford
Цитата(ATLab @ 20.1.2013, 16:31) *
Попробовал.
Вот за что я "люблю" FREE пакеты, так это за их желание сделать юзера умнее: без бубна, плясок и прочих "радостей" обычно не работают.
А если заработали - значит ты что-то не замечаешь, или не знаешь. biggrin.gif

Попробовал на рабочей машине - облом. Вычистил все хвосты от установок кокоса и эклипса - облом, не собирается.
На полностью чистом буке поставил все по рекомендации, догрузил JRE - собралось.

Стоят рядом рабочий комп и бук, на одном собирается, на другом - нет.

Разбаловала нас Windows и проприетарный софт - отвыкли от шаманства командных строк и настроек config.sys, autoexec.bat, про линукс уж и не заикаюсь biggrin.gif

Слушай забей на это. Если собрать не можешь.
at90
Цитата(Oxford @ 20.1.2013, 21:14) *
Слушай забей на это. Если собрать не можешь.

Ты вообще скачать не можешь... молчал бы уже...
Oxford
Цитата(at90 @ 21.1.2013, 14:10) *
Ты вообще скачать не можешь... молчал бы уже...

Не качает потому что. Выкладывать надо на нормальные ресурсы, лучше бы чувак выложил на платный файлообменник.
ATLab
QUOTE (mm.Mike @ 20.1.2013, 19:04) *
...На мой взгляд, управление работой программм через переменные окружения (Unix) и конфиг.файлы - это гораздо правильней...
Это было бы правильней, если бы эти настройки были внутри IDE, а не прописывались в настройки системы. Вот и получается, что там в path прописался кокос, ягарто и путь к Вашей среде тоже нужно прописать. Что вышло? Какой путь раньше прописан, по тому и запускается make.
Вот какие проблемы были эти настройки вынести в саму среду?

Кстати, добился, что сборка получается на обоих компьютерах. Недочистил рабочий комп с одного захода. :)
ATLab
QUOTE (Oxford @ 21.1.2013, 14:48) *
Не качает потому что. Выкладывать надо на нормальные ресурсы, лучше бы чувак выложил на платный файлообменник.
Ищите проблемы у себя: я скачивал 3 раза, в разное время, с разных компьютеров - проблем нет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.