LinuxCNC + Orange Pi (allwincnc)

Контроллеры, драйверы, датчики, управляющие устройства.
Аватара пользователя
antoxa-kylibin
Мастер
Сообщения: 786
Зарегистрирован: 22 июн 2017, 13:18
Репутация: 107
Настоящее имя: Антон
Откуда: г. Воронеж
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение antoxa-kylibin »

Я смотрю здесь серьезно занялись вопросом посадить lcnc на Orange PI. Как думаете, получится добиться хороших показателей latency? Я так понял заморочки с задействованием сопроцессора и допиливание видеодрайвера для GPU это все как раз для того чтобы улучшить показатели latency тестов? Еще интересует такой вопрос - можно ли будет прикрутить энкодеры к апельсинке? К обычным компам народ прикручивал, правда 2 LPT порта использовались, ну и скорости были не космические, но для работы вполне достаточные. Если удастся такое провернуть с Orange PI, то это будет супер!
Аватара пользователя
MX_Master
Мастер
Сообщения: 7476
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3099
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Чтобы подключить энкодеры или линейки нужна развязка. Пол часа с паяльником в руке или надо поискать готовые модули. Подключить можно уже сейчас, но входящий сигнал должен быть не чаще 10-20 КГц (на данный момент). Как сделаем подсчёт входящих импульсов с помощью сопроцессора, максимальная входная частота увеличиться на порядок.

Я не уверен, что Latency и Base Period кардинально изменятся по результату наших махинаций. Но некоторые качественные и количественные метрики однозначно вырастут.
Аватара пользователя
antoxa-kylibin
Мастер
Сообщения: 786
Зарегистрирован: 22 июн 2017, 13:18
Репутация: 107
Настоящее имя: Антон
Откуда: г. Воронеж
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение antoxa-kylibin »

Ну 10-20 кГц в принципе и большинство обычных компов выдает, если не выжимать по максимуму из них. Если взять в расчет, что 1 импульс энкодера будет соответсвовать 0,01мм, то получается при частоте импульсов 10кГц скорость перемещения будет 6000мм/мин, при 20кГц - 12000мм/мин, что для большинства не промышленных станков вполне достаточно. Тут скорее всего шаговики еще проблема будет разогнать до таких скоростей, чтобы не потерять точность перемещения. Если же получится еще и сопроцессор подключить к подсчетам импульсов, то тогда вообще будет огонь. Тогда в этом случае уже нужно будет рассматривать BDLC моторы (на алиэкспрессе они не сильно дороже от шаговиков при эквивалентной мощности) и драйвера для управления этими моторами (там же на алиэкспрессе есть). Такая связка получается не сильно дороже от шаговых приводов. Цена в принципе отличается на стоимость энкодеров. Но зато BLDC моторы имеют обороты 3-4 тыс. и момент наоборот увеличивают при увеличении оборотов. Т.е. динамика на таких приводах должна быть значительно лучше. Правда там есть такой момент, что драйвера для BLDC приводов не по STEP/DIR управляются, а по 0-10в, либо шим. Возможно нужны будут какие-то конверторы из PWM сигнала в 0-10в. Это уже драйвера нужно смотреть. Но идея такая, что энкодеры связаны с подвижными осями станка, а привода с драйверами (в драйверах нет обратной связи). Петля управления PID получается завязана на сам комп (программно настраивается через hal) и управление делается по контролю скорости, а не момента. Только мне не совсем понятно, как при таких больших значениях latency, апельсинка способна переваривать таки скорости??? Хватит ли пинов порта у апельсинки для реализации такой схемы 3-х осевого станка? Опторазвязку делать нужно из-за того что у GPIO 3,3V питание или в целях не спалить плату?
Аватара пользователя
MX_Master
Мастер
Сообщения: 7476
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3099
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

antoxa-kylibin писал(а):Опторазвязку делать нужно из-за того что у GPIO 3,3V питание или в целях не спалить плату?
и то, и другое, и всё вместе
Аватара пользователя
antoxa-kylibin
Мастер
Сообщения: 786
Зарегистрирован: 22 июн 2017, 13:18
Репутация: 107
Настоящее имя: Антон
Откуда: г. Воронеж
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение antoxa-kylibin »

antoxa-kylibin писал(а):Петля управления PID получается завязана на сам комп (программно настраивается через hal) и управление делается по контролю скорости, а не момента. Только мне не совсем понятно, как при таких больших значениях latency, апельсинка способна переваривать таки скорости??? Хватит ли пинов порта у апельсинки для реализации такой схемы 3-х осевого станка?
Аватара пользователя
MX_Master
Мастер
Сообщения: 7476
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3099
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

переварить способна.
пинов хватит.
svb
Мастер
Сообщения: 312
Зарегистрирован: 10 апр 2018, 11:31
Репутация: 82
Настоящее имя: Сергей
Откуда: Нижний Новгород
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение svb »

В первом приближении система автосборки готова.
Итак:
1. запускаем скрипт так :

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

./compile.sh sunxi BOARD="your_board"
где sunxi - это имя нашей системы. При этом используется файл конфигурации config-sunxi.conf
Все основные параметры прописаны в нем.
BOARD="your_board"
Тут в кавычках указываем имя нашей платы.
Для Orange Pi PC вся команда будет выглядет так:

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

./compile.sh sunxi BOARD="orangepipc"
2. Далее......
папка userpatches содержит 2 интересных файла:
linux-sunxi-next.config - это файл конфигурации ядра.
lib.config - конфигурация всей системы сборки. Если надо добавить пакеты из основного репозитория на этапе сборки - это сюда (смотрим внутрь файлика :) ). Тут же указывается и версия ядра (если мы не хотим чтобы оно постоянно обновлялось)

Ну вот как-то так в первом приближении.

Да, важное:
По умолчанию пароль рута == имя_платы
при первом входе требуется сменить.
пароль пользователя cnc - cnc :)

Сборка основана на Debian Jessie.
Тонкий тюнинг загрузки не проводился (У Михаила в /boot/boot.cmd присутствуют какие-то доп настройки - я их не использовал).

А теперь слайды :)
Вложения
Образ MX_Master, время теста ~ 1 час (3040 просмотров) <a class='original' href='./download/file.php?id=139196&sid=c9ed521d13cf34a7c77b3d9d3a7cbc4e&mode=view' target=_blank>Загрузить оригинал (2.39 МБ)</a>
Образ MX_Master, время теста ~ 1 час
Автоматическая сборка, время теста 10 минут.<br />Частота CPU 480MHz (3040 просмотров) <a class='original' href='./download/file.php?id=139197&sid=c9ed521d13cf34a7c77b3d9d3a7cbc4e&mode=view' target=_blank>Загрузить оригинал (2.1 МБ)</a>
Автоматическая сборка, время теста 10 минут.
Частота CPU 480MHz
Автоматическая сборка, время теста 10 минут.<br />(запущен заново после смены частоты проца)<br />Частота CPU 1300MHz (3040 просмотров) <a class='original' href='./download/file.php?id=139198&sid=c9ed521d13cf34a7c77b3d9d3a7cbc4e&mode=view' target=_blank>Загрузить оригинал (1.8 МБ)</a>
Автоматическая сборка, время теста 10 минут.
(запущен заново после смены частоты проца)
Частота CPU 1300MHz
Платы: OPI-PC(умерла), OPI-PC2
Аватара пользователя
MX_Master
Мастер
Сообщения: 7476
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3099
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Молодец, хорошая работа.

Да, это, кстати, важно, чтоб частота проца была постоянной. И лучше, чтобы она была повыше. Скачки latency появляются как раз во время смены частоты проца. Есть несколько способов для фиксации частоты проца на максимуме.

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

echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
или

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

sudo cpufreq-set -g performance -r
или прописать в файле /etc/default/cpufrequtils

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

GOVERNOR=performance
Есть и другие способы, например, махнуть минимальную частоту во всех настройках на максимум (в зависимости от платы). Но управление профилем производительности, на мой взгляд, лучше. Я думаю, надо прописать какой-ньть из вариантов в автозагрузку при старте системы.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7476
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3099
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Предлагаю дополнительно обсудить сетевые настройки (dhcp/static, IP, DNS) и, возможно, русский язык в системе.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение Serg »

MX_Master писал(а):Предлагаю дополнительно обсудить сетевые настройки (dhcp/static, IP, DNS)
dhcp - по нему и всё остальное получит.
А если dhcp в сети нет, то и самой сети скорее всего нет. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
svb
Мастер
Сообщения: 312
Зарегистрирован: 10 апр 2018, 11:31
Репутация: 82
Настоящее имя: Сергей
Откуда: Нижний Новгород
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение svb »

MX_Master писал(а):Предлагаю дополнительно обсудить сетевые настройки (dhcp/static, IP, DNS) и, возможно, русский язык в системе.
Сеть DHCP, над русским сейчас работаю :)
Платы: OPI-PC(умерла), OPI-PC2
svb
Мастер
Сообщения: 312
Зарегистрирован: 10 апр 2018, 11:31
Репутация: 82
Настоящее имя: Сергей
Откуда: Нижний Новгород
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение svb »

MX_Master писал(а):Как сделаем подсчёт входящих импульсов с помощью сопроцессора
А pps-gpio - это не оно?
Платы: OPI-PC(умерла), OPI-PC2
Аватара пользователя
MX_Master
Мастер
Сообщения: 7476
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3099
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

svb писал(а):
MX_Master писал(а):Как сделаем подсчёт входящих импульсов с помощью сопроцессора
А pps-gpio - это не оно?
Не уверен. Но, в любом случае, считать что-то очень быстроe с обычных пинов из под Linux - плохая идея.
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение going »

MX_Master писал(а):Предлагаю дополнительно обсудить сетевые настройки (dhcp/static, IP, DNS) и, возможно, русский язык в системе.
Настройки сети -> wicked в помощь. sudo wicked --help
Добавим параметр DEST_LANG="ru_RU.UTF-8" в
svb писал(а):файл конфигурации config-sunxi.conf

и собранный образ будет иметь родную локаль.
svb писал(а):В первом приближении система автосборки готова.
Замечательно.
У меня всё то же самое, только оформил в виде скрипта с русским переводом и всеми возможными параметрами.
После отладки и проверки выложу.
Платы: BPI-M3, BPI-A64, OPI-PC2
svb
Мастер
Сообщения: 312
Зарегистрирован: 10 апр 2018, 11:31
Репутация: 82
Настоящее имя: Сергей
Откуда: Нижний Новгород
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение svb »

going писал(а):
svb писал(а):В первом приближении система автосборки готова.
Замечательно.
У меня всё то же самое, только оформил в виде скрипта с русским переводом и всеми возможными параметрами.
После отладки и проверки выложу.
Возник такой вопрос: у нас команда или каждый сам за себя?
Просто мне кажется, что нескольким членам команды делать одно и то же нерационально.
У меня нет программерских скилов, програмить я не умею. Но с построением системы автосборки справиться в состоянии.
У кого есть програмерские скилы - может лучше их использовать на полную?

ЗЫ. Это просто вопрос в воздух, не обращайте внимания :)
Платы: OPI-PC(умерла), OPI-PC2
Аватара пользователя
MX_Master
Мастер
Сообщения: 7476
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3099
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

svb писал(а):Возник такой вопрос: у нас команда или каждый сам за себя?
Сергей, стессна, каждый сам за себя (: Мы, русско-язычно-говоряще-думающие, так устроены. Но это нам не мешает время от времени собираться вместе и мутить что-то чрезвычайно полезное для всего человечества :hehehe:

Если у кого-то есть какая-то очень полезная задумка для текущего проекта, и вы не можете воплотить её самостоятельно, выносите её на обсуждение. Ну и никто никому не запрещает вести собственную версию той или иной части проекта. Уж лучше два-три разных варианта, чем ни одного :) Первым таким примером является сам Machinekit, который воплотил в жизнь иное виденье развития LinuxCNC. А конечные пользователи выбирают для себя то, что им больше нравится.
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение going »

svb писал(а):у нас команда или каждый сам за себя?
Просто мы одно и то же начали делать ещё до того как стали командой.
Оформление некоторых рутинных действий в виде скриптов - это привычка.
Бороться с ней выше моих сил. Я просто доделываю то что начал месяц назад.
Сейчас, кстати, могу у Вас подсматривать и оформлять в виде скрипта.
Настройка системы автосборки и оформление некоторых таких действий в виде скрипта
это несколько разные задачи. В этом плане мы скорее дополним друг друга.
Надеюсь на понимание.
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение going »

MX_Master писал(а):мутить что-то чрезвычайно полезное для всего человечества :hehehe:
Зачёт
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение going »

Кстати о тестах. В Debian Jessie имеется ли готовый пакет с утилитами "rt-tests"? ?
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
MX_Master
Мастер
Сообщения: 7476
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3099
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

going писал(а):Кстати о тестах. В Debian Jessie имеется ли готовый пакет с утилитами "rt-tests"? ?
Я всегда тянуть тесты с их репы и собирал, благо собирается всё за 6 секунд.
rt-tests (для просмотра содержимого нажмите на ссылку)

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

    git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
    cd rt-tests
    git checkout stable/v1.0
    make all
Ответить

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