Страница 4 из 12

Re: HAL2Arduino

Добавлено: 25 дек 2013, 20:29
nkp
HAL2Arduino.py.rar
(8.28 КБ) 498 скачиваний

Re: HAL2Arduino

Добавлено: 25 дек 2013, 21:43
aftaev
Вот что выдало
Err_Hal.png (1552 просмотра) <a class='original' href='./download/file.php?id=22804&mode=view' target=_blank>Загрузить оригинал (42.17 КБ)</a>

Re: HAL2Arduino

Добавлено: 25 дек 2013, 23:17
Serg
solo писал(а):отказаться от таймеров прерывания
прерывания - это тот-же программный генератор шагов. На таймерах, например которые есть в STM32 можно сделать полностью аппаратный генератор - проц будет только сообщать таймерам сколько импульсов и с какой частотой сгенерить.
solo писал(а):и поставить на вывод степ внешний таймер , ну хотя бы одновибратор
А как его заставить остановиться после конкретного количества импульсов?

Re: HAL2Arduino

Добавлено: 26 дек 2013, 08:22
selenur
UAVpilot писал(а): solo писал(а):
и поставить на вывод степ внешний таймер , ну хотя бы одновибратор

А как его заставить остановиться после конкретного количества импульсов?
Аппаратно сделать можно но для таких целей есть только 1 вывод, поэтому эта затея точно не вариант.

Re: HAL2Arduino

Добавлено: 26 дек 2013, 08:44
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А проверенно работает нормально :-)
В третьих, можно попытаться оптимизировать код, путем выброса неиспользуемого функционала.

Re: HAL2Arduino

Добавлено: 26 дек 2013, 09:46
nkp
aftaev писал(а):Вот что выдало
посмотри - как называется порт ,через который коннектится ардуина...
(для просмотра содержимого нажмите на ссылку)
Arduino IDE (1505 просмотров) <a class='original' href='./download/file.php?id=22813&mode=view' target=_blank>Загрузить оригинал (18.83 КБ)</a>
Arduino IDE

Re: HAL2Arduino

Добавлено: 26 дек 2013, 10:53
Nick
aftaev писал(а):Вот что выдало
Ардуинку прошил и подключил?

А откуда у тебя tk грузится? ты просто сделал
halrun
loadrt HAL2Arduino?

Re: HAL2Arduino

Добавлено: 26 дек 2013, 11:59
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
То в принципе ардуина достаточно шустро генерит шаги, на импульс получается короткий и он скорее всего гдето терялся или на плате опторазвязки или в драйверах ШД, шаговик вроде начинает крутиться но с какой то тупизной. Вот я и подумал что импульс очень короткий и он не доходит до драйвера. Эксперименты не закончил , с временем напряг. Будет время закончу эксперимент с одновибраторами обязательно отпишусь даже с отрицательным результатом , чтобы некто больше не занимался в этом направлении.

Re: HAL2Arduino

Добавлено: 26 дек 2013, 12:32
solo
PKM писал(а):Если есть Beaglebone за 50дол, на котором идет нормальный LinuxCNC с обработчиком G-кода и планировщиком траектории на порядок лучше, чем у принтеров на ардуине.
Подскажите а шо с этой штукой можно поступать так как с Arduino Uno http://www.xakep.ru/post/60504/

Re: HAL2Arduino

Добавлено: 26 дек 2013, 12:36
Nick
На нее саму можно поставить LinuxCNC :).
http://www.youtube.com/results?search_q ... uxCNC&sm=3

Re: HAL2Arduino

Добавлено: 26 дек 2013, 14:56
aftaev
Nick писал(а):Ардуинку прошил и подключил?
Да прошил, без ошибок каких либо.
Nick писал(а):А откуда у тебя tk грузится? ты просто сделал
halrun
loadrt HAL2Arduino?
halrun на ответ вбиваю loadusr -Wn Hal2Arduino /home/cnc/HAL2Arduino.py
и вылазит то что вылазит на скринтоше.

Re: HAL2Arduino

Добавлено: 26 дек 2013, 17:54
solo
Nick писал(а):На нее саму можно поставить LinuxCNC :).
http://www.youtube.com/results?search_q ... uxCNC&sm=3
А чего тогда все не используют под LinuxCNC ведь цена неприлично низкая куча выводов для подключения разных устройств, не то что на обычной материнские ЛПТ и.... все , в чем может быть подвох. Мне аж захотелось такую штучку купить, правда пока рассматривая "картинки " не совсем понял как туда чего пихать (программы)

Re: HAL2Arduino

Добавлено: 26 дек 2013, 17:56
aftaev
solo, для этого есть тема LinuxCNC на BeagleBone black #1

Re: HAL2Arduino

Добавлено: 26 дек 2013, 21:05
aftaev
nkp писал(а):посмотри - как называется порт ,через который коннектится ардуина...
у меня не стоит Arduina IDE на Линухе, скейтч заливал в Windows потом тащил на комп с Линухом. Други варианты есть как глянуть?

Re: HAL2Arduino

Добавлено: 26 дек 2013, 21:51
nkp
скачай с оффсайта ide для линукса - запусти(по моему без установки)...
мож кто и по другому подскажет - я не знаю...

Re: HAL2Arduino

Добавлено: 27 дек 2013, 04:07
selenur
aftaev писал(а):
nkp писал(а):посмотри - как называется порт ,через который коннектится ардуина...
у меня не стоит Arduina IDE на Линухе, скейтч заливал в Windows потом тащил на комп с Линухом. Други варианты есть как глянуть?
В консоли выполни lsusb -tv и покажи что вывело :-)

Re: HAL2Arduino

Добавлено: 27 дек 2013, 07:31
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
как теперь расшифровать?

Re: HAL2Arduino

Добавлено: 30 дек 2013, 05:44
selenur
Ардуина это набор из 2-х МК, кроме основного МК Atmega, там есть МК (ft232) которая преобразует USB интерфейс в USART, так вот при подключении ардуины мы должны были увидеть следующее:
(для просмотра содержимого нажмите на ссылку)
Снимок.JPG (1387 просмотров) <a class='original' href='./download/file.php?id=22910&mode=view' target=_blank>Загрузить оригинал (57.57 КБ)</a>
Синим подчеркнул команды для консоли, а красным те самые строчки, которые должны были увидеть ВЫ, при подключении.
Попробуйте в консоли вывести список устройств, с подключенной и отключенной ардуиной :-)

Re: HAL2Arduino

Добавлено: 30 дек 2013, 06:32
Serg
На многих ардуинах в качестве USB-интерфейса ставят маленькие атмеги - это дешевле ft232.
Такие варианты как правило и используют драйвер cdc_acm, в системе появляется /dev/ttyACM0.

Re: HAL2Arduino

Добавлено: 30 дек 2013, 07:23
selenur
Ну тогда от ТС нужна фотка его ардуины, что-бы понять что делать дальше.