LinuxCNC + Orange Pi (allwincnc)

Контроллеры, драйверы, датчики, управляющие устройства.
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение xenon-alien »

arisc_c.jpg (1723 просмотра) <a class='original' href='./download/file.php?id=204404&sid=a52ab85adda41f5a8def457f88e031dd&mode=view' target=_blank>Загрузить оригинал (141.03 КБ)</a>
MX_Master писал(а): 07 авг 2022, 06:01 Любой RT компонент собирается и устанавливается командой

sudo halcompile --install Исходник

Все необходимые заголовки (.h) должны лежать рядом с исходником.
Ты меня прости, но я в этом не разбираюсь... (я и сам ЛЦНЦ с трудом осваиваю...)
Я и с терминалом работаю только с копи-пастом и по инструкции. (если что натворил, не знаю как вернуть, или исправить)
Т.е. захожу в папку драйвера с arisc.c и там запускаю
sudo halcompile --install arisc.c
?
А что за заголовки такие (.h)???

Мне бы просто знать команду, как заменить старый arisc.c на исправленный...
Хоть мы и ±ровесники, но тут меня нужно брать за ручку и всё по порядку показывать... :problem:
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение MX_Master »

- В терминале открыть папку, где эти два файла лежат (cd /папка/где/файлы/лежат).
- Затем собрать и установить драйвер (sudo halcompile --install главный_файл)
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение xenon-alien »

MX_Master писал(а): - В терминале открыть папку, где эти два файла лежат (cd /папка/где/файлы/лежат).
xenon-alien писал(а): Т.е. захожу в папку драйвера с arisc.c и там запускаю
sudo halcompile --install arisc.c
Т.е. я просто через файловый менеджер туда зайду и там открою терминал (мне так проще)
И потом
MX_Master писал(а): - Затем собрать и установить драйвер (sudo halcompile --install главный_файл)
Ввожу эту команду
sudo halcompile --install arisc.c
Верно?
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение MX_Master »

А попробуй ;)
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение xenon-alien »

MX_Master писал(а): А попробуй
Попробовал...
Стало ещё хуже, нежели было... :cry:
Теперь показания пляшут не кратно 25, а в разброс от 150 до 400 при оборотах 250 об/мин. И готовность шпинделя постоянно моргает, хотя обороты держит стабильно. (1.5 коеф точности, а ставят разброс в пределах 1.01 - 1% от заданных оборотов)
У меня видимо стоял из первых версий поддержки энкодера в ариск драйвере. вот к стати он но не факт.
Там не было значений с 1000000000 (~950 строке и ниже, может просто не заметил)
Я то папку "инсталлер" скопировал предыдущую, но там уже тоже есть значение 1000000000.
Я и нули обратно дописал, но увы, всё то же самое...
Компиллировал и с сохранённой папки(инсталлер), но не вернулось на место...
Получается зря жаловался...
А как теперь вернуть - непонятно... :think:
Есть такая возможность?

Нажал обратный ход -М4 и показывает вместо 250 (100-400 разброса) оборотов 25... (17-27)
Это как? :wtf:
Такого в предыдущей версии драйвера не было.
Ну всё... я полностью раскис... :cry:
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение xenon-alien »

xenon-alien писал(а): А как теперь вернуть - непонятно...
Есть такая возможность?
А в hal можно это как-то описать, округлить и вывести?
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение MX_Master »

Вполне. Компонентов для конвертации очень много
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение xenon-alien »

MX_Master писал(а): 10 авг 2022, 22:14 Вполне. Компонентов для конвертации очень много
Только ещё бы знать как это сделать... :think:
Подскажешь?
С такими показателями нарезание резьбы просто не светит на токарнике.
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение xenon-alien »

Lathe_005-encoder.png (1582 просмотра) <a class='original' href='./download/file.php?id=204509&sid=a52ab85adda41f5a8def457f88e031dd&mode=view' target=_blank>Загрузить оригинал (36.79 КБ)</a>
Lathe_006-encoder.png (1579 просмотров) <a class='original' href='./download/file.php?id=204510&sid=a52ab85adda41f5a8def457f88e031dd&mode=view' target=_blank>Загрузить оригинал (80.36 КБ)</a>
MX_Master писал(а): 06 авг 2022, 19:34
xenon-alien писал(а): Можно ли это как-то исправить?
Можно, я разрешаю. Наводка - https://github.com/allwincnc/linuxcnc/b ... #L955-L981

ЗЫ поддержка проекта - всё
А что нужно в твоем коде поправить, что бы считало обороты верно?
А то я сегодня опять сел за это дело и ничего не понимаю...
Задал ему 10 оборотов, так он умудряется даже 800 оборотов каким-то чудесным образом посчитать.
А предыдущий код не знаю, как вернуть, что бы в пределах 25 было, как раньше. (хотя предыдущую папку installer сберег, но ощущение, что не компилируется, хотя проходит нормально)
Подскажи пожалуйста, а то я в программировании не бум-бум.
Если нужно цифры переписать, то не вопрос, а если нужно менять алгоритм расчёта, то я бессилен. (ты же сам писал в какой-то теме, что проще свой код написать, нежели в чужом разбираться, а теперь представь, что человек даже программировать не умеет...)

P.S.: Всё-таки меняется при компиляции значение.
Только так и не понял, как всё применяется, нужно ли перегружать систему...
Ну или нужно подсобрать другой энкодер с меньшим количеством импульсов...
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение xenon-alien »

Что-то получилось...
Короче тут свои нюансы с энкодером и помехами преобр. уровней. Просто капец... (называется прислушался к совету...)
MX_Master писал(а): 03 авг 2022, 05:47 Я не эксперт, но энкодеру минимум 4.8V надо. Сигнал с Z метки можно и мультиметром проверить. И ещё, некоторые пины на гребёнке апельсина могут работать не так, как положено. Можно сменить пин для Z метки.
Опять 25. Имею ввиду вернулось, при этом энкодер 5в питается от апельсины 3.3в и напрямую на входы.
Прописал на всякий случай для входов энкодера "pull-up".
5-24в энкодер не запустился от 3.3в (в котором меньше импульсов на оборот)

Но всё-таки было бы хорошо довести до ума... Только знать бы как... :think:
xenon-alien писал(а): А что нужно в твоем коде поправить, что бы считало обороты верно?
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение MX_Master »

Во время пересборки драйвера, LinuxCNC должна быть выключена ;)
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение xenon-alien »

MX_Master писал(а): 14 авг 2022, 01:43 Во время пересборки драйвера, LinuxCNC должна быть выключена ;)
Так и было.
Сейчас опять попробую с нулями поиграться, а то если помехи повлияли, то я результата так и не увидел.
А то когда я скомпилировал, то уже питался от 5в и пользовался конвертором уровней сигнала по совету.
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение xenon-alien »

xenon-alien писал(а): 14 авг 2022, 10:01
MX_Master писал(а): 14 авг 2022, 01:43 Во время пересборки драйвера, LinuxCNC должна быть выключена ;)
Так и было.
Сейчас опять попробую с нулями поиграться, а то если помехи повлияли, то я результата так и не увидел.
А то когда я скомпилировал, то уже питался от 5в и пользовался конвертором уровней сигнала по совету.
Уменьшения нулей 1 000 000 000 на 1 000, ни на что не повлияло.
Так же показания пляшут в пределах 25 оборотов... :think:

У меня больше идей нет, что править в этой части кода и что за что отвечает...

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

if ( eh.reset ) {
            eh.vel = 0;
            eh.vel_rpm = 0;
            ep.no_counts_time = 0;
        } else {
            ep.no_counts_time += period;
            if ( ep.counts != eh.counts) {
                if (eh.period_ticks < 4000) { // fall back to frequency count if period is low
                    eh.vel = (((hal_float_t)eh.counts) - ((hal_float_t)ep.counts))
                            / eh.pos_scale
                            / ((hal_float_t)ep.no_counts_time)
                            * 1000000000;
                } else { // compute velocity from period
                    eh.vel = (ARISC_CPU_FREQ / ((hal_float_t)eh.period_ticks))
                            / eh.pos_scale;
                }
                eh.vel_rpm = eh.vel * 60;
                ep.no_counts_time = 0;
		ep.counts = eh.counts;
            } else {
                if ( ep.no_counts_time > 1000000000 ) {
                    eh.vel = 0;
                    eh.vel_rpm = 0;
                    ep.no_counts_time = 0;
                }
            }
        }
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение MX_Master »

Там, кстати, один паренёк эту часть правил, не я. Ему тоже нужны были энкодеры. Он изучил, внёс правки, я, просто, добавил. Не тестировал.

Могу сказать только одно. В моём контроллере все эти моменты учтены, и счётчики там аппаратные. Никак руки не дойдут до конца проект доделать.
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение xenon-alien »

MX_Master писал(а): 14 авг 2022, 12:45 Там, кстати, один паренёк эту часть правил, не я. Ему тоже нужны были энкодеры. Он изучил, внёс правки, я, просто, добавил. Не тестировал.

Могу сказать только одно. В моём контроллере все эти моменты учтены, и счётчики там аппаратные. Никак руки не дойдут до конца проект доделать.
Когда речь была об энкодерах, то к сожалению мне было не до этого... Хотя уже всё прикупил для тестов и оставалось подсобрать.
Собралось всё в итоге несколько месяцев назад, когда начал задавать вопросы. (а проект упрятался в архив наверное ещё год назад)
На сколько я вижу, то для линеек энкодерная часть работает нормально.
Если энкодер у меня не глючит, то по идее осталось разобраться с выводом скорости в самом драйвере, так как слишком много нулей нужно добавлять для сравнение с заданными оборотами. Может быть из-за этого и выводится кратно 25.
Разбирался хотя бы чуток в этом всём "аппаратном" и "программном" и взаимосвяси и алгоритмы, то поправил бы и сам. А так приходится всё спрашивать.

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

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение MX_Master »

xenon-alien писал(а): А тот, кто правил этот код ещё доступен для общения?
Я бы попросил его посмотреть эту часть, раз уже правил её, а я бы проверил, если согласится.
https://forum.linuxcnc.org/18-computer/ ... 170#211534
Аватара пользователя
evgenuel
Новичок
Сообщения: 12
Зарегистрирован: 19 июл 2021, 20:51
Репутация: 1
Настоящее имя: Evgeniy
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение evgenuel »

Собрал на версии Armbian_21.02.3 https://imola.armbian.com/archive/orang ... top.img.xz
Русский язык включать не советую, есть глюк с раскладками клавиатуры, ну а если очень хочется задайте пароль из цифр. При работе инсталлятора на вопрос об обновлении ответил нет, ибо это был шестой образ, который я пробовал залить.
К плате планирую подключать три шаговика, шим канал, инкрементальный энкодер и преобразователь напряжение-частота(на вход энкодера).
Управлять станком буду по linuxcncrsh, то есть без графики вообще.

Есть ли конфиги для теста производительности ARISC процессора?

На видео микрошаг 32й. Драйвер с интерполяцией в 256 микрошаг.
Лёха Технарь
Новичок
Сообщения: 10
Зарегистрирован: 23 авг 2022, 17:44
Репутация: 2
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение Лёха Технарь »

Здарова народ, протестировал работу энкодера 1800 линий, подключил через конвертер уровней, всё работает отлично.
https://youtu.be/-VgOhLl4kUc
Последний раз редактировалось Лёха Технарь 23 авг 2022, 23:40, всего редактировалось 1 раз.
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4506
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 920
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение xenon-alien »

Лёха Технарь писал(а): Здарова народ, протестировал работу энкодера 1800 линий, подключил через конвертер уровней, всё работает отлично.
Приветствуем на форуме!
Что за энкодер, какой конвертер уровней? Помех нет?
А то у меня он чего-то не то делает... Или нужно пересобрать полностью весь проект, так как я только драйвер менял...
Лёха Технарь
Новичок
Сообщения: 10
Зарегистрирован: 23 авг 2022, 17:44
Репутация: 2
Контактная информация:

Re: LinuxCNC + Orange Pi (allwincnc)

Сообщение Лёха Технарь »

xenon-alien писал(а): 23 авг 2022, 18:46 Что за энкодер, какой конвертер уровней? Помех нет?
А то у меня он чего-то не то делает... Или нужно пересобрать полностью весь проект, так как я только драйвер менял...
Энкодер OMRON E6B2-CWZ6C 1800 линий, 5-24в
Прикол в том, что у меня какая то ошибка была в HAL файле и я как раз вашу конфигурацию и скопировал, что бы по быстрому протестировать, убедился что все выходы энкодера (ABZ) видит. Конвертер уровней самый дешманский 5 /3.3, работает в обе стороны.
Такой: https://aliexpress.ru/item/100500162174 ... 6846642753
Вообще собрано было на соплях и открыто всем наводкам, но на удивление помех не поймал, судя по видео.
Ответить

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