Давно хотел это предложить, но решил не вмешиваться, ученого учить только портить....MX_Master писал(а):GPIO пины в HAL файле нельзя будет указывать в виде номеров на плате (1,2,3,..,40). Можно только в виде названия порта и пина чипа (PA15, PL10, ...).
LinuxCNC + Orange Pi (allwincnc)
-
svb
- Мастер
- Сообщения: 312
- Зарегистрирован: 10 апр 2018, 11:31
- Репутация: 82
- Настоящее имя: Сергей
- Откуда: Нижний Новгород
- Контактная информация:
Re: LinuxCNC + Orange Pi
Платы: OPI-PC(умерла), OPI-PC2
-
svb
- Мастер
- Сообщения: 312
- Зарегистрирован: 10 апр 2018, 11:31
- Репутация: 82
- Настоящее имя: Сергей
- Откуда: Нижний Новгород
- Контактная информация:
Re: LinuxCNC + Orange Pi
Я на некоторое время выпадаю из общего процесса, внезапно стал обладателям такого чуда техники.
Шёл мимо и не смог устоять перед приобретением
Шёл мимо и не смог устоять перед приобретением
Платы: OPI-PC(умерла), OPI-PC2
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Orange Pi
Готов к работе новый GPIO драйвер для LinuxCNC/Machinekit, который является частью единого ARISC драйвера.
Проверить можно очень быстро. Надо скопировать все файлы драйвера в любую папку апельсина. Собрать драйвер и запустить тестовый HAL файл.
Вечером буду приступать к работе над arisc.stepgen 
Проверить можно очень быстро. Надо скопировать все файлы драйвера в любую папку апельсина. Собрать драйвер и запустить тестовый HAL файл.
Код: Выделить всё
sudo comp --install arisc.c
realtime start
halcmd -f arisc.hal
Последний раз редактировалось MX_Master 09 авг 2018, 19:26, всего редактировалось 1 раз.
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Orange Pi
А у меня вопрос. Кто-нибудь использует в обычном stepgen вывод UP/DOWN и пятифазный вывод? Стоит ли их воплощать в arisc драйвере прямо сейчас? Стоит ли потом?
http://linuxcnc.org/docs/2.7/html/hal/r ... ec:stepgen
http://linuxcnc.org/docs/2.7/html/hal/r ... ec:stepgen
- donvictorio
- Мастер
- Сообщения: 2457
- Зарегистрирован: 11 окт 2012, 16:26
- Репутация: 683
- Настоящее имя: Виктор
- Откуда: Санкт-Петербург
- Контактная информация:
Re: LinuxCNC + Orange Pi
выглядит как некий костыль. делать программный драйвер в 21 веке как-то не особо эффективно. лет надцать назад, когда с драйверами были напряги это имело смысл, сейчас, имхо, не имеет.
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Orange Pi
Виктор, поясните, пожалуйста, на пальцах (: Из всего сказанного я смог понять, что пятифазный вывод и up/down не нужны. В arisc драйвере делать только step/dir?
- donvictorio
- Мастер
- Сообщения: 2457
- Зарегистрирован: 11 окт 2012, 16:26
- Репутация: 683
- Настоящее имя: Виктор
- Откуда: Санкт-Петербург
- Контактная информация:
Re: LinuxCNC + Orange Pi
пяти(4,3,2)-фазный выход нужен для того, чтобы можно было организовать софтовый драйвер, подцепив к пинам микруху типа uln2003 (набор ключей) и рулить шаговым. или даже пинами включать-выключать мосты, которые коммутируют обмотки шагового. было популярно в нулевых, когда на помойке можно было найти комплектуху для станка.
по большому счету, lcnc это чпу для огромной массы кинематик. возможно для какойто из них и нужен фазовый выход, но если сосредоточиться на традиционных роутерах 3-5 координат, то выбор управляющих сигналов сводится к аналогу, степдир и кучке проприетарных сетевых протоколов. аналогу rt не особо нужен, pwm на шпиндель можно и программно генерить, из проприетарных реализовать теоретически можно только ethercat. остается только степдир.
по большому счету, lcnc это чпу для огромной массы кинематик. возможно для какойто из них и нужен фазовый выход, но если сосредоточиться на традиционных роутерах 3-5 координат, то выбор управляющих сигналов сводится к аналогу, степдир и кучке проприетарных сетевых протоколов. аналогу rt не особо нужен, pwm на шпиндель можно и программно генерить, из проприетарных реализовать теоретически можно только ethercat. остается только степдир.
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Orange Pi
Понял. Принято.
В arisc драйвере pwmgen тоже будет. В прошивке сопроцессора для этого всё есть.donvictorio писал(а):аналогу rt не особо нужен, pwm на шпиндель можно и программно генерить
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Orange Pi
Обнаружилась небольшая нехватка функционала в прошивке сопроцессора. Насколько я понимаю, иногда stepgen'у будут попадаться задания, когда за время сервопериода надо сделать пару шагов, сменить направление и сделать ещё пару шагов.
Т.е. надо pulsgen'у выдать очередь из трёх заданий. А в конце сервопериода спросить с него кол-во сделанных импульсов по каждому из этих заданий. Так вот, никакой очереди заданий у pulsgen'а нет. Новое задание всегда останавливает текущее и кол-во импульсов сбрасывается. Вощем, надо что-то городить. То ли хитрую очередь заданий для модуля pulsgen, то ли мини модуль stepgen, который будет всегда знать позицию в шагах.
Код: Выделить всё
| сервопериод |
step __/\__/\__/\__/\_____/\__/\__/\__/\__/\__
dir __________________/``````````````````````- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: LinuxCNC + Orange Pi
я уже как-то советовал изучить принцип взаимодействия LinuxCNC с простыми аппаратными шагогенераторами - например Pluto-P. Там всё достаточно примитивно.MX_Master писал(а):Насколько я понимаю, иногда stepgen'у будут попадаться задания, когда за время сервопериода надо сделать пару шагов, сменить направление и сделать ещё пару шагов.
Чудес не бывает. Бывают фокусы.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: LinuxCNC + Orange Pi
В пределах одного сервоцикла? А как эти задания будут синхронизироваться с остальными компонентами системы? И кто сможет давать ему такие задания?MX_Master писал(а):Т.е. надо pulsgen'у выдать очередь из трёх заданий.
И правильно делает, иначе как прекратить генерацию 4378957647645 импульсов при нажатии кнопки E-STOP или Пауза?..MX_Master писал(а):Новое задание всегда останавливает текущее и кол-во импульсов сбрасывается.
Подобные проблемы решаются очень просто - достаточно не плодить лишних сущностей.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Orange Pi
Сергей Саныч писал(а):Там всё достаточно примитивно.
Так и поступим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
- antoxa-kylibin
- Мастер
- Сообщения: 786
- Зарегистрирован: 22 июн 2017, 13:18
- Репутация: 107
- Настоящее имя: Антон
- Откуда: г. Воронеж
- Контактная информация:
Re: LinuxCNC + Orange Pi
Долго выбирал какую плату заказать, в итоге решил 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....
В комплект взял такой адаптер https://ru.aliexpress.com/item/40Pin-GP ... 33edpdOSgU
Теперь как приедет буду пробовать LinuxCNC на данной платформе, надеюсь текущие вопросы и недоделки со временем будут уже устранены. У меня есть еще 3 энкодера 600имп/об., есть мысли испытать их в работе. Вообще хочется реализовать вариант управления станком с обратной связью, где привода будут шаговые двигатели, датчики обратной связи вышеупомянутые энкодеры, а PID управление как раз будет в самой Orange Pi + LinuxCNC реализовано....Так что, буду задавать много вопросов, т.к. я только начинаю осваивать LinuxCNC....
-
neller
- Новичок
- Сообщения: 24
- Зарегистрирован: 17 апр 2018, 14:14
- Репутация: 5
- Настоящее имя: Alexey
- Контактная информация:
Re: LinuxCNC + Orange Pi
Интересно, а возможно ли будет развернуть разрабатываемую прошивку на вышеупомянутой плате) Там и оперативы 2 гб и OpenGL заявлен, или в OPiPC тоже GL работает?
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Orange Pi
Там стоит H3, прошивка подойдёт сразу. OpenGL драйвер должен быть в нашей сборке на mainline ядре, а не в стандартных образах от производителя или Armbian.
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Orange Pi
Запилил, наконец, первую рабочую версию arisc.stepgen'a. Утомительное занятие. Прям гора с плеч. Дальше будут тесты, тюнинг, тесты, тюнинг, .. Затем буду сравнивать на анализаторе вывод arisc.stepgen'a и обычного stepgen'a. Все осциллограммы покажу. Затем опять тюнинг, тесты, .. И в какой-то момент драйвер генератора будет готов
Кстати, RT функции arisc.stepgen.capture-position() и arisc.stepgen.update-freq() работают даже быстрее чем функции драйвера arisc.gpio. Так что их можно запускать не только в сервоцикле, но даже, кому надо - в основном цикле.
Кстати, RT функции arisc.stepgen.capture-position() и arisc.stepgen.update-freq() работают даже быстрее чем функции драйвера arisc.gpio. Так что их можно запускать не только в сервоцикле, но даже, кому надо - в основном цикле.
Надеюсь, с драйверами arisc.encoder и arisc.pwmgen будет попроще..
- Maxekb77
- Мастер
- Сообщения: 1658
- Зарегистрирован: 05 окт 2013, 00:04
- Репутация: 285
- Настоящее имя: Максим
- Откуда: Екатеринбург
- Контактная информация:
Re: LinuxCNC + Orange Pi
MX_Master, Предлагаешь попробовать ?
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Orange Pi
Нет, даже не думал предлагать. Как только я проведу достаточно тестов на пригодность и безопасность, выложу инструкции для тестирования. Всё-таки, тестить вывод на анализаторе и на станке - это разные вещиMaxekb77 писал(а):MX_Master, Предлагаешь попробовать ?
- Maxekb77
- Мастер
- Сообщения: 1658
- Зарегистрирован: 05 окт 2013, 00:04
- Репутация: 285
- Настоящее имя: Максим
- Откуда: Екатеринбург
- Контактная информация:
Re: LinuxCNC + Orange Pi
MX_Master, у меня без станка пока - так тестирую и пишу кое чего еще
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Orange Pi
Базару нет. Но разбираться придётся самостоятельно. На данный проверочный момент все пины драйвера называются и функционируют слегка иначе, чем в оригинале. Некоторые пины отсутствуют. Некоторые будут модифицированы в ближайшие дни.Maxekb77 писал(а):MX_Master, у меня без станка пока - так тестирую и пишу кое чего еще