Страница 67 из 245
Re: LinuxCNC + Orange Pi
Добавлено: 03 авг 2018, 20:42
svb
MX_Master писал(а):GPIO пины в HAL файле нельзя будет указывать в виде номеров на плате (1,2,3,..,40). Можно только в виде названия порта и пина чипа (PA15, PL10, ...).
Давно хотел это предложить, но решил не вмешиваться, ученого учить только портить....
Re: LinuxCNC + Orange Pi
Добавлено: 03 авг 2018, 20:45
svb
Я на некоторое время выпадаю из общего процесса, внезапно стал обладателям такого чуда техники.
Шёл мимо и не смог устоять перед приобретением

Re: LinuxCNC + Orange Pi
Добавлено: 08 авг 2018, 13:16
MX_Master
Готов к работе
новый 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 
Re: LinuxCNC + Orange Pi
Добавлено: 08 авг 2018, 18:35
MX_Master
А у меня вопрос. Кто-нибудь использует в обычном
stepgen вывод
UP/DOWN и пятифазный вывод? Стоит ли их воплощать в
arisc драйвере прямо сейчас? Стоит ли потом?
http://linuxcnc.org/docs/2.7/html/hal/r ... ec:stepgen
Re: LinuxCNC + Orange Pi
Добавлено: 08 авг 2018, 18:47
donvictorio
выглядит как некий костыль. делать программный драйвер в 21 веке как-то не особо эффективно. лет надцать назад, когда с драйверами были напряги это имело смысл, сейчас, имхо, не имеет.
Re: LinuxCNC + Orange Pi
Добавлено: 08 авг 2018, 18:59
MX_Master
Виктор, поясните, пожалуйста, на пальцах (: Из всего сказанного я смог понять, что пятифазный вывод и up/down не нужны. В arisc драйвере делать только step/dir?
Re: LinuxCNC + Orange Pi
Добавлено: 08 авг 2018, 19:15
donvictorio
пяти(4,3,2)-фазный выход нужен для того, чтобы можно было организовать софтовый драйвер, подцепив к пинам микруху типа uln2003 (набор ключей) и рулить шаговым. или даже пинами включать-выключать мосты, которые коммутируют обмотки шагового. было популярно в нулевых, когда на помойке можно было найти комплектуху для станка.
по большому счету, lcnc это чпу для огромной массы кинематик. возможно для какойто из них и нужен фазовый выход, но если сосредоточиться на традиционных роутерах 3-5 координат, то выбор управляющих сигналов сводится к аналогу, степдир и кучке проприетарных сетевых протоколов. аналогу rt не особо нужен, pwm на шпиндель можно и программно генерить, из проприетарных реализовать теоретически можно только ethercat. остается только степдир.
Re: LinuxCNC + Orange Pi
Добавлено: 08 авг 2018, 20:04
MX_Master
Понял. Принято.
donvictorio писал(а):аналогу rt не особо нужен, pwm на шпиндель можно и программно генерить
В
arisc драйвере
pwmgen тоже будет. В прошивке сопроцессора для этого всё есть.
Re: LinuxCNC + Orange Pi
Добавлено: 10 авг 2018, 12:43
MX_Master
Обнаружилась небольшая нехватка функционала в прошивке сопроцессора. Насколько я понимаю, иногда
stepgen'у будут попадаться задания, когда за время сервопериода надо сделать пару шагов, сменить направление и сделать ещё пару шагов.
Код: Выделить всё
| сервопериод |
step __/\__/\__/\__/\_____/\__/\__/\__/\__/\__
dir __________________/``````````````````````
Т.е. надо
pulsgen'у выдать очередь из трёх заданий. А в конце сервопериода спросить с него кол-во сделанных импульсов по каждому из этих заданий. Так вот, никакой очереди заданий у
pulsgen'а нет. Новое задание всегда останавливает текущее и кол-во импульсов сбрасывается. Вощем, надо что-то городить. То ли хитрую очередь заданий для модуля
pulsgen, то ли мини модуль
stepgen, который будет всегда знать позицию в шагах.
Re: LinuxCNC + Orange Pi
Добавлено: 10 авг 2018, 13:08
Сергей Саныч
MX_Master писал(а):Насколько я понимаю, иногда stepgen'у будут попадаться задания, когда за время сервопериода надо сделать пару шагов, сменить направление и сделать ещё пару шагов.
я уже как-то советовал изучить принцип взаимодействия LinuxCNC с простыми аппаратными шагогенераторами - например Pluto-P. Там всё достаточно примитивно.
Re: LinuxCNC + Orange Pi
Добавлено: 10 авг 2018, 15:22
Serg
MX_Master писал(а):Т.е. надо pulsgen'у выдать очередь из трёх заданий.
В пределах одного сервоцикла? А как эти задания будут синхронизироваться с остальными компонентами системы? И кто сможет давать ему такие задания?
MX_Master писал(а):Новое задание всегда останавливает текущее и кол-во импульсов сбрасывается.
И правильно делает, иначе как прекратить генерацию 4378957647645 импульсов при нажатии кнопки E-STOP или Пауза?..
Подобные проблемы решаются очень просто - достаточно не плодить лишних сущностей.

Re: LinuxCNC + Orange Pi
Добавлено: 10 авг 2018, 15:42
MX_Master
Сергей Саныч писал(а):Там всё достаточно примитивно.
UAVpilot писал(а):достаточно не плодить лишних сущностей.
Так и поступим
Решил вышеуказанный
вопрос следующим образом:
- Прошивку сопроцессора решил не трогать.
- Для каждого канала 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
Re: LinuxCNC + Orange Pi
Добавлено: 11 авг 2018, 19:18
antoxa-kylibin
Долго выбирал какую плату заказать, в итоге решил Orange Pi Plus 2E,
http://www.orangepi.org/orangepiplus2e/
В комплект взял такой адаптер
https://ru.aliexpress.com/item/40Pin-GP ... 33edpdOSgU
Теперь как приедет буду пробовать LinuxCNC на данной платформе, надеюсь текущие вопросы и недоделки со временем будут уже устранены. У меня есть еще 3 энкодера 600имп/об., есть мысли испытать их в работе. Вообще хочется реализовать вариант управления станком с обратной связью, где привода будут шаговые двигатели, датчики обратной связи вышеупомянутые энкодеры, а PID управление как раз будет в самой Orange Pi + LinuxCNC реализовано....Так что, буду задавать много вопросов, т.к. я только начинаю осваивать LinuxCNC....
Re: LinuxCNC + Orange Pi
Добавлено: 13 авг 2018, 07:54
neller
Интересно, а возможно ли будет развернуть разрабатываемую прошивку на вышеупомянутой плате) Там и оперативы 2 гб и OpenGL заявлен, или в OPiPC тоже GL работает?
Re: LinuxCNC + Orange Pi
Добавлено: 13 авг 2018, 08:08
MX_Master
Там стоит H3, прошивка подойдёт сразу. OpenGL драйвер должен быть в нашей сборке на mainline ядре, а не в стандартных образах от производителя или Armbian.
Re: LinuxCNC + Orange Pi
Добавлено: 16 авг 2018, 15:58
MX_Master
Запилил, наконец, первую рабочую версию
arisc.stepgen'a. Утомительное занятие. Прям гора с плеч. Дальше будут тесты, тюнинг, тесты, тюнинг, .. Затем буду сравнивать на анализаторе вывод
arisc.stepgen'a и обычного
stepgen'a. Все осциллограммы покажу. Затем опять тюнинг, тесты, .. И в какой-то момент драйвер генератора будет готов
Кстати, RT функции
arisc.stepgen.capture-position() и
arisc.stepgen.update-freq() работают даже быстрее чем функции драйвера
arisc.gpio. Так что их можно запускать не только в сервоцикле, но даже, кому надо - в основном цикле.
Надеюсь, с драйверами arisc.encoder и arisc.pwmgen будет попроще..
Re: LinuxCNC + Orange Pi
Добавлено: 16 авг 2018, 17:19
Maxekb77
MX_Master, Предлагаешь попробовать ?
Re: LinuxCNC + Orange Pi
Добавлено: 16 авг 2018, 17:32
MX_Master
Maxekb77 писал(а):MX_Master, Предлагаешь попробовать ?
Нет, даже не думал предлагать. Как только я проведу достаточно тестов на пригодность и безопасность, выложу инструкции для тестирования. Всё-таки, тестить вывод на анализаторе и на станке - это разные вещи
Станок может и по морде дать
Re: LinuxCNC + Orange Pi
Добавлено: 16 авг 2018, 17:41
Maxekb77
MX_Master, у меня без станка пока - так тестирую и пишу кое чего еще
Re: LinuxCNC + Orange Pi
Добавлено: 16 авг 2018, 17:49
MX_Master
Maxekb77 писал(а):MX_Master, у меня без станка пока - так тестирую и пишу кое чего еще
Базару нет. Но разбираться придётся самостоятельно. На данный проверочный момент все пины драйвера называются и функционируют слегка иначе, чем в оригинале. Некоторые пины отсутствуют. Некоторые будут модифицированы в ближайшие дни.