HAL2Arduino

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: HAL2Arduino

Сообщение nkp »

HAL2Arduino.py.rar
(8.28 КБ) 497 скачиваний
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: HAL2Arduino

Сообщение aftaev »

Вот что выдало
Err_Hal.png (1542 просмотра) <a class='original' href='./download/file.php?id=22804&mode=view' target=_blank>Загрузить оригинал (42.17 КБ)</a>
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: HAL2Arduino

Сообщение Serg »

solo писал(а):отказаться от таймеров прерывания
прерывания - это тот-же программный генератор шагов. На таймерах, например которые есть в STM32 можно сделать полностью аппаратный генератор - проц будет только сообщать таймерам сколько импульсов и с какой частотой сгенерить.
solo писал(а):и поставить на вывод степ внешний таймер , ну хотя бы одновибратор
А как его заставить остановиться после конкретного количества импульсов?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: HAL2Arduino

Сообщение selenur »

UAVpilot писал(а): solo писал(а):
и поставить на вывод степ внешний таймер , ну хотя бы одновибратор

А как его заставить остановиться после конкретного количества импульсов?
Аппаратно сделать можно но для таких целей есть только 1 вывод, поэтому эта затея точно не вариант.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: HAL2Arduino

Сообщение selenur »

solo писал(а): 1 На базе ардуино собирают 3Д принтер , Ардуина там может генерировать , по информации с форумов" степ импульсы с частотой до 30 000 , но даже меня эта цифра немного удивляет.
2 Стандартно в 3 Д принтера частота степ на мах скоростях 3-5 кГц , при работе с 4 ШД и управление по СОМ- USB
Я в своих прошлых экспериментах пока более менее стабильную работу ШД получил с частотой около 500 Гц , если увеличиваю скорость перемещения ШД то ардуина начинает как то хаотично и неравномерно генерировать импульсы степ.
Может ВЫ мне объясните возможно ли в связке LCNC ардуина получить более менее приличный результат управления 3 ШД и генерации шагов с частотой до 5-6 кГц
По первому пункту, почему тебя это удивляет? т.е. Много или мало?
Смотрел я исходники нескольких проектов на ардуине, и там заложен большой функционал, но он к сожалению влечет и негативную сторону.
Во первых большинство работает на 16 Мгц, казалось бы частота не маленькая, но для генерирования степа например с частотой 10кГц у микроконтроллера есть время на выполнение 1600 ассемблерных инструкций, при частоте в 20кГц уже лишь 800. В промежутке между импульсами необходимо выполнить кучу кода, который может требовать для всех вычислений больше времени, и тогда все просто поплывет..... (а при 30кГц всего 533 инструкции)
Во вторых можно конечно сделать небольшой оверклокинг до 20 Мгц (замена кварца), на атмеге 168, и 16А проверенно работает нормально :-)
В третьих, можно попытаться оптимизировать код, путем выброса неиспользуемого функционала.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: HAL2Arduino

Сообщение nkp »

aftaev писал(а):Вот что выдало
посмотри - как называется порт ,через который коннектится ардуина...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: HAL2Arduino

Сообщение Nick »

aftaev писал(а):Вот что выдало
Ардуинку прошил и подключил?

А откуда у тебя tk грузится? ты просто сделал
halrun
loadrt HAL2Arduino?
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: HAL2Arduino

Сообщение solo »

selenur писал(а):о первых большинство работает на 16 Мгц, казалось бы частота не маленькая, но для генерирования степа например с частотой 10кГц у микроконтроллера есть время на выполнение 1600 ассемблерных инструкций, при частоте в 20кГц уже лишь 800. В промежутке между импульсами необходимо выполнить кучу кода, который может требовать для всех вычислений больше времени, и тогда все просто поплывет..... (а при 30кГц всего 533 инструкции)
Во вторых можно конечно сделать небольшой оверклокинг до 20 Мгц (замена кварца), на атмеге 168, и 16А проверенно работает нормально :-)
В третьих, можно попытаться оптимизировать код, путем выброса неиспользуемого функционала.
Я прошу прощение но я в программировании не то что чайник а САМОВАР по этому в этих фразах я почти не бум-бум
UAVpilot писал(а):
solo писал(а):отказаться от таймеров прерывания
прерывания - это тот-же программный генератор шагов. На таймерах, например которые есть в STM32 можно сделать полностью аппаратный генератор - проц будет только сообщать таймерам сколько импульсов и с какой частотой сгенерить.
solo писал(а):и поставить на вывод степ внешний таймер , ну хотя бы одновибратор
А как его заставить остановиться после конкретного количества импульсов?
Я когда пробовал в ардуине на прямую управлять регистрами памяти я здесь писал об этом http://cnc-club.ru/forum/viewtopic.php? ... 242#p71213
То в принципе ардуина достаточно шустро генерит шаги, на импульс получается короткий и он скорее всего гдето терялся или на плате опторазвязки или в драйверах ШД, шаговик вроде начинает крутиться но с какой то тупизной. Вот я и подумал что импульс очень короткий и он не доходит до драйвера. Эксперименты не закончил , с временем напряг. Будет время закончу эксперимент с одновибраторами обязательно отпишусь даже с отрицательным результатом , чтобы некто больше не занимался в этом направлении.
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: HAL2Arduino

Сообщение solo »

PKM писал(а):Если есть Beaglebone за 50дол, на котором идет нормальный LinuxCNC с обработчиком G-кода и планировщиком траектории на порядок лучше, чем у принтеров на ардуине.
Подскажите а шо с этой штукой можно поступать так как с Arduino Uno http://www.xakep.ru/post/60504/
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: HAL2Arduino

Сообщение Nick »

На нее саму можно поставить LinuxCNC :).
http://www.youtube.com/results?search_q ... uxCNC&sm=3
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: HAL2Arduino

Сообщение aftaev »

Nick писал(а):Ардуинку прошил и подключил?
Да прошил, без ошибок каких либо.
Nick писал(а):А откуда у тебя tk грузится? ты просто сделал
halrun
loadrt HAL2Arduino?
halrun на ответ вбиваю loadusr -Wn Hal2Arduino /home/cnc/HAL2Arduino.py
и вылазит то что вылазит на скринтоше.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: HAL2Arduino

Сообщение solo »

Nick писал(а):На нее саму можно поставить LinuxCNC :).
http://www.youtube.com/results?search_q ... uxCNC&sm=3
А чего тогда все не используют под LinuxCNC ведь цена неприлично низкая куча выводов для подключения разных устройств, не то что на обычной материнские ЛПТ и.... все , в чем может быть подвох. Мне аж захотелось такую штучку купить, правда пока рассматривая "картинки " не совсем понял как туда чего пихать (программы)
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: HAL2Arduino

Сообщение aftaev »

solo, для этого есть тема LinuxCNC на BeagleBone black #1
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: HAL2Arduino

Сообщение aftaev »

nkp писал(а):посмотри - как называется порт ,через который коннектится ардуина...
у меня не стоит Arduina IDE на Линухе, скейтч заливал в Windows потом тащил на комп с Линухом. Други варианты есть как глянуть?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: HAL2Arduino

Сообщение nkp »

скачай с оффсайта ide для линукса - запусти(по моему без установки)...
мож кто и по другому подскажет - я не знаю...
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: HAL2Arduino

Сообщение selenur »

aftaev писал(а):
nkp писал(а):посмотри - как называется порт ,через который коннектится ардуина...
у меня не стоит Arduina IDE на Линухе, скейтч заливал в Windows потом тащил на комп с Линухом. Други варианты есть как глянуть?
В консоли выполни lsusb -tv и покажи что вывело :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: HAL2Arduino

Сообщение nkp »

у меня с подключенной ардуиной вывело:

Код: Выделить всё

nkp@nkp-desktop:~$ lsusb -tv 
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
    |__ Port 2: Dev 3, If 0, Class=comm., Driver=cdc_acm, 12M
    |__ Port 2: Dev 3, If 1, Class=data, Driver=cdc_acm, 12M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
    |__ Port 1: Dev 2, If 0, Class=HID, Driver=usbhid, 1.5M
    |__ Port 1: Dev 2, If 1, Class=HID, Driver=usbhid, 1.5M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/8p, 480M
как теперь расшифровать?
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: HAL2Arduino

Сообщение selenur »

Ардуина это набор из 2-х МК, кроме основного МК Atmega, там есть МК (ft232) которая преобразует USB интерфейс в USART, так вот при подключении ардуины мы должны были увидеть следующее: Синим подчеркнул команды для консоли, а красным те самые строчки, которые должны были увидеть ВЫ, при подключении.
Попробуйте в консоли вывести список устройств, с подключенной и отключенной ардуиной :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: HAL2Arduino

Сообщение Serg »

На многих ардуинах в качестве USB-интерфейса ставят маленькие атмеги - это дешевле ft232.
Такие варианты как правило и используют драйвер cdc_acm, в системе появляется /dev/ttyACM0.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: HAL2Arduino

Сообщение selenur »

Ну тогда от ТС нужна фотка его ардуины, что-бы понять что делать дальше.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Ответить

Вернуться в «LinuxCNC»