а чего там поддерживать? на входе оптики TTL и на выходе..
LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500
- antoxa-kylibin
- Мастер
- Сообщения: 786
- Зарегистрирован: 22 июн 2017, 13:18
- Репутация: 107
- Настоящее имя: Антон
- Откуда: г. Воронеж
- Контактная информация:
Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500
Инструкция это хорошо)
- MX_Master
- Мастер
- Сообщения: 7478
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3101
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500
И снова про андроид в роли системы для ЧПУ.. был сейчас в отделении местного банка, который недавно появился на Казахстанском рынке. Ну так вот, на мониторе, который показывает позиции электронной очереди стоит самый бюджетный андроид ТВ Бокс - X96. На АЛИ цена таких - до 30$. Как грицца, а почему, собсна, и нет?
Уже с десяток людей у меня спрашивали про готовую и недорогую систему ЧПУ безо всякой фигни. А мне до сих пор, было нечего ответить. LinuxCNC, к слову, не относится к лёгким для понимания системам. А советовать даже самый хороший контроллер без, собсна, простой и удобной системы ЧПУ, смысла нет.
Надо вплотную заняться этой связкой из ТВ бокса и Ethernet контроллера. Вайфай на таких боксах есть из коробки, Ethernet порт там всегда свободен.
Уже с десяток людей у меня спрашивали про готовую и недорогую систему ЧПУ безо всякой фигни. А мне до сих пор, было нечего ответить. LinuxCNC, к слову, не относится к лёгким для понимания системам. А советовать даже самый хороший контроллер без, собсна, простой и удобной системы ЧПУ, смысла нет.
Надо вплотную заняться этой связкой из ТВ бокса и Ethernet контроллера. Вайфай на таких боксах есть из коробки, Ethernet порт там всегда свободен.
-
- Мастер
- Сообщения: 1746
- Зарегистрирован: 28 авг 2018, 17:13
- Репутация: 293
- Настоящее имя: Алексей
- Контактная информация:
Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500
Идея отличная. Нужно иметь в виду что планировщик Андроид довольно таки жёстко обращается с приложениями. Поэтому сразу надо закладываться на кастомную прошивку (то есть придётся рутовать).
Если доступного рута нет, хорошего результата не выйдет.
Если доступного рута нет, хорошего результата не выйдет.
- MX_Master
- Мастер
- Сообщения: 7478
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3101
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500
Соль идеи не только в самом андроиде, а в свободе выбора железа и в мультиплатформе. Вариант с андройдом это не сама цель, это бонус для удешевления железа. Вся цепочка получается практически такая же как на настольных системах. На андройде мы точь также подымаем веб-, вебсокет- и прочие ЧПУ серверы, причём, без root'a (но с ним будет веселей). А итоговое приложение (без root прав) нам, просто, показывает веб страницы локального веб-сервера в качестве интерфейса управления. Даже если приложение закроется, работа серверов не остановится. Плюс, при таком варианте углубляться в Java кодинг приложений практически не нужно. Можно, канеш, своё приложение и не писать, открывать всё в приложении стандартного (или другого) браузера. Но вариант своего приложения с WebView смотрится чуть лучше.
- antoxa-kylibin
- Мастер
- Сообщения: 786
- Зарегистрирован: 22 июн 2017, 13:18
- Репутация: 107
- Настоящее имя: Антон
- Откуда: г. Воронеж
- Контактная информация:
Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500
Приладить nvem к linuxcnc это хорошая идея, а вот сделать из тв бокса как то не верится мне..... Не зря же они 30$ стоят.... Есть у меня Х96 коробочка, валяется в углу..... Че с ней делать хз, ибо она даже по инету нормально каналы показывать не может, какие то тормоза вечные.... Потому и валяется в углу.... Почему то яндекс станция по тому же Wi-Fi так не тормозит, видать железки то разные у эти двух коробочке.....
- antoxa-kylibin
- Мастер
- Сообщения: 786
- Зарегистрирован: 22 июн 2017, 13:18
- Репутация: 107
- Настоящее имя: Антон
- Откуда: г. Воронеж
- Контактная информация:
Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500
Михаил, ну если вы конечно затеетесь с этой темой, у меня еси че есть такая коробочка. В качестве тестировщика могу помочь)))
-
- Кандидат
- Сообщения: 51
- Зарегистрирован: 12 окт 2016, 22:24
- Репутация: 4
- Настоящее имя: Денис
- Контактная информация:
Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500
Проблема в том, что на ведроиде точно так же могут упасть и сервера, к которым ваше итоговое приложение или вебвью имеет доступ. И это бывает, я пробовал пару проектов 3дпечатных мозгов на андроиде, когда траектории генерирует в спокойном режиме недосервер, а в импульсы преобразует уже плата в принтере. Адекватной оказалась только пара клиппер+октопринт, но там сервер был в малинке на линуксе.
В принципе, если бы к вашему коду шёл нормальный конфигуратор как в голом линцнц, чтобы оператору не надо было бы писать хал и конфиги ручками, это было бы не хуже, в обёртке вебсервера...
В принципе, если бы к вашему коду шёл нормальный конфигуратор как в голом линцнц, чтобы оператору не надо было бы писать хал и конфиги ручками, это было бы не хуже, в обёртке вебсервера...
- antoxa-kylibin
- Мастер
- Сообщения: 786
- Зарегистрирован: 22 июн 2017, 13:18
- Репутация: 107
- Настоящее имя: Антон
- Откуда: г. Воронеж
- Контактная информация:
Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500
Ну да, если бы в lcnc был бы законченный gui с встроенным конфигуратором, то и не нужно изобретать ничего.... А так, на каждый пук надо искать решение в виде дописывания чего то в hal, ini и т. д. Тот же qtdragon, уже нормальный gui в принципе, ещё бы конфигурирование станка как то внедрили бы в этот gui и было бы счастье..... Но те, кто разобрался с hal, ini и др. им уже проще руками доделать конфиг.... Эта проблема походу системная, кому это надо, те не алё в linuxcnc, а кто алё тем уже это не надо....
- MX_Master
- Мастер
- Сообщения: 7478
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3101
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500
В тв боксе должен быть конфиг железа не ниже, чем у нормального смартфона. Проц 1.8ГГц, 4Гб ОЗУ, 64ГБ ПЗУ. Вот тогда со скоростью проблем практически не будет. А на приставках с медленным процем в 1,2 ГГц, 1Гб ОЗУ И 8Гб ПЗУ (сам пробовал) можно все нервы растерять, пока доберёшься до желаемого.
Недосервер должен быть настоящим сервером, который крутится под капотом андроида, т.е. в юзер зоне ядра Linux андроида, или в Linux эмуляторе, типа Termux. Ясен перец, что под чистым Linux на минипк серверы робят стабильнее, но скорость GUI в такой системе может взбесить юзера так, что он не захочет дальше с этим работать.
Конфигуратор для NVEM будет только при достаточном количестве пользователей. Пока их мало. Конфигуратор для моего контроллера будет обязательно. А новая система ЧПУ (так уж вышло, обсуждаем тут), работу которой я хочу протестировать под андроидом, будет иметь вместо конфигуратора страницу настроек в интерфейсе.
Недосервер должен быть настоящим сервером, который крутится под капотом андроида, т.е. в юзер зоне ядра Linux андроида, или в Linux эмуляторе, типа Termux. Ясен перец, что под чистым Linux на минипк серверы робят стабильнее, но скорость GUI в такой системе может взбесить юзера так, что он не захочет дальше с этим работать.
Конфигуратор для NVEM будет только при достаточном количестве пользователей. Пока их мало. Конфигуратор для моего контроллера будет обязательно. А новая система ЧПУ (так уж вышло, обсуждаем тут), работу которой я хочу протестировать под андроидом, будет иметь вместо конфигуратора страницу настроек в интерфейсе.
- Prav
- Мастер
- Сообщения: 827
- Зарегистрирован: 14 июл 2015, 05:10
- Репутация: 138
- Настоящее имя: Петр Раввинский
- Откуда: Москва
- Контактная информация:
Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500
Так китайцы их миллионами на весь мир производят, вот и цена поэтому низкая.antoxa-kylibin писал(а): ↑ Не зря же они 30$ стоят....
Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500
Я думаю, в составе общих слов можно добавить фразу о разнице в подходе езернет и лпт, мол де по лпт сигнал передается "как есть", а по езернет по протоколу, например, tcp (судя по картинке с роутером), каковой обеспечивает на уровне алгоритма, стандарта и пр. контроль целостности доставки пакетов, что имеет большое значение в смысле пропуска шагов.
Для меня прикладной вопрос - я размышляю над заменой имеющегося контроллера (6 моторов - это по мне). Но опять провода... Гипотеза - вместо обычного lan кабеля сомнительной гибкости использовать уже проложенные кабели (распаяв нужным образом). Сам контроллер разместить на портале станка и уже от него короткими проводами к исполнительным элементам.
НИчего магического в попарной закрутке, актуальной на момент изобретения в докопьютерной эпохе, с учетом особенностей протокола tcp, я не вижу - если ошибаюсь, пожалуйста поправьте.
- MX_Master
- Мастер
- Сообщения: 7478
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3101
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500
Одна малюсенькая поправка - там нет TCP/UDP. Свой простой протокол на Ethernet уровне 2.
- MX_Master
- Мастер
- Сообщения: 7478
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3101
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500
У меня есть вариант протокола, при котором каждый пакет проверяется даже на подлинность. Целостность - это на порядок легче. Но я эти проверки пока в сторону отложил. При прямом подключении к ПК ваще ничего не теряется и не бьётся. Но если кому-то будет нужно позарез, включим все проверки
Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500
Это, как правило, в теории. В моем гипотетическом случае кабель от компа к плате, которая на портале (будет) - это 7.5 метров. С вытекающими наводками и пр. Лучше предусмотреть "избыточность" при передаче сигналов.
- MX_Master
- Мастер
- Сообщения: 7478
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3101
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500
Одна галочка в настройке проекта и целостность будет проверяться аппаратно. Я ж грю, всё в этом плане уже написано, придумано и сделано.
- MX_Master
- Мастер
- Сообщения: 7478
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3101
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500
Проект открытого софта для NVEM потихоньку продвигается, но есть свои трудности - https://forum.linuxcnc.org/18-computer/ ... 310#249560. Автору проекта я подсказал, куда двигаться, будем следить за развитием проекта.
- MX_Master
- Мастер
- Сообщения: 7478
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3101
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500
Автор открытого проекта немного притормозил эксперимент с высокоскоростным выводом шагов. Задача непростая, сам проходил. Пожелаем дальнейших успехов и терпения.MX_Master писал(а): ↑14 авг 2022, 21:46 Проект открытого софта для NVEM потихоньку продвигается, но есть свои трудности - https://forum.linuxcnc.org/18-computer/ ... 310#249560. Автору проекта я подсказал, куда двигаться, будем следить за развитием проекта.
А я, тем временем, добавил в прошивку программные энкодерные счётчики. Пока что опрос ведётся на частоте 100КГц. Код счётчика довольно простой. Если кто-то желает подчерпнуть что-то для себя или улучшить мой вариант, милости просим
Код: Выделить всё
volatile uint32_t encoder_states[4] = {0b01, 0b11, 0b00, 0b10};
void encoder_main_loop() {
static uint32_t state, c;
for ( c = ENCODER_CH_CNT; c--; ) {
if ( !encoder[c].en ) continue;
if ( encoder[c].find_z ) {
if ( (encoder[c].Z_port->IDR & encoder[c].Z_pin_msk) ) {
encoder[c].find_z = 0;
encoder[c].pos = 0;
}
}
state = (encoder[c].A_port->IDR & encoder[c].A_pin_msk) ? 0b10 : 0x00;
state |= (encoder[c].B_port->IDR & encoder[c].B_pin_msk) ? 0b01 : 0x00;
if ( state == encoder[c].state ) continue;
encoder[c].pos += encoder_states[encoder[c].state] == state ? 1 : -1;
encoder[c].state = state;
}
}
Последний раз редактировалось MX_Master 04 сен 2022, 17:14, всего редактировалось 1 раз.
- wldev
- Мастер
- Сообщения: 1641
- Зарегистрирован: 24 янв 2012, 16:04
- Репутация: 510
- Настоящее имя: Сергей Бочаров
- Откуда: Новосибирск
- Контактная информация:
Re: LinuxCNC + Ethernet контроллеры NVEM/EC300/EC500
Код: Выделить всё
void encoder_main_loop() {
static uint32_t stateA, stateB, c;
for ( c = ENCODER_CH_CNT; c--; ) {
stateA=encoder[c].A_port->IDR & encoder[c].A_pin_msk;
stateB=encoder[c].B_port->IDR & encoder[c].B_pin_msk;
if(stateA!=encoder[c].stateA
&&stateB!=encoder[c].stateB) //если оба канала изменились то значит не успели
{
//Error
}
if(encoder[c].stateA!=stateA){ //считаем фронт A
encoder[c].stateA=stateA;
if(satateA){
encoder[c].pos + = stateB ? -1:1;
}else{
encoder[c].pos + = stateB ? 1:-1;
}
}else if(encoder[c].stateB!=stateB){ //считаем фронт B
encoder[c].stateB=stateB;
if(satateB){
encoder[c].pos + = stateA ? 1:-1;
}else{
encoder[c].pos + = stateA ? -1:1;
}
}
}
}
Код: Выделить всё
if ( state == encoder[c].state ) continue; //дальше пройдём только если неравно
encoder[c].pos += encoder_states[encoder[c].state] == state ? 1 : -1; // и здесь всегда будет только -1?
encoder[c].state = state;