roboforum.ru

Технический форум по робототехнике.

Датчик касания оптический, триангуляция

Обсуждение технологии печати на 3D принтерах. Самостоятельное изготовление и приобретение. RepRap и его последователи.

Re: Датчик касания оптический, триангуляция

Сообщение KomX » 22 июл 2016, 22:49

Я за черное и говорю, - отличная повторяемость (на интервале 34-39 относительных единиц практически "след в след").
Простите, но я не хотел бы попусту марать страницы форума...
Я просил максимальные ошибки для фиксированной мощности лазера на различных поверхностях, а Вы мне "о своём, о женском" - надо регулировать лазер. Хотите регулировать? Ради Бога, - регулируйте. Правда, я не понимаю как Вы этой регулировкой нивелируете огрехи поверхности в поле зрения сенсора и как из относительных замеров получите физическую привязку. Хотите триангуляцию, - помогайте ответами по существу... И уступите на пару-тройку постов броневик следующему оратору, взгляд которого еще не замылился от бессонных ночей.

Добавлено спустя 2 минуты 2 секунды:
И этот вопрос остается в силе:
KomX писал(а):Что брали за точку отсчёта при сопоставлении графиков?


Добавлено спустя 10 минут 43 секунды:
Уточню вопрос: Что брали за точку отсчёта при сопоставлении графиков для белого и черного фона?
Аватара пользователя
KomX
 
Сообщения: 66
Зарегистрирован: 16 июл 2016, 19:58
ФИО: Олег

Re: Датчик касания оптический, триангуляция

Сообщение Dmitry__ » 22 июл 2016, 23:13

KomX писал(а):Я за черное и говорю, - отличная повторяемость (на интервале 34-39 относительных единиц практически "след в след").

Только там нет никакой информации, а след в след из-за перехода сигнала пзс к насыщению. :)
Тут надо иметь датчик и видеть что происходит. У тебя пока чисто в теории, без какой-либо корреляции с практикой.
Каждому приходящему сюда "новая кровь" приходится все обьяснять по кругу, довольно утомительно. По графику:
Точка 34 - реальный край пятна заходящий в поле пзс.
Тянучка от порога по Y=5 - засветка. На белом фоне она 0 до 34. На черном фоне от 20 до 34. Характер тянучек разный, на белом фоне видна горизонтальна планка в зоне 28-34, это обьясняется практически постоянной яркостью засветки на дистанции 0.07 мм (ось х в сотых долях мм.). На черном фоне такой планки нет, т.к. засветка сильно затухает на такой поверхности.
То что тебе нравится на черном фоне около значения 34, на самом деле очень плохой результат, т.к. из-за деградации яркости, фронт входа пятна в поле пзс размазывается от 32.5 до 34.5. На белом фоне все 5 проходов начинают резкий подьем на значении 34.
Вот така фигня...

KomX писал(а):И этот вопрос остается в силе:

Залез на броневичок:
Могодой чеговег, надо читать всю тему вдумчиго, но дгля вас сдегаю исглючение:
Первый проход, начальная мощность лазера максимальная, по мере опускания бошки, мощность лазера уменьшается так, чтоб значение пзс было равно 50. На графике это ConstMax. То значение мощности, которое дает уровень 50 фиксируется, и след. 5 проходов делаются на этой мощности. Так повторяется для второго типа поверхности.
Примерная мощность лазера для белый и черный равна 3 и 250 значения PWM, что очень хорошо коррелирует с моим глупым (по вашему мнению) утверждением о разности данных белый/черный - овер 1000 раз :wink:

Слез с броневичка. :)
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Датчик касания оптический, триангуляция

Сообщение KomX » 23 июл 2016, 00:08

Дмитрий, давайте без эмоций. Я читал Ваши реплики не только в этой теме, где Вы - "белый и пушистый на броневичке", но и иные темы, где Вы, мягко говоря, были грубоваты с собеседником. Поэтому, я отчасти готов к Вашему тону и ёрничанью, - потерплю. Извините за эту реплику.
Спасибо, что разъяснили процесс снятия приведенного в пример графика. Всё очень доходчиво объяснили. Теперь мне ясно, что на мой вопрос "о кроликах" (ошибках повторяемости результатов замера расстояния до стола) Вы сообщили мне "о крокодилах" (тысячекратных изменениях отраженного светового потока зависящих как от коэффициента рассеивающей поверхности, так и от величины светового потока лазера). Хорошо хоть с этим вопросом разобрались.
Что касается моей оценки (заметьте, по Вашему мнению) Ваших талантов, то я её не скрываю, - я ценю Ваш опыт, трудолюбие и, как ни странно, отзывчивость...
Теперь о дельном.
1. Предлагаю завести на контроллер сигнал STEP шагового мотора Z-оси. Это позволит перейти нам из области относительных измерений к измерениям привязанным к движению печатающей головки вдоль оси Z.
2. Надо бы расщепить один пучок света от лазера на 2 пятна (если кого заинтересует, - расскажу как расщепить и где сфокусировать).
3. "Беда" с изменением размера пятна от изменения мощности или от рассеивающей поверхности устраняется пунктом 2, когда мы последовательно "ловим" моменты входа в сенсор 2-х отраженных от поверхности стола пятен, которые имеют идентичные форму и размер поскольку проходят по одним и тем же "дефектам" на столе в поле зрения вертикально уставленного сенсора. И в силу этой идентичности разнесены на фиксированное расстояние относительно друг друга в промежутке времени измерения. Между моментами входа первого и второго отражённых пятен считаем количество импульсов STEP или с точностью ограниченной конструкцией принтера определяем линейное перемещение печатающей головки.

PS Если полученной точности будет недостаточно, то усложнив конструкцию датчика можно будет её увеличить в 2^n раз. Но это будет излишеством в силу того, что шаговый мотор создает фиксированное перемещение по команде STEP (делает полный микрошаг) и в промежуточном положении не фиксируется.
Аватара пользователя
KomX
 
Сообщения: 66
Зарегистрирован: 16 июл 2016, 19:58
ФИО: Олег

Re: Датчик касания оптический, триангуляция

Сообщение Dmitry__ » 23 июл 2016, 00:45

KomX писал(а):Дмитрий, давайте без эмоций. Я читал Ваши реплики не только в этой теме, где Вы - "белый и пушистый на броневичке", но и иные темы, где Вы, мягко говоря, были грубоваты с собеседником.

Какие еще эмоции? :shock: Если ты будешь еще и внимательный, то увидишь что я грубоват начинаю только в ответ. Можешь проверить это правило в этой теме на своих сообщениях :wink:
KomX писал(а):1. Предлагаю завести на контроллер сигнал STEP шагового мотора Z-оси.

Естественно у меня так и сделано, как бы я еще снимал характеристики с шагом в 10 микрон? Но это никто не оценил в этой теме. То что ты до этого так быстро дошел - очень радует, щаз народ начнет скрипеть мозгами: раз уже так 2-е сделали, значит надо идти на курсы чтения :)
Но это приводит к изменению прошивки марлина, а народ этого боится как огня.
KomX писал(а): "Беда" с изменением размера пятна от изменения мощности или от рассеивающей поверхности устраняется пунктом 2,

Я пока не вижу решения. Рассказывай подробнее. Но сразу говорю - схема несбалансированная, такие методы проходят на симметричных схемах, тут с этим все плохо, например когда пятно дотрагивается до поля пзс с внешней стороны - получается максимальная чувствительность порога, а когда пятно дотрагивается до края с внутр. стороны пзс, то пзс это никак не может увидеть...

PS
Надо просто собрать схему на нормальном лазере и чуть улучшить драйвер. Синий лазер на 40 мвт. я купил около месяца назад, но так и не дошли руки проверить. Как я только это сделаю, так сразу отпадут все вопросы с ошибкой датчика на разных поверхностях. Если бы люди не изобретали мега методы, а проверили это без меня, то давно бы уже закрыли эту тему.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Датчик касания оптический, триангуляция

Сообщение KomX » 23 июл 2016, 02:39

Dmitry__ писал(а):Но это приводит к изменению прошивки марлина, а народ этого боится как огня.

Никаких изменений прошивки я не планирую, да они и ни к чему. Зачем они, что ты хочешь этими изменениями получить (улучшить)? Буду благодарен, если пояснишь. Может я чего не вижу...

KomX писал(а): "Беда" с изменением размера пятна от изменения мощности или от рассеивающей поверхности устраняется пунктом 2,

Я пока не вижу решения. Рассказывай подробнее. Но сразу говорю - схема несбалансированная, такие методы проходят на симметричных схемах, тут с этим все плохо, например когда пятно дотрагивается до поля пзс с внешней стороны - получается максимальная чувствительность порога, а когда пятно дотрагивается до края с внутр. стороны пзс, то пзс это никак не может увидеть...

Сначала о второй части реплики. Надеюсь, я правильно тебя понимаю, - пятно коснулось матрицы - максимальная реакция матрицы, пятно в матрице и начинает выходить - факт матрицей не детектируется. Это нормально. Но матрица должна видеть "последний след" пятна, - момент покидания матрицы. Или я не прав?
Теперь пояснения подробнее.
Пока опускаю практическую реализацию расщепления луча...
Перейдём к "имеем". Итак, имеем два параллельных луча, которые при нормальной (нормаль, перпендикуляр) ориентации к экрану точно сфокусированы в две точки на некотором расстоянии. Какое расстояние не важно, лишь бы на требуемом участке опускания головки оба пятна успели соприкоснутся с матрицей при условии, что касание второго пятна происходит при уже полностью вышедшем из матрицы первым пятном. Этим условием создаем одинаковую реакцию матрицы на входящий световой поток. Надо полагать, что за время прохода пятен через матрицу условия внешней засветки не меняются (временной промежуток мал и рядом нет неадекватного типа с лазерной указкой) и поверхность стола имеет фиксированные дефекты (никто под опускающийся механизм с маркерами не лезет).
Итак, первый луч рассеивается от поверхности и образует световое пятно произвольной формы и размера (пылинка дала блик, половина пятна на белом, половина на черном - уже не круглое пятно). Это пятно по мере опускания балки или поднятия стола начинает заходить в поле зрения матрицы. Начинает расти МАКС. Где-нибудь на уровне МАКС=30-40 (надо уточнить значения доступные на самом чёрном столе) принимаем решение, что есть пятно, обнуляем счётчик STEP-ов и, считая шаги (лучше по прерыванию по 1 на входе контроллера), ждём ухода первого пятна. Отработав расстояние между пятнами, принтер на очередном шаге начинает вводить в поле зрения датчика второе пятно. Принимаем решение по аналогичной величине МАКС в силу идентичности пятен. Почему пятна идентичны? Во-первых, потому, что лучи параллельны, падают на стол под одним углом и худо-бедно светят одинаково ярко (пропускаем лучи внутри расщепляющего узла через щель одной ширины). Во-вторых, наклон оптической оси лазера в одинаковой степени расфокусирует пучки лазера, - один чуть не долетит до фокальной плоскости, второй уже перелетит оную. В-третьих, видимая в фокусе структура кристалла лазера так же будет идентична, - разные части кристалла как бы он не был повёрнут в пятнах будут выглядеть одинаково, ибо фокальная плоскость перевернёт зеркально пятно расфокусировавшееся на расстоянии бОльшем, чем фокусное, но не перевернёт пятно расфокусировавшееся до фокусного расстояния. И в-четвёртых, лучи проходят по одной и той же части стола, находящейся в поле зрения сенсора, а значит их изменения из-за дефектов будут одинаковы.
Тут надо пояснить, что момент обнаружения первого или второго пятна - величины случайные, но вот разность этих величин - константа обусловленная расстоянием между пятнами.
Продолжу алгоритм. Второе пятно поймано, - выдаем сработку концевика в мендель. И, спустя некоторое время, которое мы не "делеим", а используем для расчёта так нам недостающей триангуляции, снимаем сработку концевика, имитируя его гистерезис. Из расчётов триангуляции определяем на каком шаге после детектирования первого пятна дать менделю повторную сработку концевика. Число шагов можем выбрать как для срабатывания между пятен, так и для точной остановки головки непосредственно у поверхности стола.
Вот как-то так!
Вдумчиво представь описанный алгоритм. Найдёшь ляпы и укажешь на них, буду только благодарен.

Надо просто собрать схему на нормальном лазере и чуть улучшить драйвер. Синий лазер на 40 мвт. я купил около месяца назад, но так и не дошли руки проверить. Как я только это сделаю, так сразу отпадут все вопросы с ошибкой датчика на разных поверхностях. Если бы люди не изобретали мега методы, а проверили это без меня, то давно бы уже закрыли эту тему.

В данном решении вижу положительное только в увеличении рассеяния в силу более короткой длины волны. Увеличение же мощности ожидаемых преимуществ не даст. Скорее, получишь кучу проблем с охлаждением и всякими тепловыми нюансами (плавание фокусировки или выгорание пластиковых элементов оптического тракта).

Добавлено спустя 8 минут 48 секунд:
Я спать... Второй час ночи! Утром обсудим сие писание.
Аватара пользователя
KomX
 
Сообщения: 66
Зарегистрирован: 16 июл 2016, 19:58
ФИО: Олег

Re: Датчик касания оптический, триангуляция

Сообщение Dmitry__ » 23 июл 2016, 04:23

KomX писал(а):Никаких изменений прошивки я не планирую, да они и ни к чему. Зачем они, что ты хочешь этими изменениями получить (улучшить)? Буду благодарен, если пояснишь. Может я чего не вижу...

Пока датчик находится в исследовательском режиме, нужен измененный марлин, картинка выше делалась так:
Марлин начинает медленное опускание бошки, датчик следит за порогом сигнала, как только пятно (засветка) начало появляться в поле пзс, датчик дает знать об этом марлину. Марлин останавливает "z" и дальше начинает опускать бошку шагами по 10 микрон, стробируя каждый шаг сигналом. Датчик фоткает картинку на каждом стробе и посылает данные в терминалку. Марлин знает что этот процесс длится например 0.1 сек. Через паузу в 0.1 сек. марлин делает след. шаг в 10 микрон. И так 100 раз (типа больше одного миллиметра, с учетом засветки, ход быть не может) Так я получаю абсолютные значения на графиках. Как это будет в конечной прошивке - хз, но сейчас это может быть только так.

KomX писал(а):Но матрица должна видеть "последний след" пятна, - момент покидания матрицы. Или я не прав?

Прав, вопрос только в том, с какой стороны пятно покидает матрицу. Если это противоположная сторона, то имеем пространственную разницу в 2-4 мм. На котором могут быть совершенно другие условия затухания, например царапина на одном краю поля и отсутствие царапины на противоположном.
KomX писал(а):Какое расстояние не важно, лишь бы на требуемом участке опускания головки оба пятна успели соприкоснутся с матрицей при условии, что касание второго пятна происходит при уже полностью вышедшем из матрицы первым пятном.

Точность юстировки такой схемы должна быть выше точности датчика, в колхозных условиях это нереализуемо. И опять вопрос к пространственной разнице, см. выше. Если стол равномерный по контрасту, то датчик, который сейчас есть, работает без вопросов. Разговор идет о датчике работающего на любой поверхности, читай - зебре.
KomX писал(а):Вдумчиво представь описанный алгоритм. Найдёшь ляпы и укажешь на них, буду только благодарен.

Не хватает вводных данных, и я не читатель :), мне проще описать возможные проблемы, надеюсь я смог донести (см. выше). Даже если в твоей схеме 2 луча заходят с одной стороны, все равно имеем разные расстояния, а значит и возможный разный контраст поверхности - зебра.
KomX писал(а):В данном решении вижу положительное только в увеличении рассеяния в силу более короткой длины волны. Увеличение же мощности ожидаемых преимуществ не даст. Скорее, получишь кучу проблем с охлаждением и всякими тепловыми нюансами (плавание фокусировки или выгорание пластиковых элементов оптического тракта).

Если ты вдумчиво еще раз посмотришь на картинку с 10-ю проходами, то поймешь что датчик уже написан. Ибо на 2-х разных поверхностях четко определяется граница (34). На этом тесте бошка не смещалась по x,y, между белый/черный - закрашивание стола маркером. Ошибка на черной поверхности появляется только из-за деградации яркости лазера. Кста, в реальном датчике этой ошибки может и не быть(с деградирующим лазером), т.к. в тестовом режиме очень большие временные паузы, каждый проход длится около 0.1сек. * 100, имеем 10 сек. * 5 проходов. Нормальным лазером никто и не собирается жечь стол, просто у более мощного лазера не будет деградировать яркость. Точно так же как не деградирует яркость деградирующего :) лазера на белой поверхности, т.к. мощность в этом режиме мала.
KomX писал(а):Я спать... Второй час ночи!

Слабак!
Шутка.
Не, я честно пошутил. :)
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Датчик касания оптический, триангуляция

Сообщение dccharacter » 23 июл 2016, 04:44

KomX писал(а):Сначала о второй части реплики. Надеюсь, я правильно тебя понимаю, - пятно коснулось матрицы - максимальная реакция матрицы, пятно в матрице и начинает выходить - факт матрицей не детектируется. Это нормально. Но матрица должна видеть "последний след" пятна, - момент покидания матрицы. Или я не прав?

Не прав. На матрице работают неуправляемые нами алгоритмы выдержки, соответственно пятно покидает поле долго, мучительно и хаотично цепляясь за жизнь

Добавлено спустя 6 минут 11 секунд:
KomX писал(а):Где-нибудь на уровне МАКС=30-40

НЕА
Алгоритм матрицы старается изо всех сил держать МАКС на 50-ти. Соответственно даже небольшая засветка уводит макс в 50.

Добавлено спустя 1 минуту 35 секунд:
дальше бла-бла-бла-бла
мой вывод - может и сработать, блин

Добавлено спустя 1 минуту 40 секунд:
Dmitry__ писал(а):Точность юстировки такой схемы должна быть выше точности датчика, в колхозных условиях это нереализуемо.

Вообше никакая юстировка не нужна, ты не понял алгоритма

Добавлено спустя 2 минуты 48 секунд:
Dmitry__ писал(а): то имеем пространственную разницу в 2-4 мм. На котором могут быть совершенно другие условия затухания, например царапина на одном краю поля и отсутствие царапины на противоположном.

:-(( Или больше
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Датчик касания оптический, триангуляция

Сообщение KomX » 23 июл 2016, 15:08

Дмитрий и Андрей, спасибо за ценные замечания и нормальный рабочий диалог.

Dmitry__ писал(а):
KomX писал(а):Никаких изменений прошивки я не планирую, да они и ни к чему.

Пока датчик находится в исследовательском режиме, нужен измененный марлин, картинка выше делалась так:
Марлин начинает медленное опускание бошки, датчик следит за порогом сигнала, как только пятно (засветка) начало появляться в поле пзс, датчик дает знать об этом марлину. Марлин останавливает "z" и дальше начинает опускать бошку шагами по 10 микрон, стробируя каждый шаг сигналом. Датчик фоткает картинку на каждом стробе и посылает данные в терминалку. Марлин знает что этот процесс длится например 0.1 сек. Через паузу в 0.1 сек. марлин делает след. шаг в 10 микрон. И так 100 раз (типа больше одного миллиметра, с учетом засветки, ход быть не может) Так я получаю абсолютные значения на графиках. Как это будет в конечной прошивке - хз, но сейчас это может быть только так.

Дмитрий, первым же предложением ты со мною согласился, - в рабочем режиме модернизации ПО менделя не нужна.

Теперь поговорим за описание тестов. "А дико извиняюсь", но фраза "Слез с броневичка!" куда как к месту.

Я не владею информацией о устройстве твоего принтера, но очень сомневаюсь, что у тебя на оси Z стоит прецизионный безлюфтовый мотор-редуктор с редукцией не менее 60:1 для случая самого распространённого аппаратного решения (шаг винта - 1.25 мм., 16 микрошагов/шаг и 1.8 градус/шаг)...
Вот табличка во вложении (убил на неё целое утро и всё равно допустил ляп, теперь надо все результаты в таблице делить на 1000), из которой следует, что самое малое перемещение за один микрошаг равно 9.8 микрон и обеспечивается шаговиками с шагом 0.9 градуса за шаг и пока экзотическими драйверами обеспечивающими возможность управления с точностью 1/256 шага.

Поэтому, как ты получал от менделя столь прецизионную реакцию, - опускать бошку шагами по 10 микрон, - для меня загадка.

KomX писал(а):Но матрица должна видеть "последний след" пятна, - момент покидания матрицы. Или я не прав?

Dmitry__ писал(а):Прав, вопрос только в том, с какой стороны пятно покидает матрицу. Если это противоположная сторона, то имеем пространственную разницу в 2-4 мм. На котором могут быть совершенно другие условия затухания, например царапина на одном краю поля и отсутствие царапины на противоположном.

dccharacter писал(а):На матрице работают неуправляемые нами алгоритмы выдержки, соответственно пятно покидает поле долго, мучительно и хаотично цепляясь за жизнь.
...
Алгоритм матрицы старается изо всех сил держать МАКС на 50-ти. Соответственно даже небольшая засветка уводит макс в 50.



Картина работы сенсора проясняется, - работает система автозахвата и удержания принимаемого сенсором изображения. А значит для принятия решения принимаем МАКС больше 40-45. Ещё какие-нибудь параметры в этот момент изменяются резко? Спрашиваю с целью дублирования параметра МАКС.
KomX писал(а):Какое расстояние не важно, лишь бы на требуемом участке опускания головки оба пятна успели соприкоснутся с матрицей при условии, что касание второго пятна происходит при уже полностью вышедшем из матрицы первым пятном.

Dmitry__ писал(а):Точность юстировки такой схемы должна быть выше точности датчика, в колхозных условиях это нереализуемо.

dccharacter писал(а):Вообше никакая юстировка не нужна, ты не понял алгоритма.



О какой юстировке речь? Простейший расщепитель пучка, - два равно-калиберных отверстия в светонепроницаемой ширме перекрывающей параллельный или сфокусированный на как можно большое расстояние пучок света от лазера. Расстояние между отверстиями произвольное, но с двумя ограничениями.
1. между двумя пятнами на белой мелованной бумаге должно полностью помещаться поле зрения сенсора, так чтобы ни с одной его стороны не было контакта с пятнами.
2. расстояние между пятнами по линии их лежания либо ограничивается заданным ходом по оси Z (что сложнее из-за уменьшения границ хода до 2-3 мм.), либо определяют это расстояние (совсем просто, подняли головку по-выше на 10-15 мм. и отработали измерение чуть дольше по времени).

Dmitry__ писал(а):И опять вопрос к пространственной разнице, см. выше. Если стол равномерный по контрасту, то датчик, который сейчас есть, работает без вопросов. Разговор идет о датчике работающего на любой поверхности, читай - зебре.
...
Даже если в твоей схеме 2 луча заходят с одной стороны, все равно имеем разные расстояния, а значит и возможный разный контраст поверхности - зебра.


Зёбра, зёбра... Далась тебе эта "зёбра"!
Вот смотри, датчик начинает повышать МАКС достаточно резко уже при засветке первых 3-х полос сенсора (3х15=45, 3х17=51, 3х18=54 и т.д.). Пусть в поле зрения лежит неубранная нами песчинка безбожно бликующая во все стороны или глубокая царапина на столе. Первые же лучи первого пятна освещают сей "дефект", сенсор "поднимает веко" и видит, реагирует на "дефект". Мы принимаем решение, начинаем считать шаги движка. Спустя N-е количество шагов (расстояние между двумя соседними шагами см. в таблице) на "дефект" попадает первый луч второго пятна, попадает под тем же углом к столу и приблизительно той же мощности. Неужели же "дефект" радикально изменит свою реакцию на луч второго пятна по сравнению с реакцией на луч первого пятна? Какие-такие турбулентности заставят попадающий в поле зрения 3-х трёх строк сенсора участок стола, пусть даже исцарапанный по самой контрастной "зебры", перенаправить диффузное рассеяние мимо поля зрения сенсора датчика. "Дальнейшие текст этого абзаца удален по критерию "+18"" (шутка призванная охладить эмоции).
Понимаю, что идеального равенства по мощности светового потока в двух пятнах не получить при любых затратах на юстировку и настройку, но уменьшить разбежку всегда можно. Например, если одно из двух отверстий в шторке сделали чуть больше, - так нам не составит большого труда повернуть блок лазера так, чтобы свет от более яркого отверстия падал на стол чуть дальше, т.е. проходил бы выше оптической оси лазерного блока.
Но я отвлёкся...

Dmitry__ писал(а):Если ты вдумчиво еще раз посмотришь на картинку с 10-ю проходами, то поймешь что датчик уже написан. Ибо на 2-х разных поверхностях четко определяется граница (34). На этом тесте бошка не смещалась по x,y, между белый/черный - закрашивание стола маркером. Ошибка на черной поверхности появляется только из-за деградации яркости лазера. Кста, в реальном датчике этой ошибки может и не быть(с деградирующим лазером), т.к. в тестовом режиме очень большие временные паузы, каждый проход длится около 0.1сек. * 100, имеем 10 сек. * 5 проходов. Нормальным лазером никто и не собирается жечь стол, просто у более мощного лазера не будет деградировать яркость. Точно так же как не деградирует яркость деградирующего :) лазера на белой поверхности, т.к. мощность в этом режиме мала.

Я уважаю выбранный тобою путь, но не разделяю его с тобой, извини.

Я ясно вижу, что точность позиционирования ограничена конструктивом принтера (в моем случае не выше 300 микрон). И меня куда больше интересуют вопросы по расчёту реального расстояния между датчиком и столом, ибо реальная картина будет не совсем такова, как описывалась мною выше (в силу дискретности микрошагов движка, в силу точности винта и прочего). Ну, на то она и триангуляция, - в предложенном алгоритме 3 замера-расчёта расстояния и нахождение среднего наиболее приближенного к целочисленной сумме N микрошагов.
Вложения
pre.png
Последний раз редактировалось KomX 23 июл 2016, 19:56, всего редактировалось 1 раз.
Аватара пользователя
KomX
 
Сообщения: 66
Зарегистрирован: 16 июл 2016, 19:58
ФИО: Олег

Re: Датчик касания оптический, триангуляция

Сообщение Madf » 23 июл 2016, 17:13

Dmitry__ писал(а):"Hello World"
А теперь, внимание вопрос, сделай это на vb6 :D

Дай мне это EXE-шник, чтобы я своими глазами это увидел, а то я тоже ща могу скомпилть, а она дофига из системы сосать будет... :D

зы: впрочем это уже не обсуждение генерации машиного кода идет, а писькамеринье (как KomX подметил) либами и объёмами.
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Датчик касания оптический, триангуляция

Сообщение Dmitry__ » 23 июл 2016, 19:13

KomX писал(а):Я не владею информацией о устройстве твоего принтера, но очень сомневаюсь, что у тебя на оси Z стоит прецизионный безлюфтовый мотор-редуктор с редукцией не менее 60:1 для случая самого распространённого аппаратного решения (шаг винта - 1.25 мм., 16 микрошагов/шаг и 1.8 градус/шаг)...
Вот табличка во вложении (убил на неё целое утро и всё равно допустил ляп, - надо к формуле внизу добавить *1000000), из которой следует, что самое малое перемещение за один микрошаг равно 9.8 микрон и обеспечивается шаговиками с шагом 0.9 градуса за шаг и пока экзотическими драйверами обеспечивающими возможность управления с точностью 1/256 шага.

Чего? Ты пересчитай, пока я гуляю, ибо при шаге резьбы 1.25 и шаговике -0.9 град. имеем 360/0.9 = 400 шагов, 1.25мм/400шагов = 0,003125мм, что равно 3 микронам с хвостиком на один ПОЛНЫЙ шаг. 10 микрон - это жалкая сотка :)
На остальное не готов отвечать...

Добавлено спустя 4 минуты 4 секунды:
Madf писал(а):Дай мне это EXE-шник, чтобы я своими глазами это увидел

Это бинарник линуховый, оно тебе надо? :D

Добавлено спустя 59 секунд:
Попробую позже скомпилить для вендов.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Датчик касания оптический, триангуляция

Сообщение KomX » 23 июл 2016, 19:45

Dmitry__ писал(а):Ты пересчитай, пока я гуляю...

Точно лопухнулся... Применил минус 6-ю степень не к метрам, а к миллиметрам. Вся табличка насмарку...
Аватара пользователя
KomX
 
Сообщения: 66
Зарегистрирован: 16 июл 2016, 19:58
ФИО: Олег

Re: Датчик касания оптический, триангуляция

Сообщение dccharacter » 23 июл 2016, 19:59

300 микрон - это не точность, это мы школьной линейкой меряем без всяких оптических датчиков. У нас проблема поганым пластиком печатать со слоем 100 микрон, т.е. в районе 30 микрон нужна погрешность, но лучше 10.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Датчик касания оптический, триангуляция

Сообщение Dmitry__ » 23 июл 2016, 21:06

Ну вот и славненько :)
А то:
KomX писал(а): "А дико извиняюсь", но фраза "Слез с броневичка!" куда как к месту.

KomX писал(а):Я не владею информацией о устройстве твоего принтера, но очень сомневаюсь, что у тебя на оси Z стоит прецизионный безлюфтовый

А потом:
KomX писал(а):Точно лопухнулся... Применил минус 6-ю степень не к метрам, а к миллиметрам

Многие тут меня пытались скинуть с броневичка, dccharacter не даст соврать :D

Добавлено спустя 7 минут 39 секунд:
KomX писал(а):Зёбра, зёбра... Далась тебе эта "зёбра"!
Вот смотри

KomX писал(а):Первые же лучи первого пятна освещают сей "дефект", сенсор "поднимает веко" и видит, реагирует на "дефект". Мы принимаем решение, начинаем считать шаги движка. Спустя N-е количество шагов (расстояние между двумя соседними шагами см. в таблице) на "дефект" попадает первый луч второго пятна, попадает под тем же углом к столу и приблизительно той же мощности. Неужели же "дефект" радикально изменит свою реакцию на луч второго пятна по сравнению с реакцией на луч первого пятна?

Ха. это да, мы не имеем ошибки между лучами, только нах нам это надо? Кто тебе сказал, что оба эти луча знают на каком они расстоянии до поля пзс?

Добавлено спустя 3 минуты 8 секунд:
KomX писал(а):Дальнейшие текст этого абзаца удален по критерию "+18"" (шутка призванная охладить эмоции)

Стоп! На броневичке Дима, или доказывай или лезь обратно вниз :D

Добавлено спустя 4 минуты 36 секунд:
KomX писал(а):Я уважаю выбранный тобою путь, но не разделяю его с тобой, извини.

Я уважаю, что ты не уважаешь мой путь, но 300 микрон ниачом, лучших слов, что сказал dccharacter по этому поводу я не найду, ибо он меня учился понимать 5 лет, у нас нет этого времени в СЕЙ час...
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Датчик касания оптический, триангуляция

Сообщение dccharacter » 23 июл 2016, 21:23

Дим, ты забыл что у нас сигнал с шаговика заведен на датчик, соответственно мы знаем центр между пятнами, какой бы они формы не были, а форма меняется одинаково в зависимости от поверхности.

Добавлено спустя 1 минуту 54 секунды:
Дим, про броневичок:
Кабан был большой, сильный и страшный. Его все очень боялись. И поэтому его били только всем лесом. Или просто кидали в него камнями. Кабан этого очень не любил. И однажды ночью он спрятал все камни в лесу. За это его очень сильно избили. Больше Кабан никогда не прятал камни. Воистину говорят - время собирать камни и время их не трогать никогда.

http://lib.ru/ANEKDOTY/aek_zweri.txt_wi ... tures.html
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Датчик касания оптический, триангуляция

Сообщение Dmitry__ » 23 июл 2016, 21:47

dccharacter писал(а):Дим, ты забыл что у нас сигнал с шаговика заведен на датчик, соответственно мы знаем центр между пятнами

Этим мы знаем точное расстояние между лучами, которое нах НЕ нужно. Никакой степ от двигателя тебе не даст информацию о центре, ибо все относительно от засветки. Тебе может помочь симметричная схема, но в этой симметрии присутствует асимметрия царапин.
dccharacter писал(а):Кабан был большой, сильный и страшный. Его все очень боялись. И поэтому его били только всем лесом.

Давай, давай, не забыл как отжиматься-то? :D

Добавлено спустя 3 минуты 55 секунд:
dccharacter писал(а):http://lib.ru/ANEKDOTY/aek_zweri.txt_wi ... tures.html

Классный текст. Это про меня?
Поэтому звери его не любили. Хотя он был очень добрым. И веселым. Он любил задорные шутки. За эти шутки звери его скоро жутко возненавидели и били.

Звери вы, господа.

ЙА ЗА ПИВОМ!!! :D :D :D



Добавлено спустя 13 минут 22 секунды:
Пля, дочитал текст по ссылке, ржал как конь, dccharacter как ты это находишь? Что двигает тобой чтоб находить такие тексты?
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Пред.След.

Вернуться в 3D печать

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 27