LinuxCNC + Orange Pi

Контроллеры, драйверы, датчики, управляющие устройства.

Re: LinuxCNC + Orange Pi

Сообщение svb » 03 авг 2018, 20:42

MX_Master писал(а):GPIO пины в HAL файле нельзя будет указывать в виде номеров на плате (1,2,3,..,40). Можно только в виде названия порта и пина чипа (PA15, PL10, ...).


Давно хотел это предложить, но решил не вмешиваться, ученого учить только портить....
svb
Опытный
 
Сообщения: 157
Зарегистрирован: 10 апр 2018, 11:31
Откуда: Нижний Новгород
Репутация: 32
Настоящее имя: Сергей

Re: LinuxCNC + Orange Pi

Сообщение svb » 03 авг 2018, 20:45

Я на некоторое время выпадаю из общего процесса, внезапно стал обладателям такого чуда техники.

Шёл мимо и не смог устоять перед приобретением :)
Вложения
LinuxCNC + Orange Pi IMGP6567.JPG
LinuxCNC + Orange Pi IMGP6568.JPG
LinuxCNC + Orange Pi IMGP6569.JPG
svb
Опытный
 
Сообщения: 157
Зарегистрирован: 10 апр 2018, 11:31
Откуда: Нижний Новгород
Репутация: 32
Настоящее имя: Сергей

Re: LinuxCNC + Orange Pi

Сообщение MX_Master » 08 авг 2018, 13:16

Готов к работе новый GPIO драйвер для LinuxCNC/Machinekit, который является частью единого ARISC драйвера.

Проверить можно очень быстро. Надо скопировать все файлы драйвера в любую папку апельсина. Собрать драйвер и запустить тестовый HAL файл.

arisc.gpio_test.hal (для просмотра содержимого нажмите на ссылку)
Код: Выделить всёРазвернуть
loadrt threads name1=base-thread period1=50000 fp1=0

loadrt arisc gpio_out=PL10,PA15 gpio_in=PA12,PA11

addf arisc.gpio.read base-thread
addf arisc.gpio.write base-thread

start

show pin arisc

setp arisc.gpio.PA15-out 1
setp arisc.gpio.PL10-out 1
setp arisc.gpio.PA15-out-not 0
setp arisc.gpio.PL10-out-not 0

show pin arisc

Код: Выделить всёРазвернуть
sudo comp --install arisc.c
realtime start
halcmd -f arisc.hal

Вечером буду приступать к работе над arisc.stepgen :hottabych:
Последний раз редактировалось MX_Master 09 авг 2018, 19:26, всего редактировалось 1 раз.
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 2862
Зарегистрирован: 27 июн 2015, 19:45
Откуда: форт Верный
Репутация: 1514
Медальки:
Настоящее имя: Михаил

Re: LinuxCNC + Orange Pi

Сообщение MX_Master » 08 авг 2018, 18:35

А у меня вопрос. Кто-нибудь использует в обычном stepgen вывод UP/DOWN и пятифазный вывод? Стоит ли их воплощать в arisc драйвере прямо сейчас? Стоит ли потом?

http://linuxcnc.org/docs/2.7/html/hal/r ... ec:stepgen

LinuxCNC + Orange Pi stepgen-block-diag.png
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 2862
Зарегистрирован: 27 июн 2015, 19:45
Откуда: форт Верный
Репутация: 1514
Медальки:
Настоящее имя: Михаил

Re: LinuxCNC + Orange Pi

Сообщение donvictorio » 08 авг 2018, 18:47

выглядит как некий костыль. делать программный драйвер в 21 веке как-то не особо эффективно. лет надцать назад, когда с драйверами были напряги это имело смысл, сейчас, имхо, не имеет.
Аватара пользователя
donvictorio
Мастер
 
Сообщения: 1955
Зарегистрирован: 11 окт 2012, 16:26
Откуда: Санкт-Петербург
Репутация: 544
Настоящее имя: Виктор

Re: LinuxCNC + Orange Pi

Сообщение MX_Master » 08 авг 2018, 18:59

Виктор, поясните, пожалуйста, на пальцах (: Из всего сказанного я смог понять, что пятифазный вывод и up/down не нужны. В arisc драйвере делать только step/dir?
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 2862
Зарегистрирован: 27 июн 2015, 19:45
Откуда: форт Верный
Репутация: 1514
Медальки:
Настоящее имя: Михаил

Re: LinuxCNC + Orange Pi

Сообщение donvictorio » 08 авг 2018, 19:15

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


по большому счету, lcnc это чпу для огромной массы кинематик. возможно для какойто из них и нужен фазовый выход, но если сосредоточиться на традиционных роутерах 3-5 координат, то выбор управляющих сигналов сводится к аналогу, степдир и кучке проприетарных сетевых протоколов. аналогу rt не особо нужен, pwm на шпиндель можно и программно генерить, из проприетарных реализовать теоретически можно только ethercat. остается только степдир.
Аватара пользователя
donvictorio
Мастер
 
Сообщения: 1955
Зарегистрирован: 11 окт 2012, 16:26
Откуда: Санкт-Петербург
Репутация: 544
Настоящее имя: Виктор

Re: LinuxCNC + Orange Pi

Сообщение MX_Master » 08 авг 2018, 20:04

Понял. Принято.

donvictorio писал(а):аналогу rt не особо нужен, pwm на шпиндель можно и программно генерить

В arisc драйвере pwmgen тоже будет. В прошивке сопроцессора для этого всё есть.
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 2862
Зарегистрирован: 27 июн 2015, 19:45
Откуда: форт Верный
Репутация: 1514
Медальки:
Настоящее имя: Михаил

Re: LinuxCNC + Orange Pi

Сообщение MX_Master » 10 авг 2018, 12:43

Обнаружилась небольшая нехватка функционала в прошивке сопроцессора. Насколько я понимаю, иногда stepgen'у будут попадаться задания, когда за время сервопериода надо сделать пару шагов, сменить направление и сделать ещё пару шагов.

Код: Выделить всёРазвернуть
       |             сервопериод               |

step   __/\__/\__/\__/\_____/\__/\__/\__/\__/\__

dir    __________________/``````````````````````

Т.е. надо pulsgen'у выдать очередь из трёх заданий. А в конце сервопериода спросить с него кол-во сделанных импульсов по каждому из этих заданий. Так вот, никакой очереди заданий у pulsgen'а нет. Новое задание всегда останавливает текущее и кол-во импульсов сбрасывается. Вощем, надо что-то городить. То ли хитрую очередь заданий для модуля pulsgen, то ли мини модуль stepgen, который будет всегда знать позицию в шагах.
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 2862
Зарегистрирован: 27 июн 2015, 19:45
Откуда: форт Верный
Репутация: 1514
Медальки:
Настоящее имя: Михаил

Re: LinuxCNC + Orange Pi

Сообщение Сергей Саныч » 10 авг 2018, 13:08

MX_Master писал(а):Насколько я понимаю, иногда stepgen'у будут попадаться задания, когда за время сервопериода надо сделать пару шагов, сменить направление и сделать ещё пару шагов.
я уже как-то советовал изучить принцип взаимодействия LinuxCNC с простыми аппаратными шагогенераторами - например Pluto-P. Там всё достаточно примитивно.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Сергей Саныч
Мастер
 
Сообщения: 7860
Зарегистрирован: 30 май 2012, 14:20
Откуда: Тюмень
Репутация: 2434
Медальки:

Re: LinuxCNC + Orange Pi

Сообщение UAVpilot » 10 авг 2018, 15:22

MX_Master писал(а):Т.е. надо pulsgen'у выдать очередь из трёх заданий.

В пределах одного сервоцикла? А как эти задания будут синхронизироваться с остальными компонентами системы? И кто сможет давать ему такие задания?

MX_Master писал(а):Новое задание всегда останавливает текущее и кол-во импульсов сбрасывается.

И правильно делает, иначе как прекратить генерацию 4378957647645 импульсов при нажатии кнопки E-STOP или Пауза?..

Подобные проблемы решаются очень просто - достаточно не плодить лишних сущностей. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16327
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3991
Медальки:
Настоящее имя: Сергей

Re: LinuxCNC + Orange Pi

Сообщение MX_Master » 10 авг 2018, 15:42

Сергей Саныч писал(а):Там всё достаточно примитивно.
UAVpilot писал(а):достаточно не плодить лишних сущностей.

Так и поступим :hehehe:

Решил вышеуказанный вопрос следующим образом:

  • Прошивку сопроцессора решил не трогать.
  • Для каждого канала stepgen резервирую по 3 канала pulsgen в прошивке. Два канала STEP, один DIR. У STEP каналов вывод идёт на один и тот же пин. Т.к. pulsgen умеет делать паузы перед началом задания, нет никаких проблем в начале сервоцикла выдать задания трём каналам. С разной задержкой на старт. И в начале следующего цикла без проблем узнать сколько реальных импульсов выдал каждый.

Код: Выделить всёРазвернуть
pulsgen 1 CH _/\__/\__/\__/\__/\__/\__/\__/\__/\__/\__ stepgen 1 STEP
pulsgen 2 CH _________________________________________ stepgen 1 STEP
pulsgen 3 CH _________________________________________ stepgen 1 DIR

             |             сервопериод               |

pulsgen 1 CH _________________________________________ stepgen 1 STEP
pulsgen 2 CH _________________________________________ stepgen 1 STEP
pulsgen 3 CH ___________________/````````````````````` stepgen 1 DIR

             |             сервопериод               |

pulsgen 1 CH _________/\__/\__/\__/\__/\__/\__/\__/\__ stepgen 1 STEP
pulsgen 2 CH _________________________________________ stepgen 1 STEP
pulsgen 3 CH _____/``````````````````````````````````` stepgen 1 DIR

             |             сервопериод               |

pulsgen 1 CH __/\__/\__/\__/\__/\__/\__/\__/\_________ stepgen 1 STEP
pulsgen 2 CH _________________________________________ stepgen 1 STEP
pulsgen 3 CH __________________________________/`````` stepgen 1 DIR

             |             сервопериод               |

pulsgen 1 CH __/\__/\__/\__/\_________________________ stepgen 1 STEP
pulsgen 2 CH _____________________/\__/\__/\__/\__/\__ stepgen 1 STEP
pulsgen 3 CH __________________/`````````````````````` stepgen 1 DIR
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 2862
Зарегистрирован: 27 июн 2015, 19:45
Откуда: форт Верный
Репутация: 1514
Медальки:
Настоящее имя: Михаил

Re: LinuxCNC + Orange Pi

Сообщение antoxa-kylibin » 11 авг 2018, 19:18

Долго выбирал какую плату заказать, в итоге решил Orange Pi Plus 2E, http://www.orangepi.org/orangepiplus2e/
В комплект взял такой адаптер https://ru.aliexpress.com/item/40Pin-GPIO-Cable-Adapter-Raspberry-Pi-2-3-Model-B-Multifunctional-Cascade-Expansion-Extension-GPIO-Board/32801449806.html?spm=a2g0s.9042311.0.0.38f533edpdOSgU
Теперь как приедет буду пробовать LinuxCNC на данной платформе, надеюсь текущие вопросы и недоделки со временем будут уже устранены. У меня есть еще 3 энкодера 600имп/об., есть мысли испытать их в работе. Вообще хочется реализовать вариант управления станком с обратной связью, где привода будут шаговые двигатели, датчики обратной связи вышеупомянутые энкодеры, а PID управление как раз будет в самой Orange Pi + LinuxCNC реализовано....Так что, буду задавать много вопросов, т.к. я только начинаю осваивать LinuxCNC....
antoxa-kylibin
Кандидат
 
Сообщения: 98
Зарегистрирован: 22 июн 2017, 13:18
Откуда: г. Воронеж
Репутация: 2
Настоящее имя: Антон

Re: LinuxCNC + Orange Pi

Сообщение neller » 13 авг 2018, 07:54

Интересно, а возможно ли будет развернуть разрабатываемую прошивку на вышеупомянутой плате) Там и оперативы 2 гб и OpenGL заявлен, или в OPiPC тоже GL работает?
neller
Новичок
 
Сообщения: 22
Зарегистрирован: 17 апр 2018, 14:14
Репутация: 5
Настоящее имя: Alexey

Re: LinuxCNC + Orange Pi

Сообщение MX_Master » 13 авг 2018, 08:08

Там стоит H3, прошивка подойдёт сразу. OpenGL драйвер должен быть в нашей сборке на mainline ядре, а не в стандартных образах от производителя или Armbian.
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 2862
Зарегистрирован: 27 июн 2015, 19:45
Откуда: форт Верный
Репутация: 1514
Медальки:
Настоящее имя: Михаил

Re: LinuxCNC + Orange Pi

Сообщение MX_Master » 16 авг 2018, 15:58

Запилил, наконец, первую рабочую версию arisc.stepgen'a. Утомительное занятие. Прям гора с плеч. Дальше будут тесты, тюнинг, тесты, тюнинг, .. Затем буду сравнивать на анализаторе вывод arisc.stepgen'a и обычного stepgen'a. Все осциллограммы покажу. Затем опять тюнинг, тесты, .. И в какой-то момент драйвер генератора будет готов :hottabych:

Кстати, RT функции arisc.stepgen.capture-position() и arisc.stepgen.update-freq() работают даже быстрее чем функции драйвера arisc.gpio. Так что их можно запускать не только в сервоцикле, но даже, кому надо - в основном цикле.

Надеюсь, с драйверами arisc.encoder и arisc.pwmgen будет попроще..
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 2862
Зарегистрирован: 27 июн 2015, 19:45
Откуда: форт Верный
Репутация: 1514
Медальки:
Настоящее имя: Михаил

Re: LinuxCNC + Orange Pi

Сообщение Maxekb77 » 16 авг 2018, 17:19

MX_Master, Предлагаешь попробовать ?
Maxekb77
Мастер
 
Сообщения: 1243
Зарегистрирован: 05 окт 2013, 00:04
Откуда: Екатеринбург
Репутация: 232
Настоящее имя: Максим

Re: LinuxCNC + Orange Pi

Сообщение MX_Master » 16 авг 2018, 17:32

Maxekb77 писал(а):MX_Master, Предлагаешь попробовать ?

Нет, даже не думал предлагать. Как только я проведу достаточно тестов на пригодность и безопасность, выложу инструкции для тестирования. Всё-таки, тестить вывод на анализаторе и на станке - это разные вещи :) Станок может и по морде дать
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 2862
Зарегистрирован: 27 июн 2015, 19:45
Откуда: форт Верный
Репутация: 1514
Медальки:
Настоящее имя: Михаил

Re: LinuxCNC + Orange Pi

Сообщение Maxekb77 » 16 авг 2018, 17:41

MX_Master, у меня без станка пока - так тестирую и пишу кое чего еще
Maxekb77
Мастер
 
Сообщения: 1243
Зарегистрирован: 05 окт 2013, 00:04
Откуда: Екатеринбург
Репутация: 232
Настоящее имя: Максим

Re: LinuxCNC + Orange Pi

Сообщение MX_Master » 16 авг 2018, 17:49

Maxekb77 писал(а):MX_Master, у меня без станка пока - так тестирую и пишу кое чего еще

Базару нет. Но разбираться придётся самостоятельно. На данный проверочный момент все пины драйвера называются и функционируют слегка иначе, чем в оригинале. Некоторые пины отсутствуют. Некоторые будут модифицированы в ближайшие дни.
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 2862
Зарегистрирован: 27 июн 2015, 19:45
Откуда: форт Верный
Репутация: 1514
Медальки:
Настоящее имя: Михаил

Пред.След.

Вернуться в Электроника

Кто сейчас на конференции

Зарегистрированные пользователи: Alex lamaka, Bing [Bot], Chili, evgenkravtsov, Franklin, frezeryga, Google [Bot], hmnijp, japkavto, Majestic-12 [Bot], Maxekb77, michalych, niksooon, NKS, Power968, sima8520, sivolap36, UAVpilot, Yandex [bot], шпиндель

Поделиться

Reputation System ©'