roboforum.ru

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

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

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

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

Сообщение setar » 10 фев 2016, 00:43

на раздумье, чтобы перед глазами было, свеженькое
Снимок экрана 2016-02-09 в 23.33.43.png


Добавлено спустя 8 минут 21 секунду:
кстати, это тоже не менее полезно будет.
тот же тест с замедлением оси Z d 8 раз (медленное приближение так проходит)
Снимок экрана 2016-02-09 в 23.41.47.png
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

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

Сообщение linvinus » 10 фев 2016, 01:17

Замечательные графики.

1) единственное, max и min должны быть в диапазоне [0 - 63] а у вас до 120 доходит как так?

2) pix_sum поднялось всего на 20 пунктов а потом вернулось, вот это интересно,
было бы здорово увидеть картинку с датчика до и после.

получается что когда лазер не в кадре хватает внешнего освещения+низкая выдержка чтобы засветить пиксели, но при этом и pix_min высок, что означает что разница pix_max-pix_min минимальна, а когда она подскакивает означает что лазер в кадре появился. (Дима кстати приводил на своих графиках разницу) нужна (pix_sum - pix_min)

Второй интересный момент, который я как то упустил, и от части потвержает утверждение Андрея что shutter более показателен.

что такое shutter - это выдержка, но при этом она завязана на постоянное значение pix_max=const=50. или иначе говоря shutter - показометр яркости картинки.

Дима регулирует лазер как функцию от pix_max, и shutter регулируется от pix_max, но каждый по своей независимой функции, а что если зарегулировать лазер от shutter ? тогда

- лазер будет выходить на такую мощность чтобы яркость картинки была константой, но при этом будет меняться не два параметра как сейчас (лазер + выдержка), а один - лазер.
- shutter будет постоянным, что означает яркость пятна лазера (с точки зрения матрицы) -постоянна
- соотношение яркость пятна / внешние шумы постоянно (если правилно выбрать shutter то шумы не должны быть заметны)


при "постоянной" выдержке пятно должно быть примерно одинаковое. только выдержку нужно выбрать такую чтобы внешняя засветка такую яркость не давала.

3) Также стоит учитывать, и SQUAL это подтверждает, что есть оптическая зона резкости , та в которой SQUAL максимально,
т.е. если (pix_sum - pix_min)говорит насколько жирное пятно в кадре, то SQUAL говорит насколько оно в фокусе :wink:
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

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

Сообщение dccharacter » 10 фев 2016, 01:41

Это датчик другой, 5020, там до 128 кажися

Добавлено спустя 1 минуту 37 секунд:
linvinus писал(а):2) pix_sum поднялось всего на 20 пунктов а потом вернулось, вот это интересно,
было бы здорово увидеть картинку с датчика до и после.

А это я подозреваю регулировка мощности лазера включилась

Добавлено спустя 2 минуты 24 секунды:
linvinus писал(а):Дима регулирует лазер как функцию от pix_max, и shutter регулируется от pix_max, но каждый по своей независимой функции, а что если зарегулировать лазер от shutter ?

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

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

Сообщение setar » 10 фев 2016, 01:48

linvinus писал(а):1) единственное, max и min должны быть в диапазоне [0 - 63] а у вас до 120 доходит как так?

они в 127 упираются, почему так - не знаю

2) pix_sum поднялось всего на 20 пунктов а потом вернулось, вот это интересно,
было бы здорово увидеть картинку с датчика до и после.


а что если зарегулировать лазер от shutter ? тогда

это первое что я сделал и результатом явилось загрубление точности в 10 раз.

Добавлено спустя 2 минуты 29 секунд:
P.S. видео реалтайм, соответствует 1/8 скорости приближения ( 8/8 )=1мм/с
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

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

Сообщение Dmitry__ » 10 фев 2016, 01:51

linvinus писал(а):Дима регулирует лазер как функцию от pix_max, и shutter регулируется от pix_max, но каждый по своей независимой функции

Пока pix_max не дойдет до максимального значения, дсп делать нечего, только после нормального значения pix_max начинает регулироваться shutter и все остальное. Вот поэтому нельзя выпускать pix_max выше опред. значения, тогда датчик является элементарным фотоприемником с оцифрованным значение яркости, внутр. алгоритмы не искажают данные.
Да не майтесь вы этой ерундой, все функции, кроме pix_max - всякие патентованные алгоритмы, которые меняются от ревизии к ревизии. Умрете их сводить.
Используйте датчик как фотодиод с adc.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение setar » 10 фев 2016, 01:53

коллеги туплю, как мне float распечатать с одним знаком после запятой и уложить в 5 символов (знаю точно что значения положительные : среднескользящая по байтовым значениям)
dtostrf ругается
Код: Выделить всёРазвернуть
    LastSqual = Frame[0];
    MALongSqual=GetSMA(dataSqual,MA_LONG,LastSqual);// для вычисления среднескользящей добавим свежие замеры
    Uint16ToString(MALongSqual);
    //dtostrf(MALongSqual, 5, 1, Str);
    SERIAL_OUT.write(Str[4]);
    SERIAL_OUT.write(Str[3]);
    SERIAL_OUT.write(Str[2]);
    SERIAL_OUT.write(Str[1]);
    SERIAL_OUT.write(Str[0]);
    SERIAL_OUT.write(0x09);
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

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

Сообщение Dmitry__ » 10 фев 2016, 02:01

setar писал(а):коллеги туплю, как мне float распечатать с одним знаком после запятой и уложить в 5 символов

Дело это неблагодарное, но:
Для чисел с плавающей точкой в форматах «e», «E» и «f» этот элемент означает число знаков после десятичной точки. Результат округляется.

http://we.easyelectronics.ru/Soft/forma ... lerov.html
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение linvinus » 10 фев 2016, 02:04

setar писал(а):они в 127 упираются, почему так - не знаю

pix_max 6 разрядный там физически больше 63 быть не может.

setar писал(а):это первое что я сделал и результатом явилось загрубление точности в 10 раз.

а какое значение shutter выбрали как константу?

Пока pix_max не дойдет до максимального значения, дсп делать нечего, только после нормального значения pix_max начинает регулироваться shutter и все остальное. Вот поэтому нельзя выпускать pix_max выше опред. значения, тогда датчик является элементарным фотоприемником с оцифрованным значение яркости, внутр. алгоритмы не искажают данные.
Да не майтесь вы этой ерундой, все функции, кроме pix_max - всякие патентованные алгоритмы, которые меняются от ревизии к ревизии. Умрете их сводить.
Используйте датчик как фотодиод с adc.


хмм, по документации это не так, там сказано что shutter всегда подстраивается так чтобы pix_max был в районе 50.
поэтому на простой фотодиод не смахивает.

Да и потом, пока кто то не скажет что всё ок его всё устраивает можно и поразмышлять как "правильно"
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

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

Сообщение setar » 10 фев 2016, 02:07

linvinus писал(а):
setar писал(а):это первое что я сделал и результатом явилось загрубление точности в 10 раз.

а какое значение shutter выбрали как константу?

2 по байту ADNS_SHUTTER_UPPER
нижний байт прыгает сильно
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

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

Сообщение Dmitry__ » 10 фев 2016, 02:08

linvinus писал(а):хмм, по документации это не так, там сказано что shutter всегда подстраивается так чтобы pix_max был в районе 50.
поэтому на простой фотодиод не смахивает.

Так вот и удерживай pix_max на значении 45, моей функцией регулировки мощности лазера (это большая яркость в сравнении с любой засветкой), дсп ничего не останется делать, как просто выдавать данные яркости. Имеем фотоприемник с данными от 0 до 45
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение linvinus » 10 фев 2016, 02:19

https://www.arduino.cc/en/Serial/Print
так? Serial.println(1.23456, 2) gives "1.23"

2 по байту ADNS_SHUTTER_UPPER
нижний байт прыгает сильно


SHUTTER в диапазоне [ 1 - 12524]
SHUTTER = ADNS_SHUTTER_UPPER <<8 | ADNS_SHUTTER_lower;
ADNS_SHUTTER_UPPER == 2 то SHUTTER = 512 диапазон 512 - 12524 - с шагом 256.
может величина неудачная? меньше пробовали?
то что SHUTTER сильно прыгает ничего страшного, тут главное стремление (закон изменения) а не его абсолютное значение.

Так вот и удерживай pix_max на значении 45, моей функцией регулировки мощности лазера (это большая яркость в сравнении с любой засветкой), дсп ничего не останется делать, как просто выдавать данные яркости. Имеем фотоприемник с данными от 0 до 45


тогда получается бой между лазером и выдержкой, лазер тянет к 45 а выдержка к 50.
ну ладо, у меня теория а у вас практика, так что вам виднее.
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

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

Сообщение dccharacter » 10 фев 2016, 02:21

А еще, ребята, не забывайте про такую важную весччччь
Capture.JPG

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

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

Сообщение linvinus » 10 фев 2016, 02:23

@setar на видео больше похоже на то что лазер регулируется по значению pix_sum а не от pix_max , я прав?
хотя по видео мощность лазера постоянна, выходит что это выдержка меняется.

Еще ошибка, первый столбик пикселей это последний столбик кадра
aaa.png
Последний раз редактировалось linvinus 10 фев 2016, 10:09, всего редактировалось 2 раз(а).
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

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

Сообщение Dmitry__ » 10 фев 2016, 02:35

linvinus писал(а):тогда получается бой между лазером и выдержкой, лазер тянет к 45 а выдержка к 50.
ну ладо, у меня теория а у вас практика, так что вам виднее.

Ну какой бой? :)
Посмотри на все графики, пока pix_max меньше половины, все другие регистры в нуле или максимуме. Да и практически понятно, пока яркость приемлема, твой зрачок (shutter) не будет сужаться, максимальная дырка, зачем ему это делать? И так темно как у негра в попе :) Удерживать на уровне 45 ты сможешь только после того как яркость дойдет до этого значения (начнешь уменьшать мощность лазера). shutter даже не пикнет, пока яркость ниже волшебного значения.
Обьясняю последний раз, вас тут теперь толпа, а не один непробиваемый упертый dccharacter :)
Параметр качество для мышиного датчика - совершенно неприемлемый параметр для дистанционного датчика. Это как автофокус на фотиках. Фотик дергает обьектив так, чтоб на картинке появилось как можно больше высоких частот (мелкие детали). Так и тут, качество - много мелких деталей различаемых дсп, тогда дсп может начать привязываться к этим мелким деталям для фиксации перемещений, т.е. только после "высокое качество" начинают считаться регистры смещения мыши, для чего мышь и разрабатывалась. Но причем тут дистанция?
Если вы хорошо сфокусируете оптику, чтоб картинка пятна лазера начала выглядеть как мухомор, то заметите, что даже фпс кадров резко повышается, дсп оживает и все становится круто. Но это не дистанционный датчик...
Все, больше не буду обьяснять :o
:)
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

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

Сообщение linvinus » 10 фев 2016, 08:25

Dmitry__ писал(а):Посмотри на все графики, пока pix_max меньше половины, все другие регистры в нуле или максимуме.

с этим я не спорю, пока лазер не в кадре всё так и есть, я про то года лазер в кадре.

Dmitry__ писал(а):Да и практически понятно, пока яркость приемлема, твой зрачок (shutter) не будет сужаться, максимальная дырка, зачем ему это делать? И так темно как у негра в попе :) Удерживать на уровне 45 ты сможешь только после того как яркость дойдет до этого значения (начнешь уменьшать мощность лазера). shutter даже не пикнет, пока яркость ниже волшебного значения.

однако на графике видно что shutter очень даже пикает, как только лазер появляется в кадре shutter падает, можете показать график где shutter константа? а pix_max,min,sum меняется?
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С

Пред.След.

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9