roboforum.ru

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

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

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

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

Сообщение linvinus » 05 фев 2016, 22:11

adns9800 у меня тоже есть :D и не из мышки, из мышки я его выпаять не смог, отломал дорожки.
ладно я вас больше не отвлекаю

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

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

Сообщение Dmitry__ » 05 фев 2016, 22:27

linvinus писал(а):Пример отладки в geany

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

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

Сообщение setar » 07 фев 2016, 00:55

сделал коммит в репозитарий новых дефайнов + FastPWM для регулировки мощности лазера (хотя управление в базового алгоритме закоментил - пока снижает точность).
так же добавил солидворкс модель своего корпуса для digispark

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

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

Сообщение linvinus » 07 фев 2016, 01:13

Код: Выделить всёРазвернуть
#define PIN_IN(PIN) GET_IN(PIN) & (1<<GET_PIN(PIN))

знак равно пропущен? гоню, имя неудачное :)
есть PIN_OUTPUT, PIN_INPUT а что значит PIN_IN непонятно (SET? GET?), может PIN_GET() ?


Ещё все константы например тут https://github.com/setar/RF3Sens/blob/m ... DNS_2610.h
я бы переименовал в верхний регистр и добавил приставку ADNS_

delayMicroseconds(delay_tSRAD); delay_tSRAD очень похожа на переменную

пауза 100мкс при чтении это эпик фейл, с такой паузой картинка грузится 35мс это 28 кадров в сек в лучшем случае.


Dmitry__ На каком расстоянии с лазерной оптикой у вас точка от лазера в фокусе сенсора?

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

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

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

может тогда лучше PIN_READ ?

про константы, да, большими будет понятнее

delayMicroseconds(delay_tSRAD); delay_tSRAD очень похожа на переменную

пауза 100мкс при чтении это эпик фейл, с такой паузой картинка грузится 35мс это 28 кадров в сек в лучшем случае.

видишь варианты как уйти от этой паузы?

фокусное расстояние у линзы из лезерных молулей диаметром 6мм и длиной 10мм порядка 5мм, лень собирать приспособу для точного измерения.
я переделываю их так:
Снимок экрана 2016-02-07 в 1.05.47.png

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

для такого же расстояния детектирования , перед окном сенсора я помещаю оптику от еще одного модуля, уже без вынесения линзы наружу но с удаленной платой лазера. линзой к сенсору, бывшим посадочным местом платы лазера - наружу.
между срезом трубки оптики и самим сенсором порядка 3мм , при этом получается фокус на 25мм.
Снимок экрана 2016-02-07 в 1.12.41.png
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

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

Сообщение linvinus » 07 фев 2016, 12:20

видишь варианты как уйти от этой паузы?

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

получается в 25мм от внешнего среза линзы.

спасибо.

У меня ADNS-3080 с линзой 4.2mm М12 получалось на расстоянии 10мм получать достаточное количество features чтобы датчик отрабатывал перемещение практически на любой поверхности, лучше если поверхность с рисунком, например ткань.

Вот черная кошка а на заднем фоне окно, освещение естественное, объектив настроен на бесконечность.
adns3080_asya.png


В таком режиме лазер хорошо будет виден на большом расстоянии, хотя на большом (несколько сантиметров) расстоянии точность упадёт.

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

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

Сообщение Dmitry__ » 07 фев 2016, 15:51

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

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

Сообщение linvinus » 07 фев 2016, 17:16

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

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

Сообщение ales2k » 08 фев 2016, 12:10

Вчера присоединился к обществу препарирующих мыши.
Сперва попробовал сделать без матрицы, датчик на фотодиоде со светофильтром и длинным каналом. Работает, но точность даже без установки на принтер очень плохая.
Затем расковырял старого мыша, достал 12085(ADNS2620) сваял схемку на Nano. Залил ваш скетч с github, подогнал конфиги - нифига не пашет.
Взял библиотеку с форума Arduino.org - все завелось сразу. Даже картинка через родную линзу мыши видна.
Позже наткнулся http://geektimes.ru/post/256950/. Тоже работает.

Где-то косяк в коде под Нано. Если интересно могу конфиг прислать.

Осталось прикрутить оптику. Лазер взял себе с линейкой, а не точкой, по моему так будет удобнее, после настройки дает очень четкий узкий штришок.
"Мы не в Англии случиться может всякое" Сказано главой МИ6 в Эдинбурге Шотландия.
Аватара пользователя
ales2k
 
Сообщения: 463
Зарегистрирован: 30 июн 2014, 12:50

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

Сообщение setar » 08 фев 2016, 12:28

дык ясно где косяк :)
ты подключение к нано как делал ?
я про то что там подключение толком не документировано еще, спросил бы хоть.

Добавлено спустя 7 минут 9 секунд:
у меня из новостей пока хороших нету,
PWM модуляция лазера постоянно ведет к ухудшению результата,
графики показывает что нужно анализировать squal при MaxPixel находящемся в максимуме:
Снимок экрана 2016-02-07 в 3.31.12.png

Снимок экрана 2016-02-07 в 3.27.46.png


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

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

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

Сообщение ales2k » 08 фев 2016, 12:58

Напряжение на постоянку +5v, не парился с включением с ноги, мне это не нужно.
SCL - D12
SDA - D10
Как в конфиге.

Debug 1(пробовал разные)
Serial аппаратный (просто текст выдает, то есть рабочий)
Тип Nano - компиляет, значит переменные установились как надо.

Мож чего недопонял?

Добавлено спустя 4 минуты 36 секунд:
>>>> пока самым точным (но зависимым от цвета поверхности) остается факт появления пятна в поле зрения по MaxPixel
Тогда лазер с черточкой будет лучше пятна.
"Мы не в Англии случиться может всякое" Сказано главой МИ6 в Эдинбурге Шотландия.
Аватара пользователя
ales2k
 
Сообщения: 463
Зарегистрирован: 30 июн 2014, 12:50

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

Сообщение setar » 08 фев 2016, 13:02

попробуй так:
RF3Sens/doc
ArduinoNano_wPower_pins.txt
Код: Выделить всёРазвернуть
режим питания сенсора и лазера с ног микроконтроллера (подаем питание на нужные ноги)                                                              
                                                                                                                                                   
--- сенсор ADNS-2610 ---.                                                                                                                         
OSC_IN (1 pin)        : на кварц 24MHz                                                                                                             
OSC_OUT (2 pin)       : на кварц 24MHz                                                                                                             
MOSI(3 pin)           : PB5 D13                                                                                                                   
SCK (4 pin)           : PB2 D10                                                                                                                   
GND (6 pin)           : PB4 D12                                                                                                                   
VDD (7 pin)           : PB3 D11                                                                                                                   
REFA (8 pin)          : через конденсатор 2.2МКФ на землю (6 pin)                                                                                 
                                                                                                                                                   
--- лазерный диод 5mW ---                                                                                                                         
Laser VCC             : PD2 D2                                                                                                                     
Laser GND             : через сопротивление 100Ом на землю.                                                                                       
                                                                                                                                                   
--- выход ---                                                                                                                                     
MCU POWER (sensor +5V): VCC                                                                                                                       
MCU GND (sensor GND)  : GND                                                                                                                       
led (sensor signal)   : PC5 A5


в конфиге плата должна быть выбрана как #define ARDUINON_NANO_wPOWER

Добавлено спустя 2 минуты 12 секунд:
ales2k писал(а):Тогда лазер с черточкой будет лучше пятна.

не угадал - у него мощь размазана (на черном не сработает и воткнется в стол),
кроме того его не сфокусируешь а ширина линии по сравнению с фокусированной точкой - громадна
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

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

Сообщение ales2k » 08 фев 2016, 13:34

MOSI(3 pin) : PB5 D13 /// А в конфиге у меня была PB4 D12 написана, туда и подключал. наверное в этом и дело. Вечерком попробую.

>>ales2k писал(а):
>>Тогда лазер с черточкой будет лучше пятна.
>>не угадал - у него мощь размазана (на черном не сработает и воткнется в стол),
По моему мощи там на 2 порядка больше чем надо, даже в 5mWt лазере, не попортилась бы матрица...
>>кроме того его не сфокусируешь а ширина линии по сравнению с фокусированной точкой - громадна
Так вот, после фокусировки получается штришок - типа "-" толщиной в волос. и его будет удобно ловить как сверх яркую горизонтальную линию на матрице или как MaxPixel (он сразу засветит линейку) будет удобнее.
Короче вопрос эксперимента, с оптикой только начал возиться. У меня есть лазеры и с линией и с точкой, оба попробую.
"Мы не в Англии случиться может всякое" Сказано главой МИ6 в Эдинбурге Шотландия.
Аватара пользователя
ales2k
 
Сообщения: 463
Зарегистрирован: 30 июн 2014, 12:50

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

Сообщение setar » 08 фев 2016, 14:09

в процессе разработки было два варианта подключения к arduino nano(полистайте - выше фотки встречаются)
в первом варианте подключение было с рассчётом на аппаратный SPI, а потом когда от него отказались, я решил что удобнее датчик монтировать прямо на плате питая ноги с контроллера :
forum107/topic15929-360.html#p343641
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

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

Сообщение kindrat » 08 фев 2016, 14:11

Я к нано 2620 тоже подключил, все работает (пины только свои указывал). Но руки пока не доходят дальше датчик собирать, на данный момент только изображение с сенсора получаю.
Прошивка с софтовым SPI
Последний раз редактировалось kindrat 08 фев 2016, 14:12, всего редактировалось 1 раз.
kindrat
 
Сообщения: 207
Зарегистрирован: 13 мар 2013, 14:31
Откуда: Химки

Пред.След.

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

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

Сейчас этот форум просматривают: Majestic-12 [Bot], Yandex [Bot] и гости: 16